mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-19 14:19:53 +01:00
Don't create extra activity instances from splash screen.
This commit is contained in:
@@ -16,14 +16,10 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
|
|||||||
import org.briarproject.briar.R;
|
import org.briarproject.briar.R;
|
||||||
import org.briarproject.briar.android.activity.ActivityComponent;
|
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||||
import org.briarproject.briar.android.activity.BriarActivity;
|
import org.briarproject.briar.android.activity.BriarActivity;
|
||||||
import org.briarproject.briar.android.logout.HideUiActivity;
|
|
||||||
import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
|
import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
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.COMPACTING_DATABASE;
|
||||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.MIGRATING_DATABASE;
|
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.MIGRATING_DATABASE;
|
||||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.STARTING_SERVICES;
|
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.STARTING_SERVICES;
|
||||||
@@ -73,14 +69,6 @@ public class OpenDatabaseActivity extends BriarActivity
|
|||||||
eventBus.removeListener(this);
|
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
|
@Override
|
||||||
public void eventOccurred(Event e) {
|
public void eventOccurred(Event e) {
|
||||||
if (e instanceof LifecycleEvent) {
|
if (e instanceof LifecycleEvent) {
|
||||||
@@ -109,9 +97,7 @@ public class OpenDatabaseActivity extends BriarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void finishAndStartApp() {
|
private void finishAndStartApp() {
|
||||||
Intent i = new Intent(this, NavDrawerActivity.class);
|
startActivity(new Intent(this, NavDrawerActivity.class));
|
||||||
i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP);
|
|
||||||
startActivity(i);
|
|
||||||
supportFinishAfterTransition();
|
supportFinishAfterTransition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.briarproject.briar.android.splash;
|
package org.briarproject.briar.android.splash;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -8,6 +9,8 @@ import android.support.v7.preference.PreferenceManager;
|
|||||||
import android.transition.Fade;
|
import android.transition.Fade;
|
||||||
|
|
||||||
import org.briarproject.bramble.api.account.AccountManager;
|
import org.briarproject.bramble.api.account.AccountManager;
|
||||||
|
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
|
||||||
|
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
|
||||||
import org.briarproject.bramble.api.system.AndroidExecutor;
|
import org.briarproject.bramble.api.system.AndroidExecutor;
|
||||||
import org.briarproject.briar.R;
|
import org.briarproject.briar.R;
|
||||||
import org.briarproject.briar.android.activity.ActivityComponent;
|
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||||
@@ -19,10 +22,15 @@ import org.briarproject.briar.api.android.LockManager;
|
|||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||||
|
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||||
import static org.briarproject.briar.android.TestingConstants.EXPIRY_DATE;
|
import static org.briarproject.briar.android.TestingConstants.EXPIRY_DATE;
|
||||||
|
|
||||||
|
@MethodsNotNullByDefault
|
||||||
|
@ParametersNotNullByDefault
|
||||||
public class SplashScreenActivity extends BaseActivity {
|
public class SplashScreenActivity extends BaseActivity {
|
||||||
|
|
||||||
private static final Logger LOG =
|
private static final Logger LOG =
|
||||||
@@ -36,7 +44,7 @@ public class SplashScreenActivity extends BaseActivity {
|
|||||||
protected AndroidExecutor androidExecutor;
|
protected AndroidExecutor androidExecutor;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle state) {
|
public void onCreate(@Nullable Bundle state) {
|
||||||
super.onCreate(state);
|
super.onCreate(state);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= 21) {
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
@@ -48,16 +56,14 @@ public class SplashScreenActivity extends BaseActivity {
|
|||||||
setContentView(R.layout.splash);
|
setContentView(R.layout.splash);
|
||||||
|
|
||||||
if (accountManager.hasDatabaseKey()) {
|
if (accountManager.hasDatabaseKey()) {
|
||||||
Intent i;
|
|
||||||
if (lockManager.isLocked()) {
|
if (lockManager.isLocked()) {
|
||||||
// The database needs to be opened for the app to be locked.
|
// The database needs to be opened for the app to be locked.
|
||||||
// Start main activity right away. It will open UnlockActivity.
|
// Start main activity right away. It will open UnlockActivity.
|
||||||
// Otherwise, we would end up with two screen unlock inputs.
|
// Otherwise, we would end up with two screen unlock inputs.
|
||||||
i = new Intent(this, NavDrawerActivity.class);
|
startNextActivity(NavDrawerActivity.class);
|
||||||
} else {
|
} else {
|
||||||
i = new Intent(this, OpenDatabaseActivity.class);
|
startNextActivity(OpenDatabaseActivity.class);
|
||||||
}
|
}
|
||||||
startActivity(i);
|
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
new Handler().postDelayed(() -> {
|
new Handler().postDelayed(() -> {
|
||||||
@@ -72,22 +78,28 @@ public class SplashScreenActivity extends BaseActivity {
|
|||||||
component.inject(this);
|
component.inject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void startNextActivity() {
|
private void startNextActivity() {
|
||||||
if (System.currentTimeMillis() >= EXPIRY_DATE) {
|
if (System.currentTimeMillis() >= EXPIRY_DATE) {
|
||||||
LOG.info("Expired");
|
LOG.info("Expired");
|
||||||
startActivity(new Intent(this, ExpiredActivity.class));
|
startNextActivity(ExpiredActivity.class);
|
||||||
} else {
|
} else {
|
||||||
if (accountManager.accountExists()) {
|
if (accountManager.accountExists()) {
|
||||||
LOG.info("Account exists");
|
LOG.info("Account exists");
|
||||||
startActivity(new Intent(this, OpenDatabaseActivity.class));
|
startNextActivity(OpenDatabaseActivity.class);
|
||||||
} else {
|
} else {
|
||||||
LOG.info("Account does not exist");
|
LOG.info("Account does not exist");
|
||||||
accountManager.deleteAccount();
|
accountManager.deleteAccount();
|
||||||
startActivity(new Intent(this, SetupActivity.class));
|
startNextActivity(SetupActivity.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void startNextActivity(Class<? extends Activity> activityClass) {
|
||||||
|
Intent i = new Intent(this, activityClass);
|
||||||
|
i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
startActivity(i);
|
||||||
|
}
|
||||||
|
|
||||||
private void setPreferencesDefaults() {
|
private void setPreferencesDefaults() {
|
||||||
androidExecutor.runOnBackgroundThread(() ->
|
androidExecutor.runOnBackgroundThread(() ->
|
||||||
PreferenceManager.setDefaultValues(SplashScreenActivity.this,
|
PreferenceManager.setDefaultValues(SplashScreenActivity.this,
|
||||||
|
|||||||
Reference in New Issue
Block a user