mirror of https://github.com/tasks/tasks
Remove filter criteria broadcast
parent
660377b93b
commit
008d9117cd
@ -1,89 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
package com.todoroo.astrid.gtasks;
|
|
||||||
|
|
||||||
import android.content.ContentValues;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
|
|
||||||
import com.todoroo.andlib.data.AbstractModel;
|
|
||||||
import com.todoroo.andlib.sql.Criterion;
|
|
||||||
import com.todoroo.andlib.sql.Join;
|
|
||||||
import com.todoroo.andlib.sql.Query;
|
|
||||||
import com.todoroo.astrid.api.AstridApiConstants;
|
|
||||||
import com.todoroo.astrid.api.CustomFilterCriterion;
|
|
||||||
import com.todoroo.astrid.api.MultipleSelectCriterion;
|
|
||||||
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
|
|
||||||
import com.todoroo.astrid.dao.TaskDao;
|
|
||||||
import com.todoroo.astrid.data.Metadata;
|
|
||||||
import com.todoroo.astrid.data.Task;
|
|
||||||
|
|
||||||
import org.tasks.R;
|
|
||||||
import org.tasks.injection.InjectingBroadcastReceiver;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
public class GtasksCustomFilterCriteriaExposer extends InjectingBroadcastReceiver {
|
|
||||||
|
|
||||||
private static final String IDENTIFIER = "gtaskslist"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
@Inject GtasksPreferenceService gtasksPreferenceService;
|
|
||||||
@Inject GtasksListService gtasksListService;
|
|
||||||
@Inject GtasksMetadata gtasksMetadata;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
super.onReceive(context, intent);
|
|
||||||
|
|
||||||
// if we aren't logged in, don't expose sync action
|
|
||||||
if(!gtasksPreferenceService.isLoggedIn()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Resources r = context.getResources();
|
|
||||||
|
|
||||||
List<GtasksList> lists = gtasksListService.getLists();
|
|
||||||
|
|
||||||
CustomFilterCriterion[] result = new CustomFilterCriterion[1];
|
|
||||||
String[] listNames = new String[lists.size()];
|
|
||||||
String[] listIds = new String[lists.size()];
|
|
||||||
for (int i = 0; i < lists.size(); i++) {
|
|
||||||
listNames[i] = lists.get(i).getName();
|
|
||||||
listIds[i] = lists.get(i).getRemoteId();
|
|
||||||
}
|
|
||||||
|
|
||||||
ContentValues values = new ContentValues();
|
|
||||||
values.putAll(gtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID).getMergedValues());
|
|
||||||
values.remove(Metadata.TASK.name);
|
|
||||||
values.put(GtasksMetadata.LIST_ID.name, "?");
|
|
||||||
|
|
||||||
CustomFilterCriterion criterion = new MultipleSelectCriterion(
|
|
||||||
IDENTIFIER,
|
|
||||||
context.getString(R.string.CFC_gtasks_list_text),
|
|
||||||
|
|
||||||
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
||||||
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
||||||
TaskDao.TaskCriteria.activeAndVisible(),
|
|
||||||
MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
|
|
||||||
GtasksMetadata.LIST_ID.eq("?"))).toString(),
|
|
||||||
|
|
||||||
values,
|
|
||||||
listNames,
|
|
||||||
listIds,
|
|
||||||
((BitmapDrawable)r.getDrawable(R.drawable.gtasks_icon)).getBitmap(),
|
|
||||||
context.getString(R.string.CFC_gtasks_list_name));
|
|
||||||
result[0] = criterion;
|
|
||||||
|
|
||||||
// transmit filter list
|
|
||||||
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_CUSTOM_FILTER_CRITERIA);
|
|
||||||
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, result);
|
|
||||||
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,110 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
package com.todoroo.astrid.tags;
|
|
||||||
|
|
||||||
import android.content.ContentValues;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
|
|
||||||
import com.todoroo.andlib.sql.Criterion;
|
|
||||||
import com.todoroo.andlib.sql.Join;
|
|
||||||
import com.todoroo.andlib.sql.Query;
|
|
||||||
import com.todoroo.astrid.api.AstridApiConstants;
|
|
||||||
import com.todoroo.astrid.api.CustomFilterCriterion;
|
|
||||||
import com.todoroo.astrid.api.MultipleSelectCriterion;
|
|
||||||
import com.todoroo.astrid.api.TextInputCriterion;
|
|
||||||
import com.todoroo.astrid.dao.MetadataDao;
|
|
||||||
import com.todoroo.astrid.dao.TaskDao;
|
|
||||||
import com.todoroo.astrid.data.Metadata;
|
|
||||||
import com.todoroo.astrid.data.RemoteModel;
|
|
||||||
import com.todoroo.astrid.data.TagData;
|
|
||||||
import com.todoroo.astrid.data.Task;
|
|
||||||
|
|
||||||
import org.tasks.R;
|
|
||||||
import org.tasks.injection.InjectingBroadcastReceiver;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
public class TagCustomFilterCriteriaExposer extends InjectingBroadcastReceiver {
|
|
||||||
|
|
||||||
private static int[] default_tag_images = new int[] {
|
|
||||||
R.drawable.default_list_0,
|
|
||||||
R.drawable.default_list_1,
|
|
||||||
R.drawable.default_list_2,
|
|
||||||
R.drawable.default_list_3
|
|
||||||
};
|
|
||||||
private static final String IDENTIFIER_TAG_IS = "tag_is"; //$NON-NLS-1$
|
|
||||||
private static final String IDENTIFIER_TAG_CONTAINS = "tag_contains"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
@Inject TagService tagService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
super.onReceive(context, intent);
|
|
||||||
|
|
||||||
Resources r = context.getResources();
|
|
||||||
|
|
||||||
CustomFilterCriterion[] ret = new CustomFilterCriterion[2];
|
|
||||||
int j = 0;
|
|
||||||
|
|
||||||
// built in criteria: tags
|
|
||||||
{
|
|
||||||
TagData[] tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_SIZE,
|
|
||||||
TaskDao.TaskCriteria.activeAndVisible());
|
|
||||||
String[] tagNames = new String[tags.length];
|
|
||||||
for(int i = 0; i < tags.length; i++) {
|
|
||||||
tagNames[i] = tags[i].getName();
|
|
||||||
}
|
|
||||||
ContentValues values = new ContentValues();
|
|
||||||
values.put(Metadata.KEY.name, TaskToTagMetadata.KEY);
|
|
||||||
values.put(TaskToTagMetadata.TAG_NAME.name, "?");
|
|
||||||
CustomFilterCriterion criterion = new MultipleSelectCriterion(
|
|
||||||
IDENTIFIER_TAG_IS,
|
|
||||||
context.getString(R.string.CFC_tag_text),
|
|
||||||
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
||||||
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
||||||
TaskDao.TaskCriteria.activeAndVisible(),
|
|
||||||
MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY),
|
|
||||||
TaskToTagMetadata.TAG_NAME.eq("?"), Metadata.DELETION_DATE.eq(0))).toString(),
|
|
||||||
values, tagNames, tagNames,
|
|
||||||
((BitmapDrawable)r.getDrawable(getDefaultImageIDForTag(RemoteModel.NO_UUID))).getBitmap(),
|
|
||||||
context.getString(R.string.CFC_tag_name));
|
|
||||||
ret[j++] = criterion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// built in criteria: tags containing X
|
|
||||||
{
|
|
||||||
CustomFilterCriterion criterion = new TextInputCriterion(
|
|
||||||
IDENTIFIER_TAG_CONTAINS,
|
|
||||||
context.getString(R.string.CFC_tag_contains_text),
|
|
||||||
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
||||||
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
||||||
TaskDao.TaskCriteria.activeAndVisible(),
|
|
||||||
MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY),
|
|
||||||
TaskToTagMetadata.TAG_NAME.like("%?%"), Metadata.DELETION_DATE.eq(0))).toString(),
|
|
||||||
context.getString(R.string.CFC_tag_contains_name), "",
|
|
||||||
((BitmapDrawable)r.getDrawable(getDefaultImageIDForTag(RemoteModel.NO_UUID))).getBitmap(),
|
|
||||||
context.getString(R.string.CFC_tag_contains_name));
|
|
||||||
ret[j] = criterion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// transmit filter list
|
|
||||||
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_CUSTOM_FILTER_CRITERIA);
|
|
||||||
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, ret);
|
|
||||||
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int getDefaultImageIDForTag(String nameOrUUID) {
|
|
||||||
if (RemoteModel.NO_UUID.equals(nameOrUUID)) {
|
|
||||||
int random = (int)(Math.random()*4);
|
|
||||||
return default_tag_images[random];
|
|
||||||
}
|
|
||||||
return default_tag_images[(Math.abs(nameOrUUID.hashCode()))%4];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,227 @@
|
|||||||
|
package org.tasks.filters;
|
||||||
|
|
||||||
|
import android.content.ContentValues;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
|
|
||||||
|
import com.todoroo.andlib.data.AbstractModel;
|
||||||
|
import com.todoroo.andlib.sql.Criterion;
|
||||||
|
import com.todoroo.andlib.sql.Field;
|
||||||
|
import com.todoroo.andlib.sql.Join;
|
||||||
|
import com.todoroo.andlib.sql.Query;
|
||||||
|
import com.todoroo.astrid.api.CustomFilterCriterion;
|
||||||
|
import com.todoroo.astrid.api.MultipleSelectCriterion;
|
||||||
|
import com.todoroo.astrid.api.PermaSql;
|
||||||
|
import com.todoroo.astrid.api.TextInputCriterion;
|
||||||
|
import com.todoroo.astrid.dao.MetadataDao;
|
||||||
|
import com.todoroo.astrid.dao.TaskDao;
|
||||||
|
import com.todoroo.astrid.data.Metadata;
|
||||||
|
import com.todoroo.astrid.data.RemoteModel;
|
||||||
|
import com.todoroo.astrid.data.TagData;
|
||||||
|
import com.todoroo.astrid.data.Task;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksList;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksListService;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksMetadata;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
|
||||||
|
import com.todoroo.astrid.tags.TagService;
|
||||||
|
import com.todoroo.astrid.tags.TaskToTagMetadata;
|
||||||
|
|
||||||
|
import org.tasks.R;
|
||||||
|
import org.tasks.injection.ForApplication;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import static com.google.common.collect.Lists.newArrayList;
|
||||||
|
|
||||||
|
public class FilterCriteriaProvider {
|
||||||
|
|
||||||
|
private static final String IDENTIFIER_TITLE = "title"; //$NON-NLS-1$
|
||||||
|
private static final String IDENTIFIER_IMPORTANCE = "importance"; //$NON-NLS-1$
|
||||||
|
private static final String IDENTIFIER_DUEDATE = "dueDate"; //$NON-NLS-1$
|
||||||
|
private static final String IDENTIFIER_GTASKS = "gtaskslist"; //$NON-NLS-1$
|
||||||
|
private static final String IDENTIFIER_TAG_IS = "tag_is"; //$NON-NLS-1$
|
||||||
|
private static final String IDENTIFIER_TAG_CONTAINS = "tag_contains"; //$NON-NLS-1$
|
||||||
|
private static int[] default_tag_images = new int[] {
|
||||||
|
R.drawable.default_list_0,
|
||||||
|
R.drawable.default_list_1,
|
||||||
|
R.drawable.default_list_2,
|
||||||
|
R.drawable.default_list_3
|
||||||
|
};
|
||||||
|
|
||||||
|
private Context context;
|
||||||
|
private TagService tagService;
|
||||||
|
private GtasksPreferenceService gtasksPreferenceService;
|
||||||
|
private GtasksListService gtasksListService;
|
||||||
|
private GtasksMetadata gtasksMetadata;
|
||||||
|
private Resources r;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public FilterCriteriaProvider(@ForApplication Context context, TagService tagService, GtasksPreferenceService gtasksPreferenceService, GtasksListService gtasksListService, GtasksMetadata gtasksMetadata) {
|
||||||
|
this.context = context;
|
||||||
|
this.tagService = tagService;
|
||||||
|
this.gtasksPreferenceService = gtasksPreferenceService;
|
||||||
|
this.gtasksListService = gtasksListService;
|
||||||
|
this.gtasksMetadata = gtasksMetadata;
|
||||||
|
|
||||||
|
r = context.getResources();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CustomFilterCriterion> getAll() {
|
||||||
|
List<CustomFilterCriterion> result = newArrayList();
|
||||||
|
|
||||||
|
result.add(getTagFilter());
|
||||||
|
result.add(getTagNameContainsFilter());
|
||||||
|
result.add(getDueDateFilter());
|
||||||
|
result.add(getImportanceFilter());
|
||||||
|
result.add(getTaskTitleContainsFilter());
|
||||||
|
if (gtasksPreferenceService.isLoggedIn()) {
|
||||||
|
result.add(getGtasksFilterCriteria());
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomFilterCriterion getTagFilter() {
|
||||||
|
TagData[] tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_SIZE,
|
||||||
|
TaskDao.TaskCriteria.activeAndVisible());
|
||||||
|
String[] tagNames = new String[tags.length];
|
||||||
|
for(int i = 0; i < tags.length; i++) {
|
||||||
|
tagNames[i] = tags[i].getName();
|
||||||
|
}
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.put(Metadata.KEY.name, TaskToTagMetadata.KEY);
|
||||||
|
values.put(TaskToTagMetadata.TAG_NAME.name, "?");
|
||||||
|
return new MultipleSelectCriterion(
|
||||||
|
IDENTIFIER_TAG_IS,
|
||||||
|
context.getString(R.string.CFC_tag_text),
|
||||||
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
||||||
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
||||||
|
TaskDao.TaskCriteria.activeAndVisible(),
|
||||||
|
MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY),
|
||||||
|
TaskToTagMetadata.TAG_NAME.eq("?"), Metadata.DELETION_DATE.eq(0))).toString(),
|
||||||
|
values, tagNames, tagNames,
|
||||||
|
((BitmapDrawable)r.getDrawable(getDefaultImageIDForTag(RemoteModel.NO_UUID))).getBitmap(),
|
||||||
|
context.getString(R.string.CFC_tag_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomFilterCriterion getTagNameContainsFilter() {
|
||||||
|
return new TextInputCriterion(
|
||||||
|
IDENTIFIER_TAG_CONTAINS,
|
||||||
|
context.getString(R.string.CFC_tag_contains_text),
|
||||||
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
||||||
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
||||||
|
TaskDao.TaskCriteria.activeAndVisible(),
|
||||||
|
MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY),
|
||||||
|
TaskToTagMetadata.TAG_NAME.like("%?%"), Metadata.DELETION_DATE.eq(0))).toString(),
|
||||||
|
context.getString(R.string.CFC_tag_contains_name), "",
|
||||||
|
((BitmapDrawable)r.getDrawable(getDefaultImageIDForTag(RemoteModel.NO_UUID))).getBitmap(),
|
||||||
|
context.getString(R.string.CFC_tag_contains_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomFilterCriterion getDueDateFilter() {
|
||||||
|
String[] entryValues = new String[] {
|
||||||
|
"0",
|
||||||
|
PermaSql.VALUE_EOD_YESTERDAY,
|
||||||
|
PermaSql.VALUE_EOD,
|
||||||
|
PermaSql.VALUE_EOD_TOMORROW,
|
||||||
|
PermaSql.VALUE_EOD_DAY_AFTER,
|
||||||
|
PermaSql.VALUE_EOD_NEXT_WEEK,
|
||||||
|
PermaSql.VALUE_EOD_NEXT_MONTH,
|
||||||
|
};
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.put(Task.DUE_DATE.name, "?");
|
||||||
|
return new MultipleSelectCriterion(
|
||||||
|
IDENTIFIER_DUEDATE,
|
||||||
|
r.getString(R.string.CFC_dueBefore_text),
|
||||||
|
Query.select(Task.ID).from(Task.TABLE).where(
|
||||||
|
Criterion.and(
|
||||||
|
TaskDao.TaskCriteria.activeAndVisible(),
|
||||||
|
Criterion.or(
|
||||||
|
Field.field("?").eq(0),
|
||||||
|
Task.DUE_DATE.gt(0)),
|
||||||
|
Task.DUE_DATE.lte("?"))).toString(),
|
||||||
|
values, r.getStringArray(R.array.CFC_dueBefore_entries),
|
||||||
|
entryValues, ((BitmapDrawable)r.getDrawable(R.drawable.tango_calendar)).getBitmap(),
|
||||||
|
r.getString(R.string.CFC_dueBefore_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomFilterCriterion getImportanceFilter() {
|
||||||
|
String[] entryValues = new String[] {
|
||||||
|
Integer.toString(Task.IMPORTANCE_DO_OR_DIE),
|
||||||
|
Integer.toString(Task.IMPORTANCE_MUST_DO),
|
||||||
|
Integer.toString(Task.IMPORTANCE_SHOULD_DO),
|
||||||
|
Integer.toString(Task.IMPORTANCE_NONE),
|
||||||
|
};
|
||||||
|
String[] entries = new String[] {
|
||||||
|
"!!!", "!!", "!", "o"
|
||||||
|
};
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.put(Task.IMPORTANCE.name, "?");
|
||||||
|
return new MultipleSelectCriterion(
|
||||||
|
IDENTIFIER_IMPORTANCE,
|
||||||
|
r.getString(R.string.CFC_importance_text),
|
||||||
|
Query.select(Task.ID).from(Task.TABLE).where(
|
||||||
|
Criterion.and(TaskDao.TaskCriteria.activeAndVisible(),
|
||||||
|
Task.IMPORTANCE.lte("?"))).toString(),
|
||||||
|
values, entries,
|
||||||
|
entryValues, ((BitmapDrawable)r.getDrawable(R.drawable.tango_warning)).getBitmap(),
|
||||||
|
r.getString(R.string.CFC_importance_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomFilterCriterion getTaskTitleContainsFilter() {
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.put(Task.TITLE.name, "?");
|
||||||
|
return new TextInputCriterion(
|
||||||
|
IDENTIFIER_TITLE,
|
||||||
|
r.getString(R.string.CFC_title_contains_text),
|
||||||
|
Query.select(Task.ID).from(Task.TABLE).where(
|
||||||
|
Criterion.and(TaskDao.TaskCriteria.activeAndVisible(),
|
||||||
|
Task.TITLE.like("%?%"))).toString(),
|
||||||
|
r.getString(R.string.CFC_title_contains_name), "",
|
||||||
|
((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap(),
|
||||||
|
r.getString(R.string.CFC_title_contains_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomFilterCriterion getGtasksFilterCriteria() {
|
||||||
|
List<GtasksList> lists = gtasksListService.getLists();
|
||||||
|
|
||||||
|
String[] listNames = new String[lists.size()];
|
||||||
|
String[] listIds = new String[lists.size()];
|
||||||
|
for (int i = 0; i < lists.size(); i++) {
|
||||||
|
listNames[i] = lists.get(i).getName();
|
||||||
|
listIds[i] = lists.get(i).getRemoteId();
|
||||||
|
}
|
||||||
|
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.putAll(gtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID).getMergedValues());
|
||||||
|
values.remove(Metadata.TASK.name);
|
||||||
|
values.put(GtasksMetadata.LIST_ID.name, "?");
|
||||||
|
|
||||||
|
return new MultipleSelectCriterion(
|
||||||
|
IDENTIFIER_GTASKS,
|
||||||
|
context.getString(R.string.CFC_gtasks_list_text),
|
||||||
|
|
||||||
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
||||||
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
||||||
|
TaskDao.TaskCriteria.activeAndVisible(),
|
||||||
|
MetadataDao.MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
|
||||||
|
GtasksMetadata.LIST_ID.eq("?"))).toString(),
|
||||||
|
|
||||||
|
values,
|
||||||
|
listNames,
|
||||||
|
listIds,
|
||||||
|
((BitmapDrawable)r.getDrawable(R.drawable.gtasks_icon)).getBitmap(),
|
||||||
|
context.getString(R.string.CFC_gtasks_list_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int getDefaultImageIDForTag(String nameOrUUID) {
|
||||||
|
if (RemoteModel.NO_UUID.equals(nameOrUUID)) {
|
||||||
|
int random = (int)(Math.random()*4);
|
||||||
|
return default_tag_images[random];
|
||||||
|
}
|
||||||
|
return default_tag_images[(Math.abs(nameOrUUID.hashCode()))%4];
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue