diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 23d66d96f8..8fdce37ba1 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -19,11 +19,19 @@ package eu.faircode.email; Copyright 2018 by Marcel Bokhorst (M66B) */ +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.support.v4.content.LocalBroadcastManager; public class ActivitySetup extends ActivityBase implements FragmentManager.OnBackStackChangedListener { + static final String ACTION_EDIT_ACCOUNT = BuildConfig.APPLICATION_ID + ".EDIT_ACCOUNT"; + static final String ACTION_EDIT_IDENTITY = BuildConfig.APPLICATION_ID + ".EDIT_IDENTITY"; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -38,9 +46,45 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac } } + @Override + protected void onResume() { + super.onResume(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); + IntentFilter iff = new IntentFilter(); + iff.addAction(ACTION_EDIT_ACCOUNT); + iff.addAction(ACTION_EDIT_IDENTITY); + lbm.registerReceiver(receiver, iff); + } + + @Override + protected void onPause() { + super.onPause(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); + lbm.unregisterReceiver(receiver); + } + @Override public void onBackStackChanged() { if (getSupportFragmentManager().getBackStackEntryCount() == 0) finish(); } + + BroadcastReceiver receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (ACTION_EDIT_ACCOUNT.equals(intent.getAction())) { + FragmentAccount fragment = new FragmentAccount(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("account"); + fragmentTransaction.commit(); + } else if (ACTION_EDIT_IDENTITY.equals(intent.getAction())) { + FragmentIdentity fragment = new FragmentIdentity(); + fragment.setArguments(intent.getExtras()); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("identity"); + fragmentTransaction.commit(); + } + } + }; } diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index d997ccd3ec..4c8ee9f5e8 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -71,8 +71,6 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack static final String ACTION_VIEW_MESSAGES = BuildConfig.APPLICATION_ID + ".VIEW_MESSAGES"; static final String ACTION_VIEW_MESSAGE = BuildConfig.APPLICATION_ID + ".VIEW_MESSAGE"; static final String ACTION_EDIT_FOLDER = BuildConfig.APPLICATION_ID + ".EDIT_FOLDER"; - static final String ACTION_EDIT_ACCOUNT = BuildConfig.APPLICATION_ID + ".EDIT_ACCOUNT"; - static final String ACTION_EDIT_IDENTITY = BuildConfig.APPLICATION_ID + ".EDIT_IDENTITY"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -147,8 +145,6 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack iff.addAction(ACTION_VIEW_MESSAGES); iff.addAction(ACTION_VIEW_MESSAGE); iff.addAction(ACTION_EDIT_FOLDER); - iff.addAction(ACTION_EDIT_ACCOUNT); - iff.addAction(ACTION_EDIT_IDENTITY); lbm.registerReceiver(receiver, iff); } @@ -392,18 +388,6 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("folder"); fragmentTransaction.commit(); - } else if (ACTION_EDIT_ACCOUNT.equals(intent.getAction())) { - FragmentAccount fragment = new FragmentAccount(); - fragment.setArguments(intent.getExtras()); - FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("account"); - fragmentTransaction.commit(); - } else if (ACTION_EDIT_IDENTITY.equals(intent.getAction())) { - FragmentIdentity fragment = new FragmentIdentity(); - fragment.setArguments(intent.getExtras()); - FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("identity"); - fragmentTransaction.commit(); } } }; diff --git a/app/src/main/java/eu/faircode/email/AdapterAccount.java b/app/src/main/java/eu/faircode/email/AdapterAccount.java index 625147152c..162e7f8724 100644 --- a/app/src/main/java/eu/faircode/email/AdapterAccount.java +++ b/app/src/main/java/eu/faircode/email/AdapterAccount.java @@ -79,7 +79,7 @@ public class AdapterAccount extends RecyclerView.Adapter