Keeping a static instance of filter objects was a bad idea. Causes conflicts in subtasks mode

pull/14/head
Sam Bosley 13 years ago
parent dff4275e06
commit 479f389768

@ -61,24 +61,18 @@ public final class CoreFilterExposer extends BroadcastReceiver implements Astrid
* Build inbox filter
* @return
*/
private static Filter inboxInstance = null;
public static Filter buildInboxFilter(Resources r) {
synchronized(CoreFilterExposer.class) {
if (inboxInstance == null) {
inboxInstance = new Filter(r.getString(R.string.BFE_Active), r.getString(R.string.BFE_Active),
Filter inbox = new Filter(r.getString(R.string.BFE_Active), r.getString(R.string.BFE_Active),
new QueryTemplate().where(
Criterion.and(TaskCriteria.activeVisibleMine(),
Criterion.not(Task.ID.in(Query.select(Metadata.TASK).from(Metadata.TABLE).where(
Criterion.and(MetadataCriteria.withKey(TagService.KEY),
TagService.TAG.like("x_%", "x"))))))), //$NON-NLS-1$ //$NON-NLS-2$
null);
}
}
null);
int themeFlags = ThemeService.getFilterThemeFlags();
inboxInstance.listingIcon = ((BitmapDrawable)r.getDrawable(
inbox.listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_inbox, themeFlags))).getBitmap();
return inboxInstance;
return inbox;
}
/**

@ -76,23 +76,18 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
return savedFilters;
}
private static Filter todayFilter = null;
public static Filter getTodayFilter(Resources r) {
int themeFlags = ThemeService.getFilterThemeFlags();
synchronized(CustomFilterExposer.class) {
if (todayFilter == null) {
String todayTitle = AndroidUtilities.capitalize(r.getString(R.string.today));
ContentValues todayValues = new ContentValues();
todayValues.put(Task.DUE_DATE.name, PermaSql.VALUE_NOON);
todayFilter = new Filter(todayTitle,
todayTitle,
new QueryTemplate().where(
Criterion.and(TaskCriteria.activeVisibleMine(),
Task.DUE_DATE.gt(0),
Task.DUE_DATE.lte(PermaSql.VALUE_EOD))),
todayValues);
}
}
String todayTitle = AndroidUtilities.capitalize(r.getString(R.string.today));
ContentValues todayValues = new ContentValues();
todayValues.put(Task.DUE_DATE.name, PermaSql.VALUE_NOON);
Filter todayFilter = new Filter(todayTitle,
todayTitle,
new QueryTemplate().where(
Criterion.and(TaskCriteria.activeVisibleMine(),
Task.DUE_DATE.gt(0),
Task.DUE_DATE.lte(PermaSql.VALUE_EOD))),
todayValues);
todayFilter.listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_calendar, themeFlags))).getBitmap();
return todayFilter;

Loading…
Cancel
Save