mirror of https://github.com/tasks/tasks
Remove FilterWithCustomIntent
parent
1b348fb9f4
commit
da3d2a26e1
@ -1,7 +1,13 @@
|
||||
package com.todoroo.astrid.gtasks;
|
||||
|
||||
import com.todoroo.astrid.activity.TaskListFragment;
|
||||
import com.todoroo.astrid.api.GtasksFilter;
|
||||
import com.todoroo.astrid.subtasks.SubtasksListFragment;
|
||||
|
||||
public class GtasksListFragment extends SubtasksListFragment {
|
||||
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