Added sort on synced folders option

master
M66B 6 days ago
parent e6c9654486
commit f5093800f5

@ -324,7 +324,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
ibExpander.setVisibility((account < 0 && !primary) || !folder.expander
? View.GONE
: folder.child_refs != null && folder.child_refs.size() > 0
? View.VISIBLE : View.INVISIBLE);
? View.VISIBLE : View.INVISIBLE);
if (listener == null && folder.selectable) {
ivUnified.setVisibility(
@ -447,8 +447,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
tvKeywords.setText(debug ?
(folder.separator == null ? "" : folder.separator + " ") +
(folder.namespace == null ? "" : folder.namespace + " ") +
(folder.flags == null ? null : TextUtils.join(" ", folder.flags) + " ") +
(folder.namespace == null ? "" : folder.namespace + " ") +
(folder.flags == null ? null : TextUtils.join(" ", folder.flags) + " ") +
TextUtils.join(" ", folder.keywords) : null);
tvFlagged.setText(NF.format(folder.flagged));
@ -1563,6 +1563,10 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
}
}
void setSortSync(boolean sort_sync) {
set(all);
}
void setDisabled(List<Long> ids) {
disabledIds = ids;
}

@ -1134,6 +1134,9 @@ public class ApplicationEx extends Application
}
}
if (version < 2327 && !prefs.contains("sort_sync"))
editor.putBoolean("sort_sync", true);
if (version < BuildConfig.VERSION_CODE)
editor.putInt("previous_version", version);
editor.putInt("version", BuildConfig.VERSION_CODE);

@ -836,6 +836,9 @@ public class EntityFolder extends EntityOrder implements Serializable {
final Collator collator = Collator.getInstance(Locale.getDefault());
collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean sort_sync = prefs.getBoolean("sort_sync", false);
return new Comparator() {
@Override
public int compare(Object o1, Object o2) {
@ -854,9 +857,11 @@ public class EntityFolder extends EntityOrder implements Serializable {
if (s != 0)
return s;
int c = -f1.synchronize.compareTo(f2.synchronize);
if (c != 0)
return c;
if (sort_sync) {
int c = -f1.synchronize.compareTo(f2.synchronize);
if (c != 0)
return c;
}
String name1 = (context == null ? f1.name : f1.getDisplayName(context));
String name2 = (context == null ? f2.name : f2.getDisplayName(context));

@ -700,6 +700,7 @@ public class FragmentFolders extends FragmentBase {
boolean subscriptions = prefs.getBoolean("subscriptions", false);
boolean subscribed_only = prefs.getBoolean("subscribed_only", false);
boolean sort_unread_atop = prefs.getBoolean("sort_unread_atop", false);
boolean sort_sync = prefs.getBoolean("sort_sync", false);
menu.findItem(R.id.menu_unified).setVisible(account < 0 || primary);
menu.findItem(R.id.menu_outbox).setVisible(account < 0 || primary);
@ -711,6 +712,7 @@ public class FragmentFolders extends FragmentBase {
.setChecked(subscribed_only)
.setVisible(subscriptions);
menu.findItem(R.id.menu_sort_unread_atop).setChecked(sort_unread_atop);
menu.findItem(R.id.menu_sort_sync).setChecked(sort_sync);
menu.findItem(R.id.menu_apply_all).setVisible(account >= 0 && imap);
menu.findItem(R.id.menu_edit_account_name).setVisible(account >= 0);
menu.findItem(R.id.menu_edit_account_color).setVisible(account >= 0);
@ -748,6 +750,9 @@ public class FragmentFolders extends FragmentBase {
} else if (itemId == R.id.menu_sort_unread_atop) {
onMenuSortUnreadAtop();
return true;
} else if (itemId == R.id.menu_sort_sync) {
onMenuSortSync();
return true;
} else if (itemId == R.id.menu_search_folder) {
onMenuSearchFolder(item);
return true;
@ -861,6 +866,14 @@ public class FragmentFolders extends FragmentBase {
adapter.setSortUnreadAtop(sort_unread_atop);
}
private void onMenuSortSync() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean sort_sync = !prefs.getBoolean("sort_sync", false);
prefs.edit().putBoolean("sort_sync", sort_sync).apply();
invalidateOptionsMenu();
adapter.setSortSync(sort_sync);
}
private void onMenuSearchFolder(MenuItem item) {
if (item.isActionViewExpanded())
item.collapseActionView();

@ -113,9 +113,9 @@ public class TupleAccountFolder extends EntityAccount {
if (t != 0)
return t;
int s = -Boolean.compare(a1.folderSync, a2.folderSync);
if (s != 0)
return s;
//int s = -Boolean.compare(a1.folderSync, a2.folderSync);
//if (s != 0)
// return s;
if (a1.folderName == null && a2.folderName == null)
return 0;

@ -57,6 +57,12 @@
android:checkable="true"
android:title="@string/title_sort_unread_atop"
app:showAsAction="never" />
<item
android:id="@+id/menu_sort_sync"
android:checkable="true"
android:title="@string/title_sort_sync"
app:showAsAction="never" />
</group>
<group android:id="@+id/group_operations">

@ -1489,6 +1489,7 @@
<string name="title_show_flagged">Show starred message count</string>
<string name="title_subscribed_only">Subscribed only</string>
<string name="title_sort_unread_atop">Sort unread on top</string>
<string name="title_sort_sync">Sort on synchronized</string>
<string name="title_search_folder">Search for folder</string>
<string name="title_apply_to_all">Apply to all</string>
<string name="title_edit_account_name">Edit account name</string>

Loading…
Cancel
Save