Merge setup and options

pull/156/head
M66B 6 years ago
parent 1f07ecc025
commit 119d1fedf3

@ -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);
}
};

@ -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();

@ -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);

@ -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);

@ -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);

@ -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);

@ -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);

@ -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);

@ -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);

@ -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)

@ -50,6 +50,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fast" />
<Button
android:id="@+id/btnHelp"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:minWidth="0dp"
android:minHeight="0dp"
android:text="@string/title_setup_help"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvQuick" />
<Button
android:id="@+id/btnQuick"
android:layout_width="wrap_content"
@ -415,17 +427,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/five" />
<Button
android:id="@+id/btnOptions"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:minHeight="0dp"
android:text="@string/title_setup_options"
app:layout_constraintBottom_toBottomOf="@+id/btnInbox"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnInbox"
android:layout_width="wrap_content"

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_advanced"
android:icon="@drawable/baseline_settings_applications_24"
android:title="@string/title_setup_advanced"
app:showAsAction="always" />
<item
android:id="@+id/menu_help"
android:icon="@drawable/baseline_help_24"
android:title="@string/title_setup_help"
app:showAsAction="always" />
</menu>

@ -153,8 +153,7 @@
<string name="title_setup_defaults">Restore defaults</string>
<string name="title_setup_reset_questions">Reset questions</string>
<string name="title_advanced">Advanced options</string>
<string name="title_advanced_section_main">Main</string>
<string name="title_advanced_section_synchronize">Receive</string>
<string name="title_advanced_section_send">Send</string>
<string name="title_advanced_section_connection">Connection</string>

Loading…
Cancel
Save