Compare commits

...

6 Commits

Author SHA1 Message Date
M66B 4c350ebd8c Enable theme/force sync for primary inbox 2024-04-24 12:10:23 +02:00
M66B 3f106c4d30 Oops 2024-04-24 11:56:43 +02:00
M66B 069064502c Added fail-safe 2024-04-24 08:32:35 +02:00
M66B 0b44482f5b RLAH: not La Réunion
https://en.wikipedia.org/wiki/European_Union_roaming_regulations#Areas_not_covered
2024-04-24 08:13:12 +02:00
M66B 7a066d774c All child folders 2024-04-24 08:03:39 +02:00
M66B 433790bbd0 Accessibility: move to 2024-04-24 07:42:40 +02:00
7 changed files with 40 additions and 34 deletions

View File

@ -708,11 +708,11 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
submenu.add(Menu.FIRST, R.string.title_notify_batch_disable, 5, R.string.title_notify_batch_disable);
submenu.add(Menu.FIRST, R.string.title_unified_inbox_add, 6, R.string.title_unified_inbox_add);
submenu.add(Menu.FIRST, R.string.title_unified_inbox_delete, 7, R.string.title_unified_inbox_delete);
submenu.add(Menu.FIRST, R.string.title_navigation_folder, 6, R.string.title_navigation_folder);
submenu.add(Menu.FIRST, R.string.title_navigation_folder_hide, 7, R.string.title_navigation_folder_hide);
submenu.add(Menu.FIRST, R.string.title_synchronize_more, 8, R.string.title_synchronize_more);
submenu.add(Menu.FIRST, R.string.title_download_batch_enable, 9, R.string.title_download_batch_enable);
submenu.add(Menu.FIRST, R.string.title_download_batch_disable, 10, R.string.title_download_batch_disable);
submenu.add(Menu.FIRST, R.string.title_navigation_folder, 8, R.string.title_navigation_folder);
submenu.add(Menu.FIRST, R.string.title_navigation_folder_hide, 9, R.string.title_navigation_folder_hide);
submenu.add(Menu.FIRST, R.string.title_synchronize_more, 10, R.string.title_synchronize_more);
submenu.add(Menu.FIRST, R.string.title_download_batch_enable, 11, R.string.title_download_batch_enable);
submenu.add(Menu.FIRST, R.string.title_download_batch_disable, 12, R.string.title_download_batch_disable);
}
if (folder.account != null && folder.accountProtocol == EntityAccount.TYPE_IMAP)
@ -869,11 +869,10 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
EntityOperation.sync(context, folder.id, true, !children);
if (children) {
List<EntityFolder> folders = db.folder().getChildFolders(folder.id);
if (folders != null)
for (EntityFolder child : folders)
if (child.selectable)
EntityOperation.sync(context, child.id, true);
List<EntityFolder> folders = EntityFolder.getChildFolders(context, folder.id);
for (EntityFolder child : folders)
if (child.selectable)
EntityOperation.sync(context, child.id, true);
}
if (folder.account != null) {
@ -935,10 +934,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
DB db = DB.getInstance(context);
try {
db.beginTransaction();
List<EntityFolder> children = db.folder().getChildFolders(id);
if (children == null)
return null;
List<EntityFolder> children = EntityFolder.getChildFolders(context, id);
for (EntityFolder child : children)
db.folder().setFolderSynchronize(child.id, enabled);
@ -973,10 +970,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
DB db = DB.getInstance(context);
try {
db.beginTransaction();
List<EntityFolder> children = db.folder().getChildFolders(id);
if (children == null)
return null;
List<EntityFolder> children = EntityFolder.getChildFolders(context, id);
for (EntityFolder child : children)
db.folder().setFolderNotify(child.id, enabled);
@ -1009,10 +1004,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
DB db = DB.getInstance(context);
try {
db.beginTransaction();
List<EntityFolder> children = db.folder().getChildFolders(id);
if (children == null)
return null;
List<EntityFolder> children = EntityFolder.getChildFolders(context, id);
for (EntityFolder child : children)
db.folder().setFolderUnified(child.id, add);
@ -1045,10 +1038,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
DB db = DB.getInstance(context);
try {
db.beginTransaction();
List<EntityFolder> children = db.folder().getChildFolders(id);
if (children == null)
return null;
List<EntityFolder> children = EntityFolder.getChildFolders(context, id);
for (EntityFolder child : children)
db.folder().setFolderNavigation(child.id, enabled);
@ -1092,10 +1083,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
DB db = DB.getInstance(context);
try {
db.beginTransaction();
List<EntityFolder> children = db.folder().getChildFolders(id);
if (children == null)
return null;
List<EntityFolder> children = EntityFolder.getChildFolders(context, id);
for (EntityFolder child : children)
db.folder().setFolderDownload(child.id, enabled);

View File

@ -7827,6 +7827,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibDelete,
context.getString(R.string.title_trash_selection)));
if (ibMove != null && ibMove.getVisibility() == View.VISIBLE && ibMove.isEnabled())
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibMove,
context.getString(R.string.title_move_to)));
if (ibAvatar.getVisibility() == View.VISIBLE && ibAvatar.isEnabled())
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibAvatar,
context.getString(R.string.title_accessibility_view_contact)));

View File

@ -115,7 +115,6 @@ public class ConnectionHelper {
"NO", // Norway
"PL", // Poland
"PT", // Portugal
"RE", // La Réunion
"RO", // Romania
"SK", // Slovakia
"SI", // Slovenia

View File

@ -415,6 +415,16 @@ public class EntityFolder extends EntityOrder implements Serializable {
return outbox;
}
static List<EntityFolder> getChildFolders(Context context, long id) {
DB db = DB.getInstance(context);
List<EntityFolder> children = db.folder().getChildFolders(id);
if (children == null)
children = new ArrayList<>();
for (EntityFolder child : new ArrayList<>(children))
children.addAll(getChildFolders(context, child.id));
return children;
}
static String getNotificationChannelId(long id) {
return "notification.folder." + id;
}

View File

@ -62,10 +62,14 @@ public class FairEmailLoggingProvider extends TinylogLoggingProvider {
}
static void setup(Context context) {
System.setProperty("tinylog.directory",
Helper.ensureExists(context, "logs").getAbsolutePath());
try {
System.setProperty("tinylog.directory",
Helper.ensureExists(context, "logs").getAbsolutePath());
setLevel(context);
setLevel(context);
} catch (Throwable ex) {
Log.e(ex);
}
}
static void setLevel(Context context) {

View File

@ -110,9 +110,8 @@ public class FragmentDialogSync extends FragmentDialogBase {
folders.add(folder);
if (children) {
List<EntityFolder> sub = db.folder().getChildFolders(folder.id);
if (sub != null)
folders.addAll(sub);
List<EntityFolder> sub = EntityFolder.getChildFolders(context, folder.id);
folders.addAll(sub);
}
}

View File

@ -5932,6 +5932,7 @@ public class FragmentMessages extends FragmentBase
final Context context = getContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean primary_inbox = "inbox".equals(prefs.getString("startup", "unified"));
String sort = prefs.getString(getSort(context, viewType, type), "time");
boolean ascending = prefs.getBoolean(getSortOrder(context, viewType, type), outbox);
boolean filter_seen = prefs.getBoolean(getFilter(context, "seen", viewType, type), false);
@ -6069,7 +6070,7 @@ public class FragmentMessages extends FragmentBase
.setVisible(viewType == AdapterMessage.ViewType.THREAD);
menu.findItem(R.id.menu_compact).setChecked(compact);
menu.findItem(R.id.menu_theme).setVisible(viewType == AdapterMessage.ViewType.UNIFIED);
menu.findItem(R.id.menu_theme).setVisible(viewType == AdapterMessage.ViewType.UNIFIED || primary_inbox);
menu.findItem(R.id.menu_confirm_links)
.setChecked(confirm_links)
@ -6096,7 +6097,7 @@ public class FragmentMessages extends FragmentBase
}
menu.findItem(R.id.menu_sync_more).setVisible(folder);
menu.findItem(R.id.menu_force_sync).setVisible(viewType == AdapterMessage.ViewType.UNIFIED);
menu.findItem(R.id.menu_force_sync).setVisible(viewType == AdapterMessage.ViewType.UNIFIED || primary_inbox);
menu.findItem(R.id.menu_force_send).setVisible(outbox);
menu.findItem(R.id.menu_expunge).setVisible(viewType == AdapterMessage.ViewType.FOLDER &&