diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java index 5e084edd95..45dda06fbb 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBase.java +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -41,7 +41,7 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc private boolean contacts; private static String[] restart = new String[]{ - "unified", "threading", "compact", "avatars", "identicons", "preview", "addresses", + "unified", "threading", "avatars", "identicons", "preview", "addresses", "pull", "actionbar", "autoclose", "autonext", "confirm", "debug" }; diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 8497fd8e0e..97a12e9cec 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -117,12 +117,12 @@ public class AdapterMessage extends RecyclerView.Adapter= 0 && viewType != AdapterMessage.ViewType.SEARCH); + menu.findItem(R.id.menu_folders).setVisible(primary >= 0); + menu.findItem(R.id.menu_folders).setIcon(connected ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24); + menu.findItem(R.id.menu_sort_on).setVisible( viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER); @@ -1570,8 +1561,7 @@ public class FragmentMessages extends FragmentEx { else if ("sender".equals(sort)) menu.findItem(R.id.menu_sort_on_sender).setChecked(true); - menu.findItem(R.id.menu_folders).setVisible(primary >= 0); - menu.findItem(R.id.menu_folders).setIcon(connected ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24); + menu.findItem(R.id.menu_compact).setChecked(prefs.getBoolean("compact", false)); menu.findItem(R.id.menu_snoozed).setVisible(!outbox && (viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER)); @@ -1585,6 +1575,11 @@ public class FragmentMessages extends FragmentEx { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { + case R.id.menu_folders: + onMenuFolders(); + loadMessages(); + return true; + case R.id.menu_sort_on_time: item.setChecked(true); onMenuSort("time"); @@ -1605,17 +1600,16 @@ public class FragmentMessages extends FragmentEx { onMenuSort("sender"); return true; - case R.id.menu_snoozed: - onMenuSnoozed(); - return true; - case R.id.menu_zoom: onMenuZoom(); return true; - case R.id.menu_folders: - onMenuFolders(); - loadMessages(); + case R.id.menu_compact: + onMenuCompact(); + return true; + + case R.id.menu_snoozed: + onMenuSnoozed(); return true; case R.id.menu_move_sent: @@ -1627,27 +1621,6 @@ public class FragmentMessages extends FragmentEx { } } - private void onMenuSort(String sort) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - prefs.edit().putString("sort", sort).apply(); - loadMessages(); - } - - private void onMenuSnoozed() { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - boolean snoozed = prefs.getBoolean("snoozed", false); - prefs.edit().putBoolean("snoozed", !snoozed).apply(); - loadMessages(); - } - - private void onMenuZoom() { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - int zoom = prefs.getInt("zoom", compact ? 0 : 1); - zoom = ++zoom % 3; - prefs.edit().putInt("zoom", zoom).apply(); - adapter.setZoom(zoom); - } - private void onMenuFolders() { if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) getFragmentManager().popBackStack("unified", 0); @@ -1663,6 +1636,36 @@ public class FragmentMessages extends FragmentEx { fragmentTransaction.commit(); } + private void onMenuSort(String sort) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + prefs.edit().putString("sort", sort).apply(); + loadMessages(); + } + + private void onMenuZoom() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean compact = prefs.getBoolean("compact", false); + int zoom = prefs.getInt("zoom", compact ? 0 : 1); + zoom = ++zoom % 3; + prefs.edit().putInt("zoom", zoom).apply(); + adapter.setZoom(zoom); + } + + private void onMenuCompact() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean compact = !prefs.getBoolean("compact", false); + prefs.edit().putBoolean("compact", compact).apply(); + adapter.setCompact(compact); + getActivity().invalidateOptionsMenu(); + } + + private void onMenuSnoozed() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean snoozed = prefs.getBoolean("snoozed", false); + prefs.edit().putBoolean("snoozed", !snoozed).apply(); + loadMessages(); + } + private void onMenuMoveSent() { Bundle args = new Bundle(); args.putLong("folder", folder); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index b1fd642bba..35617d4288 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -63,7 +63,6 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS private SwitchCompat swUnified; private SwitchCompat swThreading; - private SwitchCompat swCompact; private SwitchCompat swAvatars; private SwitchCompat swIdenticons; private SwitchCompat swPreview; @@ -92,12 +91,12 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS private final static String[] ADVANCED_OPTIONS = new String[]{ "enabled", "updates", "metered", "download", - "unified", "threading", "compact", "avatars", "identicons", "preview", "addresses", + "unified", "threading", "avatars", "identicons", "preview", "addresses", "pull", "swipe", "actionbar", "autoclose", "autonext", "autoread", "collapse", "automove", "confirm", "sender", "autoresize", "autosend", "light", "sound", "debug", "first", "why", "last_update_check", - "app_support", "message_swipe", "message_select", "message_compact", + "app_support", "message_swipe", "message_select", "folder_actions", "folder_sync", }; @@ -119,7 +118,6 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS swUnified = view.findViewById(R.id.swUnified); swThreading = view.findViewById(R.id.swThreading); - swCompact = view.findViewById(R.id.swCompact); swAvatars = view.findViewById(R.id.swAvatars); swIdenticons = view.findViewById(R.id.swIdenticons); swPreview = view.findViewById(R.id.swPreview); @@ -199,14 +197,6 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS } }); - swCompact.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { - prefs.edit().putBoolean("compact", checked).apply(); - prefs.edit().remove("zoom").apply(); - } - }); - swAvatars.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -458,7 +448,6 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS swUnified.setChecked(prefs.getBoolean("unified", true)); swThreading.setChecked(prefs.getBoolean("threading", true)); - swCompact.setChecked(prefs.getBoolean("compact", false)); swAvatars.setChecked(prefs.getBoolean("avatars", true)); swIdenticons.setChecked(prefs.getBoolean("identicons", false)); swPreview.setChecked(prefs.getBoolean("preview", false)); diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml index 81f0220089..2bbfc12c7c 100644 --- a/app/src/main/res/layout/fragment_messages.xml +++ b/app/src/main/res/layout/fragment_messages.xml @@ -136,37 +136,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/ibHintSelect" /> - - - - - - + app:layout_constraintTop_toBottomOf="@id/vSeparatorHintSelect" /> + app:layout_constraintTop_toBottomOf="@id/vSeparatorHintSelect" /> - - - - + + + android:id="@+id/menu_compact" + android:checkable="true" + android:title="@string/title_compact" + app:showAsAction="never" /> Unified inbox Conversation threading - Compact message view Show contact photos Show identicons Show message preview @@ -360,6 +359,7 @@ Starred Sender + Compact view Text size Sent: @@ -421,7 +421,6 @@ If you have a question or a problem, please use the support menu to get help Swipe left to trash; swipe right to archive (if available) Long press a message to start selecting multiple messages - You can select a more compact message view in the advanced options Downloading messages can take some time, depending on the speed of the provider, internet connection and device and on the number of messages. While downloading messages the app might respond slower. Open link