Start NavDrawerActivity only after database was opened and services started

This commit is contained in:
Torsten Grote
2018-02-28 13:23:01 -03:00
parent 80770b0216
commit db7dbfce68
4 changed files with 16 additions and 21 deletions

View File

@@ -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)

View File

@@ -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();
}
}

View File

@@ -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();

View File

@@ -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));