From f99bea58a9df1a3ec06066059bd353b4e66ae3a5 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 22 Jun 2015 08:14:41 -0500 Subject: [PATCH] Add FilterSettingsActivity Removed remaining nav drawer context item --- src/main/AndroidManifest.xml | 8 +- .../astrid/actfm/FilterSettingsActivity.java | 162 ++++++++++++++++++ .../todoroo/astrid/actfm/TagViewFragment.java | 2 +- .../activity/FilterShortcutActivity.java | 2 +- .../astrid/activity/ShortcutActivity.java | 8 +- .../astrid/activity/TaskListActivity.java | 40 +++-- .../astrid/api/AstridApiConstants.java | 1 + .../com/todoroo/astrid/api/CustomFilter.java | 76 ++++++++ .../java/com/todoroo/astrid/api/Filter.java | 35 +--- .../todoroo/astrid/api/FilterListItem.java | 37 +--- .../astrid/api/FilterWithCustomIntent.java | 10 +- .../astrid/core/BuiltInFilterExposer.java | 5 +- .../astrid/core/CustomFilterActivity.java | 7 +- .../astrid/core/CustomFilterExposer.java | 24 +-- .../astrid/core/DeleteFilterActivity.java | 63 ------- .../com/todoroo/astrid/core/SavedFilter.java | 15 +- .../todoroo/astrid/dao/StoreObjectDao.java | 8 +- .../astrid/gtasks/GtasksFilterExposer.java | 2 +- .../todoroo/astrid/tags/TagFilterExposer.java | 4 +- .../astrid/timers/TimerFilterExposer.java | 1 - .../astrid/widget/WidgetConfigActivity.java | 2 +- .../astrid/widget/WidgetUpdateService.java | 2 +- .../org/tasks/injection/ActivityModule.java | 4 +- .../tasks/ui/NavigationDrawerFragment.java | 52 ------ .../java/org/tasks/widget/WidgetHelper.java | 12 +- src/main/res/menu/task_list_activity.xml | 19 +- src/main/res/values-ar/strings.xml | 1 - src/main/res/values-bg-rBG/strings.xml | 2 - src/main/res/values-ca/strings.xml | 2 - src/main/res/values-cs/strings.xml | 2 - src/main/res/values-da/strings.xml | 2 - src/main/res/values-de/strings.xml | 2 - src/main/res/values-el/strings.xml | 2 - src/main/res/values-es/strings.xml | 2 - src/main/res/values-fr/strings.xml | 2 - src/main/res/values-it/strings.xml | 2 - src/main/res/values-iw/strings.xml | 2 - src/main/res/values-ja/strings.xml | 2 - src/main/res/values-ko/strings.xml | 2 - src/main/res/values-nb/strings.xml | 2 - src/main/res/values-nl/strings.xml | 2 - src/main/res/values-pl/strings.xml | 2 - src/main/res/values-pt-rBR/strings.xml | 2 - src/main/res/values-pt/strings.xml | 2 - src/main/res/values-ru/strings.xml | 2 - src/main/res/values-sk/strings.xml | 2 - src/main/res/values-sl-rSI/strings.xml | 2 - src/main/res/values-sv/strings.xml | 2 - src/main/res/values-th/strings.xml | 2 - src/main/res/values-tr/strings.xml | 2 - src/main/res/values-uk/strings.xml | 2 - src/main/res/values-zh-rCN/strings.xml | 2 - src/main/res/values-zh-rTW/strings.xml | 2 - src/main/res/values/strings-core.xml | 3 - src/main/res/values/strings-filters.xml | 3 - src/main/res/values/strings.xml | 1 + 56 files changed, 338 insertions(+), 323 deletions(-) create mode 100644 src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java create mode 100644 src/main/java/com/todoroo/astrid/api/CustomFilter.java delete mode 100644 src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 68e71cf0e..5c1235ddd 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -347,10 +347,6 @@ android:name="com.todoroo.astrid.core.CustomFilterActivity" android:theme="@style/Tasks.Dialog"/> - - @@ -369,6 +365,10 @@ android:name="com.todoroo.astrid.actfm.TagSettingsActivity" android:windowSoftInputMode="stateHidden" /> + + keys = extras.keySet(); for (String key : keys) { @@ -135,11 +135,11 @@ public class ShortcutActivity extends Activity { ((FilterWithCustomIntent) filter).customExtras = customExtras; // Something ((FilterWithCustomIntent) filter).customTaskList = ComponentName.unflattenFromString(extras.getString(TOKEN_CUSTOM_CLASS)); } else { - filter = new Filter(title, title, sql, values); + filter = new Filter(title, sql, values); } taskListIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); } else if(extras != null && extras.containsKey(TOKEN_SINGLE_TASK)) { - Filter filter = new Filter(getString(R.string.TLA_custom), getString(R.string.TLA_custom), + Filter filter = new Filter(getString(R.string.TLA_custom), new QueryTemplate().where(Task.ID.eq(extras.getLong(TOKEN_SINGLE_TASK, -1))), null); taskListIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); @@ -164,7 +164,7 @@ public class ShortcutActivity extends Activity { shortcutIntent.setAction(Intent.ACTION_VIEW); shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE, - filter.title); + filter.listingTitle); shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_SQL, filter.getSqlQuery()); if (filter.valuesForNewTasks != null) { diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index 57dee33b6..56991244c 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -24,17 +24,16 @@ import android.view.View; import com.todoroo.andlib.data.Callback; import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.astrid.actfm.FilterSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.api.AstridApiConstants; +import com.todoroo.astrid.api.CustomFilter; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.core.BuiltInFilterExposer; -import com.todoroo.astrid.core.DeleteFilterActivity; -import com.todoroo.astrid.core.SavedFilter; import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.data.RemoteModel; -import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gtasks.GtasksListFragment; @@ -61,6 +60,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList @Inject VoiceInputAssistant voiceInputAssistant; private static final int REQUEST_EDIT_TAG = 11543; + private static final int REQUEST_EDIT_FILTER = 11544; private final RepeatConfirmationReceiver repeatConfirmationReceiver = new RepeatConfirmationReceiver(this); private NavigationDrawerFragment navigationDrawer; @@ -123,7 +123,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList setupTasklistFragmentWithFilter(savedFilter, extras); if (savedFilter != null) { - setListsTitle(savedFilter.title); + setListsTitle(savedFilter.listingTitle); } } @@ -158,6 +158,8 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList menu.findItem(R.id.menu_sort).setVisible(false); } else if(tlf instanceof TagViewFragment) { menu.findItem(R.id.menu_tag_settings).setVisible(true); + } else if(tlf.getFilter() instanceof CustomFilter && ((CustomFilter) tlf.getFilter()).getId() > 0) { + menu.findItem(R.id.menu_filter_settings).setVisible(true); } menu.findItem(R.id.menu_voice_add).setVisible(voiceInputAvailable(this)); final MenuItem item = menu.findItem(R.id.menu_search); @@ -167,7 +169,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList public boolean onQueryTextSubmit(String query) { query = query.trim(); String title = getString(R.string.FLA_search_filter, query); - Filter savedFilter = new Filter(title, title, + Filter savedFilter = new Filter(title, new QueryTemplate().where(Task.TITLE.like( "%" + //$NON-NLS-1$ query + "%")), //$NON-NLS-1$ @@ -282,7 +284,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList } public void setSelectedItem(Filter item) { - getSupportActionBar().setTitle(item.title); + getSupportActionBar().setTitle(item.listingTitle); } @Override @@ -342,6 +344,8 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, newList); // Handle in onPostResume() navigationDrawer.clear(); } + + navigationDrawer.refresh(); } else if (requestCode == TaskListFragment.ACTIVITY_EDIT_TASK && resultCode != Activity.RESULT_CANCELED) { // Handle switch to assigned filter when it comes from TaskEditActivity finishing // For cases when we're in a multi-frame layout, the TaskEditFragment will notify us here directly @@ -390,16 +394,16 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList navigationDrawer.refresh(); } - } else if (requestCode == NavigationDrawerFragment.REQUEST_CUSTOM_INTENT && resultCode == RESULT_OK && data != null) { - String action = data.getAction(); - TaskListFragment tlf = getTaskListFragment(); - - if (AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) { - StoreObject storeObject = (StoreObject) data.getExtras().get(DeleteFilterActivity.TOKEN_STORE_OBJECT); - Filter filter = SavedFilter.load(storeObject); - if (tlf.getFilter().equals(filter)) { - getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); // Handle in onPostResume() + } else if (requestCode == REQUEST_EDIT_FILTER) { + if (resultCode == RESULT_OK) { + String action = data.getAction(); + if (AstridApiConstants.BROADCAST_EVENT_FILTER_RENAMED.equals(action)) { + CustomFilter customFilter = data.getParcelableExtra(FilterSettingsActivity.TOKEN_FILTER); + getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, customFilter); + } else if(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) { + getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); } + navigationDrawer.refresh(); } } @@ -432,7 +436,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList @Override public boolean onOptionsItemSelected(MenuItem item) { - TaskListFragment tlf = getTaskListFragment(); + final TaskListFragment tlf = getTaskListFragment(); switch(item.getItemId()) { case R.id.menu_voice_add: voiceInputAssistant.startVoiceRecognitionActivity(R.string.voice_create_prompt); @@ -447,6 +451,10 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList putExtra(TagViewFragment.EXTRA_TAG_DATA, getTaskListFragment().getActiveTagData()); }}, REQUEST_EDIT_TAG); return true; + case R.id.menu_filter_settings: + startActivityForResult(new Intent(this, FilterSettingsActivity.class) {{ + putExtra(FilterSettingsActivity.TOKEN_FILTER, tlf.getFilter()); + }}, REQUEST_EDIT_FILTER); default: return super.onOptionsItemSelected(item); } diff --git a/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java b/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java index 5634b308e..710918e30 100644 --- a/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java +++ b/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java @@ -108,4 +108,5 @@ public class AstridApiConstants { public static final String BROADCAST_EVENT_FILTER_DELETED = BuildConfig.APPLICATION_ID + ".FILTER_DELETED"; + public static final String BROADCAST_EVENT_FILTER_RENAMED = BuildConfig.APPLICATION_ID + ".FILTER_RENAMED"; } diff --git a/src/main/java/com/todoroo/astrid/api/CustomFilter.java b/src/main/java/com/todoroo/astrid/api/CustomFilter.java new file mode 100644 index 000000000..c3d8fbc05 --- /dev/null +++ b/src/main/java/com/todoroo/astrid/api/CustomFilter.java @@ -0,0 +1,76 @@ +package com.todoroo.astrid.api; + +import android.content.ContentValues; +import android.os.Parcel; +import android.os.Parcelable; + +import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.astrid.core.SavedFilter; +import com.todoroo.astrid.data.StoreObject; + +public class CustomFilter extends Filter { + private long id; + + private CustomFilter() { + + } + + public CustomFilter(String listingTitle, String sql, ContentValues contentValues, long id) { + super(listingTitle, sql, contentValues); + this.id = id; + } + + public StoreObject toStoreObject() { + return new StoreObject() {{ + setId(id); + setValue(SavedFilter.NAME, listingTitle); + setValue(SavedFilter.SQL, sqlQuery); + if (valuesForNewTasks != null && valuesForNewTasks.size() > 0) { + setValue(SavedFilter.VALUES, AndroidUtilities.contentValuesToSerializedString(valuesForNewTasks)); + } + }}; + } + + public long getId() { + return id; + } + + /** + * {@inheritDoc} + */ + @Override + public void writeToParcel(Parcel dest, int flags) { + super.writeToParcel(dest, flags); + dest.writeLong(id); + } + + @Override + public void readFromParcel(Parcel source) { + super.readFromParcel(source); + id = source.readLong(); + } + + /** + * Parcelable Creator Object + */ + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + + /** + * {@inheritDoc} + */ + @Override + public CustomFilter createFromParcel(Parcel source) { + CustomFilter item = new CustomFilter(); + item.readFromParcel(source); + return item; + } + + /** + * {@inheritDoc} + */ + @Override + public CustomFilter[] newArray(int size) { + return new CustomFilter[size]; + } + }; +} diff --git a/src/main/java/com/todoroo/astrid/api/Filter.java b/src/main/java/com/todoroo/astrid/api/Filter.java index e2875f642..756ea6e56 100644 --- a/src/main/java/com/todoroo/astrid/api/Filter.java +++ b/src/main/java/com/todoroo/astrid/api/Filter.java @@ -32,14 +32,6 @@ public class Filter extends FilterListItem { // --- instance variables - /** - * Expanded title of this filter. This is displayed at the top - * of the screen when user is viewing this filter. - *

- * e.g "Tasks With Notes" - */ - public String title; - /** * {@link PermaSql} query for this filter. The query will be appended to the select * statement after "SELECT fields FROM table %s". It is @@ -75,15 +67,11 @@ public class Filter extends FilterListItem { * Utility constructor for creating a Filter object * @param listingTitle * Title of this item as displayed on the lists page, e.g. Inbox - * @param title - * Expanded title of this filter when user is viewing this - * filter, e.g. Inbox (20 tasks) * @param sqlQuery * SQL query for this list (see {@link #sqlQuery} for examples). */ - public Filter(String listingTitle, String title, - QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { - this(listingTitle, title, sqlQuery == null ? null : sqlQuery.toString(), + public Filter(String listingTitle, QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { + this(listingTitle, sqlQuery == null ? null : sqlQuery.toString(), valuesForNewTasks); } @@ -91,16 +79,11 @@ public class Filter extends FilterListItem { * Utility constructor for creating a Filter object * @param listingTitle * Title of this item as displayed on the lists page, e.g. Inbox - * @param title - * Expanded title of this filter when user is viewing this - * filter, e.g. Inbox (20 tasks) * @param sqlQuery * SQL query for this list (see {@link #sqlQuery} for examples). */ - public Filter(String listingTitle, String title, - String sqlQuery, ContentValues valuesForNewTasks) { + public Filter(String listingTitle, String sqlQuery, ContentValues valuesForNewTasks) { this.listingTitle = listingTitle; - this.title = title; this.sqlQuery = sqlQuery; this.filterOverride = null; this.valuesForNewTasks = valuesForNewTasks; @@ -136,7 +119,7 @@ public class Filter extends FilterListItem { int result = 1; result = prime * result + ((sqlQuery == null) ? 0 : sqlQuery.hashCode()); - result = prime * result + ((title == null) ? 0 : title.hashCode()); + result = prime * result + ((listingTitle == null) ? 0 : listingTitle.hashCode()); return result; } @@ -159,11 +142,11 @@ public class Filter extends FilterListItem { } else if (!sqlQuery.equals(other.sqlQuery)) { return false; } - if (title == null) { - if (other.title != null) { + if (listingTitle == null) { + if (other.listingTitle != null) { return false; } - } else if (!title.equals(other.title)) { + } else if (!listingTitle.equals(other.listingTitle)) { return false; } return true; @@ -180,7 +163,6 @@ public class Filter extends FilterListItem { @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); - dest.writeString(title); dest.writeString(sqlQuery); dest.writeParcelable(valuesForNewTasks, 0); } @@ -188,7 +170,6 @@ public class Filter extends FilterListItem { @Override public void readFromParcel(Parcel source) { super.readFromParcel(source); - title = source.readString(); sqlQuery = source.readString(); valuesForNewTasks = source.readParcelable(ContentValues.class.getClassLoader()); } @@ -223,6 +204,6 @@ public class Filter extends FilterListItem { @Override public String toString() { - return title; + return listingTitle; } } diff --git a/src/main/java/com/todoroo/astrid/api/FilterListItem.java b/src/main/java/com/todoroo/astrid/api/FilterListItem.java index e6e3e1877..20524a8fd 100644 --- a/src/main/java/com/todoroo/astrid/api/FilterListItem.java +++ b/src/main/java/com/todoroo/astrid/api/FilterListItem.java @@ -5,7 +5,6 @@ */ package com.todoroo.astrid.api; -import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; @@ -18,19 +17,9 @@ import android.os.Parcelable; abstract public class FilterListItem implements Parcelable { public enum Type { - ITEM(0), - SUBHEADER(1), - SEPARATOR(2); - - private int viewType; - - Type(int viewType) { - this.viewType = viewType; - } - - public int getViewType() { - return viewType; - } + ITEM, + SUBHEADER, + SEPARATOR } public abstract Type getItemType(); @@ -42,19 +31,6 @@ abstract public class FilterListItem implements Parcelable { public int icon = 0; - /** - * Context Menu labels. The context menu will be displayed when users - * long-press on this filter list item. - */ - public String contextMenuLabels[] = new String[0]; - - /** - * Context menu intents. This intent will be started when the corresponding - * content menu label is invoked. This array must be the same size as - * the contextMenuLabels array. - */ - public Intent contextMenuIntents[] = new Intent[0]; - @Override public int describeContents() { return 0; @@ -69,10 +45,6 @@ abstract public class FilterListItem implements Parcelable { public void writeToParcel(Parcel dest, int flags) { dest.writeString(listingTitle); dest.writeInt(icon); - - // write array lengths before arrays - dest.writeStringArray(contextMenuLabels); - dest.writeTypedArray(contextMenuIntents, 0); } /** @@ -81,8 +53,5 @@ abstract public class FilterListItem implements Parcelable { public void readFromParcel(Parcel source) { listingTitle = source.readString(); icon = source.readInt(); - - contextMenuLabels = source.createStringArray(); - contextMenuIntents = source.createTypedArray(Intent.CREATOR); } } diff --git a/src/main/java/com/todoroo/astrid/api/FilterWithCustomIntent.java b/src/main/java/com/todoroo/astrid/api/FilterWithCustomIntent.java index 6fb90e607..9e85004a4 100644 --- a/src/main/java/com/todoroo/astrid/api/FilterWithCustomIntent.java +++ b/src/main/java/com/todoroo/astrid/api/FilterWithCustomIntent.java @@ -35,14 +35,12 @@ public class FilterWithCustomIntent extends Filter { super(); } - public FilterWithCustomIntent(String listingTitle, String title, - QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { - super(listingTitle, title, sqlQuery, valuesForNewTasks); + public FilterWithCustomIntent(String listingTitle, QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { + super(listingTitle, sqlQuery, valuesForNewTasks); } - public FilterWithCustomIntent(String listingTitle, String title, - String sqlQuery, ContentValues valuesForNewTasks) { - super(listingTitle, title, sqlQuery, valuesForNewTasks); + public FilterWithCustomIntent(String listingTitle, String sqlQuery, ContentValues valuesForNewTasks) { + super(listingTitle, sqlQuery, valuesForNewTasks); } public Intent getCustomIntent() { diff --git a/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java b/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java index ad6e95f2d..31b310f65 100644 --- a/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java @@ -86,7 +86,7 @@ public final class BuiltInFilterExposer { * Build inbox filter */ public static Filter getMyTasksFilter(Resources r) { - return new Filter(r.getString(R.string.BFE_Active), r.getString(R.string.BFE_Active), + return new Filter(r.getString(R.string.BFE_Active), new QueryTemplate().where( Criterion.and(TaskCriteria.activeAndVisible(), Criterion.not(Task.ID.in(Query.select(Metadata.TASK).from(Metadata.TABLE).where( @@ -100,7 +100,6 @@ public final class BuiltInFilterExposer { ContentValues todayValues = new ContentValues(); todayValues.put(Task.DUE_DATE.name, PermaSql.VALUE_NOON); return new Filter(todayTitle, - todayTitle, new QueryTemplate().where( Criterion.and(TaskCriteria.activeAndVisible(), Task.DUE_DATE.gt(0), @@ -110,7 +109,6 @@ public final class BuiltInFilterExposer { private static Filter getRecentlyModifiedFilter(Resources r) { return new Filter(r.getString(R.string.BFE_Recent), - r.getString(R.string.BFE_Recent), new QueryTemplate().where( Criterion.all).orderBy( Order.desc(Task.MODIFICATION_DATE)).limit(15), @@ -119,7 +117,6 @@ public final class BuiltInFilterExposer { private static Filter getUncategorizedFilter(Resources r) { return new Filter(r.getString(R.string.tag_FEx_untagged), - r.getString(R.string.tag_FEx_untagged), new QueryTemplate().where(Criterion.and( Criterion.not(Task.UUID.in(Query.select(TaskToTagMetadata.TASK_UUID).from(Metadata.TABLE) .where(Criterion.and(MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY), Metadata.DELETION_DATE.eq(0))))), diff --git a/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java b/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java index e78f02fa9..380071e35 100644 --- a/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java +++ b/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java @@ -35,6 +35,7 @@ import com.todoroo.andlib.sql.UnaryCriterion; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.api.AstridApiConstants; +import com.todoroo.astrid.api.CustomFilter; import com.todoroo.astrid.api.CustomFilterCriterion; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.MultipleSelectCriterion; @@ -43,6 +44,7 @@ import com.todoroo.astrid.api.TextInputCriterion; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; +import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.data.Task; import org.slf4j.Logger; @@ -417,17 +419,18 @@ public class CustomFilterActivity extends InjectingAppCompatActivity { } String title; + StoreObject storeObject = null; if(filterName.getText().length() > 0) { // persist saved filter title = filterName.getText().toString().trim(); - SavedFilter.persist(storeObjectDao, adapter, title, sql.toString(), values); + storeObject = SavedFilter.persist(storeObjectDao, adapter, title, sql.toString(), values); } else { // temporary title = suggestedTitle.toString(); } // view - Filter filter = new Filter(title, title, sql.toString(), values); + Filter filter = new CustomFilter(title, sql.toString(), values, storeObject == null ? -1L : storeObject.getId()); setResult(RESULT_OK, new Intent().putExtra(TagSettingsActivity.TOKEN_NEW_FILTER, filter)); finish(); } diff --git a/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java b/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java index 507bbaf43..5ad74e979 100644 --- a/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java @@ -5,16 +5,13 @@ */ package com.todoroo.astrid.core; -import android.content.Context; -import android.content.Intent; - import com.todoroo.andlib.data.Callback; +import com.todoroo.astrid.api.CustomFilter; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.data.StoreObject; import org.tasks.R; -import org.tasks.injection.ForApplication; import org.tasks.preferences.ResourceResolver; import java.util.ArrayList; @@ -22,24 +19,14 @@ import java.util.List; import javax.inject.Inject; -/** - * Exposes Astrid's built in filters to the NavigationDrawerFragment - * - * @author Tim Su - * - */ public final class CustomFilterExposer { - static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$ - private final StoreObjectDao storeObjectDao; private ResourceResolver resourceResolver; - private final Context context; @Inject - public CustomFilterExposer(ResourceResolver resourceResolver, @ForApplication Context context, StoreObjectDao storeObjectDao) { + public CustomFilterExposer(ResourceResolver resourceResolver, StoreObjectDao storeObjectDao) { this.resourceResolver = resourceResolver; - this.context = context; this.storeObjectDao = storeObjectDao; } @@ -51,14 +38,9 @@ public final class CustomFilterExposer { storeObjectDao.getSavedFilters(new Callback() { @Override public void apply(StoreObject savedFilter) { - Filter f = SavedFilter.load(savedFilter); + CustomFilter f = SavedFilter.load(savedFilter); f.icon = filter; - Intent deleteIntent = new Intent(context, DeleteFilterActivity.class); - deleteIntent.putExtra(TOKEN_FILTER_ID, savedFilter.getId()); - f.contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) }; - f.contextMenuIntents = new Intent[] { deleteIntent }; list.add(f); - } }); diff --git a/src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java b/src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java deleted file mode 100644 index d55e7eda0..000000000 --- a/src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.todoroo.astrid.core; - -import android.content.DialogInterface; -import android.content.Intent; -import android.os.Bundle; - -import com.todoroo.andlib.utility.DialogUtilities; -import com.todoroo.astrid.api.AstridApiConstants; -import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.dao.StoreObjectDao; -import com.todoroo.astrid.data.StoreObject; - -import org.tasks.R; -import org.tasks.injection.InjectingActivity; - -import javax.inject.Inject; - -/** - * Simple activity for deleting stuff - * - * @author Tim Su - */ -public class DeleteFilterActivity extends InjectingActivity { - - public static final String TOKEN_STORE_OBJECT = "store_object"; - - @Inject StoreObjectDao storeObjectDao; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - final long id = getIntent().getLongExtra(CustomFilterExposer.TOKEN_FILTER_ID, -1); - if (id == -1) { - finish(); - return; - } - final StoreObject storeObject = storeObjectDao.getById(id); - final Filter filter = SavedFilter.load(storeObject); - final String name = filter.title; - - DialogUtilities.okCancelDialog(this, - getString(R.string.DLG_delete_this_item_question, name), - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - storeObjectDao.delete(id); - setResult(RESULT_OK, new Intent(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED) {{ - putExtra(TOKEN_STORE_OBJECT, storeObject); - }}); - finish(); - } - }, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - setResult(RESULT_CANCELED); - finish(); - } - }); - } -} diff --git a/src/main/java/com/todoroo/astrid/core/SavedFilter.java b/src/main/java/com/todoroo/astrid/core/SavedFilter.java index 95abf8d69..fb14fe431 100644 --- a/src/main/java/com/todoroo/astrid/core/SavedFilter.java +++ b/src/main/java/com/todoroo/astrid/core/SavedFilter.java @@ -10,6 +10,7 @@ import android.text.TextUtils; import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.astrid.api.CustomFilter; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.core.CustomFilterActivity.CriterionInstance; import com.todoroo.astrid.dao.StoreObjectDao; @@ -47,11 +48,11 @@ public class SavedFilter { /** * Save a filter */ - public static void persist(StoreObjectDao dao, CustomFilterAdapter adapter, String title, + public static StoreObject persist(StoreObjectDao dao, CustomFilterAdapter adapter, String title, String sql, ContentValues values) { if(title == null || title.length() == 0) { - return; + return null; } // if filter of this name exists, edit it @@ -74,7 +75,11 @@ public class SavedFilter { String filters = serializeFilters(adapter); storeObject.setValue(FILTERS, filters); - dao.persist(storeObject); + if (dao.persist(storeObject)) { + return storeObject; + } + + return null; } /** @@ -110,7 +115,7 @@ public class SavedFilter { /** * Read filter from store */ - public static Filter load(StoreObject savedFilter) { + public static CustomFilter load(StoreObject savedFilter) { String title = savedFilter.getValue(NAME); String sql = savedFilter.getValue(SQL); String values = savedFilter.getValue(VALUES); @@ -122,7 +127,7 @@ public class SavedFilter { sql = sql.replace("tasks.userId=0", "1"); // TODO: replace dirty hack for missing column - return new Filter(title, title, sql, contentValues); + return new CustomFilter(title, sql, contentValues, savedFilter.getId()); } } diff --git a/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java b/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java index fdb695175..319d55002 100644 --- a/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java +++ b/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java @@ -57,14 +57,18 @@ public class StoreObjectDao { })); } - public void persist(StoreObject storeObject) { - dao.persist(storeObject); + public boolean persist(StoreObject storeObject) { + return dao.persist(storeObject); } public void persist(GtasksList list) { persist(list.getStoreObject()); } + public void update(StoreObject storeObject) { + dao.saveExisting(storeObject); + } + public List getByType(String type) { return dao.toList(select(StoreObject.PROPERTIES) .where(StoreObject.TYPE.eq(type))); diff --git a/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java index c3a8ee354..22581498a 100644 --- a/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java @@ -84,7 +84,7 @@ public class GtasksFilterExposer { values.put(GtasksMetadata.LIST_ID.name, list.getRemoteId()); values.put(GtasksMetadata.ORDER.name, PermaSql.VALUE_NOW); FilterWithCustomIntent filter = new FilterWithCustomIntent(listName, - listName, new QueryTemplate().join( + new QueryTemplate().join( Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and( MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), TaskCriteria.notDeleted(), diff --git a/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java b/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java index 327265a70..63b68ae43 100644 --- a/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java @@ -74,9 +74,7 @@ public class TagFilterExposer { contentValues.put(TaskToTagMetadata.TAG_NAME.name, tag.getName()); contentValues.put(TaskToTagMetadata.TAG_UUID.name, tag.getUuid()); - FilterWithCustomIntent filter = new FilterWithCustomIntent(tag.getName(), - title, tagTemplate, - contentValues); + FilterWithCustomIntent filter = new FilterWithCustomIntent(title, tagTemplate, contentValues); filter.customTaskList = new ComponentName(context, TagViewFragment.class); Bundle extras = new Bundle(); diff --git a/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java b/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java index ff3dab8cc..ccd7daa0f 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java @@ -55,7 +55,6 @@ public final class TimerFilterExposer { ContentValues values = new ContentValues(); values.put(Task.TIMER_START.name, Filter.VALUE_NOW); return new Filter(r.getString(R.string.TFE_workingOn), - r.getString(R.string.TFE_workingOn), new QueryTemplate().where(Task.TIMER_START.gt(0)), values); } diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java index 1e261fc94..d86036b73 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java @@ -158,7 +158,7 @@ public class WidgetConfigActivity extends InjectingListActivity { if(values != null) { contentValuesString = AndroidUtilities.contentValuesToSerializedString(values); } - title = ((Filter)filterListItem).title; + title = ((Filter)filterListItem).listingTitle; } preferences.setString(WidgetConfigActivity.PREF_TITLE + mAppWidgetId, title); diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java index 60a32c787..9c119085c 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -119,7 +119,7 @@ public class WidgetUpdateService extends InjectingService { if (filter.isTagFilter()) { ((FilterWithCustomIntent) filter).customTaskList = new ComponentName(context, TagViewFragment.class); // In case legacy widget was created with subtasks fragment } - views.setTextViewText(R.id.widget_title, filter.title); + views.setTextViewText(R.id.widget_title, filter.listingTitle); views.removeAllViews(R.id.taskbody); int flags = preferences.getSortFlags(); diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java index 511218900..f7342c414 100644 --- a/src/main/java/org/tasks/injection/ActivityModule.java +++ b/src/main/java/org/tasks/injection/ActivityModule.java @@ -2,6 +2,7 @@ package org.tasks.injection; import android.app.Activity; +import com.todoroo.astrid.actfm.FilterSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.activity.BeastModePreferences; import com.todoroo.astrid.activity.FilterShortcutActivity; @@ -11,7 +12,6 @@ import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.calls.MissedCallActivity; import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.DefaultsPreferences; -import com.todoroo.astrid.core.DeleteFilterActivity; import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.files.AACRecordingActivity; import com.todoroo.astrid.gcal.CalendarAlarmListCreator; @@ -51,10 +51,10 @@ import dagger.Provides; TaskEditActivity.class, ShareLinkActivity.class, TagSettingsActivity.class, + FilterSettingsActivity.class, CustomFilterActivity.class, MissedCallActivity.class, CalendarAlarmListCreator.class, - DeleteFilterActivity.class, CalendarReminderActivity.class, VoiceCommandActivity.class, GtasksLoginActivity.class, diff --git a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index 18bdbac33..f06200e18 100644 --- a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -9,17 +9,13 @@ import android.graphics.Rect; import android.os.Bundle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; -import android.view.ContextMenu; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import com.todoroo.astrid.actfm.TagSettingsActivity; -import com.todoroo.astrid.activity.AstridActivity; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.adapter.FilterAdapter; @@ -51,9 +47,6 @@ public class NavigationDrawerFragment extends InjectingFragment { public static final String TOKEN_LAST_SELECTED = "lastSelected"; //$NON-NLS-1$ - private static final int CONTEXT_MENU_INTENT = Menu.FIRST + 4; - - public static final int REQUEST_CUSTOM_INTENT = 10; public static final int REQUEST_NEW_LIST = 4; public FilterAdapter adapter = null; @@ -229,30 +222,6 @@ public class NavigationDrawerFragment extends InjectingFragment { outState.putInt(TOKEN_LAST_SELECTED, mCurrentSelectedPosition); } - @Override - public boolean onContextItemSelected(android.view.MenuItem item) { - // called when context menu appears - return onOptionsItemSelected(item); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case CONTEXT_MENU_INTENT: { - Intent intent = item.getIntent(); - getActivity().startActivityForResult(intent, REQUEST_CUSTOM_INTENT); - return true; - } - default: { - TaskListFragment tasklist = (TaskListFragment) getActivity().getSupportFragmentManager().findFragmentByTag(TaskListFragment.TAG_TASKLIST_FRAGMENT); - if (tasklist != null && tasklist.isInLayout()) { - return tasklist.onOptionsItemSelected(item); - } - } - } - return false; - } - public void closeMenu() { if (mDrawerLayout != null) { mDrawerLayout.closeDrawer(mFragmentContainerView); @@ -281,27 +250,6 @@ public class NavigationDrawerFragment extends InjectingFragment { adapter.populateList(); } - @Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { - AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; - - FilterListItem item = adapter.getItem(info.position); - - if (item instanceof Filter) { - for (int i = 0; i < item.contextMenuLabels.length; i++) { - if (item.contextMenuIntents.length <= i) { - break; - } - MenuItem menuItem = menu.add(0, CONTEXT_MENU_INTENT, 0, item.contextMenuLabels[i]); - menuItem.setIntent(item.contextMenuIntents[i]); - } - - if (menu.size() > 0) { - menu.setHeaderTitle(item.listingTitle); - } - } - } - @Override public void onResume() { super.onResume(); diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index 586418bed..b2ed2100f 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -77,7 +77,7 @@ public class WidgetHelper { remoteViews.setInt(R.id.list_view, "setBackgroundColor", android.R.color.transparent); remoteViews.setInt(R.id.empty_view, "setBackgroundColor", android.R.color.transparent); } - remoteViews.setTextViewText(R.id.widget_title, filter.title); + remoteViews.setTextViewText(R.id.widget_title, filter.listingTitle); remoteViews.setRemoteAdapter(R.id.list_view, rvIntent); remoteViews.setEmptyView(R.id.list_view, R.id.empty_view); PendingIntent listIntent = getListIntent(context, filter, id); @@ -148,7 +148,7 @@ public class WidgetHelper { } String title = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId); if (title != null) { - filter.title = title; + filter.listingTitle = title; } String contentValues = preferences.getStringValue(WidgetConfigActivity.PREF_VALUES + widgetId); if (contentValues != null) { @@ -159,7 +159,7 @@ public class WidgetHelper { + widgetId); if (customComponent != null) { ComponentName component = ComponentName.unflattenFromString(customComponent); - filter = new FilterWithCustomIntent(filter.title, filter.title, filter.getSqlQuery(), filter.valuesForNewTasks); + filter = new FilterWithCustomIntent(filter.listingTitle, filter.getSqlQuery(), filter.valuesForNewTasks); ((FilterWithCustomIntent) filter).customTaskList = component; String serializedExtras = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_EXTRAS + widgetId); @@ -171,10 +171,10 @@ public class WidgetHelper { TagData tagData; if (id > 0) { tagData = tagDataDao.fetch(id, TagData.ID, TagData.NAME, TagData.UUID); - if (tagData != null && !tagData.getName().equals(filter.title)) { // Tag has been renamed; rebuild filter + if (tagData != null && !tagData.getName().equals(filter.listingTitle)) { // Tag has been renamed; rebuild filter filter = TagFilterExposer.filterFromTagData(context, tagData); preferences.setString(WidgetConfigActivity.PREF_SQL + widgetId, filter.getSqlQuery()); - preferences.setString(WidgetConfigActivity.PREF_TITLE + widgetId, filter.title); + preferences.setString(WidgetConfigActivity.PREF_TITLE + widgetId, filter.listingTitle); ContentValues newTaskValues = filter.valuesForNewTasks; String contentValuesString = null; if (newTaskValues != null) { @@ -190,7 +190,7 @@ public class WidgetHelper { } } } else { - tagData = tagDataDao.getTagByName(filter.title, TagData.ID); + tagData = tagDataDao.getTagByName(filter.listingTitle, TagData.ID); if (tagData != null) { preferences.setLong(WidgetConfigActivity.PREF_TAG_ID + widgetId, tagData.getId()); } diff --git a/src/main/res/menu/task_list_activity.xml b/src/main/res/menu/task_list_activity.xml index 54bd74010..4ba57814c 100644 --- a/src/main/res/menu/task_list_activity.xml +++ b/src/main/res/menu/task_list_activity.xml @@ -1,32 +1,37 @@

+ xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="ifRoom"/> + app:showAsAction="ifRoom|collapseActionView" + app:actionViewClass="android.support.v7.widget.SearchView"/> + app:showAsAction="ifRoom" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + \ No newline at end of file diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml index 38931cbc4..9650719ba 100644 --- a/src/main/res/values-ar/strings.xml +++ b/src/main/res/values-ar/strings.xml @@ -145,7 +145,6 @@ مهامي ما تم تعديله مؤخرا - حذف الفلتر مهام نشطة أو ليس diff --git a/src/main/res/values-bg-rBG/strings.xml b/src/main/res/values-bg-rBG/strings.xml index 201510c5e..cbff97a4f 100644 --- a/src/main/res/values-bg-rBG/strings.xml +++ b/src/main/res/values-bg-rBG/strings.xml @@ -31,7 +31,6 @@ Tasks Разрешение създаване на нови задачи, редактиране на съществуващи задачи Изтриване на тази задача? - Изтриване на този елемент: %s? Обновяване на твоите задачи... Време (часове: минути) Върни @@ -221,7 +220,6 @@ Моите задачи Наскоро променени - Изтрий филътр Именувайте този филтър, за да го запазите... Активни Задачи или diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml index 35d8c5ed7..c8aaa1cdb 100644 --- a/src/main/res/values-ca/strings.xml +++ b/src/main/res/values-ca/strings.xml @@ -26,7 +26,6 @@ Permís de l\'Tasks crear noves tasques, editar tasques existents Voleu suprimir aquesta tasca? - Voleu suprimir aquest element: %s? S\'estan actualitzant les vostres tasques... Temps (hores : minuts) Desfés @@ -131,7 +130,6 @@ Tasques actives Modificades fa poc - Esborra el filtre Dona nom al filtre per desar-lo... Tasques actives o diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index 2921c5ce3..be98b5d4d 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -28,7 +28,6 @@ Tasks Práva vytvořit nové úkoly, upravit existující úkoly Smazat tento úkol? - Smazat tuto položku: %s? Obnovování vašich úkolů... Čas (hodin : minut) Vrátit změny @@ -208,7 +207,6 @@ Aktivní úkoly Nedávno upravené - Smazat filtr Pojmenujte tento filtr pro jeho uložení Aktivní úkoly nebo diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml index 504e3a5b5..7b6f20db0 100644 --- a/src/main/res/values-da/strings.xml +++ b/src/main/res/values-da/strings.xml @@ -28,7 +28,6 @@ Tasks Tilladelser opret nye opgaver, rediger eksisterende opgaver Slet denne opgave? - Slet dette element: %s? Opgraderer dine opgaver... Tid (timer : minutter) Tryk for at indstille @@ -110,7 +109,6 @@ Aktive opgaver Senest ændrede - Slet filter Navngiv dette filter for at gemme det... Aktive opgaver eller diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 689943f42..4e1fbaf0c 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -27,7 +27,6 @@ Tasks Zugriffsrechte Aufgaben erstellen, existierende Aufgaben bearbeiten Diese Aufgabe löschen? - Dieses Element löschen: %s? Ihre Aufgaben werden aktualisiert … Zeit (Stunden : Minuten) Rückgängig @@ -215,7 +214,6 @@ Meine Aufgaben Kürzlich bearbeitet - Filter löschen Benennen Sie den Filter, um ihn zu speichern … Aktuelle Aufgaben oder diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml index b573d9a4e..b512c8ecb 100644 --- a/src/main/res/values-el/strings.xml +++ b/src/main/res/values-el/strings.xml @@ -30,7 +30,6 @@ Άδεια Εργασιών δημιουργία νέων εργασιών, επεξεργασία εργασιών Διαγραφή εργασίας; - Διαγραφή του αντικειμένου: %s? Αναβάθμιση των εργασιών σας... Ώρα (ώρες : λεπτά) Αναίρεση @@ -211,7 +210,6 @@ Όταν λήξει Στην λήξη η και μετά - Διαγραφή φίλτρου ή μή επίσης diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 09c2fa312..d17267d49 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -28,7 +28,6 @@ Permisos de Tasks crear nuevas tareas, editar tareas existentes ¿Borrar esta tarea? - ¿Eliminar este elemento: %s? Actualizando sus tareas.... Tiempo (horas : minutos) Deshacer @@ -215,7 +214,6 @@ Mis Tareas Recién modificadas - Borrar filtro Da nombre al filtro para grabarlo... Tareas activas o diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index 2519c6c42..39014dc15 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -28,7 +28,6 @@ Permission d\'Tasks créer de nouvelles tâches, modifier les tâches existantes Supprimer cette tâche ? - Effacer cet élément: %s Mise à jour de vos tâches… Temps (heures : minutes) Annuler Action @@ -212,7 +211,6 @@ Mes tâches Récemment modifié - Supprimer le filtre Donnez un nom à ce filtre pour le sauver... Tâches actives ou diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index d5b3a2c88..728b2f61b 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -28,7 +28,6 @@ Permessi Tasks crea nuove attività, modifica le attività esistenti Eliminare questa attività? - Cancella questo articolo: %s? Aggiornare le attività ... Tempo (ore : minuti) Annulla l\'ultima azione @@ -191,7 +190,6 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat Le mie attività Modificate di recente - Cancella Filtro Dai un nome al filtro per salvarlo... Attività in corso o diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml index 7abfd98cf..6b8a461d8 100644 --- a/src/main/res/values-iw/strings.xml +++ b/src/main/res/values-iw/strings.xml @@ -28,7 +28,6 @@ הרשאות אסטריד יצירת משימות חדשות, עריכת משימות קיימות. למחוק משימה זו? - למחוק את %s? משדרגת את משימותיך... זמן (שעות : דקות) בטל פעולה אחרונה @@ -211,7 +210,6 @@ המשימות שלי עודכנו לאחרונה - מַחֲקִי מַסְנֵן בחר שם לַמַּסְנֵן כדי לשמור אותו... משימות פעילות או diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 014574375..e16e80d71 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -28,7 +28,6 @@ タスクの読み込み タスクの作成、編集 このタスクを削除しますか? - 項目 %s を削除しますか? タスクを更新しています 時間 (時:分) 動作を取り消す @@ -219,7 +218,6 @@ 私のタスク 最近編集したタスク - フィルタの削除 フィルタの名称 進行中のタスク または diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml index 862f2d480..499968959 100644 --- a/src/main/res/values-ko/strings.xml +++ b/src/main/res/values-ko/strings.xml @@ -31,7 +31,6 @@ Tasks 권한 새 일정 생성하기, 기존 일정 편집하기 이 일정을 삭제할까요? - 이 항목을 삭제할까요: %s? 일정 업그레이드 중... 시간 (시 : 분) 실행 취소 @@ -222,7 +221,6 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다. 나의 일정 최근에 수정한 일정 - 필터 삭제 저장할 필터 이름을 정하세요... 실행중인 일정 또는 diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml index 727aa496c..793b78766 100644 --- a/src/main/res/values-nb/strings.xml +++ b/src/main/res/values-nb/strings.xml @@ -23,7 +23,6 @@ Tasks Tillatelse opprett nye oppgaver, rediger eksisterende oppgaver Slett denne oppgaven? - Slett følgende: %s? Oppgraderer oppgavene dine... Tid (timer : minutter) Klikk for å sette @@ -104,7 +103,6 @@ Aktive oppgaver Nylig endret - Slett filter Lagre dette filteret ved å gi det et navn... Aktive oppgaver eller diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml index a6c0a0687..f47cbb4af 100644 --- a/src/main/res/values-nl/strings.xml +++ b/src/main/res/values-nl/strings.xml @@ -28,7 +28,6 @@ Taak toestemmingen nieuwe taken maken, bestaande wijzigen Taak verwijderen? - Dit item verwijderen: %s? Taken bijwerken... Tijd (uren : minuten) Ongedaan Maken @@ -212,7 +211,6 @@ Mijn taken Onlangs aangepast - Filter verwijderen Naam geven om op te slaan... Actieve taken of diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 843524d83..82b053d1a 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -28,7 +28,6 @@ Zezwolenia Tasks twórz nowe zadania, edytuj bieżące zadania Usunąć to zadanie? - Usunąć element: %s? Uaktualniam Twoje zadania... Czas (godziny : minuty) Cofnij @@ -214,7 +213,6 @@ i odzyskanie zadań z kopi zapasowej (Settings->Sync and backup->Backup-&g Moje zadania Niedawno zmodyfikowane - Usuń filtr Nazwij filtr w celu zapisania... Aktywne zadania albo diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 3b9ec7572..f24ddc88e 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -27,7 +27,6 @@ Permissões do Tasks criar novas tarefas, editar tarefas existentes Excluir esta tarefa? - Excluir este item: %s? Atualizando suas tarefas... Horário (horas:minutos) Desfazer @@ -210,7 +209,6 @@ Minhas Tarefas Modificadas recentemente - Excluir Filtro Nome do filtro a salvar... Tarefas ativas OU diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index d4c61c879..383ae3067 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -30,7 +30,6 @@ Permissões do Tasks criar novas tarefas, editar tarefas existentes Remover esta tarefa? - Remover este item: %s? Atualização de tarefas... Tempo (horas:minutos) Anular @@ -220,7 +219,6 @@ das tarefas através de um backup em Definições->Sincronização e backup-& Minhas tarefas Alteradas recentemente - Eliminar filtro Nome do filtro... Tarefas ativas ou diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 7c116f825..733c69220 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -28,7 +28,6 @@ Право Tasks создание новых и редактирование существующих задач Удалить эту задачу? - Удалить этот элемент: %s? Обновление ваших задач… Время (час : мин) Отмена @@ -219,7 +218,6 @@ Мои задачи Недавно изменённые - Удалить фильтр Задайте имя фильтра для его сохранения… Активные задачи или diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml index 24d6c35de..065b83fc0 100644 --- a/src/main/res/values-sk/strings.xml +++ b/src/main/res/values-sk/strings.xml @@ -28,7 +28,6 @@ Tasks povolenia Vytvoriť nové úlohy, upraviť existujúce úlohy Vymazať túto úlohu? - Vymazať túto položku: %s? Aktualizácia tvojich úloh... Čas (hodiny : minúty) Späť @@ -217,7 +216,6 @@ Moje úlohy Naposledy upravené - Vymazať filter Pomenuj tento filter pre uloženie Aktívne úlohy alebo diff --git a/src/main/res/values-sl-rSI/strings.xml b/src/main/res/values-sl-rSI/strings.xml index f36a8322b..393132965 100644 --- a/src/main/res/values-sl-rSI/strings.xml +++ b/src/main/res/values-sl-rSI/strings.xml @@ -31,7 +31,6 @@ Dovoljenje Opravkom ustvari nove opravke, uredi obstoječe opravke Zbrišem ta opravek? - Zbrišem ta predmet: %s? Nadgrajujem tvoje opravke... Čas (ure : minute) Razveljavi @@ -214,7 +213,6 @@ Moji Opravki Nedavno spremenjeno - Zbriši filter Poimenuj ta filter, da se shrani. Aktivni Opravki na dan diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml index 52504536b..ebd8e9b42 100644 --- a/src/main/res/values-sv/strings.xml +++ b/src/main/res/values-sv/strings.xml @@ -28,7 +28,6 @@ Tasks Tillstånd skapa nya uppgifter, redigera existerande uppgifter Radera denna uppgift? - Radera följande: %s? Uppgraderar dina uppgifter... Tid (timmar : minuter) Ångra @@ -210,7 +209,6 @@ och återställer dina aktuella uppgifter från en backup Mina Uppgifter Nyligen ändrade - Radera filter Spara detta filter genom att ge det ett namn Aktiva uppgifter eller diff --git a/src/main/res/values-th/strings.xml b/src/main/res/values-th/strings.xml index e2f4b1a3b..166bc9975 100644 --- a/src/main/res/values-th/strings.xml +++ b/src/main/res/values-th/strings.xml @@ -17,7 +17,6 @@ อ่านแผนงาน, แสดงตัวกรองแผนงาน สร้างแผนงานใหม่, แก้ไขแผนงานเดิม ลบงานนี้? - ลบรายการนี้: %s? เวลา (ชั่วโมง : นาที) คลิก เพื่อตั้งค่า ไม่มีแผนงานใดๆ ! @@ -67,7 +66,6 @@ แผนงานตอนนี้ เพิ่งถูกแก้ไข - ลบตัวกรอง ตั้งชื่อตัวกรองเพื่อบันทึก... แผนงานตอนนี้ หรือ diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml index 0a097df7f..8832d0634 100644 --- a/src/main/res/values-tr/strings.xml +++ b/src/main/res/values-tr/strings.xml @@ -28,7 +28,6 @@ Tasks İzni yeni görevler oluştur, mevcut görevleri düzenle Bu görev silinsin mi? - Öğe silinsin mi: %s? Görevleriniz güncelleniyor... Zaman (saat : dakika) Geri al @@ -190,7 +189,6 @@ Son tarihte ya da aşıldığında Yakında Değiştirilenler - Süzgeci Sil Süzgeci kaydetmek için ad yazın... Etkin Görevler ya da diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index b7a996ec5..da20a59e6 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -31,7 +31,6 @@ Дозволи Tasks створення нових завдань, редагування існуючих завдань Видалити цю задачу? - Видалити цей пункт: %s? Оновлення ваших завдань... Час (години : хвилини) Відмінити @@ -219,7 +218,6 @@ Мої завдання Недавно змінені - Видалити фільтр Задайте ім\'я фільтра для його збереження ... Активні завдання або diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index a86798c7e..1812fe0ca 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -28,7 +28,6 @@ 清单小助理权限 创建新任务,修改现有任务 确认删除? - 删除此项目:%s? 升级您的任务... 时间(小时:分钟) 撤消 @@ -170,7 +169,6 @@ 截止期限或过期时 最近修改过的 - 删除筛选 命名筛选并保存... 进行中的任务 diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index a8a94c1fb..71ecae184 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -28,7 +28,6 @@ Tasks 權限 建立新工作, 修改現行工作 確認刪除? - 刪除此項目: %s? 升級您的工作... 時間 (小時:分鐘) 撤消 @@ -201,7 +200,6 @@ 我的工作 最近修改過 - 刪除篩選 命名篩選並儲存... 進行中的工作 diff --git a/src/main/res/values/strings-core.xml b/src/main/res/values/strings-core.xml index 68f2e55fb..e2b5a61f9 100644 --- a/src/main/res/values/strings-core.xml +++ b/src/main/res/values/strings-core.xml @@ -20,9 +20,6 @@ Delete this task? - - Delete this item: %s? - Upgrading your tasks... diff --git a/src/main/res/values/strings-filters.xml b/src/main/res/values/strings-filters.xml index 0e49dfbfc..4c7668c3e 100644 --- a/src/main/res/values/strings-filters.xml +++ b/src/main/res/values/strings-filters.xml @@ -9,9 +9,6 @@ Recently Modified - - Delete Filter - diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index dd3b9791e..3e4478274 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -119,6 +119,7 @@ Discard Tag Settings Delete + Filter Settings