mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-05 08:33:37 +02:00
Filtered archived messages from conversations
This commit is contained in:
@@ -1160,6 +1160,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
args.putLong("account", intent.getLongExtra("account", -1));
|
||||
args.putString("thread", intent.getStringExtra("thread"));
|
||||
args.putLong("id", intent.getLongExtra("id", -1));
|
||||
args.putBoolean("filter_archive", intent.getBooleanExtra("filter_archive", true));
|
||||
args.putBoolean("found", found);
|
||||
|
||||
FragmentMessages fragment = new FragmentMessages();
|
||||
|
||||
@@ -2385,6 +2385,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
.putExtra("account", message.account)
|
||||
.putExtra("thread", message.thread)
|
||||
.putExtra("id", message.id)
|
||||
.putExtra("filter_archive", !EntityFolder.ARCHIVE.equals(message.folderType))
|
||||
.putExtra("found", viewType == ViewType.SEARCH);
|
||||
|
||||
boolean doubletap = prefs.getBoolean("doubletap", false);
|
||||
|
||||
@@ -179,6 +179,7 @@ public interface DaoMessage {
|
||||
" WHERE message.account = :account" +
|
||||
" AND message.thread = :thread" +
|
||||
" AND (:id IS NULL OR message.id = :id)" +
|
||||
" AND (NOT :filter_archive OR folder.type <> '" + EntityFolder.ARCHIVE + "')" +
|
||||
" AND (NOT message.ui_hide OR :debug)" +
|
||||
" ORDER BY CASE WHEN :ascending THEN message.received ELSE -message.received END" +
|
||||
", CASE" +
|
||||
@@ -193,7 +194,10 @@ public interface DaoMessage {
|
||||
" WHEN folder.type = '" + EntityFolder.ARCHIVE + "' THEN 9" +
|
||||
" ELSE 999 END")
|
||||
// The folder type sort order should match the duplicate algorithm
|
||||
DataSource.Factory<Integer, TupleMessageEx> pagedThread(long account, String thread, Long id, boolean ascending, boolean debug);
|
||||
DataSource.Factory<Integer, TupleMessageEx> pagedThread(
|
||||
long account, String thread, Long id,
|
||||
boolean filter_archive,
|
||||
boolean ascending, boolean debug);
|
||||
|
||||
@Query("SELECT account.name AS accountName" +
|
||||
", COUNT(message.id) AS count" +
|
||||
|
||||
@@ -246,6 +246,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
||||
private boolean server;
|
||||
private String thread;
|
||||
private long id;
|
||||
private boolean filter_archive;
|
||||
private boolean found;
|
||||
private String query;
|
||||
private boolean pane;
|
||||
@@ -349,6 +350,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
||||
server = args.getBoolean("server", false);
|
||||
thread = args.getString("thread");
|
||||
id = args.getLong("id", -1);
|
||||
filter_archive = args.getBoolean("filter_archive", true);
|
||||
found = args.getBoolean("found", false);
|
||||
query = args.getString("query");
|
||||
pane = args.getBoolean("pane", false);
|
||||
@@ -3711,7 +3713,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
||||
|
||||
ViewModelMessages.Model vmodel = model.getModel(
|
||||
getContext(), getViewLifecycleOwner(),
|
||||
viewType, type, account, folder, thread, id, query, server);
|
||||
viewType, type, account, folder, thread, id, filter_archive, query, server);
|
||||
|
||||
vmodel.setCallback(getViewLifecycleOwner(), callback);
|
||||
vmodel.setObserver(getViewLifecycleOwner(), observer);
|
||||
|
||||
@@ -60,10 +60,10 @@ public class ViewModelMessages extends ViewModel {
|
||||
final Context context, final LifecycleOwner owner,
|
||||
final AdapterMessage.ViewType viewType,
|
||||
String type, long account, long folder,
|
||||
String thread, long id,
|
||||
String thread, long id, boolean filter_archive,
|
||||
String query, boolean server) {
|
||||
|
||||
Args args = new Args(context, viewType, type, account, folder, thread, id, query, server);
|
||||
Args args = new Args(context, viewType, type, account, folder, thread, id, filter_archive, query, server);
|
||||
Log.d("Get model=" + viewType + " " + args);
|
||||
dump();
|
||||
|
||||
@@ -127,6 +127,7 @@ public class ViewModelMessages extends ViewModel {
|
||||
db.message().pagedThread(
|
||||
args.account, args.thread,
|
||||
args.threading ? null : args.id,
|
||||
args.filter_archive,
|
||||
args.ascending,
|
||||
args.debug), LOCAL_PAGE_SIZE);
|
||||
break;
|
||||
@@ -319,12 +320,13 @@ public class ViewModelMessages extends ViewModel {
|
||||
private boolean filter_unflagged;
|
||||
private boolean filter_unknown;
|
||||
private boolean filter_snoozed;
|
||||
private boolean filter_archive;
|
||||
private boolean debug;
|
||||
|
||||
Args(Context context,
|
||||
AdapterMessage.ViewType viewType,
|
||||
String type, long account, long folder,
|
||||
String thread, long id,
|
||||
String thread, long id, boolean filter_archive,
|
||||
String query, boolean server) {
|
||||
|
||||
this.type = type;
|
||||
@@ -332,6 +334,7 @@ public class ViewModelMessages extends ViewModel {
|
||||
this.folder = folder;
|
||||
this.thread = thread;
|
||||
this.id = id;
|
||||
this.filter_archive = filter_archive;
|
||||
this.query = query;
|
||||
this.server = server;
|
||||
|
||||
@@ -366,6 +369,7 @@ public class ViewModelMessages extends ViewModel {
|
||||
this.filter_unflagged == other.filter_unflagged &&
|
||||
this.filter_unknown == other.filter_unknown &&
|
||||
this.filter_snoozed == other.filter_snoozed &&
|
||||
this.filter_archive == other.filter_archive &&
|
||||
this.debug == other.debug);
|
||||
} else
|
||||
return false;
|
||||
@@ -383,6 +387,7 @@ public class ViewModelMessages extends ViewModel {
|
||||
" unflagged=" + filter_unflagged +
|
||||
" unknown=" + filter_unknown +
|
||||
" snoozed=" + filter_snoozed +
|
||||
" archive=" + filter_archive +
|
||||
" debug=" + debug;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user