From ba4a4aea59ddfd80844332b1edf7d8f4eaa0016f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 17 Jul 2018 16:32:58 -0300 Subject: [PATCH] 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.