Save criterion column

pull/618/head
Alex Baker 8 years ago
parent 733a7e2c9a
commit bc5f441a50

@ -139,14 +139,6 @@ public class AndroidUtilities {
return result; return result;
} }
public static Map<String, Object> mapFromContentValues(ContentValues contentValues) {
Map<String, Object> map = new HashMap<>();
for (Map.Entry<String, Object> entry : contentValues.valueSet()) {
map.put(entry.getKey(), entry.getValue());
}
return map;
}
public interface SerializedPut<T> { public interface SerializedPut<T> {
void put(T object, String key, char type, String value) throws NumberFormatException; void put(T object, String key, char type, String value) throws NumberFormatException;
} }

@ -5,18 +5,21 @@ import android.os.Parcelable;
import java.util.Map; import java.util.Map;
import static com.todoroo.andlib.utility.AndroidUtilities.mapFromSerializedString;
import static com.todoroo.andlib.utility.AndroidUtilities.mapToSerializedString; import static com.todoroo.andlib.utility.AndroidUtilities.mapToSerializedString;
public class CustomFilter extends Filter { public class CustomFilter extends Filter {
private long id; private long id;
private String criterion;
private CustomFilter() { public CustomFilter(String listingTitle, String sql, Map<String, Object> values, long id, String criterion) {
}
public CustomFilter(String listingTitle, String sql, Map<String, Object> values, long id) {
super(listingTitle, sql, values); super(listingTitle, sql, values);
this.id = id; this.id = id;
this.criterion = criterion;
}
private CustomFilter(Parcel parcel) {
readFromParcel(parcel);
} }
public org.tasks.data.Filter toStoreObject() { public org.tasks.data.Filter toStoreObject() {
@ -25,8 +28,9 @@ public class CustomFilter extends Filter {
filter.setTitle(listingTitle); filter.setTitle(listingTitle);
filter.setSql(sqlQuery); filter.setSql(sqlQuery);
if (valuesForNewTasks != null && valuesForNewTasks.size() > 0) { if (valuesForNewTasks != null && valuesForNewTasks.size() > 0) {
filter.setCriterion(mapToSerializedString(valuesForNewTasks)); filter.setValues(mapToSerializedString(valuesForNewTasks));
} }
filter.setCriterion(criterion);
return filter; return filter;
} }
@ -41,12 +45,14 @@ public class CustomFilter extends Filter {
public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags); super.writeToParcel(dest, flags);
dest.writeLong(id); dest.writeLong(id);
dest.writeString(criterion);
} }
@Override @Override
protected void readFromParcel(Parcel source) { protected void readFromParcel(Parcel source) {
super.readFromParcel(source); super.readFromParcel(source);
id = source.readLong(); id = source.readLong();
criterion = source.readString();
} }
/** /**
@ -59,9 +65,7 @@ public class CustomFilter extends Filter {
*/ */
@Override @Override
public CustomFilter createFromParcel(Parcel source) { public CustomFilter createFromParcel(Parcel source) {
CustomFilter item = new CustomFilter(); return new CustomFilter(source);
item.readFromParcel(source);
return item;
} }
/** /**

@ -273,7 +273,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity imple
} }
org.tasks.data.Filter storeObject = persist(title, sql.toString(), values); 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)); setResult(RESULT_OK, new Intent().putExtra(TaskListActivity.OPEN_FILTER, filter));
finish(); finish();
} }

@ -56,7 +56,7 @@ public final class CustomFilterExposer {
sql = sql.replace("tasks.userId=0", "1"); // TODO: replace dirty hack for missing column 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; customFilter.icon = filter;
return customFilter; return customFilter;
} }

Loading…
Cancel
Save