Added long press folder to mark all read

pull/217/head
M66B 10 months ago
parent 99826f4f9c
commit dc65869e5d

@ -627,6 +627,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
popupMenu.getMenu().add(Menu.NONE, R.string.title_expunge, order++, R.string.title_expunge);
}
popupMenu.getMenu().add(Menu.NONE, R.string.title_mark_all_read, order++, R.string.title_mark_all_read);
if (EntityFolder.TRASH.equals(folder.type))
popupMenu.getMenu().add(Menu.NONE, R.string.title_empty_trash, order++, R.string.title_empty_trash);
else if (EntityFolder.JUNK.equals(folder.type))
@ -804,6 +806,9 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
} else if (itemId == R.string.title_subscribe) {
onActionSubscribe();
return true;
} else if (itemId == R.string.title_mark_all_read) {
onActionMarkAllRead();
return true;
} else if (itemId == R.string.title_empty_trash) {
onActionEmpty(EntityFolder.TRASH);
return true;
@ -1244,6 +1249,27 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
}.execute(context, owner, args, "folder:expunge");
}
private void onActionMarkAllRead() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean all_read_asked = prefs.getBoolean("all_read_asked", false);
if (all_read_asked) {
FragmentMessages.markAllRead(parentFragment, folder.type, folder.id, AdapterMessage.ViewType.FOLDER);
return;
}
Bundle args = new Bundle();
args.putString("type", folder.type);
args.putLong("folder", folder.id);
args.putString("question", context.getString(R.string.title_mark_all_read));
args.putString("notagain", "all_read_asked");
FragmentDialogAsk ask = new FragmentDialogAsk();
ask.setArguments(args);
ask.setTargetFragment(parentFragment, FragmentFolders.REQUEST_ALL_READ);
ask.show(parentFragment.getParentFragmentManager(), "folder:allread");
}
private void onActionEmpty(String type) {
Bundle aargs = new Bundle();
if (EntityFolder.TRASH.equals(type))

@ -137,6 +137,7 @@ public class FragmentFolders extends FragmentBase {
static final int REQUEST_EDIT_FOLDER_COLOR = 7;
static final int REQUEST_EDIT_ACCOUNT_NAME = 8;
static final int REQUEST_EDIT_ACCOUNT_COLOR = 9;
static final int REQUEST_ALL_READ = 10;
private static final long EXPORT_PROGRESS_INTERVAL = 5000L; // milliseconds
@ -991,6 +992,10 @@ public class FragmentFolders extends FragmentBase {
if (resultCode == RESULT_OK && data != null)
onEditAccountColor(data.getBundleExtra("args"));
break;
case REQUEST_ALL_READ:
if (resultCode == RESULT_OK && data != null)
onMarkAllRead(data.getBundleExtra("args"));
break;
}
} catch (Throwable ex) {
Log.e(ex);
@ -1808,4 +1813,9 @@ public class FragmentFolders extends FragmentBase {
}
}.execute(this, args, "edit:color");
}
private void onMarkAllRead(Bundle args) {
FragmentMessages.markAllRead(this,
args.getString("type"), args.getLong("folder"), AdapterMessage.ViewType.FOLDER);
}
}

@ -7002,7 +7002,7 @@ public class FragmentMessages extends FragmentBase
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean all_read_asked = prefs.getBoolean("all_read_asked", false);
if (all_read_asked) {
markAllRead();
markAllRead(FragmentMessages.this, type, folder, viewType);
return;
}
@ -7028,16 +7028,18 @@ public class FragmentMessages extends FragmentBase
fragmentTransaction.commit();
}
private void markAllRead() {
static void markAllRead(Fragment fragment, String type, long folder, AdapterMessage.ViewType viewType) {
Bundle args = new Bundle();
args.putString("type", type);
args.putLong("folder", folder);
args.putString("viewType", viewType.name());
new SimpleTask<Void>() {
@Override
protected Void onExecute(Context context, Bundle args) throws Throwable {
String type = args.getString("type");
long folder = args.getLong("folder");
AdapterMessage.ViewType viewType = AdapterMessage.ViewType.valueOf(args.getString("viewType"));
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean filter_unflagged = prefs.getBoolean(getFilter(context, "unflagged", viewType, type), false);
@ -7071,9 +7073,9 @@ public class FragmentMessages extends FragmentBase
@Override
protected void onException(Bundle args, Throwable ex) {
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(fragment.getParentFragmentManager(), ex);
}
}.execute(FragmentMessages.this, args, "messages:allread");
}.execute(fragment, args, "messages:allread");
}
private void onSaveSearch(Bundle args) {
@ -9477,7 +9479,7 @@ public class FragmentMessages extends FragmentBase
break;
case REQUEST_ALL_READ:
if (resultCode == RESULT_OK)
markAllRead();
markAllRead(FragmentMessages.this, type, folder, viewType);
break;
case REQUEST_SAVE_SEARCH:
if (resultCode == RESULT_OK && data != null)

Loading…
Cancel
Save