Forked from
briar / briar
5344 commits behind the upstream repository.
-
Ernir Erlingsson authored
Switched AppBus for ResultHandler, Controller for Helper. Added the basics for LifecycleControllers and implemented it for BriarActivity and NavDrawerActivity
Ernir Erlingsson authoredSwitched AppBus for ResultHandler, Controller for Helper. Added the basics for LifecycleControllers and implemented it for BriarActivity and NavDrawerActivity
SplashScreenActivity.java 2.42 KiB
package org.briarproject.android;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.StrictMode;
import android.os.StrictMode.ThreadPolicy;
import android.os.StrictMode.VmPolicy;
import android.support.v7.preference.PreferenceManager;
import org.briarproject.R;
import org.briarproject.android.controller.ConfigController;
import org.briarproject.android.util.AndroidUtils;
import java.util.logging.Logger;
import javax.inject.Inject;
import static org.briarproject.android.TestingConstants.DEFAULT_LOG_LEVEL;
import static org.briarproject.android.TestingConstants.TESTING;
public class SplashScreenActivity extends BaseActivity {
private static final Logger LOG =
Logger.getLogger(SplashScreenActivity.class.getName());
// This build expires on 1 June 2016
private static final long EXPIRY_DATE = 1464735600 * 1000L;
@Inject
ConfigController configController;
public SplashScreenActivity() {
Logger.getLogger("").setLevel(DEFAULT_LOG_LEVEL);
enableStrictMode();
}
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
setPreferencesDefaults();
setContentView(R.layout.splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startNextActivity();
finish();
}
}, 500);
}
@Override
public void injectActivity(ActivityComponent component) {
component.inject(this);
}
protected void startNextActivity() {
if (System.currentTimeMillis() >= EXPIRY_DATE) {
LOG.info("Expired");
startActivity(new Intent(this, ExpiredActivity.class));
} else {
if (configController.initialized()) {
startActivity(new Intent(this, NavDrawerActivity.class));
} else {
configController.clearPrefs();
AndroidUtils.deleteAppData(this);
startActivity(new Intent(this, SetupActivity.class));
}
}
}
private void enableStrictMode() {
if (TESTING) {
ThreadPolicy.Builder threadPolicy = new ThreadPolicy.Builder();
threadPolicy.detectAll();
threadPolicy.penaltyLog();
StrictMode.setThreadPolicy(threadPolicy.build());
VmPolicy.Builder vmPolicy = new VmPolicy.Builder();
vmPolicy.detectAll();
vmPolicy.penaltyLog();
StrictMode.setVmPolicy(vmPolicy.build());
}
}
private void setPreferencesDefaults() {
androidExecutor.execute(new Runnable() {
public void run() {
PreferenceManager.setDefaultValues(SplashScreenActivity.this,
R.xml.panic_preferences, false);
}
});
}
}