From 8925d6f5d70ca99788a76cad136d06ded15f48c2 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 28 Jun 2018 16:34:55 -0300 Subject: [PATCH 1/4] Add an option to not show the sign-in reminder This is done via another preference in the settings screen and an action button attached to the notification itself --- .../briarproject/briar/android/AppModule.java | 1 + .../briar/android/BootReceiver.java | 22 +++++++++++++---- .../briar/android/BriarApplication.java | 4 ++++ .../briar/android/BriarApplicationImpl.java | 10 ++++++-- .../android/settings/SettingsActivity.java | 24 +++++++++++++++++++ .../android/settings/SettingsFragment.java | 9 ++++++- briar-android/src/main/res/values/strings.xml | 3 +++ briar-android/src/main/res/xml/settings.xml | 6 +++++ .../briar/android/TestBriarApplication.java | 8 ++++++- 9 files changed, 79 insertions(+), 8 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java index 5a2ad896c..2296a8baf 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java @@ -162,6 +162,7 @@ public class AppModule { @Provides SharedPreferences provideSharedPreferences(Application app) { + // FIXME unify this with getDefaultSharedPreferences() return app.getSharedPreferences("db", MODE_PRIVATE); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java b/briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java index cf4e0ab13..1d1fb1e2c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java @@ -6,12 +6,14 @@ import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.support.v4.app.NotificationCompat; import android.support.v4.content.ContextCompat; import org.briarproject.bramble.api.db.DatabaseConfig; import org.briarproject.briar.R; import org.briarproject.briar.android.navdrawer.NavDrawerActivity; +import org.briarproject.briar.android.settings.SettingsActivity; import javax.inject.Inject; @@ -24,6 +26,8 @@ import static android.os.Build.VERSION.SDK_INT; import static android.support.v4.app.NotificationCompat.PRIORITY_LOW; import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET; import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_SIGN_IN_REMINDER; +import static org.briarproject.briar.android.settings.SettingsActivity.NO_NOTIFY_SIGN_IN; +import static org.briarproject.briar.android.settings.SettingsFragment.NOTIFY_SIGN_IN; import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_CHANNEL_ID; import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID; @@ -36,15 +40,17 @@ public class BootReceiver extends BroadcastReceiver { public void onReceive(Context ctx, Intent intent) { if (!FEATURE_FLAG_SIGN_IN_REMINDER) return; - AndroidComponent applicationComponent = - ((BriarApplication) ctx.getApplicationContext()) - .getApplicationComponent(); + BriarApplication app = (BriarApplication) ctx.getApplicationContext(); + AndroidComponent applicationComponent = app.getApplicationComponent(); applicationComponent.inject(this); String action = intent.getAction(); if (action != null && action.equals(ACTION_BOOT_COMPLETED)) { if (databaseConfig.databaseExists()) { - showSignInNotification(ctx); + SharedPreferences prefs = app.getDefaultSharedPreferences(); + if (prefs.getBoolean(NOTIFY_SIGN_IN, true)) { + showSignInNotification(ctx); + } } } } @@ -73,6 +79,14 @@ public class BootReceiver extends BroadcastReceiver { b.setWhen(0); // Don't show the time b.setPriority(PRIORITY_LOW); + // Add a 'Do not show sign-in reminder' action + String actionTitle = + ctx.getString(R.string.reminder_notification_do_not_show_again); + Intent i1 = new Intent(ctx, SettingsActivity.class); + i1.setAction(NO_NOTIFY_SIGN_IN); + PendingIntent actionIntent = PendingIntent.getActivity(ctx, 0, i1, 0); + b.addAction(0, actionTitle, actionIntent); + Intent i = new Intent(ctx, NavDrawerActivity.class); i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP); b.setContentIntent(PendingIntent.getActivity(ctx, 0, i, 0)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplication.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplication.java index e537bd86d..6ab1c9ee0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplication.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplication.java @@ -1,5 +1,7 @@ package org.briarproject.briar.android; +import android.content.SharedPreferences; + import java.util.Collection; import java.util.logging.LogRecord; @@ -12,4 +14,6 @@ public interface BriarApplication { Collection getRecentLogRecords(); AndroidComponent getApplicationComponent(); + + SharedPreferences getDefaultSharedPreferences(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java index 0b2f03466..97891c389 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java @@ -77,11 +77,12 @@ public class BriarApplicationImpl extends Application private final CachingLogHandler logHandler = new CachingLogHandler(); private AndroidComponent applicationComponent; + private SharedPreferences prefs; @Override protected void attachBaseContext(Context base) { - SharedPreferences prefs = - PreferenceManager.getDefaultSharedPreferences(base); + if (prefs == null) + prefs = PreferenceManager.getDefaultSharedPreferences(base); // Loading the language needs to be done here. Localizer.initialize(prefs); super.attachBaseContext( @@ -156,4 +157,9 @@ public class BriarApplicationImpl extends Application public AndroidComponent getApplicationComponent() { return applicationComponent; } + + @Override + public SharedPreferences getDefaultSharedPreferences() { + return prefs; + } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java index 48b4b7fa9..b2d5779ca 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java @@ -1,19 +1,43 @@ package org.briarproject.briar.android.settings; +import android.app.NotificationManager; +import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.view.MenuItem; import org.briarproject.briar.R; +import org.briarproject.briar.android.BriarApplication; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; +import static org.briarproject.briar.android.settings.SettingsFragment.NOTIFY_SIGN_IN; +import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID; + public class SettingsActivity extends BriarActivity { + public static final String NO_NOTIFY_SIGN_IN = "noNotifySignIn"; + @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); + // Maybe turn off sign-in reminder + Intent intent = getIntent(); + if (intent != null && NO_NOTIFY_SIGN_IN.equals(intent.getAction())) { + // Turn it off + BriarApplication app = (BriarApplication) getApplication(); + SharedPreferences prefs = app.getDefaultSharedPreferences(); + prefs.edit().putBoolean(NOTIFY_SIGN_IN, false).apply(); + // Remove sign-in reminder notification + NotificationManager nm = (NotificationManager) + getSystemService(NOTIFICATION_SERVICE); + if (nm != null) nm.cancel(REMINDER_NOTIFICATION_ID); + // Finish this activity again + finish(); + } + ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setHomeButtonEnabled(true); 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 17c50fca0..955680ff5 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 @@ -71,6 +71,7 @@ import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.bramble.util.LogUtils.now; import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_DARK_THEME; +import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_SIGN_IN_REMINDER; import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_RINGTONE; import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.INTENT_SIGN_OUT; @@ -97,6 +98,7 @@ public class SettingsFragment extends PreferenceFragmentCompat public static final String BT_NAMESPACE = BluetoothConstants.ID.getString(); public static final String TOR_NAMESPACE = TorConstants.ID.getString(); public static final String LANGUAGE = "pref_key_language"; + public static final String NOTIFY_SIGN_IN = "pref_key_notify_sign_in"; private static final Logger LOG = Logger.getLogger(SettingsFragment.class.getName()); @@ -143,6 +145,8 @@ public class SettingsFragment extends PreferenceFragmentCompat (ListPreference) findPreference("pref_key_theme"); enableBluetooth = (ListPreference) findPreference("pref_key_bluetooth"); torNetwork = (ListPreference) findPreference("pref_key_tor_network"); + CheckBoxPreference notifySignIn = + (CheckBoxPreference) findPreference(NOTIFY_SIGN_IN); notifyPrivateMessages = (CheckBoxPreference) findPreference( "pref_key_notify_private_messages"); notifyGroupMessages = (CheckBoxPreference) findPreference( @@ -199,6 +203,7 @@ public class SettingsFragment extends PreferenceFragmentCompat ); } else { theme.setVisible(FEATURE_FLAG_DARK_THEME); + notifySignIn.setVisible(FEATURE_FLAG_SIGN_IN_REMINDER); findPreference("pref_key_explode").setVisible(false); findPreference("pref_key_test_data").setVisible(false); @@ -346,7 +351,9 @@ public class SettingsFragment extends PreferenceFragmentCompat } private void setSettingsEnabled(boolean enabled) { - // theme not needed here, because handled by SharedPreferences + // preferences not needed here, because handled by SharedPreferences: + // - pref_key_theme + // - pref_key_notify_sign_in enableBluetooth.setEnabled(enabled); torNetwork.setEnabled(enabled); notifyPrivateMessages.setEnabled(enabled); diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 194856e89..bf6583069 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -71,6 +71,7 @@ Signed out of Briar Tap to sign back in or swipe to dismiss. Briar Sign-in Reminder + Don\'t show again Signed into Briar Touch to open Briar. @@ -373,6 +374,8 @@ Notifications + Remind me to sign in + Shows a reminder when the phone starts Private messages Show alerts for private messages Configure alerts for private messages diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml index c74c7e3c3..c81fbb2ad 100644 --- a/briar-android/src/main/res/xml/settings.xml +++ b/briar-android/src/main/res/xml/settings.xml @@ -81,6 +81,12 @@ android:layout="@layout/preferences_category" android:title="@string/notification_settings_title"> + + Date: Thu, 5 Jul 2018 11:35:37 -0300 Subject: [PATCH 2/4] Also remind to sign-in again after app was upgraded --- briar-android/src/main/AndroidManifest.xml | 3 ++- .../briarproject/briar/android/AndroidComponent.java | 3 ++- .../briar/android/BriarApplicationImpl.java | 2 +- .../SignInReminderReceiver.java} | 11 ++++++++--- briar-android/src/main/res/values/strings.xml | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) rename briar-android/src/main/java/org/briarproject/briar/android/{BootReceiver.java => login/SignInReminderReceiver.java} (89%) diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml index f105d57e9..9ae75930b 100644 --- a/briar-android/src/main/AndroidManifest.xml +++ b/briar-android/src/main/AndroidManifest.xml @@ -26,10 +26,11 @@ android:theme="@style/BriarTheme"> + diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java index 778a6f2b9..087aa5ea0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java @@ -26,6 +26,7 @@ import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.bramble.api.system.Clock; import org.briarproject.briar.BriarCoreEagerSingletons; import org.briarproject.briar.BriarCoreModule; +import org.briarproject.briar.android.login.SignInReminderReceiver; import org.briarproject.briar.android.reporting.BriarReportSender; import org.briarproject.briar.api.android.AndroidNotificationManager; import org.briarproject.briar.api.android.DozeWatchdog; @@ -150,7 +151,7 @@ public interface AndroidComponent @IoExecutor Executor ioExecutor(); - void inject(BootReceiver briarService); + void inject(SignInReminderReceiver briarService); void inject(BriarService briarService); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java index 97891c389..08fc14b5d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java @@ -77,7 +77,7 @@ public class BriarApplicationImpl extends Application private final CachingLogHandler logHandler = new CachingLogHandler(); private AndroidComponent applicationComponent; - private SharedPreferences prefs; + private volatile SharedPreferences prefs; @Override protected void attachBaseContext(Context base) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java similarity index 89% rename from briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java rename to briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java index 1d1fb1e2c..e361aeb6e 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BootReceiver.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java @@ -1,4 +1,4 @@ -package org.briarproject.briar.android; +package org.briarproject.briar.android.login; import android.app.NotificationChannel; import android.app.NotificationManager; @@ -12,6 +12,8 @@ import android.support.v4.content.ContextCompat; import org.briarproject.bramble.api.db.DatabaseConfig; import org.briarproject.briar.R; +import org.briarproject.briar.android.AndroidComponent; +import org.briarproject.briar.android.BriarApplication; import org.briarproject.briar.android.navdrawer.NavDrawerActivity; import org.briarproject.briar.android.settings.SettingsActivity; @@ -20,6 +22,7 @@ import javax.inject.Inject; import static android.app.NotificationManager.IMPORTANCE_LOW; import static android.content.Context.NOTIFICATION_SERVICE; import static android.content.Intent.ACTION_BOOT_COMPLETED; +import static android.content.Intent.ACTION_MY_PACKAGE_REPLACED; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.os.Build.VERSION.SDK_INT; @@ -31,7 +34,7 @@ import static org.briarproject.briar.android.settings.SettingsFragment.NOTIFY_SI import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_CHANNEL_ID; import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID; -public class BootReceiver extends BroadcastReceiver { +public class SignInReminderReceiver extends BroadcastReceiver { @Inject DatabaseConfig databaseConfig; @@ -45,7 +48,9 @@ public class BootReceiver extends BroadcastReceiver { applicationComponent.inject(this); String action = intent.getAction(); - if (action != null && action.equals(ACTION_BOOT_COMPLETED)) { + if (action == null) return; + if (action.equals(ACTION_BOOT_COMPLETED) || + action.equals(ACTION_MY_PACKAGE_REPLACED)) { if (databaseConfig.databaseExists()) { SharedPreferences prefs = app.getDefaultSharedPreferences(); if (prefs.getBoolean(NOTIFY_SIGN_IN, true)) { diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index bf6583069..5977fa52d 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -375,7 +375,7 @@ Notifications Remind me to sign in - Shows a reminder when the phone starts + Show a reminder when the phone starts or the app got updated Private messages Show alerts for private messages Configure alerts for private messages From ba4a4aea59ddfd80844332b1edf7d8f4eaa0016f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 17 Jul 2018 16:32:58 -0300 Subject: [PATCH 3/4] Only show a Dismiss button attached to the sign-in reminder Also change the logo to a logout icon --- .../android/login/SignInReminderReceiver.java | 25 +++++++++++++------ .../android/settings/SettingsActivity.java | 24 ------------------ .../src/main/res/drawable/ic_signout.xml | 9 +++++++ .../res/drawable/ic_signout_black_24dp.xml | 9 ------- .../res/drawable/notification_reminder.xml | 10 -------- .../src/main/res/menu/navigation_drawer.xml | 2 +- briar-android/src/main/res/values/strings.xml | 4 +-- 7 files changed, 29 insertions(+), 54 deletions(-) create mode 100644 briar-android/src/main/res/drawable/ic_signout.xml delete mode 100644 briar-android/src/main/res/drawable/ic_signout_black_24dp.xml delete mode 100644 briar-android/src/main/res/drawable/notification_reminder.xml diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java index e361aeb6e..cf1edaae6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java @@ -15,7 +15,6 @@ import org.briarproject.briar.R; import org.briarproject.briar.android.AndroidComponent; import org.briarproject.briar.android.BriarApplication; import org.briarproject.briar.android.navdrawer.NavDrawerActivity; -import org.briarproject.briar.android.settings.SettingsActivity; import javax.inject.Inject; @@ -29,13 +28,14 @@ import static android.os.Build.VERSION.SDK_INT; import static android.support.v4.app.NotificationCompat.PRIORITY_LOW; import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET; import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_SIGN_IN_REMINDER; -import static org.briarproject.briar.android.settings.SettingsActivity.NO_NOTIFY_SIGN_IN; import static org.briarproject.briar.android.settings.SettingsFragment.NOTIFY_SIGN_IN; import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_CHANNEL_ID; import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID; public class SignInReminderReceiver extends BroadcastReceiver { + public static final String DISMISS_REMINDER = "dismissReminder"; + @Inject DatabaseConfig databaseConfig; @@ -57,6 +57,8 @@ public class SignInReminderReceiver extends BroadcastReceiver { showSignInNotification(ctx); } } + } else if (action.equals(DISMISS_REMINDER)) { + dismissReminder(ctx); } } @@ -76,7 +78,7 @@ public class SignInReminderReceiver extends BroadcastReceiver { NotificationCompat.Builder b = new NotificationCompat.Builder(ctx, REMINDER_CHANNEL_ID); - b.setSmallIcon(R.drawable.notification_reminder); + b.setSmallIcon(R.drawable.ic_signout); b.setColor(ContextCompat.getColor(ctx, R.color.briar_primary)); b.setContentTitle(ctx.getText(R.string.reminder_notification_title)); b.setContentText(ctx.getText(R.string.reminder_notification_text)); @@ -84,12 +86,12 @@ public class SignInReminderReceiver extends BroadcastReceiver { b.setWhen(0); // Don't show the time b.setPriority(PRIORITY_LOW); - // Add a 'Do not show sign-in reminder' action + // Add a 'Dismiss' action String actionTitle = - ctx.getString(R.string.reminder_notification_do_not_show_again); - Intent i1 = new Intent(ctx, SettingsActivity.class); - i1.setAction(NO_NOTIFY_SIGN_IN); - PendingIntent actionIntent = PendingIntent.getActivity(ctx, 0, i1, 0); + ctx.getString(R.string.reminder_notification_dismiss); + Intent i1 = new Intent(ctx, SignInReminderReceiver.class); + i1.setAction(DISMISS_REMINDER); + PendingIntent actionIntent = PendingIntent.getBroadcast(ctx, 0, i1, 0); b.addAction(0, actionTitle, actionIntent); Intent i = new Intent(ctx, NavDrawerActivity.class); @@ -99,4 +101,11 @@ public class SignInReminderReceiver extends BroadcastReceiver { nm.notify(REMINDER_NOTIFICATION_ID, b.build()); } + private void dismissReminder(Context ctx) { + NotificationManager nm = (NotificationManager) + ctx.getSystemService(NOTIFICATION_SERVICE); + if (nm == null) return; + nm.cancel(REMINDER_NOTIFICATION_ID); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java index b2d5779ca..48b4b7fa9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java @@ -1,43 +1,19 @@ package org.briarproject.briar.android.settings; -import android.app.NotificationManager; -import android.content.Intent; -import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.view.MenuItem; import org.briarproject.briar.R; -import org.briarproject.briar.android.BriarApplication; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; -import static org.briarproject.briar.android.settings.SettingsFragment.NOTIFY_SIGN_IN; -import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID; - public class SettingsActivity extends BriarActivity { - public static final String NO_NOTIFY_SIGN_IN = "noNotifySignIn"; - @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); - // Maybe turn off sign-in reminder - Intent intent = getIntent(); - if (intent != null && NO_NOTIFY_SIGN_IN.equals(intent.getAction())) { - // Turn it off - BriarApplication app = (BriarApplication) getApplication(); - SharedPreferences prefs = app.getDefaultSharedPreferences(); - prefs.edit().putBoolean(NOTIFY_SIGN_IN, false).apply(); - // Remove sign-in reminder notification - NotificationManager nm = (NotificationManager) - getSystemService(NOTIFICATION_SERVICE); - if (nm != null) nm.cancel(REMINDER_NOTIFICATION_ID); - // Finish this activity again - finish(); - } - ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setHomeButtonEnabled(true); diff --git a/briar-android/src/main/res/drawable/ic_signout.xml b/briar-android/src/main/res/drawable/ic_signout.xml new file mode 100644 index 000000000..2dd789085 --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_signout.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml b/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml deleted file mode 100644 index 05569dbdf..000000000 --- a/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/briar-android/src/main/res/drawable/notification_reminder.xml b/briar-android/src/main/res/drawable/notification_reminder.xml deleted file mode 100644 index 1defd7d3d..000000000 --- a/briar-android/src/main/res/drawable/notification_reminder.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/briar-android/src/main/res/menu/navigation_drawer.xml b/briar-android/src/main/res/menu/navigation_drawer.xml index 9c98a5187..befb4faa2 100644 --- a/briar-android/src/main/res/menu/navigation_drawer.xml +++ b/briar-android/src/main/res/menu/navigation_drawer.xml @@ -28,7 +28,7 @@ android:title="@string/settings_button"/> diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 5977fa52d..df80d5bfa 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -69,9 +69,9 @@ Signed out of Briar - Tap to sign back in or swipe to dismiss. + Tap to sign back in. Briar Sign-in Reminder - Don\'t show again + Dismiss Signed into Briar Touch to open Briar. From 1cbd76bbc9ff4a662a8b7b5becec6cddeb948b7f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 18 Jul 2018 09:40:30 -0300 Subject: [PATCH 4/4] Address review nitpicks --- briar-android/src/main/res/values/strings.xml | 2 +- .../org/briarproject/briar/android/TestBriarApplication.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index df80d5bfa..06a09ddce 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -375,7 +375,7 @@ Notifications Remind me to sign in - Show a reminder when the phone starts or the app got updated + Show a reminder when the phone starts or the app has been updated Private messages Show alerts for private messages Configure alerts for private messages diff --git a/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java b/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java index bd50acd41..024c62b14 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java @@ -23,7 +23,7 @@ public class TestBriarApplication extends Application Logger.getLogger(TestBriarApplication.class.getName()); private AndroidComponent applicationComponent; - private SharedPreferences prefs; + private volatile SharedPreferences prefs; @Override public void onCreate() {