diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java
index 338aa67907..fc0fec82b4 100644
--- a/app/src/main/java/eu/faircode/email/ActivitySetup.java
+++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java
@@ -117,6 +117,9 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
static final int REQUEST_EXPORT = 4;
static final int REQUEST_IMPORT = 5;
+ static final String ACTION_QUICK_SETUP = BuildConfig.APPLICATION_ID + ".ACTION_QUICK_SETUP";
+ static final String ACTION_VIEW_ACCOUNTS = BuildConfig.APPLICATION_ID + ".ACTION_VIEW_ACCOUNTS";
+ static final String ACTION_VIEW_IDENTITIES = BuildConfig.APPLICATION_ID + ".ACTION_VIEW_IDENTITIES";
static final String ACTION_EDIT_ACCOUNT = BuildConfig.APPLICATION_ID + ".EDIT_ACCOUNT";
static final String ACTION_EDIT_IDENTITY = BuildConfig.APPLICATION_ID + ".EDIT_IDENTITY";
static final String ACTION_SHOW_PRO = BuildConfig.APPLICATION_ID + ".SHOW_PRO";
@@ -223,14 +226,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
drawerLayout.closeDrawer(drawerContainer);
onMenuContacts();
}
- }));
-
- menus.add(new NavMenuItem(R.drawable.baseline_settings_applications_24, R.string.title_setup_advanced, new Runnable() {
- @Override
- public void run() {
- drawerLayout.closeDrawer(drawerContainer);
- onMenuOptions();
- }
}).setSeparated());
menus.add(new NavMenuItem(R.drawable.baseline_help_24, R.string.menu_legend, new Runnable() {
@@ -285,7 +280,7 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
if ("accounts".equals(target))
fragmentTransaction.replace(R.id.content_frame, new FragmentAccounts()).addToBackStack("accounts");
else
- fragmentTransaction.replace(R.id.content_frame, new FragmentSetup()).addToBackStack("setup");
+ fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
fragmentTransaction.commit();
if (intent.hasExtra("target")) {
@@ -322,6 +317,9 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
super.onResume();
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
IntentFilter iff = new IntentFilter();
+ iff.addAction(ACTION_QUICK_SETUP);
+ iff.addAction(ACTION_VIEW_ACCOUNTS);
+ iff.addAction(ACTION_VIEW_IDENTITIES);
iff.addAction(ACTION_EDIT_ACCOUNT);
iff.addAction(ACTION_EDIT_IDENTITY);
iff.addAction(ACTION_SHOW_PRO);
@@ -518,15 +516,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
fragmentTransaction.commit();
}
- private void onMenuOptions() {
- if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED))
- getSupportFragmentManager().popBackStack("options", FragmentManager.POP_BACK_STACK_INCLUSIVE);
-
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
- fragmentTransaction.commit();
- }
-
private void onMenuLegend() {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED))
getSupportFragmentManager().popBackStack("legend", FragmentManager.POP_BACK_STACK_INCLUSIVE);
@@ -1085,6 +1074,24 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
return channel;
}
+ private void onViewQuickSetup(Intent intent) {
+ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, new FragmentQuickSetup()).addToBackStack("quick");
+ fragmentTransaction.commit();
+ }
+
+ private void onViewAccounts(Intent intent) {
+ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, new FragmentAccounts()).addToBackStack("accounts");
+ fragmentTransaction.commit();
+ }
+
+ private void onViewIdentities(Intent intent) {
+ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, new FragmentIdentities()).addToBackStack("identities");
+ fragmentTransaction.commit();
+ }
+
private void onEditAccount(Intent intent) {
FragmentAccount fragment = new FragmentAccount();
fragment.setArguments(intent.getExtras());
@@ -1113,11 +1120,18 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- if (ACTION_EDIT_ACCOUNT.equals(intent.getAction()))
+ String action = intent.getAction();
+ if (ACTION_QUICK_SETUP.equals(action))
+ onViewQuickSetup(intent);
+ else if (ACTION_VIEW_ACCOUNTS.equals(action))
+ onViewAccounts(intent);
+ else if (ACTION_VIEW_IDENTITIES.equals(action))
+ onViewIdentities(intent);
+ else if (ACTION_EDIT_ACCOUNT.equals(action))
onEditAccount(intent);
- else if (ACTION_EDIT_IDENTITY.equals(intent.getAction()))
+ else if (ACTION_EDIT_IDENTITY.equals(action))
onEditIdentity(intent);
- else if (ACTION_SHOW_PRO.equals(intent.getAction()))
+ else if (ACTION_SHOW_PRO.equals(action))
onShowPro(intent);
}
};
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java
index 118f10feaa..98f5d1fcf7 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptions.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java
@@ -48,8 +48,6 @@ public class FragmentOptions extends FragmentBase {
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
-
View view = inflater.inflate(R.layout.fragment_options, container, false);
pager = view.findViewById(R.id.pager);
@@ -72,25 +70,27 @@ public class FragmentOptions extends FragmentBase {
@Override
public int getCount() {
- return 7;
+ return 8;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
- return new FragmentOptionsSynchronize();
+ return new FragmentSetup();
case 1:
- return new FragmentOptionsSend();
+ return new FragmentOptionsSynchronize();
case 2:
- return new FragmentOptionsConnection();
+ return new FragmentOptionsSend();
case 3:
- return new FragmentOptionsDisplay();
+ return new FragmentOptionsConnection();
case 4:
- return new FragmentOptionsBehavior();
+ return new FragmentOptionsDisplay();
case 5:
- return new FragmentOptionsNotifications();
+ return new FragmentOptionsBehavior();
case 6:
+ return new FragmentOptionsNotifications();
+ case 7:
return new FragmentOptionsMisc();
default:
throw new IllegalArgumentException();
@@ -101,18 +101,20 @@ public class FragmentOptions extends FragmentBase {
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
- return getString(R.string.title_advanced_section_synchronize);
+ return getString(R.string.title_advanced_section_main);
case 1:
- return getString(R.string.title_advanced_section_send);
+ return getString(R.string.title_advanced_section_synchronize);
case 2:
- return getString(R.string.title_advanced_section_connection);
+ return getString(R.string.title_advanced_section_send);
case 3:
- return getString(R.string.title_advanced_section_display);
+ return getString(R.string.title_advanced_section_connection);
case 4:
- return getString(R.string.title_advanced_section_behavior);
+ return getString(R.string.title_advanced_section_display);
case 5:
- return getString(R.string.title_advanced_section_notifications);
+ return getString(R.string.title_advanced_section_behavior);
case 6:
+ return getString(R.string.title_advanced_section_notifications);
+ case 7:
return getString(R.string.title_advanced_section_misc);
default:
throw new IllegalArgumentException();
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java
index d257ec3f43..79f9c966b1 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java
@@ -53,7 +53,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_behavior, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java b/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java
index 87242a2122..58a5e61838 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java
@@ -59,7 +59,7 @@ public class FragmentOptionsConnection extends FragmentBase implements SharedPre
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_connection, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
index dfb625d4b7..bf55ee2a4f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
@@ -61,7 +61,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_display, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index cbe14e91eb..0c4abcf63c 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -74,7 +74,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_misc, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java
index 9ac2487786..4e5e30f995 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java
@@ -64,7 +64,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_notifications, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
index a4b6439fe8..185f7e2cdc 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
@@ -52,7 +52,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_send, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java
index 15198a06d3..70aed7a429 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java
@@ -66,7 +66,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_advanced);
+ setSubtitle(R.string.title_setup);
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_options_synchronize, container, false);
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index 46d8d36a3d..b67e5f3626 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -35,9 +35,6 @@ import android.os.Bundle;
import android.os.PowerManager;
import android.provider.Settings;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
@@ -46,8 +43,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
-import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Observer;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.preference.PreferenceManager;
import java.util.List;
@@ -55,6 +52,7 @@ import java.util.List;
public class FragmentSetup extends FragmentBase {
private ViewGroup view;
+ private Button btnHelp;
private Button btnQuick;
private TextView tvAccountDone;
@@ -73,7 +71,6 @@ public class FragmentSetup extends FragmentBase {
private Button btnData;
- private Button btnOptions;
private Button btnInbox;
private int textColorPrimary;
@@ -88,7 +85,6 @@ public class FragmentSetup extends FragmentBase {
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
setSubtitle(R.string.title_setup);
- setHasOptionsMenu(true);
textColorPrimary = Helper.resolveColor(getContext(), android.R.attr.textColorPrimary);
colorWarning = Helper.resolveColor(getContext(), R.attr.colorWarning);
@@ -97,6 +93,7 @@ public class FragmentSetup extends FragmentBase {
view = (ViewGroup) inflater.inflate(R.layout.fragment_setup, container, false);
// Get controls
+ btnHelp = view.findViewById(R.id.btnHelp);
btnQuick = view.findViewById(R.id.btnQuick);
tvAccountDone = view.findViewById(R.id.tvAccountDone);
@@ -115,35 +112,41 @@ public class FragmentSetup extends FragmentBase {
btnData = view.findViewById(R.id.btnData);
- btnOptions = view.findViewById(R.id.btnOptions);
btnInbox = view.findViewById(R.id.btnInbox);
// Wire controls
+ btnHelp.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ startActivity(Helper.getIntentSetupHelp());
+ }
+ });
+
+ PackageManager pm = getContext().getPackageManager();
+ btnHelp.setVisibility(Helper.getIntentSetupHelp().resolveActivity(pm) == null ? View.GONE : View.VISIBLE);
+
btnQuick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentQuickSetup()).addToBackStack("quick");
- fragmentTransaction.commit();
+ LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
+ lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_QUICK_SETUP));
}
});
btnAccount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentAccounts()).addToBackStack("accounts");
- fragmentTransaction.commit();
+ LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
+ lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_VIEW_ACCOUNTS));
}
});
btnIdentity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentIdentities()).addToBackStack("identities");
- fragmentTransaction.commit();
+ LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
+ lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_VIEW_IDENTITIES));
}
});
@@ -188,19 +191,10 @@ public class FragmentSetup extends FragmentBase {
}
});
- btnOptions.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
- fragmentTransaction.commit();
- }
- });
-
btnInbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- finish();
+ ((FragmentBase) getParentFragment()).finish();
}
});
@@ -344,44 +338,6 @@ public class FragmentSetup extends FragmentBase {
}
}
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- inflater.inflate(R.menu.menu_setup, menu);
- super.onCreateOptionsMenu(menu, inflater);
- }
-
- @Override
- public void onPrepareOptionsMenu(Menu menu) {
- PackageManager pm = getContext().getPackageManager();
- menu.findItem(R.id.menu_advanced).setVisible(BuildConfig.DEBUG);
- menu.findItem(R.id.menu_help).setVisible(Helper.getIntentSetupHelp().resolveActivity(pm) != null);
- super.onPrepareOptionsMenu(menu);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.menu_advanced:
- onMenuAdvanced();
- return true;
- case R.id.menu_help:
- onMenuHelp();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
- private void onMenuAdvanced() {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
- fragmentTransaction.commit();
- }
-
- private void onMenuHelp() {
- startActivity(Helper.getIntentSetupHelp());
- }
-
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == ActivitySetup.REQUEST_PERMISSION)
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index 34b649d106..d184fbe820 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -50,6 +50,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fast" />
+
+
-
-