From 72ffc19adbdac5ba8d887f7c627411b1fd669a60 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 9 Jan 2023 17:42:57 +0100 Subject: [PATCH] Allow hiding read-only subfolders --- .../java/eu/faircode/email/AdapterFolder.java | 33 +++++++++++++++++++ .../java/eu/faircode/email/DaoFolder.java | 3 ++ 2 files changed, 36 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 1a8235d49f..cb5b348b08 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -655,6 +655,12 @@ public class AdapterFolder extends RecyclerView.Adapter= Build.VERSION_CODES.O) onActionDeleteChannel(); return true; + } else if (itemId == R.string.title_hide_folder) { + onActionHide(); + return true; } else if (itemId == R.string.title_create_sub_folder) { onActionCreateFolder(); return true; @@ -1212,6 +1221,30 @@ public class AdapterFolder extends RecyclerView.Adapter() { + @Override + protected Void onExecute(Context context, Bundle args) throws Throwable { + long id = args.getLong("id"); + boolean hide = args.getBoolean("hide"); + + DB db = DB.getInstance(context); + db.folder().setFolderHide(id, hide); + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(parentFragment.getParentFragmentManager(), ex); + } + }.execute(context, owner, args, "folder:hide"); + } + private void onActionCreateFolder() { LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); lbm.sendBroadcast( diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index 7f117196af..ca0114750e 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -411,6 +411,9 @@ public interface DaoFolder { @Query("UPDATE folder SET download = :download WHERE id = :id AND NOT (download IS :download)") int setFolderDownload(long id, boolean download); + @Query("UPDATE folder SET hide = :hide WHERE id = :id AND NOT (hide IS :hide)") + int setFolderHide(long id, boolean hide); + @Query("UPDATE folder" + " SET auto_classify_source = :source, auto_classify_target = :target" + " WHERE id = :id" +