diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java index 13a7704b95..6b3f77b61c 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBase.java +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -161,8 +161,10 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc public void onUserInteraction() { Log.i("User interaction"); - if (!this.getClass().equals(ActivityMain.class) && Helper.shouldAuthenticate(this)) - restart(null); + if (!this.getClass().equals(ActivityMain.class) && Helper.shouldAuthenticate(this)) { + finishAndRemoveTask(); + startActivity(new Intent(this, ActivityMain.class)); + } } @Override @@ -203,8 +205,13 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc } private void checkAuthentication() { - if (!this.getClass().equals(ActivityMain.class) && Helper.shouldAuthenticate(this)) - restart(getIntent()); + if (!this.getClass().equals(ActivityMain.class) && Helper.shouldAuthenticate(this)) { + Intent intent = getIntent(); + finishAndRemoveTask(); + startActivity( + new Intent(this, ActivityMain.class) + .putExtra("intent", intent)); + } } @Override @@ -275,15 +282,6 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc } } - protected void restart(Intent intent) { - Intent main = new Intent(this, ActivityMain.class); - if (intent != null) - main.putExtra("intent", intent); - main.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); - startActivity(main); - finishAndRemoveTask(); - } - protected boolean backHandled() { for (IBackPressedListener listener : backPressedListeners) if (listener.onBackPressed()) diff --git a/app/src/main/java/eu/faircode/email/FragmentBase.java b/app/src/main/java/eu/faircode/email/FragmentBase.java index 488d49020c..9f17e0128b 100644 --- a/app/src/main/java/eu/faircode/email/FragmentBase.java +++ b/app/src/main/java/eu/faircode/email/FragmentBase.java @@ -116,7 +116,10 @@ public class FragmentBase extends Fragment { } protected void restart() { - ((ActivityBase) getActivity()).restart(null); + Intent intent = new Intent(getContext(), ActivityMain.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + startActivity(intent); + Runtime.getRuntime().exit(0); } @Override