mirror of https://github.com/tasks/tasks
Remove FilterWithCustomIntent
parent
1b348fb9f4
commit
da3d2a26e1
@ -1,7 +1,13 @@
|
|||||||
package com.todoroo.astrid.gtasks;
|
package com.todoroo.astrid.gtasks;
|
||||||
|
|
||||||
|
import com.todoroo.astrid.activity.TaskListFragment;
|
||||||
|
import com.todoroo.astrid.api.GtasksFilter;
|
||||||
import com.todoroo.astrid.subtasks.SubtasksListFragment;
|
import com.todoroo.astrid.subtasks.SubtasksListFragment;
|
||||||
|
|
||||||
public class GtasksListFragment extends SubtasksListFragment {
|
public class GtasksListFragment extends SubtasksListFragment {
|
||||||
public static final String TOKEN_STORE_ID = "storeId";
|
public static final String TOKEN_STORE_ID = "storeId";
|
||||||
|
|
||||||
|
public static TaskListFragment newGtasksListFragment(GtasksFilter gtasksFilter, GtasksList list) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
package com.todoroo.astrid.api;
|
|
||||||
|
|
||||||
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.ContentValues;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.Parcelable;
|
|
||||||
|
|
||||||
import com.todoroo.andlib.sql.QueryTemplate;
|
|
||||||
import com.todoroo.astrid.actfm.TagViewFragment;
|
|
||||||
import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
|
|
||||||
|
|
||||||
public class FilterWithCustomIntent extends Filter {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom activity name
|
|
||||||
*/
|
|
||||||
public ComponentName customTaskList = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bundle with extras set. Can be null
|
|
||||||
*/
|
|
||||||
public Bundle customExtras = null;
|
|
||||||
|
|
||||||
protected FilterWithCustomIntent() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
public FilterWithCustomIntent(String listingTitle, QueryTemplate sqlQuery, ContentValues valuesForNewTasks) {
|
|
||||||
super(listingTitle, sqlQuery, valuesForNewTasks);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Intent getCustomIntent() {
|
|
||||||
Intent intent = new Intent();
|
|
||||||
if(customExtras != null) {
|
|
||||||
intent.putExtras(customExtras);
|
|
||||||
}
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- parcelable
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
|
||||||
super.writeToParcel(dest, flags);
|
|
||||||
dest.writeParcelable(customTaskList, 0);
|
|
||||||
dest.writeParcelable(customExtras, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void readFromParcel(Parcel source) {
|
|
||||||
super.readFromParcel(source);
|
|
||||||
customTaskList = source.readParcelable(ComponentName.class.getClassLoader());
|
|
||||||
customExtras = source.readParcelable(Bundle.class.getClassLoader());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parcelable Creator Object
|
|
||||||
*/
|
|
||||||
public static final Parcelable.Creator<FilterWithCustomIntent> CREATOR = new Parcelable.Creator<FilterWithCustomIntent>() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public FilterWithCustomIntent createFromParcel(Parcel source) {
|
|
||||||
FilterWithCustomIntent item = new FilterWithCustomIntent();
|
|
||||||
item.readFromParcel(source);
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public FilterWithCustomIntent[] newArray(int size) {
|
|
||||||
return new FilterWithCustomIntent[size];
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isTagFilter() {
|
|
||||||
String className = customTaskList.getClassName();
|
|
||||||
// Need to check this subclass because some shortcuts/widgets may have been saved with it
|
|
||||||
return TagViewFragment.class.getName().equals(className)
|
|
||||||
|| SubtasksTagListFragment.class.getName().equals(className);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,98 @@
|
|||||||
|
package com.todoroo.astrid.api;
|
||||||
|
|
||||||
|
import android.content.ContentValues;
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import com.todoroo.andlib.data.AbstractModel;
|
||||||
|
import com.todoroo.andlib.sql.Criterion;
|
||||||
|
import com.todoroo.andlib.sql.Functions;
|
||||||
|
import com.todoroo.andlib.sql.Join;
|
||||||
|
import com.todoroo.andlib.sql.Order;
|
||||||
|
import com.todoroo.andlib.sql.QueryTemplate;
|
||||||
|
import com.todoroo.astrid.dao.MetadataDao;
|
||||||
|
import com.todoroo.astrid.dao.TaskDao;
|
||||||
|
import com.todoroo.astrid.data.Metadata;
|
||||||
|
import com.todoroo.astrid.data.Task;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksList;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksMetadata;
|
||||||
|
|
||||||
|
import org.tasks.R;
|
||||||
|
|
||||||
|
public class GtasksFilter extends Filter {
|
||||||
|
|
||||||
|
private static final int CLOUD = R.drawable.ic_cloud_queue_24dp;
|
||||||
|
|
||||||
|
public long storeId;
|
||||||
|
|
||||||
|
protected GtasksFilter() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GtasksFilter(GtasksList list) {
|
||||||
|
super(list.getName(), getQueryTemplate(list), getValuesForNewTasks(list));
|
||||||
|
storeId = list.getId();
|
||||||
|
icon = CLOUD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getStoreId() {
|
||||||
|
return storeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static QueryTemplate getQueryTemplate(GtasksList list) {
|
||||||
|
return new QueryTemplate().join(
|
||||||
|
Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and(
|
||||||
|
MetadataDao.MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
|
||||||
|
TaskDao.TaskCriteria.notDeleted(),
|
||||||
|
GtasksMetadata.LIST_ID.eq(list.getRemoteId()))).orderBy(
|
||||||
|
Order.asc(Functions.cast(GtasksMetadata.ORDER, "LONG")));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ContentValues getValuesForNewTasks(GtasksList list) {
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.putAll(GtasksMetadata.createEmptyMetadataWithoutList(AbstractModel.NO_ID).getMergedValues());
|
||||||
|
values.remove(Metadata.TASK.name);
|
||||||
|
values.put(GtasksMetadata.LIST_ID.name, list.getRemoteId());
|
||||||
|
values.put(GtasksMetadata.ORDER.name, PermaSql.VALUE_NOW);
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
super.writeToParcel(dest, flags);
|
||||||
|
dest.writeLong(storeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromParcel(Parcel source) {
|
||||||
|
super.readFromParcel(source);
|
||||||
|
storeId = source.readLong();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parcelable Creator Object
|
||||||
|
*/
|
||||||
|
public static final Parcelable.Creator<GtasksFilter> CREATOR = new Parcelable.Creator<GtasksFilter>() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public GtasksFilter createFromParcel(Parcel source) {
|
||||||
|
GtasksFilter item = new GtasksFilter();
|
||||||
|
item.readFromParcel(source);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public GtasksFilter[] newArray(int size) {
|
||||||
|
return new GtasksFilter[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,101 @@
|
|||||||
|
package com.todoroo.astrid.api;
|
||||||
|
|
||||||
|
import android.content.ContentValues;
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import com.todoroo.andlib.sql.Criterion;
|
||||||
|
import com.todoroo.andlib.sql.Field;
|
||||||
|
import com.todoroo.andlib.sql.Join;
|
||||||
|
import com.todoroo.andlib.sql.QueryTemplate;
|
||||||
|
import com.todoroo.astrid.dao.TaskDao;
|
||||||
|
import com.todoroo.astrid.data.Metadata;
|
||||||
|
import com.todoroo.astrid.data.TagData;
|
||||||
|
import com.todoroo.astrid.data.Task;
|
||||||
|
import com.todoroo.astrid.tags.TaskToTagMetadata;
|
||||||
|
|
||||||
|
import org.tasks.R;
|
||||||
|
|
||||||
|
public class TagFilter extends Filter {
|
||||||
|
|
||||||
|
private static final int TAG = R.drawable.ic_label_24dp;
|
||||||
|
|
||||||
|
private String uuid;
|
||||||
|
|
||||||
|
protected TagFilter() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public TagFilter(TagData tagData) {
|
||||||
|
super(tagData.getName(), queryTemplate(tagData.getUuid()), getValuesForNewTask(tagData));
|
||||||
|
uuid = tagData.getUuid();
|
||||||
|
icon = TAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUuid() {
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static QueryTemplate queryTemplate(String uuid) {
|
||||||
|
Criterion fullCriterion = Criterion.and(
|
||||||
|
Field.field("mtags." + Metadata.KEY.name).eq(TaskToTagMetadata.KEY),
|
||||||
|
Field.field("mtags." + TaskToTagMetadata.TAG_UUID.name).eq(uuid),
|
||||||
|
Field.field("mtags." + Metadata.DELETION_DATE.name).eq(0),
|
||||||
|
TaskDao.TaskCriteria.activeAndVisible());
|
||||||
|
return new QueryTemplate().join(Join.inner(Metadata.TABLE.as("mtags"), Task.UUID.eq(Field.field("mtags." + TaskToTagMetadata.TASK_UUID.name))))
|
||||||
|
.where(fullCriterion);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ContentValues getValuesForNewTask(TagData tagData) {
|
||||||
|
ContentValues contentValues = new ContentValues();
|
||||||
|
contentValues.put(Metadata.KEY.name, TaskToTagMetadata.KEY);
|
||||||
|
contentValues.put(TaskToTagMetadata.TAG_NAME.name, tagData.getName());
|
||||||
|
contentValues.put(TaskToTagMetadata.TAG_UUID.name, tagData.getUuid());
|
||||||
|
return contentValues;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
super.writeToParcel(dest, flags);
|
||||||
|
dest.writeString(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromParcel(Parcel source) {
|
||||||
|
super.readFromParcel(source);
|
||||||
|
uuid = source.readString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parcelable Creator Object
|
||||||
|
*/
|
||||||
|
public static final Parcelable.Creator<TagFilter> CREATOR = new Parcelable.Creator<TagFilter>() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TagFilter createFromParcel(Parcel source) {
|
||||||
|
TagFilter item = new TagFilter();
|
||||||
|
item.readFromParcel(source);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TagFilter[] newArray(int size) {
|
||||||
|
return new TagFilter[size];
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isTagFilter() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue