diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index c3e659ba0d..4a5795cae5 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -378,22 +378,27 @@ 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, 12, R.string.title_create_channel); + popupMenu.getMenu().add(Menu.NONE, R.string.title_create_channel, 13, R.string.title_create_channel); else { - popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_channel, 13, R.string.title_edit_channel); - popupMenu.getMenu().add(Menu.NONE, R.string.title_delete_channel, 14, R.string.title_delete_channel); + popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_channel, 14, R.string.title_edit_channel); + popupMenu.getMenu().add(Menu.NONE, R.string.title_delete_channel, 15, R.string.title_delete_channel); } } @@ -424,6 +429,10 @@ public class AdapterFolder extends RecyclerView.Adapter() { + @Override + protected Void onExecute(Context context, Bundle args) { + long id = args.getLong("id"); + boolean subscribed = args.getBoolean("subscribed"); + + EntityOperation.subscribe(context, id, subscribed); + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(parentFragment.getFragmentManager(), ex); + } + }.execute(context, owner, args, "folder:subscribe"); + } + private void OnActionDeleteLocal(final boolean browsed) { Bundle aargs = new Bundle(); aargs.putString("question", context.getString(R.string.title_ask_delete_local)); diff --git a/app/src/main/java/eu/faircode/email/FragmentFolder.java b/app/src/main/java/eu/faircode/email/FragmentFolder.java index c64723b2ab..b54cd578ef 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolder.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolder.java @@ -21,7 +21,6 @@ package eu.faircode.email; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -43,7 +42,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.Group; import androidx.lifecycle.Lifecycle; -import androidx.preference.PreferenceManager; import com.google.android.material.snackbar.Snackbar; @@ -77,7 +75,6 @@ public class FragmentFolder extends FragmentBase { private long id = -1; private long account = -1; private String parent = null; - private Boolean subscribed = null; private boolean saving = false; private boolean deletable = false; @@ -233,7 +230,6 @@ public class FragmentFolder extends FragmentBase { cbAutoDelete.setEnabled(!cbKeepAll.isChecked()); btnSave.setEnabled(true); - subscribed = (folder == null ? null : folder.subscribed != null && folder.subscribed); deletable = (folder != null && EntityFolder.USER.equals(folder.type)); getActivity().invalidateOptionsMenu(); } @@ -278,11 +274,6 @@ public class FragmentFolder extends FragmentBase { @Override public void onPrepareOptionsMenu(Menu menu) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - boolean subscriptions = prefs.getBoolean("subscriptions", false); - - menu.findItem(R.id.menu_subscribe).setChecked(subscribed != null && subscribed); - menu.findItem(R.id.menu_subscribe).setVisible(subscriptions && id > 0 && subscribed != null); menu.findItem(R.id.menu_delete).setVisible(id > 0 && !saving && deletable); super.onPrepareOptionsMenu(menu); } @@ -290,11 +281,6 @@ public class FragmentFolder extends FragmentBase { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case R.id.menu_subscribe: - subscribed = !item.isChecked(); - item.setChecked(subscribed); - onMenuSubscribe(); - return true; case R.id.menu_delete: onMenuDelete(); return true; @@ -303,29 +289,6 @@ public class FragmentFolder extends FragmentBase { } } - private void onMenuSubscribe() { - Bundle args = new Bundle(); - args.putLong("id", id); - args.putBoolean("subscribed", subscribed); - - new SimpleTask() { - @Override - protected Void onExecute(Context context, Bundle args) { - long id = args.getLong("id"); - boolean subscribed = args.getBoolean("subscribed"); - - EntityOperation.subscribe(context, id, subscribed); - - return null; - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(getFragmentManager(), ex); - } - }.execute(this, args, "folder:subscribe"); - } - private void onMenuDelete() { Bundle aargs = new Bundle(); aargs.putString("question", getString(R.string.title_folder_delete)); diff --git a/app/src/main/res/menu/menu_folder.xml b/app/src/main/res/menu/menu_folder.xml index 910d5dd959..dc91f82efb 100644 --- a/app/src/main/res/menu/menu_folder.xml +++ b/app/src/main/res/menu/menu_folder.xml @@ -1,12 +1,6 @@ - -