From 4ca58fefa8f692c995dcf513404ececffd0792b9 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 5 Jul 2019 14:35:35 -0500 Subject: [PATCH] Add count to filter list item --- .../adapter/NavigationDrawerAdapter.java | 2 +- .../todoroo/astrid/api/FilterListItem.java | 23 +++++++++++++------ .../astrid/gtasks/GtasksFilterExposer.java | 2 +- .../org/tasks/caldav/CaldavFilterExposer.java | 2 +- .../java/org/tasks/filters/CaldavFilters.java | 7 ++++++ .../org/tasks/filters/GoogleTaskFilters.java | 7 ++++++ .../java/org/tasks/filters/TagFilters.java | 4 +++- .../tasks/ui/NavigationDrawerFragment.java | 2 +- 8 files changed, 37 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.java b/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.java index b2dc304fa..80830637b 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.java +++ b/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.java @@ -142,7 +142,7 @@ public class NavigationDrawerAdapter extends ListAdapter= 0 ? item.count : counts.get(item)); } else if (type == SUBHEADER) { holder.bind((NavigationDrawerSubheader) item); } diff --git a/app/src/main/java/com/todoroo/astrid/api/FilterListItem.java b/app/src/main/java/com/todoroo/astrid/api/FilterListItem.java index 4bd70e075..57083f41d 100644 --- a/app/src/main/java/com/todoroo/astrid/api/FilterListItem.java +++ b/app/src/main/java/com/todoroo/astrid/api/FilterListItem.java @@ -6,7 +6,6 @@ package com.todoroo.astrid.api; -import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; import androidx.annotation.LayoutRes; @@ -26,6 +25,7 @@ public abstract class FilterListItem implements Parcelable { public int icon = 0; public int tint = -1; + public int count = -1; public abstract Type getItemType(); @@ -40,8 +40,7 @@ public abstract class FilterListItem implements Parcelable { dest.writeString(listingTitle); dest.writeInt(icon); dest.writeInt(tint); - dest.writeStringArray(new String[0]); // old context menu labels - dest.writeTypedArray(new Intent[0], 0); // old context menu intents + dest.writeInt(count); } // --- parcelable helpers @@ -51,8 +50,7 @@ public abstract class FilterListItem implements Parcelable { listingTitle = source.readString(); icon = source.readInt(); tint = source.readInt(); - source.createStringArray(); // old context menu labels - source.createTypedArray(Intent.CREATOR); // old context menu intents + count = source.readInt(); } public abstract boolean areItemsTheSame(@NonNull FilterListItem other); @@ -60,12 +58,23 @@ public abstract class FilterListItem implements Parcelable { public boolean areContentsTheSame(@NonNull FilterListItem other) { return Objects.equals(listingTitle, other.listingTitle) && icon == other.icon - && tint == other.tint; + && tint == other.tint + && count == other.count; } @Override public String toString() { - return "FilterListItem{" + "listingTitle='" + listingTitle + '\'' + '}'; + return "FilterListItem{" + + "listingTitle='" + + listingTitle + + '\'' + + ", icon=" + + icon + + ", tint=" + + tint + + ", count=" + + count + + '}'; } public enum Type { diff --git a/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java index 98af7025e..288f97cdc 100644 --- a/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java @@ -47,7 +47,7 @@ public class GtasksFilterExposer { if (!filters.containsKey(filter.googleTaskAccount)) { filters.put(filter.googleTaskAccount, new ArrayList<>()); } - filters.get(filter.googleTaskAccount).add(new GtasksFilter(filter.googleTaskList)); + filters.get(filter.googleTaskAccount).add(filter.toGtasksFilter()); } return filters; } diff --git a/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java b/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java index 7cb743acc..91d225b39 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java +++ b/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java @@ -31,7 +31,7 @@ public class CaldavFilterExposer { if (!filters.containsKey(filter.caldavAccount)) { filters.put(filter.caldavAccount, new ArrayList<>()); } - filters.get(filter.caldavAccount).add(new CaldavFilter(filter.caldavCalendar)); + filters.get(filter.caldavAccount).add(filter.toCaldavFilter()); } return filters; } diff --git a/app/src/main/java/org/tasks/filters/CaldavFilters.java b/app/src/main/java/org/tasks/filters/CaldavFilters.java index a60816bf8..8983c455c 100644 --- a/app/src/main/java/org/tasks/filters/CaldavFilters.java +++ b/app/src/main/java/org/tasks/filters/CaldavFilters.java @@ -1,6 +1,7 @@ package org.tasks.filters; import androidx.room.Embedded; +import com.todoroo.astrid.api.CaldavFilter; import org.tasks.data.CaldavAccount; import org.tasks.data.CaldavCalendar; @@ -9,6 +10,12 @@ public class CaldavFilters { @Embedded public CaldavAccount caldavAccount; public int count; + public CaldavFilter toCaldavFilter() { + CaldavFilter filter = new CaldavFilter(caldavCalendar); + filter.count = count; + return filter; + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/app/src/main/java/org/tasks/filters/GoogleTaskFilters.java b/app/src/main/java/org/tasks/filters/GoogleTaskFilters.java index a0f95ff3d..24baebccf 100644 --- a/app/src/main/java/org/tasks/filters/GoogleTaskFilters.java +++ b/app/src/main/java/org/tasks/filters/GoogleTaskFilters.java @@ -1,6 +1,7 @@ package org.tasks.filters; import androidx.room.Embedded; +import com.todoroo.astrid.api.GtasksFilter; import org.tasks.data.GoogleTaskAccount; import org.tasks.data.GoogleTaskList; @@ -9,6 +10,12 @@ public class GoogleTaskFilters { @Embedded public GoogleTaskAccount googleTaskAccount; public int count; + public GtasksFilter toGtasksFilter() { + GtasksFilter filter = new GtasksFilter(googleTaskList); + filter.count = count; + return filter; + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/app/src/main/java/org/tasks/filters/TagFilters.java b/app/src/main/java/org/tasks/filters/TagFilters.java index af9111c45..e17b11754 100644 --- a/app/src/main/java/org/tasks/filters/TagFilters.java +++ b/app/src/main/java/org/tasks/filters/TagFilters.java @@ -9,7 +9,9 @@ public class TagFilters { public int count; public TagFilter toTagFilter() { - return new TagFilter(tagData); + TagFilter filter = new TagFilter(tagData); + filter.count = count; + return filter; } @Override diff --git a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index 18737bb63..3d29cb95b 100644 --- a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -243,7 +243,7 @@ public class NavigationDrawerFragment extends InjectingFragment { assertNotMainThread(); Map result = new HashMap<>(); - for (FilterListItem item : filter(items, i -> i instanceof Filter)) { + for (FilterListItem item : filter(items, i -> i instanceof Filter && i.count == -1)) { result.put((Filter) item, taskDao.count((Filter) item)); } return result;