diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java index 2c618cf924eb55bf61fd06b0d0b9295a30a1e445..8e1abd66a2ac03720c8190175a7c8308f71a7f3a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java @@ -17,7 +17,6 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult; import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.briar.R; -import org.briarproject.briar.android.login.OpenDatabaseActivity; import org.briarproject.briar.android.navdrawer.NavDrawerActivity; import java.util.concurrent.CountDownLatch; @@ -90,11 +89,6 @@ public class BriarService extends Service { return; } - Intent intent = - new Intent(getApplicationContext(), OpenDatabaseActivity.class); - intent.setFlags(FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - // Create notification channels if (SDK_INT >= 26) { NotificationManager nm = (NotificationManager) 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 f197f13ec0a6c100dd74b6ef905fcfd08a09c145..16c49847ca1a5dbb91e28c0c4006efe15b198405 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 @@ -1,5 +1,6 @@ package org.briarproject.briar.android.login; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.widget.ImageView; @@ -13,7 +14,8 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.lifecycle.event.StartupEvent; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; -import org.briarproject.briar.android.activity.BaseActivity; +import org.briarproject.briar.android.activity.BriarActivity; +import org.briarproject.briar.android.navdrawer.NavDrawerActivity; import javax.annotation.ParametersAreNonnullByDefault; import javax.inject.Inject; @@ -22,7 +24,7 @@ import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleS import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.RUNNING; @ParametersAreNonnullByDefault -public class OpenDatabaseActivity extends BaseActivity +public class OpenDatabaseActivity extends BriarActivity implements EventListener { @Inject @@ -48,15 +50,10 @@ public class OpenDatabaseActivity extends BaseActivity } @Override - public void onBackPressed() { - // do not let the user bail out of here - } - - @Override - protected void onStart() { + public void onStart() { super.onStart(); if (lifecycleManager.getLifecycleState() == RUNNING) { - supportFinishAfterTransition(); + finishAndStartApp(); } else { if (lifecycleManager.getLifecycleState() == MIGRATING) { showMigration(); @@ -74,7 +71,7 @@ public class OpenDatabaseActivity extends BaseActivity @Override public void eventOccurred(Event e) { if (e instanceof StartupEvent) { - runOnUiThreadUnlessDestroyed(this::supportFinishAfterTransition); + runOnUiThreadUnlessDestroyed(this::finishAndStartApp); } else if (e instanceof DatabaseMigrationEvent) { runOnUiThreadUnlessDestroyed(this::showMigration); } @@ -87,4 +84,9 @@ public class OpenDatabaseActivity extends BaseActivity showingMigration = true; } + private void finishAndStartApp() { + startActivity(new Intent(this, NavDrawerActivity.class)); + supportFinishAfterTransition(); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java index 17c6f522f384d2bc68e7e5aa49905404f22d0d44..2b17df6eaf0f93d47b7234b728993e37000d0d40 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java @@ -8,7 +8,6 @@ import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener; -import org.briarproject.briar.android.navdrawer.NavDrawerActivity; import javax.inject.Inject; @@ -48,7 +47,7 @@ public class SetupActivity extends BaseActivity } public void showApp() { - Intent i = new Intent(this, NavDrawerActivity.class); + Intent i = new Intent(this, OpenDatabaseActivity.class); i.setFlags(FLAG_ACTIVITY_NEW_TASK); startActivity(i); supportFinishAfterTransition(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java index 9c45353134270a9a082c6ed2de357fa8a6ff407d..f21f460aa17bcc17d27da0a3db4f9c9b6627f6b2 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java @@ -12,8 +12,8 @@ import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.android.controller.ConfigController; +import org.briarproject.briar.android.login.OpenDatabaseActivity; import org.briarproject.briar.android.login.SetupActivity; -import org.briarproject.briar.android.navdrawer.NavDrawerActivity; import java.util.logging.Logger; @@ -44,7 +44,7 @@ public class SplashScreenActivity extends BaseActivity { setContentView(R.layout.splash); if (configController.accountSignedIn()) { - startActivity(new Intent(this, NavDrawerActivity.class)); + startActivity(new Intent(this, OpenDatabaseActivity.class)); finish(); } else { new Handler().postDelayed(() -> { @@ -65,7 +65,7 @@ public class SplashScreenActivity extends BaseActivity { startActivity(new Intent(this, ExpiredActivity.class)); } else { if (configController.accountExists()) { - startActivity(new Intent(this, NavDrawerActivity.class)); + startActivity(new Intent(this, OpenDatabaseActivity.class)); } else { configController.deleteAccount(this); startActivity(new Intent(this, SetupActivity.class));