diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index c5c75fce83..8d9d9fefdc 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -413,9 +413,9 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB } }); - db.folder().liveUnified().observe(this, new Observer>() { + db.folder().liveUnified().observe(this, new Observer>() { @Override - public void onChanged(List folders) { + public void onChanged(List folders) { if (folders == null) folders = new ArrayList<>(); ibExpanderUnified.setVisibility(folders.size() > 0 ? View.VISIBLE : View.GONE); diff --git a/app/src/main/java/eu/faircode/email/AdapterNavFolder.java b/app/src/main/java/eu/faircode/email/AdapterNavFolder.java index 3f70e748f8..ea9f640361 100644 --- a/app/src/main/java/eu/faircode/email/AdapterNavFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterNavFolder.java @@ -112,7 +112,13 @@ public class AdapterNavFolder extends RecyclerView.Adapter items = new ArrayList<>(); + private List items = new ArrayList<>(); private NumberFormat NF = NumberFormat.getNumberInstance(); @@ -82,17 +82,23 @@ public class AdapterNavUnified extends RecyclerView.Adapter types) { + public void set(@NonNull List types) { Log.i("Set nav unified=" + types.size()); - Collections.sort(types, new Comparator() { + Collections.sort(types, new Comparator() { @Override - public int compare(EntityFolderUnified f1, EntityFolderUnified f2) { + public int compare(TupleFolderUnified f1, TupleFolderUnified f2) { int i1 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f1.type); int i2 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f2.type); return Integer.compare(i1, i2); @@ -168,10 +174,10 @@ public class AdapterNavUnified extends RecyclerView.Adapter prev = new ArrayList<>(); - private List next = new ArrayList<>(); + private List prev = new ArrayList<>(); + private List next = new ArrayList<>(); - DiffCallback(List prev, List next) { + DiffCallback(List prev, List next) { this.prev.addAll(prev); this.next.addAll(next); } @@ -188,16 +194,16 @@ public class AdapterNavUnified extends RecyclerView.Adapter '" + EntityFolder.USER + "'") List getSystemFolders(long account); - @Query("SELECT folder.type," + - " SUM(CASE WHEN NOT message.ui_seen AND NOT message.ui_hide THEN 1 ELSE 0 END) AS unseen" + + @Query("SELECT folder.type" + + ", COUNT(message.id) AS messages" + + ", SUM(CASE WHEN NOT message.ui_seen AND NOT message.ui_hide THEN 1 ELSE 0 END) AS unseen" + " FROM folder" + " JOIN account ON account.id = folder.account" + " LEFT JOIN message ON message.folder = folder.id" + @@ -162,7 +164,7 @@ public interface DaoFolder { " AND folder.type <> '" + EntityFolder.SYSTEM + "'" + " AND folder.type <> '" + EntityFolder.USER + "'" + " GROUP BY folder.type") - LiveData> liveUnified(); + LiveData> liveUnified(); @Query("SELECT * FROM folder WHERE id = :id") EntityFolder getFolder(Long id); diff --git a/app/src/main/java/eu/faircode/email/TupleFolderNav.java b/app/src/main/java/eu/faircode/email/TupleFolderNav.java index 01b00225a0..9dc3283e78 100644 --- a/app/src/main/java/eu/faircode/email/TupleFolderNav.java +++ b/app/src/main/java/eu/faircode/email/TupleFolderNav.java @@ -29,6 +29,7 @@ import java.util.Locale; public class TupleFolderNav extends EntityFolder implements Serializable { public Integer accountOrder; public String accountName; + public int messages; public int unseen; public int snoozed; public int operations; diff --git a/app/src/main/java/eu/faircode/email/EntityFolderUnified.java b/app/src/main/java/eu/faircode/email/TupleFolderUnified.java similarity index 90% rename from app/src/main/java/eu/faircode/email/EntityFolderUnified.java rename to app/src/main/java/eu/faircode/email/TupleFolderUnified.java index aa755259e6..0482b8c4cd 100644 --- a/app/src/main/java/eu/faircode/email/EntityFolderUnified.java +++ b/app/src/main/java/eu/faircode/email/TupleFolderUnified.java @@ -19,7 +19,8 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ -public class EntityFolderUnified { +public class TupleFolderUnified { public String type; - public long unseen; + public int messages; + public int unseen; }