Add FilterSettingsActivity

Removed remaining nav drawer context item
pull/281/head
Alex Baker 9 years ago
parent 9ef29ae303
commit f99bea58a9

@ -347,10 +347,6 @@
android:name="com.todoroo.astrid.core.CustomFilterActivity" android:name="com.todoroo.astrid.core.CustomFilterActivity"
android:theme="@style/Tasks.Dialog"/> android:theme="@style/Tasks.Dialog"/>
<activity
android:name="com.todoroo.astrid.core.DeleteFilterActivity"
android:theme="@style/Tasks.Dialog" />
<!-- alarms --> <!-- alarms -->
<receiver android:name="com.todoroo.astrid.alarms.AlarmTaskRepeatListener"> <receiver android:name="com.todoroo.astrid.alarms.AlarmTaskRepeatListener">
<intent-filter> <intent-filter>
@ -369,6 +365,10 @@
android:name="com.todoroo.astrid.actfm.TagSettingsActivity" android:name="com.todoroo.astrid.actfm.TagSettingsActivity"
android:windowSoftInputMode="stateHidden" /> android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.todoroo.astrid.actfm.FilterSettingsActivity"
android:windowSoftInputMode="stateHidden" />
<!-- gtasks --> <!-- gtasks -->
<activity <activity
android:name="com.todoroo.astrid.gtasks.auth.GtasksLoginActivity" android:name="com.todoroo.astrid.gtasks.auth.GtasksLoginActivity"

@ -0,0 +1,162 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.actfm;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.dao.StoreObjectDao;
import org.tasks.R;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
import static android.text.TextUtils.isEmpty;
public class FilterSettingsActivity extends InjectingAppCompatActivity {
public static final String TOKEN_FILTER = "token_filter";
private CustomFilter filter;
@Inject ActivityPreferences preferences;
@Inject StoreObjectDao storeObjectDao;
@InjectView(R.id.tag_name) EditText filterName;
@InjectView(R.id.toolbar) Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preferences.applyThemeAndStatusBarColor();
setContentView(R.layout.tag_settings_activity);
ButterKnife.inject(this);
filter = getIntent().getParcelableExtra(TOKEN_FILTER);
setSupportActionBar(toolbar);
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp);
supportActionBar.setTitle(filter.listingTitle);
}
filterName.setText(filter.listingTitle);
}
private void save() {
String oldName = filter.listingTitle;
String newName = filterName.getText().toString().trim();
if (isEmpty(newName)) {
return;
}
boolean nameChanged = !oldName.equals(newName);
if (nameChanged) {
filter.listingTitle = newName;
storeObjectDao.update(filter.toStoreObject());
setResult(RESULT_OK, new Intent(AstridApiConstants.BROADCAST_EVENT_FILTER_RENAMED).putExtra(TOKEN_FILTER, filter));
}
finish();
}
@Override
public void finish() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(filterName.getWindowToken(), 0);
super.finish();
AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_right_in, R.anim.slide_right_out);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tag_settings_activity, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public void onBackPressed() {
discard();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
discard();
break;
case R.id.menu_save:
save();
break;
case R.id.delete:
deleteTag();
break;
}
return super.onOptionsItemSelected(item);
}
private void deleteTag() {
new AlertDialog.Builder(this, R.style.Tasks_Dialog)
.setMessage(getString(R.string.delete_tag_confirmation, filter.listingTitle))
.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
storeObjectDao.delete(filter.getId());
setResult(RESULT_OK, new Intent(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED).putExtra(TOKEN_FILTER, filter));
finish();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
private void discard() {
String tagName = this.filterName.getText().toString().trim();
if (filter.listingTitle.equals(tagName)) {
finish();
} else {
new AlertDialog.Builder(this, R.style.Tasks_Dialog)
.setMessage(R.string.discard_changes)
.setPositiveButton(R.string.discard, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
}
}

@ -135,7 +135,7 @@ public class TagViewFragment extends TaskListFragment {
extras.putParcelable(TOKEN_FILTER, filter); extras.putParcelable(TOKEN_FILTER, filter);
Activity activity = getActivity(); Activity activity = getActivity();
if (activity instanceof TaskListActivity) { if (activity instanceof TaskListActivity) {
((TaskListActivity) activity).setListsTitle(filter.title); ((TaskListActivity) activity).setListsTitle(filter.listingTitle);
NavigationDrawerFragment navigationDrawer = ((TaskListActivity) activity).getNavigationDrawerFragment(); NavigationDrawerFragment navigationDrawer = ((TaskListActivity) activity).getNavigationDrawerFragment();
if (navigationDrawer != null) { if (navigationDrawer != null) {
navigationDrawer.clear(); navigationDrawer.clear();

@ -67,7 +67,7 @@ public class FilterShortcutActivity extends InjectingListActivity {
Bitmap bitmap = superImposeListIcon(FilterShortcutActivity.this); Bitmap bitmap = superImposeListIcon(FilterShortcutActivity.this);
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, filter.title); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, filter.listingTitle);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
setResult(RESULT_OK, intent); setResult(RESULT_OK, intent);

@ -123,7 +123,7 @@ public class ShortcutActivity extends Activity {
Filter filter; Filter filter;
if (extras.containsKey(TOKEN_CUSTOM_CLASS)) { if (extras.containsKey(TOKEN_CUSTOM_CLASS)) {
filter = new FilterWithCustomIntent(title, title, sql, values); filter = new FilterWithCustomIntent(title, sql, values);
Bundle customExtras = new Bundle(); Bundle customExtras = new Bundle();
Set<String> keys = extras.keySet(); Set<String> keys = extras.keySet();
for (String key : keys) { for (String key : keys) {
@ -135,11 +135,11 @@ public class ShortcutActivity extends Activity {
((FilterWithCustomIntent) filter).customExtras = customExtras; // Something ((FilterWithCustomIntent) filter).customExtras = customExtras; // Something
((FilterWithCustomIntent) filter).customTaskList = ComponentName.unflattenFromString(extras.getString(TOKEN_CUSTOM_CLASS)); ((FilterWithCustomIntent) filter).customTaskList = ComponentName.unflattenFromString(extras.getString(TOKEN_CUSTOM_CLASS));
} else { } else {
filter = new Filter(title, title, sql, values); filter = new Filter(title, sql, values);
} }
taskListIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); taskListIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter);
} else if(extras != null && extras.containsKey(TOKEN_SINGLE_TASK)) { } 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); new QueryTemplate().where(Task.ID.eq(extras.getLong(TOKEN_SINGLE_TASK, -1))), null);
taskListIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); taskListIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@ -164,7 +164,7 @@ public class ShortcutActivity extends Activity {
shortcutIntent.setAction(Intent.ACTION_VIEW); shortcutIntent.setAction(Intent.ACTION_VIEW);
shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE, shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE,
filter.title); filter.listingTitle);
shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_SQL, shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_SQL,
filter.getSqlQuery()); filter.getSqlQuery());
if (filter.valuesForNewTasks != null) { if (filter.valuesForNewTasks != null) {

@ -24,17 +24,16 @@ import android.view.View;
import com.todoroo.andlib.data.Callback; import com.todoroo.andlib.data.Callback;
import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.FilterSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.BuiltInFilterExposer; 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.dao.TagDataDao;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.GtasksListFragment; import com.todoroo.astrid.gtasks.GtasksListFragment;
@ -61,6 +60,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
@Inject VoiceInputAssistant voiceInputAssistant; @Inject VoiceInputAssistant voiceInputAssistant;
private static final int REQUEST_EDIT_TAG = 11543; private static final int REQUEST_EDIT_TAG = 11543;
private static final int REQUEST_EDIT_FILTER = 11544;
private final RepeatConfirmationReceiver repeatConfirmationReceiver = new RepeatConfirmationReceiver(this); private final RepeatConfirmationReceiver repeatConfirmationReceiver = new RepeatConfirmationReceiver(this);
private NavigationDrawerFragment navigationDrawer; private NavigationDrawerFragment navigationDrawer;
@ -123,7 +123,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
setupTasklistFragmentWithFilter(savedFilter, extras); setupTasklistFragmentWithFilter(savedFilter, extras);
if (savedFilter != null) { 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); menu.findItem(R.id.menu_sort).setVisible(false);
} else if(tlf instanceof TagViewFragment) { } else if(tlf instanceof TagViewFragment) {
menu.findItem(R.id.menu_tag_settings).setVisible(true); 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)); menu.findItem(R.id.menu_voice_add).setVisible(voiceInputAvailable(this));
final MenuItem item = menu.findItem(R.id.menu_search); 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) { public boolean onQueryTextSubmit(String query) {
query = query.trim(); query = query.trim();
String title = getString(R.string.FLA_search_filter, query); 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( new QueryTemplate().where(Task.TITLE.like(
"%" + //$NON-NLS-1$ "%" + //$NON-NLS-1$
query + "%")), //$NON-NLS-1$ query + "%")), //$NON-NLS-1$
@ -282,7 +284,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
} }
public void setSelectedItem(Filter item) { public void setSelectedItem(Filter item) {
getSupportActionBar().setTitle(item.title); getSupportActionBar().setTitle(item.listingTitle);
} }
@Override @Override
@ -342,6 +344,8 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, newList); // Handle in onPostResume() getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, newList); // Handle in onPostResume()
navigationDrawer.clear(); navigationDrawer.clear();
} }
navigationDrawer.refresh();
} else if (requestCode == TaskListFragment.ACTIVITY_EDIT_TASK && resultCode != Activity.RESULT_CANCELED) { } else if (requestCode == TaskListFragment.ACTIVITY_EDIT_TASK && resultCode != Activity.RESULT_CANCELED) {
// Handle switch to assigned filter when it comes from TaskEditActivity finishing // 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 // 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(); navigationDrawer.refresh();
} }
} else if (requestCode == NavigationDrawerFragment.REQUEST_CUSTOM_INTENT && resultCode == RESULT_OK && data != null) { } else if (requestCode == REQUEST_EDIT_FILTER) {
if (resultCode == RESULT_OK) {
String action = data.getAction(); String action = data.getAction();
TaskListFragment tlf = getTaskListFragment(); if (AstridApiConstants.BROADCAST_EVENT_FILTER_RENAMED.equals(action)) {
CustomFilter customFilter = data.getParcelableExtra(FilterSettingsActivity.TOKEN_FILTER);
if (AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) { getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, customFilter);
StoreObject storeObject = (StoreObject) data.getExtras().get(DeleteFilterActivity.TOKEN_STORE_OBJECT); } else if(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) {
Filter filter = SavedFilter.load(storeObject); getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources()));
if (tlf.getFilter().equals(filter)) {
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); // Handle in onPostResume()
} }
navigationDrawer.refresh(); navigationDrawer.refresh();
} }
} }
@ -432,7 +436,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
TaskListFragment tlf = getTaskListFragment(); final TaskListFragment tlf = getTaskListFragment();
switch(item.getItemId()) { switch(item.getItemId()) {
case R.id.menu_voice_add: case R.id.menu_voice_add:
voiceInputAssistant.startVoiceRecognitionActivity(R.string.voice_create_prompt); 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()); putExtra(TagViewFragment.EXTRA_TAG_DATA, getTaskListFragment().getActiveTagData());
}}, REQUEST_EDIT_TAG); }}, REQUEST_EDIT_TAG);
return true; return true;
case R.id.menu_filter_settings:
startActivityForResult(new Intent(this, FilterSettingsActivity.class) {{
putExtra(FilterSettingsActivity.TOKEN_FILTER, tlf.getFilter());
}}, REQUEST_EDIT_FILTER);
default: default:
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }

@ -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_DELETED = BuildConfig.APPLICATION_ID + ".FILTER_DELETED";
public static final String BROADCAST_EVENT_FILTER_RENAMED = BuildConfig.APPLICATION_ID + ".FILTER_RENAMED";
} }

@ -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<CustomFilter> CREATOR = new Parcelable.Creator<CustomFilter>() {
/**
* {@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];
}
};
}

@ -32,14 +32,6 @@ public class Filter extends FilterListItem {
// --- instance variables // --- instance variables
/**
* Expanded title of this filter. This is displayed at the top
* of the screen when user is viewing this filter.
* <p>
* e.g "Tasks With Notes"
*/
public String title;
/** /**
* {@link PermaSql} query for this filter. The query will be appended to the select * {@link PermaSql} query for this filter. The query will be appended to the select
* statement after "<code>SELECT fields FROM table %s</code>". It is * statement after "<code>SELECT fields FROM table %s</code>". It is
@ -75,15 +67,11 @@ public class Filter extends FilterListItem {
* Utility constructor for creating a Filter object * Utility constructor for creating a Filter object
* @param listingTitle * @param listingTitle
* Title of this item as displayed on the lists page, e.g. Inbox * 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 * @param sqlQuery
* SQL query for this list (see {@link #sqlQuery} for examples). * SQL query for this list (see {@link #sqlQuery} for examples).
*/ */
public Filter(String listingTitle, String title, public Filter(String listingTitle, QueryTemplate sqlQuery, ContentValues valuesForNewTasks) {
QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { this(listingTitle, sqlQuery == null ? null : sqlQuery.toString(),
this(listingTitle, title, sqlQuery == null ? null : sqlQuery.toString(),
valuesForNewTasks); valuesForNewTasks);
} }
@ -91,16 +79,11 @@ public class Filter extends FilterListItem {
* Utility constructor for creating a Filter object * Utility constructor for creating a Filter object
* @param listingTitle * @param listingTitle
* Title of this item as displayed on the lists page, e.g. Inbox * 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 * @param sqlQuery
* SQL query for this list (see {@link #sqlQuery} for examples). * SQL query for this list (see {@link #sqlQuery} for examples).
*/ */
public Filter(String listingTitle, String title, public Filter(String listingTitle, String sqlQuery, ContentValues valuesForNewTasks) {
String sqlQuery, ContentValues valuesForNewTasks) {
this.listingTitle = listingTitle; this.listingTitle = listingTitle;
this.title = title;
this.sqlQuery = sqlQuery; this.sqlQuery = sqlQuery;
this.filterOverride = null; this.filterOverride = null;
this.valuesForNewTasks = valuesForNewTasks; this.valuesForNewTasks = valuesForNewTasks;
@ -136,7 +119,7 @@ public class Filter extends FilterListItem {
int result = 1; int result = 1;
result = prime * result result = prime * result
+ ((sqlQuery == null) ? 0 : sqlQuery.hashCode()); + ((sqlQuery == null) ? 0 : sqlQuery.hashCode());
result = prime * result + ((title == null) ? 0 : title.hashCode()); result = prime * result + ((listingTitle == null) ? 0 : listingTitle.hashCode());
return result; return result;
} }
@ -159,11 +142,11 @@ public class Filter extends FilterListItem {
} else if (!sqlQuery.equals(other.sqlQuery)) { } else if (!sqlQuery.equals(other.sqlQuery)) {
return false; return false;
} }
if (title == null) { if (listingTitle == null) {
if (other.title != null) { if (other.listingTitle != null) {
return false; return false;
} }
} else if (!title.equals(other.title)) { } else if (!listingTitle.equals(other.listingTitle)) {
return false; return false;
} }
return true; return true;
@ -180,7 +163,6 @@ public class Filter extends FilterListItem {
@Override @Override
public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags); super.writeToParcel(dest, flags);
dest.writeString(title);
dest.writeString(sqlQuery); dest.writeString(sqlQuery);
dest.writeParcelable(valuesForNewTasks, 0); dest.writeParcelable(valuesForNewTasks, 0);
} }
@ -188,7 +170,6 @@ public class Filter extends FilterListItem {
@Override @Override
public void readFromParcel(Parcel source) { public void readFromParcel(Parcel source) {
super.readFromParcel(source); super.readFromParcel(source);
title = source.readString();
sqlQuery = source.readString(); sqlQuery = source.readString();
valuesForNewTasks = source.readParcelable(ContentValues.class.getClassLoader()); valuesForNewTasks = source.readParcelable(ContentValues.class.getClassLoader());
} }
@ -223,6 +204,6 @@ public class Filter extends FilterListItem {
@Override @Override
public String toString() { public String toString() {
return title; return listingTitle;
} }
} }

@ -5,7 +5,6 @@
*/ */
package com.todoroo.astrid.api; package com.todoroo.astrid.api;
import android.content.Intent;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
@ -18,19 +17,9 @@ import android.os.Parcelable;
abstract public class FilterListItem implements Parcelable { abstract public class FilterListItem implements Parcelable {
public enum Type { public enum Type {
ITEM(0), ITEM,
SUBHEADER(1), SUBHEADER,
SEPARATOR(2); SEPARATOR
private int viewType;
Type(int viewType) {
this.viewType = viewType;
}
public int getViewType() {
return viewType;
}
} }
public abstract Type getItemType(); public abstract Type getItemType();
@ -42,19 +31,6 @@ abstract public class FilterListItem implements Parcelable {
public int icon = 0; 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 @Override
public int describeContents() { public int describeContents() {
return 0; return 0;
@ -69,10 +45,6 @@ abstract public class FilterListItem implements Parcelable {
public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) {
dest.writeString(listingTitle); dest.writeString(listingTitle);
dest.writeInt(icon); 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) { public void readFromParcel(Parcel source) {
listingTitle = source.readString(); listingTitle = source.readString();
icon = source.readInt(); icon = source.readInt();
contextMenuLabels = source.createStringArray();
contextMenuIntents = source.createTypedArray(Intent.CREATOR);
} }
} }

@ -35,14 +35,12 @@ public class FilterWithCustomIntent extends Filter {
super(); super();
} }
public FilterWithCustomIntent(String listingTitle, String title, public FilterWithCustomIntent(String listingTitle, QueryTemplate sqlQuery, ContentValues valuesForNewTasks) {
QueryTemplate sqlQuery, ContentValues valuesForNewTasks) { super(listingTitle, sqlQuery, valuesForNewTasks);
super(listingTitle, title, sqlQuery, valuesForNewTasks);
} }
public FilterWithCustomIntent(String listingTitle, String title, public FilterWithCustomIntent(String listingTitle, String sqlQuery, ContentValues valuesForNewTasks) {
String sqlQuery, ContentValues valuesForNewTasks) { super(listingTitle, sqlQuery, valuesForNewTasks);
super(listingTitle, title, sqlQuery, valuesForNewTasks);
} }
public Intent getCustomIntent() { public Intent getCustomIntent() {

@ -86,7 +86,7 @@ public final class BuiltInFilterExposer {
* Build inbox filter * Build inbox filter
*/ */
public static Filter getMyTasksFilter(Resources r) { 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( new QueryTemplate().where(
Criterion.and(TaskCriteria.activeAndVisible(), Criterion.and(TaskCriteria.activeAndVisible(),
Criterion.not(Task.ID.in(Query.select(Metadata.TASK).from(Metadata.TABLE).where( 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(); ContentValues todayValues = new ContentValues();
todayValues.put(Task.DUE_DATE.name, PermaSql.VALUE_NOON); todayValues.put(Task.DUE_DATE.name, PermaSql.VALUE_NOON);
return new Filter(todayTitle, return new Filter(todayTitle,
todayTitle,
new QueryTemplate().where( new QueryTemplate().where(
Criterion.and(TaskCriteria.activeAndVisible(), Criterion.and(TaskCriteria.activeAndVisible(),
Task.DUE_DATE.gt(0), Task.DUE_DATE.gt(0),
@ -110,7 +109,6 @@ public final class BuiltInFilterExposer {
private static Filter getRecentlyModifiedFilter(Resources r) { private static Filter getRecentlyModifiedFilter(Resources r) {
return new Filter(r.getString(R.string.BFE_Recent), return new Filter(r.getString(R.string.BFE_Recent),
r.getString(R.string.BFE_Recent),
new QueryTemplate().where( new QueryTemplate().where(
Criterion.all).orderBy( Criterion.all).orderBy(
Order.desc(Task.MODIFICATION_DATE)).limit(15), Order.desc(Task.MODIFICATION_DATE)).limit(15),
@ -119,7 +117,6 @@ public final class BuiltInFilterExposer {
private static Filter getUncategorizedFilter(Resources r) { private static Filter getUncategorizedFilter(Resources r) {
return new Filter(r.getString(R.string.tag_FEx_untagged), return new Filter(r.getString(R.string.tag_FEx_untagged),
r.getString(R.string.tag_FEx_untagged),
new QueryTemplate().where(Criterion.and( new QueryTemplate().where(Criterion.and(
Criterion.not(Task.UUID.in(Query.select(TaskToTagMetadata.TASK_UUID).from(Metadata.TABLE) 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))))), .where(Criterion.and(MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY), Metadata.DELETION_DATE.eq(0))))),

@ -35,6 +35,7 @@ import com.todoroo.andlib.sql.UnaryCriterion;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.api.CustomFilterCriterion; import com.todoroo.astrid.api.CustomFilterCriterion;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.MultipleSelectCriterion; 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.Database;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -417,17 +419,18 @@ public class CustomFilterActivity extends InjectingAppCompatActivity {
} }
String title; String title;
StoreObject storeObject = null;
if(filterName.getText().length() > 0) { if(filterName.getText().length() > 0) {
// persist saved filter // persist saved filter
title = filterName.getText().toString().trim(); title = filterName.getText().toString().trim();
SavedFilter.persist(storeObjectDao, adapter, title, sql.toString(), values); storeObject = SavedFilter.persist(storeObjectDao, adapter, title, sql.toString(), values);
} else { } else {
// temporary // temporary
title = suggestedTitle.toString(); title = suggestedTitle.toString();
} }
// view // 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)); setResult(RESULT_OK, new Intent().putExtra(TagSettingsActivity.TOKEN_NEW_FILTER, filter));
finish(); finish();
} }

@ -5,16 +5,13 @@
*/ */
package com.todoroo.astrid.core; package com.todoroo.astrid.core;
import android.content.Context;
import android.content.Intent;
import com.todoroo.andlib.data.Callback; import com.todoroo.andlib.data.Callback;
import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.data.StoreObject;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.ResourceResolver; import org.tasks.preferences.ResourceResolver;
import java.util.ArrayList; import java.util.ArrayList;
@ -22,24 +19,14 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
/**
* Exposes Astrid's built in filters to the NavigationDrawerFragment
*
* @author Tim Su <tim@todoroo.com>
*
*/
public final class CustomFilterExposer { public final class CustomFilterExposer {
static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$
private final StoreObjectDao storeObjectDao; private final StoreObjectDao storeObjectDao;
private ResourceResolver resourceResolver; private ResourceResolver resourceResolver;
private final Context context;
@Inject @Inject
public CustomFilterExposer(ResourceResolver resourceResolver, @ForApplication Context context, StoreObjectDao storeObjectDao) { public CustomFilterExposer(ResourceResolver resourceResolver, StoreObjectDao storeObjectDao) {
this.resourceResolver = resourceResolver; this.resourceResolver = resourceResolver;
this.context = context;
this.storeObjectDao = storeObjectDao; this.storeObjectDao = storeObjectDao;
} }
@ -51,14 +38,9 @@ public final class CustomFilterExposer {
storeObjectDao.getSavedFilters(new Callback<StoreObject>() { storeObjectDao.getSavedFilters(new Callback<StoreObject>() {
@Override @Override
public void apply(StoreObject savedFilter) { public void apply(StoreObject savedFilter) {
Filter f = SavedFilter.load(savedFilter); CustomFilter f = SavedFilter.load(savedFilter);
f.icon = filter; 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); list.add(f);
} }
}); });

@ -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 <tim@todoroo.com>
*/
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();
}
});
}
}

@ -10,6 +10,7 @@ import android.text.TextUtils;
import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.CustomFilterActivity.CriterionInstance; import com.todoroo.astrid.core.CustomFilterActivity.CriterionInstance;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
@ -47,11 +48,11 @@ public class SavedFilter {
/** /**
* Save a filter * 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) { String sql, ContentValues values) {
if(title == null || title.length() == 0) { if(title == null || title.length() == 0) {
return; return null;
} }
// if filter of this name exists, edit it // if filter of this name exists, edit it
@ -74,7 +75,11 @@ public class SavedFilter {
String filters = serializeFilters(adapter); String filters = serializeFilters(adapter);
storeObject.setValue(FILTERS, filters); 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 * Read filter from store
*/ */
public static Filter load(StoreObject savedFilter) { public static CustomFilter load(StoreObject savedFilter) {
String title = savedFilter.getValue(NAME); String title = savedFilter.getValue(NAME);
String sql = savedFilter.getValue(SQL); String sql = savedFilter.getValue(SQL);
String values = savedFilter.getValue(VALUES); 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 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());
} }
} }

@ -57,14 +57,18 @@ public class StoreObjectDao {
})); }));
} }
public void persist(StoreObject storeObject) { public boolean persist(StoreObject storeObject) {
dao.persist(storeObject); return dao.persist(storeObject);
} }
public void persist(GtasksList list) { public void persist(GtasksList list) {
persist(list.getStoreObject()); persist(list.getStoreObject());
} }
public void update(StoreObject storeObject) {
dao.saveExisting(storeObject);
}
public List<StoreObject> getByType(String type) { public List<StoreObject> getByType(String type) {
return dao.toList(select(StoreObject.PROPERTIES) return dao.toList(select(StoreObject.PROPERTIES)
.where(StoreObject.TYPE.eq(type))); .where(StoreObject.TYPE.eq(type)));

@ -84,7 +84,7 @@ public class GtasksFilterExposer {
values.put(GtasksMetadata.LIST_ID.name, list.getRemoteId()); values.put(GtasksMetadata.LIST_ID.name, list.getRemoteId());
values.put(GtasksMetadata.ORDER.name, PermaSql.VALUE_NOW); values.put(GtasksMetadata.ORDER.name, PermaSql.VALUE_NOW);
FilterWithCustomIntent filter = new FilterWithCustomIntent(listName, FilterWithCustomIntent filter = new FilterWithCustomIntent(listName,
listName, new QueryTemplate().join( new QueryTemplate().join(
Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and( Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and(
MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
TaskCriteria.notDeleted(), TaskCriteria.notDeleted(),

@ -74,9 +74,7 @@ public class TagFilterExposer {
contentValues.put(TaskToTagMetadata.TAG_NAME.name, tag.getName()); contentValues.put(TaskToTagMetadata.TAG_NAME.name, tag.getName());
contentValues.put(TaskToTagMetadata.TAG_UUID.name, tag.getUuid()); contentValues.put(TaskToTagMetadata.TAG_UUID.name, tag.getUuid());
FilterWithCustomIntent filter = new FilterWithCustomIntent(tag.getName(), FilterWithCustomIntent filter = new FilterWithCustomIntent(title, tagTemplate, contentValues);
title, tagTemplate,
contentValues);
filter.customTaskList = new ComponentName(context, TagViewFragment.class); filter.customTaskList = new ComponentName(context, TagViewFragment.class);
Bundle extras = new Bundle(); Bundle extras = new Bundle();

@ -55,7 +55,6 @@ public final class TimerFilterExposer {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(Task.TIMER_START.name, Filter.VALUE_NOW); values.put(Task.TIMER_START.name, Filter.VALUE_NOW);
return new Filter(r.getString(R.string.TFE_workingOn), return new Filter(r.getString(R.string.TFE_workingOn),
r.getString(R.string.TFE_workingOn),
new QueryTemplate().where(Task.TIMER_START.gt(0)), new QueryTemplate().where(Task.TIMER_START.gt(0)),
values); values);
} }

@ -158,7 +158,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
if(values != null) { if(values != null) {
contentValuesString = AndroidUtilities.contentValuesToSerializedString(values); contentValuesString = AndroidUtilities.contentValuesToSerializedString(values);
} }
title = ((Filter)filterListItem).title; title = ((Filter)filterListItem).listingTitle;
} }
preferences.setString(WidgetConfigActivity.PREF_TITLE + mAppWidgetId, title); preferences.setString(WidgetConfigActivity.PREF_TITLE + mAppWidgetId, title);

@ -119,7 +119,7 @@ public class WidgetUpdateService extends InjectingService {
if (filter.isTagFilter()) { if (filter.isTagFilter()) {
((FilterWithCustomIntent) filter).customTaskList = new ComponentName(context, TagViewFragment.class); // In case legacy widget was created with subtasks fragment ((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); views.removeAllViews(R.id.taskbody);
int flags = preferences.getSortFlags(); int flags = preferences.getSortFlags();

@ -2,6 +2,7 @@ package org.tasks.injection;
import android.app.Activity; import android.app.Activity;
import com.todoroo.astrid.actfm.FilterSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.activity.BeastModePreferences; import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.activity.FilterShortcutActivity; 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.calls.MissedCallActivity;
import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.DefaultsPreferences; import com.todoroo.astrid.core.DefaultsPreferences;
import com.todoroo.astrid.core.DeleteFilterActivity;
import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.core.OldTaskPreferences;
import com.todoroo.astrid.files.AACRecordingActivity; import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.gcal.CalendarAlarmListCreator; import com.todoroo.astrid.gcal.CalendarAlarmListCreator;
@ -51,10 +51,10 @@ import dagger.Provides;
TaskEditActivity.class, TaskEditActivity.class,
ShareLinkActivity.class, ShareLinkActivity.class,
TagSettingsActivity.class, TagSettingsActivity.class,
FilterSettingsActivity.class,
CustomFilterActivity.class, CustomFilterActivity.class,
MissedCallActivity.class, MissedCallActivity.class,
CalendarAlarmListCreator.class, CalendarAlarmListCreator.class,
DeleteFilterActivity.class,
CalendarReminderActivity.class, CalendarReminderActivity.class,
VoiceCommandActivity.class, VoiceCommandActivity.class,
GtasksLoginActivity.class, GtasksLoginActivity.class,

@ -9,17 +9,13 @@ import android.graphics.Rect;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.view.GravityCompat; import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
import android.view.ContextMenu;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ListView; import android.widget.ListView;
import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.FilterAdapter; 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$ 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 static final int REQUEST_NEW_LIST = 4;
public FilterAdapter adapter = null; public FilterAdapter adapter = null;
@ -229,30 +222,6 @@ public class NavigationDrawerFragment extends InjectingFragment {
outState.putInt(TOKEN_LAST_SELECTED, mCurrentSelectedPosition); 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() { public void closeMenu() {
if (mDrawerLayout != null) { if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(mFragmentContainerView); mDrawerLayout.closeDrawer(mFragmentContainerView);
@ -281,27 +250,6 @@ public class NavigationDrawerFragment extends InjectingFragment {
adapter.populateList(); 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 @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();

@ -77,7 +77,7 @@ public class WidgetHelper {
remoteViews.setInt(R.id.list_view, "setBackgroundColor", android.R.color.transparent); remoteViews.setInt(R.id.list_view, "setBackgroundColor", android.R.color.transparent);
remoteViews.setInt(R.id.empty_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.setRemoteAdapter(R.id.list_view, rvIntent);
remoteViews.setEmptyView(R.id.list_view, R.id.empty_view); remoteViews.setEmptyView(R.id.list_view, R.id.empty_view);
PendingIntent listIntent = getListIntent(context, filter, id); PendingIntent listIntent = getListIntent(context, filter, id);
@ -148,7 +148,7 @@ public class WidgetHelper {
} }
String title = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId); String title = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
if (title != null) { if (title != null) {
filter.title = title; filter.listingTitle = title;
} }
String contentValues = preferences.getStringValue(WidgetConfigActivity.PREF_VALUES + widgetId); String contentValues = preferences.getStringValue(WidgetConfigActivity.PREF_VALUES + widgetId);
if (contentValues != null) { if (contentValues != null) {
@ -159,7 +159,7 @@ public class WidgetHelper {
+ widgetId); + widgetId);
if (customComponent != null) { if (customComponent != null) {
ComponentName component = ComponentName.unflattenFromString(customComponent); 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; ((FilterWithCustomIntent) filter).customTaskList = component;
String serializedExtras = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_EXTRAS String serializedExtras = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_EXTRAS
+ widgetId); + widgetId);
@ -171,10 +171,10 @@ public class WidgetHelper {
TagData tagData; TagData tagData;
if (id > 0) { if (id > 0) {
tagData = tagDataDao.fetch(id, TagData.ID, TagData.NAME, TagData.UUID); 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); filter = TagFilterExposer.filterFromTagData(context, tagData);
preferences.setString(WidgetConfigActivity.PREF_SQL + widgetId, filter.getSqlQuery()); 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; ContentValues newTaskValues = filter.valuesForNewTasks;
String contentValuesString = null; String contentValuesString = null;
if (newTaskValues != null) { if (newTaskValues != null) {
@ -190,7 +190,7 @@ public class WidgetHelper {
} }
} }
} else { } else {
tagData = tagDataDao.getTagByName(filter.title, TagData.ID); tagData = tagDataDao.getTagByName(filter.listingTitle, TagData.ID);
if (tagData != null) { if (tagData != null) {
preferences.setLong(WidgetConfigActivity.PREF_TAG_ID + widgetId, tagData.getId()); preferences.setLong(WidgetConfigActivity.PREF_TAG_ID + widgetId, tagData.getId());
} }

@ -1,32 +1,37 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tasks="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/menu_voice_add" android:id="@+id/menu_voice_add"
android:title="@string/EPr_voiceInputEnabled_title" android:title="@string/EPr_voiceInputEnabled_title"
android:icon="@drawable/ic_mic_white_24dp" android:icon="@drawable/ic_mic_white_24dp"
tasks:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/menu_search" android:id="@+id/menu_search"
android:title="@string/TLA_menu_search" android:title="@string/TLA_menu_search"
android:icon="@drawable/ic_search_white_24dp" android:icon="@drawable/ic_search_white_24dp"
tasks:showAsAction="ifRoom|collapseActionView" app:showAsAction="ifRoom|collapseActionView"
tasks:actionViewClass="android.support.v7.widget.SearchView"/> app:actionViewClass="android.support.v7.widget.SearchView"/>
<item <item
android:id="@+id/menu_sort" android:id="@+id/menu_sort"
android:title="@string/TLA_menu_sort" android:title="@string/TLA_menu_sort"
android:icon="@drawable/ic_sort_white_24dp" android:icon="@drawable/ic_sort_white_24dp"
tasks:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
<item <item
android:id="@+id/menu_clear_completed" android:id="@+id/menu_clear_completed"
android:title="@string/gtasks_GTA_clear_completed" android:title="@string/gtasks_GTA_clear_completed"
android:visible="false" android:visible="false"
tasks:showAsAction="never" /> app:showAsAction="never" />
<item <item
android:id="@+id/menu_tag_settings" android:id="@+id/menu_tag_settings"
android:title="@string/tag_settings" android:title="@string/tag_settings"
android:visible="false" android:visible="false"
tasks:showAsAction="never" /> app:showAsAction="never" />
<item
android:id="@+id/menu_filter_settings"
android:title="@string/filter_settings"
android:visible="false"
app:showAsAction="never" />
</menu> </menu>

@ -145,7 +145,6 @@
</string-array> </string-array>
<string name="BFE_Active">مهامي</string> <string name="BFE_Active">مهامي</string>
<string name="BFE_Recent">ما تم تعديله مؤخرا</string> <string name="BFE_Recent">ما تم تعديله مؤخرا</string>
<string name="BFE_Saved_delete">حذف الفلتر</string>
<string name="CFA_universe_all">مهام نشطة</string> <string name="CFA_universe_all">مهام نشطة</string>
<string name="CFA_type_add">أو</string> <string name="CFA_type_add">أو</string>
<string name="CFA_type_subtract">ليس</string> <string name="CFA_type_subtract">ليس</string>

@ -31,7 +31,6 @@
<string name="write_permission_label">Tasks Разрешение</string> <string name="write_permission_label">Tasks Разрешение</string>
<string name="write_permission_desc">създаване на нови задачи, редактиране на съществуващи задачи</string> <string name="write_permission_desc">създаване на нови задачи, редактиране на съществуващи задачи</string>
<string name="DLG_delete_this_task_question">Изтриване на тази задача?</string> <string name="DLG_delete_this_task_question">Изтриване на тази задача?</string>
<string name="DLG_delete_this_item_question">Изтриване на този елемент: %s?</string>
<string name="DLG_upgrading">Обновяване на твоите задачи...</string> <string name="DLG_upgrading">Обновяване на твоите задачи...</string>
<string name="DLG_hour_minutes">Време (часове: минути)</string> <string name="DLG_hour_minutes">Време (часове: минути)</string>
<string name="DLG_undo">Върни</string> <string name="DLG_undo">Върни</string>
@ -221,7 +220,6 @@
</string-array> </string-array>
<string name="BFE_Active">Моите задачи</string> <string name="BFE_Active">Моите задачи</string>
<string name="BFE_Recent">Наскоро променени</string> <string name="BFE_Recent">Наскоро променени</string>
<string name="BFE_Saved_delete">Изтрий филътр</string>
<string name="CFA_filterName_hint">Именувайте този филтър, за да го запазите...</string> <string name="CFA_filterName_hint">Именувайте този филтър, за да го запазите...</string>
<string name="CFA_universe_all">Активни Задачи</string> <string name="CFA_universe_all">Активни Задачи</string>
<string name="CFA_type_add">или</string> <string name="CFA_type_add">или</string>

@ -26,7 +26,6 @@
<string name="write_permission_label">Permís de l\'Tasks</string> <string name="write_permission_label">Permís de l\'Tasks</string>
<string name="write_permission_desc">crear noves tasques, editar tasques existents</string> <string name="write_permission_desc">crear noves tasques, editar tasques existents</string>
<string name="DLG_delete_this_task_question">Voleu suprimir aquesta tasca?</string> <string name="DLG_delete_this_task_question">Voleu suprimir aquesta tasca?</string>
<string name="DLG_delete_this_item_question">Voleu suprimir aquest element: %s?</string>
<string name="DLG_upgrading">S\'estan actualitzant les vostres tasques...</string> <string name="DLG_upgrading">S\'estan actualitzant les vostres tasques...</string>
<string name="DLG_hour_minutes">Temps (hores : minuts)</string> <string name="DLG_hour_minutes">Temps (hores : minuts)</string>
<string name="DLG_undo">Desfés</string> <string name="DLG_undo">Desfés</string>
@ -131,7 +130,6 @@
</string-array> </string-array>
<string name="BFE_Active">Tasques actives</string> <string name="BFE_Active">Tasques actives</string>
<string name="BFE_Recent">Modificades fa poc</string> <string name="BFE_Recent">Modificades fa poc</string>
<string name="BFE_Saved_delete">Esborra el filtre</string>
<string name="CFA_filterName_hint">Dona nom al filtre per desar-lo...</string> <string name="CFA_filterName_hint">Dona nom al filtre per desar-lo...</string>
<string name="CFA_universe_all">Tasques actives</string> <string name="CFA_universe_all">Tasques actives</string>
<string name="CFA_type_add">o</string> <string name="CFA_type_add">o</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Tasks Práva</string> <string name="write_permission_label">Tasks Práva</string>
<string name="write_permission_desc">vytvořit nové úkoly, upravit existující úkoly</string> <string name="write_permission_desc">vytvořit nové úkoly, upravit existující úkoly</string>
<string name="DLG_delete_this_task_question">Smazat tento úkol?</string> <string name="DLG_delete_this_task_question">Smazat tento úkol?</string>
<string name="DLG_delete_this_item_question">Smazat tuto položku: %s?</string>
<string name="DLG_upgrading">Obnovování vašich úkolů...</string> <string name="DLG_upgrading">Obnovování vašich úkolů...</string>
<string name="DLG_hour_minutes">Čas (hodin : minut)</string> <string name="DLG_hour_minutes">Čas (hodin : minut)</string>
<string name="DLG_undo">Vrátit změny</string> <string name="DLG_undo">Vrátit změny</string>
@ -208,7 +207,6 @@
</string-array> </string-array>
<string name="BFE_Active">Aktivní úkoly</string> <string name="BFE_Active">Aktivní úkoly</string>
<string name="BFE_Recent">Nedávno upravené</string> <string name="BFE_Recent">Nedávno upravené</string>
<string name="BFE_Saved_delete">Smazat filtr</string>
<string name="CFA_filterName_hint">Pojmenujte tento filtr pro jeho uložení</string> <string name="CFA_filterName_hint">Pojmenujte tento filtr pro jeho uložení</string>
<string name="CFA_universe_all">Aktivní úkoly</string> <string name="CFA_universe_all">Aktivní úkoly</string>
<string name="CFA_type_add">nebo</string> <string name="CFA_type_add">nebo</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Tasks Tilladelser</string> <string name="write_permission_label">Tasks Tilladelser</string>
<string name="write_permission_desc">opret nye opgaver, rediger eksisterende opgaver</string> <string name="write_permission_desc">opret nye opgaver, rediger eksisterende opgaver</string>
<string name="DLG_delete_this_task_question">Slet denne opgave?</string> <string name="DLG_delete_this_task_question">Slet denne opgave?</string>
<string name="DLG_delete_this_item_question">Slet dette element: %s?</string>
<string name="DLG_upgrading">Opgraderer dine opgaver...</string> <string name="DLG_upgrading">Opgraderer dine opgaver...</string>
<string name="DLG_hour_minutes">Tid (timer : minutter)</string> <string name="DLG_hour_minutes">Tid (timer : minutter)</string>
<string name="WID_dateButtonUnset">Tryk for at indstille</string> <string name="WID_dateButtonUnset">Tryk for at indstille</string>
@ -110,7 +109,6 @@
</string-array> </string-array>
<string name="BFE_Active">Aktive opgaver</string> <string name="BFE_Active">Aktive opgaver</string>
<string name="BFE_Recent">Senest ændrede</string> <string name="BFE_Recent">Senest ændrede</string>
<string name="BFE_Saved_delete">Slet filter</string>
<string name="CFA_filterName_hint">Navngiv dette filter for at gemme det...</string> <string name="CFA_filterName_hint">Navngiv dette filter for at gemme det...</string>
<string name="CFA_universe_all">Aktive opgaver</string> <string name="CFA_universe_all">Aktive opgaver</string>
<string name="CFA_type_add">eller</string> <string name="CFA_type_add">eller</string>

@ -27,7 +27,6 @@
<string name="write_permission_label">Tasks Zugriffsrechte</string> <string name="write_permission_label">Tasks Zugriffsrechte</string>
<string name="write_permission_desc">Aufgaben erstellen, existierende Aufgaben bearbeiten</string> <string name="write_permission_desc">Aufgaben erstellen, existierende Aufgaben bearbeiten</string>
<string name="DLG_delete_this_task_question">Diese Aufgabe löschen?</string> <string name="DLG_delete_this_task_question">Diese Aufgabe löschen?</string>
<string name="DLG_delete_this_item_question">Dieses Element löschen: %s?</string>
<string name="DLG_upgrading">Ihre Aufgaben werden aktualisiert …</string> <string name="DLG_upgrading">Ihre Aufgaben werden aktualisiert …</string>
<string name="DLG_hour_minutes">Zeit (Stunden : Minuten)</string> <string name="DLG_hour_minutes">Zeit (Stunden : Minuten)</string>
<string name="DLG_undo">Rückgängig</string> <string name="DLG_undo">Rückgängig</string>
@ -215,7 +214,6 @@
</string-array> </string-array>
<string name="BFE_Active">Meine Aufgaben</string> <string name="BFE_Active">Meine Aufgaben</string>
<string name="BFE_Recent">Kürzlich bearbeitet</string> <string name="BFE_Recent">Kürzlich bearbeitet</string>
<string name="BFE_Saved_delete">Filter löschen</string>
<string name="CFA_filterName_hint">Benennen Sie den Filter, um ihn zu speichern …</string> <string name="CFA_filterName_hint">Benennen Sie den Filter, um ihn zu speichern …</string>
<string name="CFA_universe_all">Aktuelle Aufgaben</string> <string name="CFA_universe_all">Aktuelle Aufgaben</string>
<string name="CFA_type_add">oder</string> <string name="CFA_type_add">oder</string>

@ -30,7 +30,6 @@
<string name="write_permission_label">Άδεια Εργασιών</string> <string name="write_permission_label">Άδεια Εργασιών</string>
<string name="write_permission_desc">δημιουργία νέων εργασιών, επεξεργασία εργασιών</string> <string name="write_permission_desc">δημιουργία νέων εργασιών, επεξεργασία εργασιών</string>
<string name="DLG_delete_this_task_question">Διαγραφή εργασίας;</string> <string name="DLG_delete_this_task_question">Διαγραφή εργασίας;</string>
<string name="DLG_delete_this_item_question">Διαγραφή του αντικειμένου: %s?</string>
<string name="DLG_upgrading">Αναβάθμιση των εργασιών σας...</string> <string name="DLG_upgrading">Αναβάθμιση των εργασιών σας...</string>
<string name="DLG_hour_minutes">Ώρα (ώρες : λεπτά)</string> <string name="DLG_hour_minutes">Ώρα (ώρες : λεπτά)</string>
<string name="DLG_undo">Αναίρεση</string> <string name="DLG_undo">Αναίρεση</string>
@ -211,7 +210,6 @@
<item>Όταν λήξει</item> <item>Όταν λήξει</item>
<item>Στην λήξη η και μετά</item> <item>Στην λήξη η και μετά</item>
</string-array> </string-array>
<string name="BFE_Saved_delete">Διαγραφή φίλτρου</string>
<string name="CFA_type_add">ή</string> <string name="CFA_type_add">ή</string>
<string name="CFA_type_subtract">μή</string> <string name="CFA_type_subtract">μή</string>
<string name="CFA_type_intersect">επίσης</string> <string name="CFA_type_intersect">επίσης</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Permisos de Tasks</string> <string name="write_permission_label">Permisos de Tasks</string>
<string name="write_permission_desc">crear nuevas tareas, editar tareas existentes</string> <string name="write_permission_desc">crear nuevas tareas, editar tareas existentes</string>
<string name="DLG_delete_this_task_question">¿Borrar esta tarea?</string> <string name="DLG_delete_this_task_question">¿Borrar esta tarea?</string>
<string name="DLG_delete_this_item_question">¿Eliminar este elemento: %s?</string>
<string name="DLG_upgrading">Actualizando sus tareas....</string> <string name="DLG_upgrading">Actualizando sus tareas....</string>
<string name="DLG_hour_minutes">Tiempo (horas : minutos)</string> <string name="DLG_hour_minutes">Tiempo (horas : minutos)</string>
<string name="DLG_undo">Deshacer</string> <string name="DLG_undo">Deshacer</string>
@ -215,7 +214,6 @@
</string-array> </string-array>
<string name="BFE_Active">Mis Tareas</string> <string name="BFE_Active">Mis Tareas</string>
<string name="BFE_Recent">Recién modificadas</string> <string name="BFE_Recent">Recién modificadas</string>
<string name="BFE_Saved_delete">Borrar filtro</string>
<string name="CFA_filterName_hint">Da nombre al filtro para grabarlo...</string> <string name="CFA_filterName_hint">Da nombre al filtro para grabarlo...</string>
<string name="CFA_universe_all">Tareas activas</string> <string name="CFA_universe_all">Tareas activas</string>
<string name="CFA_type_add">o</string> <string name="CFA_type_add">o</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Permission d\'Tasks</string> <string name="write_permission_label">Permission d\'Tasks</string>
<string name="write_permission_desc">créer de nouvelles tâches, modifier les tâches existantes</string> <string name="write_permission_desc">créer de nouvelles tâches, modifier les tâches existantes</string>
<string name="DLG_delete_this_task_question">Supprimer cette tâche ?</string> <string name="DLG_delete_this_task_question">Supprimer cette tâche ?</string>
<string name="DLG_delete_this_item_question">Effacer cet élément: %s</string>
<string name="DLG_upgrading">Mise à jour de vos tâches…</string> <string name="DLG_upgrading">Mise à jour de vos tâches…</string>
<string name="DLG_hour_minutes">Temps (heures : minutes)</string> <string name="DLG_hour_minutes">Temps (heures : minutes)</string>
<string name="DLG_undo">Annuler Action</string> <string name="DLG_undo">Annuler Action</string>
@ -212,7 +211,6 @@
</string-array> </string-array>
<string name="BFE_Active">Mes tâches</string> <string name="BFE_Active">Mes tâches</string>
<string name="BFE_Recent">Récemment modifié</string> <string name="BFE_Recent">Récemment modifié</string>
<string name="BFE_Saved_delete">Supprimer le filtre</string>
<string name="CFA_filterName_hint">Donnez un nom à ce filtre pour le sauver...</string> <string name="CFA_filterName_hint">Donnez un nom à ce filtre pour le sauver...</string>
<string name="CFA_universe_all">Tâches actives</string> <string name="CFA_universe_all">Tâches actives</string>
<string name="CFA_type_add">ou</string> <string name="CFA_type_add">ou</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Permessi Tasks</string> <string name="write_permission_label">Permessi Tasks</string>
<string name="write_permission_desc">crea nuove attività, modifica le attività esistenti</string> <string name="write_permission_desc">crea nuove attività, modifica le attività esistenti</string>
<string name="DLG_delete_this_task_question">Eliminare questa attività?</string> <string name="DLG_delete_this_task_question">Eliminare questa attività?</string>
<string name="DLG_delete_this_item_question">Cancella questo articolo: %s?</string>
<string name="DLG_upgrading">Aggiornare le attività ...</string> <string name="DLG_upgrading">Aggiornare le attività ...</string>
<string name="DLG_hour_minutes">Tempo (ore : minuti)</string> <string name="DLG_hour_minutes">Tempo (ore : minuti)</string>
<string name="DLG_undo">Annulla l\'ultima azione</string> <string name="DLG_undo">Annulla l\'ultima azione</string>
@ -191,7 +190,6 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
</string-array> </string-array>
<string name="BFE_Active">Le mie attività</string> <string name="BFE_Active">Le mie attività</string>
<string name="BFE_Recent">Modificate di recente</string> <string name="BFE_Recent">Modificate di recente</string>
<string name="BFE_Saved_delete">Cancella Filtro</string>
<string name="CFA_filterName_hint">Dai un nome al filtro per salvarlo...</string> <string name="CFA_filterName_hint">Dai un nome al filtro per salvarlo...</string>
<string name="CFA_universe_all">Attività in corso</string> <string name="CFA_universe_all">Attività in corso</string>
<string name="CFA_type_add">o</string> <string name="CFA_type_add">o</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">הרשאות אסטריד</string> <string name="write_permission_label">הרשאות אסטריד</string>
<string name="write_permission_desc">יצירת משימות חדשות, עריכת משימות קיימות.</string> <string name="write_permission_desc">יצירת משימות חדשות, עריכת משימות קיימות.</string>
<string name="DLG_delete_this_task_question">למחוק משימה זו?</string> <string name="DLG_delete_this_task_question">למחוק משימה זו?</string>
<string name="DLG_delete_this_item_question">למחוק את %s?</string>
<string name="DLG_upgrading">משדרגת את משימותיך...</string> <string name="DLG_upgrading">משדרגת את משימותיך...</string>
<string name="DLG_hour_minutes">זמן (שעות : דקות)</string> <string name="DLG_hour_minutes">זמן (שעות : דקות)</string>
<string name="DLG_undo">בטל פעולה אחרונה</string> <string name="DLG_undo">בטל פעולה אחרונה</string>
@ -211,7 +210,6 @@
</string-array> </string-array>
<string name="BFE_Active">המשימות שלי</string> <string name="BFE_Active">המשימות שלי</string>
<string name="BFE_Recent">עודכנו לאחרונה</string> <string name="BFE_Recent">עודכנו לאחרונה</string>
<string name="BFE_Saved_delete">מַחֲקִי מַסְנֵן</string>
<string name="CFA_filterName_hint">בחר שם לַמַּסְנֵן כדי לשמור אותו...</string> <string name="CFA_filterName_hint">בחר שם לַמַּסְנֵן כדי לשמור אותו...</string>
<string name="CFA_universe_all">משימות פעילות</string> <string name="CFA_universe_all">משימות פעילות</string>
<string name="CFA_type_add">או</string> <string name="CFA_type_add">או</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">タスクの読み込み</string> <string name="write_permission_label">タスクの読み込み</string>
<string name="write_permission_desc">タスクの作成、編集</string> <string name="write_permission_desc">タスクの作成、編集</string>
<string name="DLG_delete_this_task_question">このタスクを削除しますか?</string> <string name="DLG_delete_this_task_question">このタスクを削除しますか?</string>
<string name="DLG_delete_this_item_question">項目 %s を削除しますか?</string>
<string name="DLG_upgrading">タスクを更新しています</string> <string name="DLG_upgrading">タスクを更新しています</string>
<string name="DLG_hour_minutes">時間 (時:分)</string> <string name="DLG_hour_minutes">時間 (時:分)</string>
<string name="DLG_undo">動作を取り消す</string> <string name="DLG_undo">動作を取り消す</string>
@ -219,7 +218,6 @@
</string-array> </string-array>
<string name="BFE_Active">私のタスク</string> <string name="BFE_Active">私のタスク</string>
<string name="BFE_Recent">最近編集したタスク</string> <string name="BFE_Recent">最近編集したタスク</string>
<string name="BFE_Saved_delete">フィルタの削除</string>
<string name="CFA_filterName_hint">フィルタの名称</string> <string name="CFA_filterName_hint">フィルタの名称</string>
<string name="CFA_universe_all">進行中のタスク</string> <string name="CFA_universe_all">進行中のタスク</string>
<string name="CFA_type_add">または</string> <string name="CFA_type_add">または</string>

@ -31,7 +31,6 @@
<string name="write_permission_label">Tasks 권한</string> <string name="write_permission_label">Tasks 권한</string>
<string name="write_permission_desc">새 일정 생성하기, 기존 일정 편집하기</string> <string name="write_permission_desc">새 일정 생성하기, 기존 일정 편집하기</string>
<string name="DLG_delete_this_task_question">이 일정을 삭제할까요?</string> <string name="DLG_delete_this_task_question">이 일정을 삭제할까요?</string>
<string name="DLG_delete_this_item_question">이 항목을 삭제할까요: %s?</string>
<string name="DLG_upgrading">일정 업그레이드 중...</string> <string name="DLG_upgrading">일정 업그레이드 중...</string>
<string name="DLG_hour_minutes">시간 (시 : 분)</string> <string name="DLG_hour_minutes">시간 (시 : 분)</string>
<string name="DLG_undo">실행 취소</string> <string name="DLG_undo">실행 취소</string>
@ -222,7 +221,6 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
</string-array> </string-array>
<string name="BFE_Active">나의 일정</string> <string name="BFE_Active">나의 일정</string>
<string name="BFE_Recent">최근에 수정한 일정</string> <string name="BFE_Recent">최근에 수정한 일정</string>
<string name="BFE_Saved_delete">필터 삭제</string>
<string name="CFA_filterName_hint">저장할 필터 이름을 정하세요...</string> <string name="CFA_filterName_hint">저장할 필터 이름을 정하세요...</string>
<string name="CFA_universe_all">실행중인 일정</string> <string name="CFA_universe_all">실행중인 일정</string>
<string name="CFA_type_add">또는</string> <string name="CFA_type_add">또는</string>

@ -23,7 +23,6 @@
<string name="write_permission_label">Tasks Tillatelse</string> <string name="write_permission_label">Tasks Tillatelse</string>
<string name="write_permission_desc">opprett nye oppgaver, rediger eksisterende oppgaver</string> <string name="write_permission_desc">opprett nye oppgaver, rediger eksisterende oppgaver</string>
<string name="DLG_delete_this_task_question">Slett denne oppgaven?</string> <string name="DLG_delete_this_task_question">Slett denne oppgaven?</string>
<string name="DLG_delete_this_item_question">Slett følgende: %s?</string>
<string name="DLG_upgrading">Oppgraderer oppgavene dine...</string> <string name="DLG_upgrading">Oppgraderer oppgavene dine...</string>
<string name="DLG_hour_minutes">Tid (timer : minutter)</string> <string name="DLG_hour_minutes">Tid (timer : minutter)</string>
<string name="WID_dateButtonUnset">Klikk for å sette</string> <string name="WID_dateButtonUnset">Klikk for å sette</string>
@ -104,7 +103,6 @@
</string-array> </string-array>
<string name="BFE_Active">Aktive oppgaver</string> <string name="BFE_Active">Aktive oppgaver</string>
<string name="BFE_Recent">Nylig endret</string> <string name="BFE_Recent">Nylig endret</string>
<string name="BFE_Saved_delete">Slett filter</string>
<string name="CFA_filterName_hint">Lagre dette filteret ved å gi det et navn...</string> <string name="CFA_filterName_hint">Lagre dette filteret ved å gi det et navn...</string>
<string name="CFA_universe_all">Aktive oppgaver</string> <string name="CFA_universe_all">Aktive oppgaver</string>
<string name="CFA_type_add">eller</string> <string name="CFA_type_add">eller</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Taak toestemmingen</string> <string name="write_permission_label">Taak toestemmingen</string>
<string name="write_permission_desc">nieuwe taken maken, bestaande wijzigen</string> <string name="write_permission_desc">nieuwe taken maken, bestaande wijzigen</string>
<string name="DLG_delete_this_task_question">Taak verwijderen?</string> <string name="DLG_delete_this_task_question">Taak verwijderen?</string>
<string name="DLG_delete_this_item_question">Dit item verwijderen: %s?</string>
<string name="DLG_upgrading">Taken bijwerken...</string> <string name="DLG_upgrading">Taken bijwerken...</string>
<string name="DLG_hour_minutes">Tijd (uren : minuten)</string> <string name="DLG_hour_minutes">Tijd (uren : minuten)</string>
<string name="DLG_undo">Ongedaan Maken</string> <string name="DLG_undo">Ongedaan Maken</string>
@ -212,7 +211,6 @@
</string-array> </string-array>
<string name="BFE_Active">Mijn taken</string> <string name="BFE_Active">Mijn taken</string>
<string name="BFE_Recent">Onlangs aangepast</string> <string name="BFE_Recent">Onlangs aangepast</string>
<string name="BFE_Saved_delete">Filter verwijderen</string>
<string name="CFA_filterName_hint">Naam geven om op te slaan...</string> <string name="CFA_filterName_hint">Naam geven om op te slaan...</string>
<string name="CFA_universe_all">Actieve taken</string> <string name="CFA_universe_all">Actieve taken</string>
<string name="CFA_type_add">of</string> <string name="CFA_type_add">of</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Zezwolenia Tasks</string> <string name="write_permission_label">Zezwolenia Tasks</string>
<string name="write_permission_desc">twórz nowe zadania, edytuj bieżące zadania</string> <string name="write_permission_desc">twórz nowe zadania, edytuj bieżące zadania</string>
<string name="DLG_delete_this_task_question">Usunąć to zadanie?</string> <string name="DLG_delete_this_task_question">Usunąć to zadanie?</string>
<string name="DLG_delete_this_item_question">Usunąć element: %s?</string>
<string name="DLG_upgrading">Uaktualniam Twoje zadania...</string> <string name="DLG_upgrading">Uaktualniam Twoje zadania...</string>
<string name="DLG_hour_minutes">Czas (godziny : minuty)</string> <string name="DLG_hour_minutes">Czas (godziny : minuty)</string>
<string name="DLG_undo">Cofnij</string> <string name="DLG_undo">Cofnij</string>
@ -214,7 +213,6 @@ i odzyskanie zadań z kopi zapasowej (Settings-&gt;Sync and backup-&gt;Backup-&g
</string-array> </string-array>
<string name="BFE_Active">Moje zadania</string> <string name="BFE_Active">Moje zadania</string>
<string name="BFE_Recent">Niedawno zmodyfikowane</string> <string name="BFE_Recent">Niedawno zmodyfikowane</string>
<string name="BFE_Saved_delete">Usuń filtr</string>
<string name="CFA_filterName_hint">Nazwij filtr w celu zapisania...</string> <string name="CFA_filterName_hint">Nazwij filtr w celu zapisania...</string>
<string name="CFA_universe_all">Aktywne zadania</string> <string name="CFA_universe_all">Aktywne zadania</string>
<string name="CFA_type_add">albo</string> <string name="CFA_type_add">albo</string>

@ -27,7 +27,6 @@
<string name="write_permission_label">Permissões do Tasks</string> <string name="write_permission_label">Permissões do Tasks</string>
<string name="write_permission_desc">criar novas tarefas, editar tarefas existentes</string> <string name="write_permission_desc">criar novas tarefas, editar tarefas existentes</string>
<string name="DLG_delete_this_task_question">Excluir esta tarefa?</string> <string name="DLG_delete_this_task_question">Excluir esta tarefa?</string>
<string name="DLG_delete_this_item_question">Excluir este item: %s?</string>
<string name="DLG_upgrading">Atualizando suas tarefas...</string> <string name="DLG_upgrading">Atualizando suas tarefas...</string>
<string name="DLG_hour_minutes">Horário (horas:minutos)</string> <string name="DLG_hour_minutes">Horário (horas:minutos)</string>
<string name="DLG_undo">Desfazer</string> <string name="DLG_undo">Desfazer</string>
@ -210,7 +209,6 @@
</string-array> </string-array>
<string name="BFE_Active">Minhas Tarefas</string> <string name="BFE_Active">Minhas Tarefas</string>
<string name="BFE_Recent">Modificadas recentemente</string> <string name="BFE_Recent">Modificadas recentemente</string>
<string name="BFE_Saved_delete">Excluir Filtro</string>
<string name="CFA_filterName_hint">Nome do filtro a salvar...</string> <string name="CFA_filterName_hint">Nome do filtro a salvar...</string>
<string name="CFA_universe_all">Tarefas ativas</string> <string name="CFA_universe_all">Tarefas ativas</string>
<string name="CFA_type_add">OU</string> <string name="CFA_type_add">OU</string>

@ -30,7 +30,6 @@
<string name="write_permission_label">Permissões do Tasks</string> <string name="write_permission_label">Permissões do Tasks</string>
<string name="write_permission_desc">criar novas tarefas, editar tarefas existentes</string> <string name="write_permission_desc">criar novas tarefas, editar tarefas existentes</string>
<string name="DLG_delete_this_task_question">Remover esta tarefa?</string> <string name="DLG_delete_this_task_question">Remover esta tarefa?</string>
<string name="DLG_delete_this_item_question">Remover este item: %s?</string>
<string name="DLG_upgrading">Atualização de tarefas...</string> <string name="DLG_upgrading">Atualização de tarefas...</string>
<string name="DLG_hour_minutes">Tempo (horas:minutos)</string> <string name="DLG_hour_minutes">Tempo (horas:minutos)</string>
<string name="DLG_undo">Anular</string> <string name="DLG_undo">Anular</string>
@ -220,7 +219,6 @@ das tarefas através de um backup em Definições-&gt;Sincronização e backup-&
</string-array> </string-array>
<string name="BFE_Active">Minhas tarefas</string> <string name="BFE_Active">Minhas tarefas</string>
<string name="BFE_Recent">Alteradas recentemente</string> <string name="BFE_Recent">Alteradas recentemente</string>
<string name="BFE_Saved_delete">Eliminar filtro</string>
<string name="CFA_filterName_hint">Nome do filtro...</string> <string name="CFA_filterName_hint">Nome do filtro...</string>
<string name="CFA_universe_all">Tarefas ativas</string> <string name="CFA_universe_all">Tarefas ativas</string>
<string name="CFA_type_add">ou</string> <string name="CFA_type_add">ou</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Право Tasks</string> <string name="write_permission_label">Право Tasks</string>
<string name="write_permission_desc">создание новых и редактирование существующих задач</string> <string name="write_permission_desc">создание новых и редактирование существующих задач</string>
<string name="DLG_delete_this_task_question">Удалить эту задачу?</string> <string name="DLG_delete_this_task_question">Удалить эту задачу?</string>
<string name="DLG_delete_this_item_question">Удалить этот элемент: %s?</string>
<string name="DLG_upgrading">Обновление ваших задач…</string> <string name="DLG_upgrading">Обновление ваших задач…</string>
<string name="DLG_hour_minutes">Время (час : мин)</string> <string name="DLG_hour_minutes">Время (час : мин)</string>
<string name="DLG_undo">Отмена</string> <string name="DLG_undo">Отмена</string>
@ -219,7 +218,6 @@
</string-array> </string-array>
<string name="BFE_Active">Мои задачи</string> <string name="BFE_Active">Мои задачи</string>
<string name="BFE_Recent">Недавно изменённые</string> <string name="BFE_Recent">Недавно изменённые</string>
<string name="BFE_Saved_delete">Удалить фильтр</string>
<string name="CFA_filterName_hint">Задайте имя фильтра для его сохранения…</string> <string name="CFA_filterName_hint">Задайте имя фильтра для его сохранения…</string>
<string name="CFA_universe_all">Активные задачи</string> <string name="CFA_universe_all">Активные задачи</string>
<string name="CFA_type_add">или</string> <string name="CFA_type_add">или</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Tasks povolenia</string> <string name="write_permission_label">Tasks povolenia</string>
<string name="write_permission_desc">Vytvoriť nové úlohy, upraviť existujúce úlohy</string> <string name="write_permission_desc">Vytvoriť nové úlohy, upraviť existujúce úlohy</string>
<string name="DLG_delete_this_task_question">Vymazať túto úlohu?</string> <string name="DLG_delete_this_task_question">Vymazať túto úlohu?</string>
<string name="DLG_delete_this_item_question">Vymazať túto položku: %s?</string>
<string name="DLG_upgrading">Aktualizácia tvojich úloh...</string> <string name="DLG_upgrading">Aktualizácia tvojich úloh...</string>
<string name="DLG_hour_minutes">Čas (hodiny : minúty)</string> <string name="DLG_hour_minutes">Čas (hodiny : minúty)</string>
<string name="DLG_undo">Späť</string> <string name="DLG_undo">Späť</string>
@ -217,7 +216,6 @@
</string-array> </string-array>
<string name="BFE_Active">Moje úlohy</string> <string name="BFE_Active">Moje úlohy</string>
<string name="BFE_Recent">Naposledy upravené</string> <string name="BFE_Recent">Naposledy upravené</string>
<string name="BFE_Saved_delete">Vymazať filter</string>
<string name="CFA_filterName_hint">Pomenuj tento filter pre uloženie</string> <string name="CFA_filterName_hint">Pomenuj tento filter pre uloženie</string>
<string name="CFA_universe_all">Aktívne úlohy</string> <string name="CFA_universe_all">Aktívne úlohy</string>
<string name="CFA_type_add">alebo</string> <string name="CFA_type_add">alebo</string>

@ -31,7 +31,6 @@
<string name="write_permission_label">Dovoljenje Opravkom</string> <string name="write_permission_label">Dovoljenje Opravkom</string>
<string name="write_permission_desc">ustvari nove opravke, uredi obstoječe opravke</string> <string name="write_permission_desc">ustvari nove opravke, uredi obstoječe opravke</string>
<string name="DLG_delete_this_task_question">Zbrišem ta opravek?</string> <string name="DLG_delete_this_task_question">Zbrišem ta opravek?</string>
<string name="DLG_delete_this_item_question">Zbrišem ta predmet: %s?</string>
<string name="DLG_upgrading">Nadgrajujem tvoje opravke...</string> <string name="DLG_upgrading">Nadgrajujem tvoje opravke...</string>
<string name="DLG_hour_minutes">Čas (ure : minute)</string> <string name="DLG_hour_minutes">Čas (ure : minute)</string>
<string name="DLG_undo">Razveljavi</string> <string name="DLG_undo">Razveljavi</string>
@ -214,7 +213,6 @@
</string-array> </string-array>
<string name="BFE_Active">Moji Opravki</string> <string name="BFE_Active">Moji Opravki</string>
<string name="BFE_Recent">Nedavno spremenjeno</string> <string name="BFE_Recent">Nedavno spremenjeno</string>
<string name="BFE_Saved_delete">Zbriši filter</string>
<string name="CFA_filterName_hint">Poimenuj ta filter, da se shrani.</string> <string name="CFA_filterName_hint">Poimenuj ta filter, da se shrani.</string>
<string name="CFA_universe_all">Aktivni Opravki</string> <string name="CFA_universe_all">Aktivni Opravki</string>
<string name="CFA_type_add">na dan</string> <string name="CFA_type_add">na dan</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Tasks Tillstånd</string> <string name="write_permission_label">Tasks Tillstånd</string>
<string name="write_permission_desc">skapa nya uppgifter, redigera existerande uppgifter</string> <string name="write_permission_desc">skapa nya uppgifter, redigera existerande uppgifter</string>
<string name="DLG_delete_this_task_question">Radera denna uppgift?</string> <string name="DLG_delete_this_task_question">Radera denna uppgift?</string>
<string name="DLG_delete_this_item_question">Radera följande: %s?</string>
<string name="DLG_upgrading">Uppgraderar dina uppgifter...</string> <string name="DLG_upgrading">Uppgraderar dina uppgifter...</string>
<string name="DLG_hour_minutes">Tid (timmar : minuter)</string> <string name="DLG_hour_minutes">Tid (timmar : minuter)</string>
<string name="DLG_undo">Ångra</string> <string name="DLG_undo">Ångra</string>
@ -210,7 +209,6 @@ och återställer dina aktuella uppgifter från en backup
</string-array> </string-array>
<string name="BFE_Active">Mina Uppgifter</string> <string name="BFE_Active">Mina Uppgifter</string>
<string name="BFE_Recent">Nyligen ändrade</string> <string name="BFE_Recent">Nyligen ändrade</string>
<string name="BFE_Saved_delete">Radera filter</string>
<string name="CFA_filterName_hint">Spara detta filter genom att ge det ett namn</string> <string name="CFA_filterName_hint">Spara detta filter genom att ge det ett namn</string>
<string name="CFA_universe_all">Aktiva uppgifter</string> <string name="CFA_universe_all">Aktiva uppgifter</string>
<string name="CFA_type_add">eller</string> <string name="CFA_type_add">eller</string>

@ -17,7 +17,6 @@
<string name="read_permission_desc">อ่านแผนงาน, แสดงตัวกรองแผนงาน</string> <string name="read_permission_desc">อ่านแผนงาน, แสดงตัวกรองแผนงาน</string>
<string name="write_permission_desc">สร้างแผนงานใหม่, แก้ไขแผนงานเดิม</string> <string name="write_permission_desc">สร้างแผนงานใหม่, แก้ไขแผนงานเดิม</string>
<string name="DLG_delete_this_task_question">ลบงานนี้?</string> <string name="DLG_delete_this_task_question">ลบงานนี้?</string>
<string name="DLG_delete_this_item_question">ลบรายการนี้: %s?</string>
<string name="DLG_hour_minutes">เวลา (ชั่วโมง : นาที)</string> <string name="DLG_hour_minutes">เวลา (ชั่วโมง : นาที)</string>
<string name="WID_dateButtonUnset">คลิก เพื่อตั้งค่า</string> <string name="WID_dateButtonUnset">คลิก เพื่อตั้งค่า</string>
<string name="TLA_no_items">ไม่มีแผนงานใดๆ !</string> <string name="TLA_no_items">ไม่มีแผนงานใดๆ !</string>
@ -67,7 +66,6 @@
</string-array> </string-array>
<string name="BFE_Active">แผนงานตอนนี้</string> <string name="BFE_Active">แผนงานตอนนี้</string>
<string name="BFE_Recent">เพิ่งถูกแก้ไข</string> <string name="BFE_Recent">เพิ่งถูกแก้ไข</string>
<string name="BFE_Saved_delete">ลบตัวกรอง</string>
<string name="CFA_filterName_hint">ตั้งชื่อตัวกรองเพื่อบันทึก...</string> <string name="CFA_filterName_hint">ตั้งชื่อตัวกรองเพื่อบันทึก...</string>
<string name="CFA_universe_all">แผนงานตอนนี้</string> <string name="CFA_universe_all">แผนงานตอนนี้</string>
<string name="CFA_type_add">หรือ</string> <string name="CFA_type_add">หรือ</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Tasks İzni</string> <string name="write_permission_label">Tasks İzni</string>
<string name="write_permission_desc">yeni görevler oluştur, mevcut görevleri düzenle</string> <string name="write_permission_desc">yeni görevler oluştur, mevcut görevleri düzenle</string>
<string name="DLG_delete_this_task_question">Bu görev silinsin mi?</string> <string name="DLG_delete_this_task_question">Bu görev silinsin mi?</string>
<string name="DLG_delete_this_item_question">Öğe silinsin mi: %s?</string>
<string name="DLG_upgrading">Görevleriniz güncelleniyor...</string> <string name="DLG_upgrading">Görevleriniz güncelleniyor...</string>
<string name="DLG_hour_minutes">Zaman (saat : dakika)</string> <string name="DLG_hour_minutes">Zaman (saat : dakika)</string>
<string name="DLG_undo">Geri al</string> <string name="DLG_undo">Geri al</string>
@ -190,7 +189,6 @@
<item>Son tarihte ya da aşıldığında</item> <item>Son tarihte ya da aşıldığında</item>
</string-array> </string-array>
<string name="BFE_Recent">Yakında Değiştirilenler</string> <string name="BFE_Recent">Yakında Değiştirilenler</string>
<string name="BFE_Saved_delete">Süzgeci Sil</string>
<string name="CFA_filterName_hint">Süzgeci kaydetmek için ad yazın...</string> <string name="CFA_filterName_hint">Süzgeci kaydetmek için ad yazın...</string>
<string name="CFA_universe_all">Etkin Görevler</string> <string name="CFA_universe_all">Etkin Görevler</string>
<string name="CFA_type_add">ya da</string> <string name="CFA_type_add">ya da</string>

@ -31,7 +31,6 @@
<string name="write_permission_label">Дозволи Tasks</string> <string name="write_permission_label">Дозволи Tasks</string>
<string name="write_permission_desc">створення нових завдань, редагування існуючих завдань</string> <string name="write_permission_desc">створення нових завдань, редагування існуючих завдань</string>
<string name="DLG_delete_this_task_question">Видалити цю задачу?</string> <string name="DLG_delete_this_task_question">Видалити цю задачу?</string>
<string name="DLG_delete_this_item_question">Видалити цей пункт: %s?</string>
<string name="DLG_upgrading">Оновлення ваших завдань...</string> <string name="DLG_upgrading">Оновлення ваших завдань...</string>
<string name="DLG_hour_minutes">Час (години : хвилини)</string> <string name="DLG_hour_minutes">Час (години : хвилини)</string>
<string name="DLG_undo">Відмінити</string> <string name="DLG_undo">Відмінити</string>
@ -219,7 +218,6 @@
</string-array> </string-array>
<string name="BFE_Active">Мої завдання</string> <string name="BFE_Active">Мої завдання</string>
<string name="BFE_Recent">Недавно змінені</string> <string name="BFE_Recent">Недавно змінені</string>
<string name="BFE_Saved_delete">Видалити фільтр</string>
<string name="CFA_filterName_hint">Задайте ім\'я фільтра для його збереження ...</string> <string name="CFA_filterName_hint">Задайте ім\'я фільтра для його збереження ...</string>
<string name="CFA_universe_all">Активні завдання</string> <string name="CFA_universe_all">Активні завдання</string>
<string name="CFA_type_add">або</string> <string name="CFA_type_add">або</string>

@ -28,7 +28,6 @@
<string name="write_permission_label">清单小助理权限</string> <string name="write_permission_label">清单小助理权限</string>
<string name="write_permission_desc">创建新任务,修改现有任务</string> <string name="write_permission_desc">创建新任务,修改现有任务</string>
<string name="DLG_delete_this_task_question">确认删除?</string> <string name="DLG_delete_this_task_question">确认删除?</string>
<string name="DLG_delete_this_item_question">删除此项目:%s</string>
<string name="DLG_upgrading">升级您的任务...</string> <string name="DLG_upgrading">升级您的任务...</string>
<string name="DLG_hour_minutes">时间(小时:分钟)</string> <string name="DLG_hour_minutes">时间(小时:分钟)</string>
<string name="DLG_undo">撤消</string> <string name="DLG_undo">撤消</string>
@ -170,7 +169,6 @@
<item>截止期限或过期时</item> <item>截止期限或过期时</item>
</string-array> </string-array>
<string name="BFE_Recent">最近修改过的</string> <string name="BFE_Recent">最近修改过的</string>
<string name="BFE_Saved_delete">删除筛选</string>
<string name="CFA_filterName_hint">命名筛选并保存...</string> <string name="CFA_filterName_hint">命名筛选并保存...</string>
<string name="CFA_universe_all">进行中的任务</string> <string name="CFA_universe_all">进行中的任务</string>
<string name="CFA_type_add"></string> <string name="CFA_type_add"></string>

@ -28,7 +28,6 @@
<string name="write_permission_label">Tasks 權限</string> <string name="write_permission_label">Tasks 權限</string>
<string name="write_permission_desc">建立新工作, 修改現行工作</string> <string name="write_permission_desc">建立新工作, 修改現行工作</string>
<string name="DLG_delete_this_task_question">確認刪除?</string> <string name="DLG_delete_this_task_question">確認刪除?</string>
<string name="DLG_delete_this_item_question">刪除此項目: %s?</string>
<string name="DLG_upgrading">升級您的工作...</string> <string name="DLG_upgrading">升級您的工作...</string>
<string name="DLG_hour_minutes">時間 (小時:分鐘)</string> <string name="DLG_hour_minutes">時間 (小時:分鐘)</string>
<string name="DLG_undo">撤消</string> <string name="DLG_undo">撤消</string>
@ -201,7 +200,6 @@
</string-array> </string-array>
<string name="BFE_Active">我的工作</string> <string name="BFE_Active">我的工作</string>
<string name="BFE_Recent">最近修改過</string> <string name="BFE_Recent">最近修改過</string>
<string name="BFE_Saved_delete">刪除篩選</string>
<string name="CFA_filterName_hint">命名篩選並儲存...</string> <string name="CFA_filterName_hint">命名篩選並儲存...</string>
<string name="CFA_universe_all">進行中的工作</string> <string name="CFA_universe_all">進行中的工作</string>
<string name="CFA_type_add"></string> <string name="CFA_type_add"></string>

@ -20,9 +20,6 @@
<!-- question for deleting tasks --> <!-- question for deleting tasks -->
<string name="DLG_delete_this_task_question">Delete this task?</string> <string name="DLG_delete_this_task_question">Delete this task?</string>
<!-- question for deleting items (%s => item name) -->
<string name="DLG_delete_this_item_question">Delete this item: %s?</string>
<!-- Progress dialog shown when upgrading --> <!-- Progress dialog shown when upgrading -->
<string name="DLG_upgrading">Upgrading your tasks...</string> <string name="DLG_upgrading">Upgrading your tasks...</string>

@ -9,9 +9,6 @@
<!-- slide 10b: Recently Modified --> <!-- slide 10b: Recently Modified -->
<string name="BFE_Recent">Recently Modified</string> <string name="BFE_Recent">Recently Modified</string>
<!-- Saved Filters Context Menu: delete -->
<string name="BFE_Saved_delete">Delete Filter</string>
<!-- =========================================== CustomFilterActivity == --> <!-- =========================================== CustomFilterActivity == -->
<!-- slide 30e: Filter Name edit box hint (if user types here, filter will be saved) --> <!-- slide 30e: Filter Name edit box hint (if user types here, filter will be saved) -->

@ -119,6 +119,7 @@
<string name="discard">Discard</string> <string name="discard">Discard</string>
<string name="tag_settings">Tag Settings</string> <string name="tag_settings">Tag Settings</string>
<string name="delete">Delete</string> <string name="delete">Delete</string>
<string name="filter_settings">Filter Settings</string>
<string-array name="sync_SPr_interval_entries"> <string-array name="sync_SPr_interval_entries">
<!-- sync_SPr_interval_entries: Synchronization Intervals --> <!-- sync_SPr_interval_entries: Synchronization Intervals -->

Loading…
Cancel
Save