From 60f71648f3cd2dab133ce1fa27b38dc20c77a5bd Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 19 Mar 2019 11:11:18 -0300 Subject: [PATCH] [android] Don't start NavDrawerActivity directly from foreground notification It might be that the lifecycle didn't start, so we need to show the OpenDatabaseActivity first. --- .../android/AndroidNotificationManagerImpl.java | 3 +-- .../android/login/OpenDatabaseActivity.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java index 49d9428d1..556ecc4ca 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java @@ -261,8 +261,7 @@ class AndroidNotificationManagerImpl implements AndroidNotificationManager, b.setContentText(appContext.getText(text)); b.setWhen(0); // Don't show the time b.setOngoing(true); - Intent i = new Intent(appContext, NavDrawerActivity.class); - i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP); + Intent i = new Intent(appContext, SplashScreenActivity.class); b.setContentIntent(PendingIntent.getActivity(appContext, 0, i, 0)); if (SDK_INT >= 21) { b.setCategory(CATEGORY_SERVICE); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseActivity.java index 55aa3a8e7..2065080bb 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseActivity.java @@ -16,10 +16,14 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; +import org.briarproject.briar.android.logout.HideUiActivity; import org.briarproject.briar.android.navdrawer.NavDrawerActivity; import javax.inject.Inject; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; +import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.COMPACTING_DATABASE; import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.MIGRATING_DATABASE; import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.STARTING_SERVICES; @@ -69,6 +73,14 @@ public class OpenDatabaseActivity extends BriarActivity eventBus.removeListener(this); } + @Override + public void onBackPressed() { + Intent i = new Intent(this, HideUiActivity.class); + i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK); + startActivity(i); + supportFinishAfterTransition(); + } + @Override public void eventOccurred(Event e) { if (e instanceof LifecycleEvent) { @@ -97,7 +109,9 @@ public class OpenDatabaseActivity extends BriarActivity } private void finishAndStartApp() { - startActivity(new Intent(this, NavDrawerActivity.class)); + Intent i = new Intent(this, NavDrawerActivity.class); + i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP); + startActivity(i); supportFinishAfterTransition(); }