From fec647a7ee0f7e6c488d6ea9f09be32c07a675ce Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 14 Aug 2018 08:31:43 +0000 Subject: [PATCH] Fixed setup closing on config change --- .../java/eu/faircode/email/ActivitySetup.java | 17 ++++++++++++++++- .../java/eu/faircode/email/FragmentSetup.java | 8 -------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 8d1831d047..dc10eef320 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -26,11 +26,16 @@ import android.content.IntentFilter; import android.os.Bundle; import android.view.MenuItem; +import java.util.List; + import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; +import androidx.lifecycle.Observer; import androidx.localbroadcastmanager.content.LocalBroadcastManager; public class ActivitySetup extends ActivityBase implements FragmentManager.OnBackStackChangedListener { + boolean hasAccount; + static final String ACTION_EDIT_ACCOUNT = BuildConfig.APPLICATION_ID + ".EDIT_ACCOUNT"; static final String ACTION_EDIT_IDENTITY = BuildConfig.APPLICATION_ID + ".EDIT_IDENTITY"; @@ -48,6 +53,13 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac fragmentTransaction.replace(R.id.content_frame, new FragmentSetup()).addToBackStack("setup"); fragmentTransaction.commit(); } + + DB.getInstance(this).account().liveAccounts(true).observe(this, new Observer>() { + @Override + public void onChanged(List accounts) { + hasAccount = (accounts != null && accounts.size() > 0); + } + }); } @Override @@ -79,8 +91,11 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac @Override public void onBackStackChanged() { - if (getSupportFragmentManager().getBackStackEntryCount() == 0) + if (getSupportFragmentManager().getBackStackEntryCount() == 0) { + if (hasAccount) + startActivity(new Intent(this, ActivityView.class).putExtra("setup", true)); finish(); + } } BroadcastReceiver receiver = new BroadcastReceiver() { diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 75a4864dec..cd4e4636f8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -21,7 +21,6 @@ package eu.faircode.email; import android.Manifest; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.os.Bundle; @@ -208,13 +207,6 @@ public class FragmentSetup extends FragmentEx { }); } - @Override - public void onDestroy() { - if (tvAccountDone.getVisibility() == View.VISIBLE) - startActivity(new Intent(getContext(), ActivityView.class).putExtra("setup", true)); - super.onDestroy(); - } - @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { boolean has = (grantResults.length > 0);