diff --git a/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java b/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java index 06ad02507..9d76fbb41 100644 --- a/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java @@ -139,14 +139,6 @@ public class AndroidUtilities { return result; } - public static Map mapFromContentValues(ContentValues contentValues) { - Map map = new HashMap<>(); - for (Map.Entry entry : contentValues.valueSet()) { - map.put(entry.getKey(), entry.getValue()); - } - return map; - } - public interface SerializedPut { void put(T object, String key, char type, String value) throws NumberFormatException; } diff --git a/app/src/main/java/com/todoroo/astrid/api/CustomFilter.java b/app/src/main/java/com/todoroo/astrid/api/CustomFilter.java index 9c3314a89..9aa67e172 100644 --- a/app/src/main/java/com/todoroo/astrid/api/CustomFilter.java +++ b/app/src/main/java/com/todoroo/astrid/api/CustomFilter.java @@ -5,18 +5,21 @@ import android.os.Parcelable; import java.util.Map; +import static com.todoroo.andlib.utility.AndroidUtilities.mapFromSerializedString; import static com.todoroo.andlib.utility.AndroidUtilities.mapToSerializedString; public class CustomFilter extends Filter { private long id; + private String criterion; - private CustomFilter() { - - } - - public CustomFilter(String listingTitle, String sql, Map values, long id) { + public CustomFilter(String listingTitle, String sql, Map values, long id, String criterion) { super(listingTitle, sql, values); this.id = id; + this.criterion = criterion; + } + + private CustomFilter(Parcel parcel) { + readFromParcel(parcel); } public org.tasks.data.Filter toStoreObject() { @@ -25,8 +28,9 @@ public class CustomFilter extends Filter { filter.setTitle(listingTitle); filter.setSql(sqlQuery); if (valuesForNewTasks != null && valuesForNewTasks.size() > 0) { - filter.setCriterion(mapToSerializedString(valuesForNewTasks)); + filter.setValues(mapToSerializedString(valuesForNewTasks)); } + filter.setCriterion(criterion); return filter; } @@ -41,12 +45,14 @@ public class CustomFilter extends Filter { public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeLong(id); + dest.writeString(criterion); } @Override protected void readFromParcel(Parcel source) { super.readFromParcel(source); id = source.readLong(); + criterion = source.readString(); } /** @@ -59,9 +65,7 @@ public class CustomFilter extends Filter { */ @Override public CustomFilter createFromParcel(Parcel source) { - CustomFilter item = new CustomFilter(); - item.readFromParcel(source); - return item; + return new CustomFilter(source); } /** diff --git a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java index 0492e3a39..84425e01d 100644 --- a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java +++ b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java @@ -273,7 +273,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity imple } org.tasks.data.Filter storeObject = persist(title, sql.toString(), values); - Filter filter = new CustomFilter(title, sql.toString(), values, storeObject.getId()); + Filter filter = new CustomFilter(title, sql.toString(), values, storeObject.getId(), storeObject.getCriterion()); setResult(RESULT_OK, new Intent().putExtra(TaskListActivity.OPEN_FILTER, filter)); finish(); } diff --git a/app/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java b/app/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java index 7c3959a99..83a972223 100644 --- a/app/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java +++ b/app/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java @@ -56,7 +56,7 @@ public final class CustomFilterExposer { sql = sql.replace("tasks.userId=0", "1"); // TODO: replace dirty hack for missing column - CustomFilter customFilter = new CustomFilter(title, sql, values, savedFilter.getId()); + CustomFilter customFilter = new CustomFilter(title, sql, values, savedFilter.getId(), savedFilter.getCriterion()); customFilter.icon = filter; return customFilter; }