From 7988a82e339b9fdc039082e1c20ca91451337eb4 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 25 May 2019 17:14:51 +0200 Subject: [PATCH] Added quick folder actions --- .../java/eu/faircode/email/AdapterFolder.java | 67 +++++++++++++------ .../java/eu/faircode/email/DaoFolder.java | 9 +++ 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 249f5f8777..39ba143466 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -390,31 +390,39 @@ public class AdapterFolder extends RecyclerView.Adapter= Build.VERSION_CODES.O) { String channelId = EntityFolder.getNotificationChannelId(folder.id); NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); NotificationChannel channel = nm.getNotificationChannel(channelId); if (channel == null) - popupMenu.getMenu().add(Menu.NONE, R.string.title_create_channel, 8, R.string.title_create_channel); + popupMenu.getMenu().add(Menu.NONE, R.string.title_create_channel, 11, R.string.title_create_channel); else { - popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_channel, 9, R.string.title_edit_channel); - popupMenu.getMenu().add(Menu.NONE, R.string.title_delete_channel, 10, R.string.title_delete_channel); + popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_channel, 12, R.string.title_edit_channel); + popupMenu.getMenu().add(Menu.NONE, R.string.title_delete_channel, 13, R.string.title_delete_channel); } } } @@ -427,8 +435,11 @@ public class AdapterFolder extends RecyclerView.Adapter() { @Override protected Boolean onExecute(Context context, Bundle args) { long id = args.getLong("id"); - boolean sync = args.getBoolean("sync"); + int property = args.getInt("property"); + boolean enabled = args.getBoolean("enabled"); DB db = DB.getInstance(context); - db.folder().setFolderSynchronize(id, sync); - - return sync; + switch (property) { + case R.string.title_unified_folder: + db.folder().setFolderUnified(id, enabled); + return false; + case R.string.title_navigation_folder: + db.folder().setFolderNavigation(id, enabled); + return false; + case R.string.title_notify_folder: + db.folder().setFolderNotify(id, enabled); + return false; + case R.string.title_synchronize_enabled: + db.folder().setFolderSynchronize(id, enabled); + return true; + default: + return false; + } } @Override - protected void onExecuted(Bundle args, Boolean sync) { - ServiceSynchronize.reload(context, "folder set sync=" + sync); + protected void onExecuted(Bundle args, Boolean reload) { + if (reload) + ServiceSynchronize.reload(context, "folder property changed"); } @Override diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index e7fe44bf37..ee94caea5c 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -161,6 +161,15 @@ public interface DaoFolder { @Insert long insertFolder(EntityFolder folder); + @Query("UPDATE folder SET unified = :unified WHERE id = :id") + int setFolderUnified(long id, boolean unified); + + @Query("UPDATE folder SET navigation = :navigation WHERE id = :id") + int setFolderNavigation(long id, boolean navigation); + + @Query("UPDATE folder SET notify = :notify WHERE id = :id") + int setFolderNotify(long id, boolean notify); + @Query("UPDATE folder SET synchronize = :synchronize WHERE id = :id") int setFolderSynchronize(long id, boolean synchronize);