package org.wordpress.android.ui; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import org.wordpress.android.R; import org.wordpress.android.WordPress; import org.wordpress.android.ui.main.WPMainActivity; import org.wordpress.android.util.AppLog; import org.wordpress.android.util.AppLog.T; import org.wordpress.android.util.ProfilingUtils; import org.wordpress.android.util.ToastUtils; public class WPLaunchActivity extends AppCompatActivity { /* * this the main (default) activity, which does nothing more than launch the * previously active activity on startup - note that it's defined in the * manifest to have no UI */ private ProgressDialog mMigrationProgressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ProfilingUtils.split("WPLaunchActivity.onCreate"); if (WordPress.sIsMigrationInProgress) { mMigrationProgressDialog = new ProgressDialog(this); mMigrationProgressDialog.setMessage(this.getResources().getString(R.string.migration_message)); mMigrationProgressDialog.setCancelable(false); mMigrationProgressDialog.show(); WordPress.registerMigrationListener(new WordPress.MigrationListener() { @Override public void onCompletion() { if (mMigrationProgressDialog != null) { mMigrationProgressDialog.dismiss(); mMigrationProgressDialog = null; } launchWPMainActivity(); } @Override public void onError() { AppLog.d(T.DB, "Show a Migration Error toast."); mMigrationProgressDialog.dismiss(); mMigrationProgressDialog = null; ToastUtils.showToast(WPLaunchActivity.this, getString(R.string.migration_error_not_connected), ToastUtils.Duration.LONG); } }); } else { launchWPMainActivity(); } } private void launchWPMainActivity() { if (WordPress.wpDB == null) { ToastUtils.showToast(this, R.string.fatal_db_error, ToastUtils.Duration.LONG); finish(); return; } Intent intent = new Intent(this, WPMainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); } @Override protected void onDestroy() { if (mMigrationProgressDialog != null) { mMigrationProgressDialog.dismiss(); mMigrationProgressDialog = null; } super.onDestroy(); } }