From 9f02bbbba1d86910d8f59eb728825e53651fc907 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 26 Feb 2018 15:46:51 -0300 Subject: [PATCH] Do not show splash screen when signed in --- .../org/briarproject/briar/android/AppModule.java | 1 + .../briar/android/controller/ConfigController.java | 3 +++ .../android/controller/ConfigControllerImpl.java | 6 ++++++ .../briar/android/navdrawer/NavDrawerActivity.java | 14 -------------- .../briar/android/splash/SplashScreenActivity.java | 13 +++++++++---- 5 files changed, 19 insertions(+), 18 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 eba5d57eec..67af25ac69 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 @@ -94,6 +94,7 @@ public class AppModule { @Override public boolean databaseExists() { + // FIXME should not run on UiThread #620 if (!dir.isDirectory()) return false; File[] files = dir.listFiles(); return files != null && files.length > 0; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java index d6bc554f6e..07b32b0e2f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java @@ -17,4 +17,7 @@ public interface ConfigController { void deleteAccount(Context ctx); boolean accountExists(); + + boolean accountSignedIn(); + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java index 0af60bb981..3c19794441 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java @@ -52,4 +52,10 @@ public class ConfigControllerImpl implements ConfigController { String hex = getEncryptedDatabaseKey(); return hex != null && databaseConfig.databaseExists(); } + + @Override + public boolean accountSignedIn() { + return databaseConfig.getEncryptionKey() != null; + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java index d083343e91..dcc42f6c33 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java @@ -46,8 +46,6 @@ import java.util.logging.Logger; import javax.inject.Inject; -import static android.os.Build.MANUFACTURER; -import static android.os.Build.VERSION.SDK_INT; import static android.support.v4.app.FragmentManager.POP_BACK_STACK_INCLUSIVE; import static android.support.v4.view.GravityCompat.START; import static android.support.v4.widget.DrawerLayout.LOCK_MODE_LOCKED_CLOSED; @@ -214,18 +212,6 @@ public class NavDrawerActivity extends BriarActivity implements public void onBackPressed() { if (drawerLayout.isDrawerOpen(START)) { drawerLayout.closeDrawer(START); - } else if (getSupportFragmentManager().getBackStackEntryCount() == 0 && - getSupportFragmentManager() - .findFragmentByTag(ContactListFragment.TAG) != null) { - if (SDK_INT == 19 && MANUFACTURER.equalsIgnoreCase("Samsung")) { - // workaround for #1116 causes splash screen to show again - super.onBackPressed(); - } else { - Intent i = new Intent(Intent.ACTION_MAIN); - i.addCategory(Intent.CATEGORY_HOME); - i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(i); - } } else if (getSupportFragmentManager().getBackStackEntryCount() == 0 && getSupportFragmentManager() .findFragmentByTag(ContactListFragment.TAG) == null) { 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 7c19f3c780..9c45353134 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 @@ -43,10 +43,15 @@ public class SplashScreenActivity extends BaseActivity { setContentView(R.layout.splash); - new Handler().postDelayed(() -> { - startNextActivity(); - supportFinishAfterTransition(); - }, 500); + if (configController.accountSignedIn()) { + startActivity(new Intent(this, NavDrawerActivity.class)); + finish(); + } else { + new Handler().postDelayed(() -> { + startNextActivity(); + supportFinishAfterTransition(); + }, 500); + } } @Override -- GitLab