mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 11:19:04 +01:00
Only show a Dismiss button attached to the sign-in reminder
Also change the logo to a logout icon
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user