From bf1a5cf218b02a3e415b3f7c6092f1510f91b969 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 16 May 2023 16:55:19 -0300 Subject: [PATCH] Allow sharing download link for Briar from settings actions --- .../android/settings/SettingsFragment.java | 23 +++++++++++++++++++ .../res/drawable/ic_settings_share_link.xml | 10 ++++++++ briar-android/src/main/res/values/strings.xml | 2 ++ briar-android/src/main/res/xml/settings.xml | 5 ++++ 4 files changed, 40 insertions(+) create mode 100644 briar-android/src/main/res/drawable/ic_settings_share_link.xml diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index 4eb6a7f47..2d5ec5fc1 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -1,10 +1,12 @@ package org.briarproject.briar.android.settings; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; +import android.widget.Toast; import org.briarproject.briar.R; import org.briarproject.briar.android.mailbox.MailboxActivity; @@ -24,6 +26,9 @@ import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceGroup; +import static android.content.Intent.ACTION_SEND; +import static android.content.Intent.EXTRA_TEXT; +import static android.widget.Toast.LENGTH_LONG; import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.AppModule.getAndroidComponent; import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD; @@ -37,11 +42,14 @@ public class SettingsFragment extends PreferenceFragmentCompat { public static final String SETTINGS_NAMESPACE = "android-ui"; private static final String PREF_KEY_AVATAR = "pref_key_avatar"; + private static final String PREF_KEY_SHARE_LINK = "pref_key_share_app_link"; private static final String PREF_KEY_FEEDBACK = "pref_key_send_feedback"; private static final String PREF_KEY_DEV = "pref_key_dev"; private static final String PREF_KEY_EXPLODE = "pref_key_explode"; private static final String PREF_KEY_MAILBOX = "pref_key_mailbox"; + private static final String DOWNLOAD_URL = "https://briarproject.org/download/"; + @Inject ViewModelProvider.Factory viewModelFactory; @@ -86,6 +94,21 @@ public class SettingsFragment extends PreferenceFragmentCompat { return true; }); + Preference prefShareLink = + requireNonNull(findPreference(PREF_KEY_SHARE_LINK)); + prefShareLink.setOnPreferenceClickListener(preference -> { + String text = getString(R.string.share_app_link_text, DOWNLOAD_URL); + Intent sendIntent = new Intent(ACTION_SEND); + sendIntent.putExtra(EXTRA_TEXT, text); + sendIntent.setType("text/plain"); + try { + startActivity(Intent.createChooser(sendIntent, null)); + } catch (ActivityNotFoundException e) { + Toast.makeText(requireContext(), + R.string.error_start_activity, LENGTH_LONG).show(); + } + return true; + }); Preference prefFeedback = requireNonNull(findPreference(PREF_KEY_FEEDBACK)); prefFeedback.setOnPreferenceClickListener(preference -> { diff --git a/briar-android/src/main/res/drawable/ic_settings_share_link.xml b/briar-android/src/main/res/drawable/ic_settings_share_link.xml new file mode 100644 index 000000000..c561babf4 --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_settings_share_link.xml @@ -0,0 +1,10 @@ + + + diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 060fe42ef..c108f88d5 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -733,6 +733,8 @@ Actions + Share download link + Download Briar at %s Send feedback diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml index c25dced90..ad7dee382 100644 --- a/briar-android/src/main/res/xml/settings.xml +++ b/briar-android/src/main/res/xml/settings.xml @@ -47,6 +47,11 @@ android:targetClass="org.briarproject.briar.android.hotspot.HotspotActivity" android:targetPackage="@string/app_package" /> + +