Subtasks everywhere

gtask_related_email
Alex Baker 5 years ago
parent e4d35cb919
commit f8518742f8

@ -370,11 +370,7 @@ public final class TaskListFragment extends InjectingFragment
startActivityForResult(recognition, TaskListFragment.VOICE_RECOGNITION_REQUEST_CODE);
return true;
case R.id.menu_sort:
boolean supportsManualSort =
filter.supportsSubtasks()
|| BuiltInFilterExposer.isInbox(context, filter)
|| BuiltInFilterExposer.isTodayFilter(context, filter);
SortDialog.newSortDialog(supportsManualSort, filter instanceof GtasksFilter)
SortDialog.newSortDialog(filter.supportsManualSort())
.show(getChildFragmentManager(), FRAG_TAG_SORT_DIALOG);
return true;
case R.id.menu_show_hidden:

@ -82,7 +82,7 @@ public class Filter extends FilterListItem {
* @param listingTitle Title of this item as displayed on the lists page, e.g. Inbox
* @param sqlQuery SQL query for this list (see {@link #sqlQuery} for examples).
*/
public Filter(
protected Filter(
String listingTitle, QueryTemplate sqlQuery, Map<String, Object> valuesForNewTasks) {
this(listingTitle, sqlQuery == null ? null : sqlQuery.toString(), valuesForNewTasks);
}
@ -102,7 +102,7 @@ public class Filter extends FilterListItem {
}
}
Filter() {}
protected Filter() {}
public String getOriginalSqlQuery() {
return sqlQuery;
@ -181,10 +181,14 @@ public class Filter extends FilterListItem {
source.readMap(valuesForNewTasks, getClass().getClassLoader());
}
public boolean supportsSubtasks() {
public boolean supportsManualSort() {
return false;
}
public boolean supportsSubtasks() {
return true;
}
public boolean hasMenu() {
return getMenu() != 0;
}

@ -95,7 +95,7 @@ public class GtasksFilter extends Filter {
}
@Override
public boolean supportsSubtasks() {
public boolean supportsManualSort() {
return true;
}

@ -85,7 +85,7 @@ public class TagFilter extends Filter {
}
@Override
public boolean supportsSubtasks() {
public boolean supportsManualSort() {
return true;
}

@ -25,6 +25,8 @@ import java.util.Map;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.Tag;
import org.tasks.filters.NoSubtasksFilter;
import org.tasks.filters.SortableFilter;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
import org.tasks.themes.CustomIcons;
@ -47,7 +49,7 @@ public final class BuiltInFilterExposer {
/** Build inbox filter */
public static Filter getMyTasksFilter(Resources r) {
return new Filter(
return new SortableFilter(
r.getString(R.string.BFE_Active),
new QueryTemplate().where(TaskCriteria.activeAndVisible()));
}
@ -56,7 +58,7 @@ public final class BuiltInFilterExposer {
String todayTitle = AndroidUtilities.capitalize(r.getString(R.string.today));
Map<String, Object> todayValues = new HashMap<>();
todayValues.put(Task.DUE_DATE.name, PermaSql.VALUE_NOON);
return new Filter(
return new SortableFilter(
todayTitle,
new QueryTemplate()
.where(
@ -68,7 +70,7 @@ public final class BuiltInFilterExposer {
}
public static Filter getRecentlyModifiedFilter(Resources r) {
return new Filter(
return new NoSubtasksFilter(
r.getString(R.string.BFE_Recent),
new QueryTemplate()
.where(TaskCriteria.notDeleted())

@ -125,11 +125,7 @@ public class SubtasksHelper {
}
public boolean shouldUseSubtasksFragmentForFilter(Filter filter) {
return preferences.isManualSort()
&& filter != null
&& (filter.supportsSubtasks()
|| BuiltInFilterExposer.isInbox(context, filter)
|| BuiltInFilterExposer.isTodayFilter(context, filter));
return preferences.isManualSort() && filter != null && filter.supportsManualSort();
}
public String applySubtasksToWidgetFilter(Filter filter, String query) {

@ -6,6 +6,7 @@ import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.data.Table;
import com.todoroo.astrid.data.Task;
@ -18,6 +19,8 @@ public class Tag {
public static final Table TABLE = new Table("tags");
public static final LongProperty TASK = new LongProperty(TABLE, "task");
public static final StringProperty TAG_UID = new StringProperty(TABLE, "tag_uid");
public static final StringProperty TASK_UID = new StringProperty(TABLE, "task_uid");
public static final StringProperty NAME = new StringProperty(TABLE, "name");

@ -23,7 +23,6 @@ import timber.log.Timber;
public class SortDialog extends InjectingDialogFragment {
private static final String EXTRA_MANUAL_ENABLED = "extra_manual_enabled";
private static final String EXTRA_IS_GOOGLE_TASKS = "extra_is_google_tasks";
private static final String EXTRA_SELECTED_INDEX = "extra_selected_index";
@Inject Preferences preferences;
@Inject DialogBuilder dialogBuilder;
@ -32,11 +31,10 @@ public class SortDialog extends InjectingDialogFragment {
private AlertDialog alertDialog;
private SortDialogCallback callback;
public static SortDialog newSortDialog(boolean manualEnabled, boolean isGoogleTasks) {
public static SortDialog newSortDialog(boolean manualEnabled) {
SortDialog sortDialog = new SortDialog();
Bundle args = new Bundle();
args.putBoolean(EXTRA_MANUAL_ENABLED, manualEnabled);
args.putBoolean(EXTRA_IS_GOOGLE_TASKS, isGoogleTasks);
sortDialog.setArguments(args);
return sortDialog;
}
@ -48,7 +46,6 @@ public class SortDialog extends InjectingDialogFragment {
Bundle arguments = getArguments();
manualEnabled = arguments.getBoolean(EXTRA_MANUAL_ENABLED);
boolean isGoogleTasks = arguments.getBoolean(EXTRA_IS_GOOGLE_TASKS);
if (savedInstanceState != null) {
manualEnabled = savedInstanceState.getBoolean(EXTRA_MANUAL_ENABLED);
@ -60,7 +57,7 @@ public class SortDialog extends InjectingDialogFragment {
List<String> items = new ArrayList<>();
if (manualEnabled) {
items.add(getString(isGoogleTasks ? R.string.SSD_sort_my_order : R.string.SSD_sort_drag));
items.add(getString(R.string.SSD_sort_my_order));
}
items.add(getString(R.string.SSD_sort_auto));

@ -0,0 +1,38 @@
package org.tasks.filters;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.api.Filter;
public class NoSubtasksFilter extends Filter {
public static final Parcelable.Creator<NoSubtasksFilter> CREATOR =
new Parcelable.Creator<NoSubtasksFilter>() {
/** {@inheritDoc} */
@Override
public NoSubtasksFilter createFromParcel(Parcel source) {
NoSubtasksFilter item = new NoSubtasksFilter();
item.readFromParcel(source);
return item;
}
/** {@inheritDoc} */
@Override
public NoSubtasksFilter[] newArray(int size) {
return new NoSubtasksFilter[size];
}
};
public NoSubtasksFilter(String listingTitle, QueryTemplate sqlQuery) {
super(listingTitle, sqlQuery);
}
private NoSubtasksFilter() {}
@Override
public boolean supportsSubtasks() {
return false;
}
}

@ -0,0 +1,44 @@
package org.tasks.filters;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.api.Filter;
import java.util.Map;
public class SortableFilter extends Filter {
public static final Parcelable.Creator<SortableFilter> CREATOR =
new Parcelable.Creator<SortableFilter>() {
/** {@inheritDoc} */
@Override
public SortableFilter createFromParcel(Parcel source) {
SortableFilter item = new SortableFilter();
item.readFromParcel(source);
return item;
}
/** {@inheritDoc} */
@Override
public SortableFilter[] newArray(int size) {
return new SortableFilter[size];
}
};
public SortableFilter(String listingTitle, QueryTemplate sqlQuery) {
super(listingTitle, sqlQuery);
}
public SortableFilter(
String listingTitle, QueryTemplate sqlQuery, Map<String, Object> valuesForNewTasks) {
super(listingTitle, sqlQuery, valuesForNewTasks);
}
private SortableFilter() {}
@Override
public boolean supportsManualSort() {
return true;
}
}

@ -79,11 +79,6 @@ public class TaskListViewModel extends ViewModel {
private static final StringProperty TAGS =
new StringProperty(null, "group_concat(distinct(" + TAGS_METADATA_JOIN + ".tag_uid)" + ")")
.as("tags");
private static final StringProperty TAGS_RECURSIVE =
new StringProperty(null, "(SELECT group_concat(distinct(tag_uid))\n" +
"FROM tags WHERE tags.task = tasks._id\n" +
"GROUP BY tags.task)")
.as("tags");
@Inject Preferences preferences;
@Inject TaskDao taskDao;
@ -111,17 +106,21 @@ public class TaskListViewModel extends ViewModel {
List<Field> fields = newArrayList(TASKS, GTASK, CALDAV, GEOFENCE, PLACE);
if (atLeastLollipop()
&& (filter instanceof CaldavFilter
|| (!preferences.isManualSort() && filter instanceof GtasksFilter))) {
// TODO This is in some ways a proof of concept demonstrating a recursive query used to pull
// in CalDAV tasks providing parenting across different sort modes. Tags are implemented
// as a subquery, which is ugly, but aggregate recursive queries aren't supported. The
// link to eg. GoogleTasks remains as it was originally explored as a drop-in replacement
// for the main query. Need to verify the approach and look at how this can be applied
// across backends plus investigate integrating more closely with the query-building
// classes in the architecture.
fields.add(TAGS_RECURSIVE);
&& filter.supportsSubtasks()
&& !(preferences.isManualSort() && filter.supportsManualSort())) {
String tagQuery =
Query.select(field("group_concat(distinct(tag_uid))"))
.from(Tag.TABLE)
.where(
filter instanceof TagFilter
? Criterion.and(
RECURSIVE_TASK.eq(Tag.TASK),
Tag.TAG_UID.neq(((TagFilter) filter).getUuid()))
: Task.ID.eq(Tag.TASK))
.toString()
+ " GROUP BY "
+ Tag.TASK;
fields.add(field("(" + tagQuery + ")").as("tags"));
fields.add(INDENT);
String joinedQuery = Join.inner(RECURSIVE, Task.ID.eq(RECURSIVE_TASK)) + JOINS;
@ -152,7 +151,7 @@ public class TaskListViewModel extends ViewModel {
CaldavTask.TASK.eq(Task.ID),
CaldavTask.DELETED.eq(0))))
.where(TaskCriteria.activeAndVisible());
} else {
} else if (filter instanceof GtasksFilter) {
GoogleTaskList list = ((GtasksFilter) filter).getList();
parentQuery =
new QueryTemplate()
@ -177,6 +176,31 @@ public class TaskListViewModel extends ViewModel {
GoogleTask.TASK.eq(Task.ID),
GoogleTask.DELETED.eq(0))))
.where(TaskCriteria.activeAndVisible());
} else {
parentQuery = PermaSql.replacePlaceholdersForQuery(filter.getSqlQuery());
subtaskQuery
.join(
Join.left(
GoogleTask.TABLE,
Criterion.and(
GoogleTask.PARENT.gt(0),
GoogleTask.TASK.eq(Task.ID),
GoogleTask.DELETED.eq(0))))
.join(
Join.left(
CaldavTask.TABLE,
Criterion.and(
CaldavTask.PARENT.gt(0),
CaldavTask.TASK.eq(Task.ID),
CaldavTask.DELETED.eq(0))))
.join(
Join.inner(
RECURSIVE,
Criterion.or(
GoogleTask.PARENT.eq(RECURSIVE_TASK),
CaldavTask.PARENT.eq(RECURSIVE_TASK))))
.where(TaskCriteria.activeAndVisible());
joinedQuery += " WHERE indent = (select max(indent) from recursive_tasks where tasks._id = recursive_tasks.task) ";
}
String sortSelect = SortHelper.orderSelectForSortTypeRecursive(preferences.getSortMode());

@ -1,8 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--suppress AndroidLintTypographyEllipsis,AndroidLintTypographyDashes,AndroidLintTypos-->
<resources>
<string name="SSD_sort_drag">Manuele rangskiking met subtake</string>
<string name="SSD_sort_auto">Slim sorteer</string>
<string name="SSD_sort_auto">Slim sorteer</string>
<string name="SSD_sort_alpha">Volgens titel</string>
<string name="SSD_sort_due">Volgens datum</string>
<string name="SSD_sort_importance">Volgens prioriteit</string>

@ -16,8 +16,7 @@
<string name="TLA_menu_search">ابحث</string>
<string name="TLA_menu_settings">إعدادات</string>
<string name="TAd_actionEditTask">تعديل</string>
<string name="SSD_sort_drag">ترتيب يدوي مع مهام فرعية</string>
<string name="SSD_sort_auto">ترتيب ذكي</string>
<string name="SSD_sort_auto">ترتيب ذكي</string>
<string name="SSD_sort_alpha">بالعنوان</string>
<string name="SSD_sort_due">بحسب تاريخ الإستحقاق</string>
<string name="SSD_sort_importance">بحسب الأولوية</string>

@ -30,8 +30,7 @@
<string name="TAd_actionEditTask">Редактирай</string>
<string name="action_call">Обади се</string>
<string name="action_open">Отвори</string>
<string name="SSD_sort_drag">Ръчно подреждане с подзадачи</string>
<string name="SSD_sort_auto">Умно сортиране</string>
<string name="SSD_sort_auto">Умно сортиране</string>
<string name="SSD_sort_alpha">По име</string>
<string name="SSD_sort_due">По краен срок</string>
<string name="SSD_sort_importance">По приоритет</string>

@ -18,8 +18,7 @@
<string name="TLA_menu_search">Cerca</string>
<string name="TLA_menu_settings">Paràmetres</string>
<string name="TAd_actionEditTask">Edita</string>
<string name="SSD_sort_drag">Ordre manual amb subtasques</string>
<string name="SSD_sort_auto">Classificació intel·ligent Tasks</string>
<string name="SSD_sort_auto">Classificació intel·ligent Tasks</string>
<string name="SSD_sort_alpha">Per títol</string>
<string name="SSD_sort_due">Per data de venciment</string>
<string name="SSD_sort_importance">Per importància</string>

@ -22,8 +22,7 @@
<string name="TLA_menu_search">Hledat</string>
<string name="TLA_menu_settings">Nastavení</string>
<string name="TAd_actionEditTask">Upravit</string>
<string name="SSD_sort_drag">Ručně nebo s podúkoly</string>
<string name="SSD_sort_auto">Chytré třídění</string>
<string name="SSD_sort_auto">Chytré třídění</string>
<string name="SSD_sort_alpha">Podle názvu</string>
<string name="SSD_sort_due">Podle data ukončení</string>
<string name="SSD_sort_importance">Podle důležitosti</string>

@ -18,8 +18,7 @@
<string name="TLA_menu_sort">Sorter &amp; skjulte</string>
<string name="TLA_menu_settings">Opsætning</string>
<string name="TAd_actionEditTask">Rediger</string>
<string name="SSD_sort_drag">Manuel ordre med delopgaver</string>
<string name="SSD_sort_auto">Tasks Intelligent sortering</string>
<string name="SSD_sort_auto">Tasks Intelligent sortering</string>
<string name="SSD_sort_alpha">Efter titel</string>
<string name="SSD_sort_due">Efter deadline</string>
<string name="SSD_sort_importance">Efter vigtighed</string>

@ -25,8 +25,7 @@
<string name="TAd_actionEditTask">Bearbeiten</string>
<string name="action_call">Anrufen</string>
<string name="action_open">Öffnen</string>
<string name="SSD_sort_drag">Manuelle Sortierung mit Unteraufgaben</string>
<string name="SSD_sort_auto">Smarte Sortierung</string>
<string name="SSD_sort_auto">Smarte Sortierung</string>
<string name="SSD_sort_alpha">Nach Titel</string>
<string name="SSD_sort_due">Nach Fälligkeit</string>
<string name="SSD_sort_importance">Nach Priorität</string>

@ -23,8 +23,7 @@
<string name="TLA_menu_search">Αναζήτηση</string>
<string name="TLA_menu_settings">Ρυθμίσεις</string>
<string name="TAd_actionEditTask">Επεξεργασία</string>
<string name="SSD_sort_drag">Χειροκίνητη κατάταξη με υποκαθήκοντα</string>
<string name="SSD_sort_auto">Έξυπνη ταξινόμηση</string>
<string name="SSD_sort_auto">Έξυπνη ταξινόμηση</string>
<string name="SSD_sort_alpha">Με βάση τον τίτλο</string>
<string name="SSD_sort_due">Με βάση την ημερομηνία λήξης</string>
<string name="SSD_sort_importance">Κατά προτεραιότητα</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">Editar</string>
<string name="action_call">Llamar</string>
<string name="action_open">Abrir</string>
<string name="SSD_sort_drag">Orden manual con subtareas</string>
<string name="SSD_sort_auto">Ordenación inteligente</string>
<string name="SSD_sort_auto">Ordenación inteligente</string>
<string name="SSD_sort_alpha">Por título</string>
<string name="SSD_sort_due">Por vencimiento</string>
<string name="SSD_sort_importance">Por prioridad</string>

@ -31,8 +31,7 @@
<string name="TAd_actionEditTask">Editatu</string>
<string name="action_call">Deitu</string>
<string name="action_open">Ireki</string>
<string name="SSD_sort_drag">Eskuzko ordena azpi-egitekoekin</string>
<string name="SSD_sort_auto">Ordenatze adimentsua</string>
<string name="SSD_sort_auto">Ordenatze adimentsua</string>
<string name="SSD_sort_alpha">Izenburuaren arabera</string>
<string name="SSD_sort_due">Epemugaren arabera</string>
<string name="SSD_sort_importance">Lehentasunaren arabera</string>

@ -19,8 +19,7 @@
<string name="TLA_menu_search">جست و جو</string>
<string name="TLA_menu_settings">تنظیمات</string>
<string name="TAd_actionEditTask">ویرایش</string>
<string name="SSD_sort_drag">چینش دستی بهمراه زیروظایف</string>
<string name="SSD_sort_auto">چینش هوشمندانه</string>
<string name="SSD_sort_auto">چینش هوشمندانه</string>
<string name="SSD_sort_alpha">براساس موضوع</string>
<string name="SSD_sort_due">براساس تاریخ موعود</string>
<string name="SSD_sort_importance">براساس اولیت</string>

@ -28,8 +28,7 @@
<string name="TLA_menu_search">Etsi</string>
<string name="TLA_menu_settings">Asetukset</string>
<string name="TAd_actionEditTask">Muokkaa</string>
<string name="SSD_sort_drag">Manuaalinen järjestys osatehtäviin</string>
<string name="SSD_sort_auto">Älykäs järjestely</string>
<string name="SSD_sort_auto">Älykäs järjestely</string>
<string name="SSD_sort_alpha">Otsikoittain</string>
<string name="SSD_sort_due">Eräpäivään mennessä</string>
<string name="SSD_sort_importance">Prioriteetin mukaan</string>

@ -26,8 +26,7 @@
<string name="TAd_actionEditTask">Modifier</string>
<string name="action_call">Appeler</string>
<string name="action_open">Ouvrir</string>
<string name="SSD_sort_drag">Ordonner manuellement avec les sous-tâches</string>
<string name="SSD_sort_auto">Tri intelligent Tasks</string>
<string name="SSD_sort_auto">Tri intelligent Tasks</string>
<string name="SSD_sort_alpha">Par titre</string>
<string name="SSD_sort_due">Par date d\'échéance</string>
<string name="SSD_sort_importance">Par priorité</string>

@ -25,8 +25,7 @@
<string name="TLA_menu_search">Buscar</string>
<string name="TLA_menu_settings">Configuración</string>
<string name="TAd_actionEditTask">Editar</string>
<string name="SSD_sort_drag">Orde manual con subtarefas</string>
<string name="SSD_sort_auto">Ordenación intelixente</string>
<string name="SSD_sort_auto">Ordenación intelixente</string>
<string name="SSD_sort_alpha">Por título</string>
<string name="SSD_sort_due">Por data límite</string>
<string name="SSD_sort_importance">Por prioridade</string>

@ -29,8 +29,7 @@
<string name="TAd_actionEditTask">Szerkesztés</string>
<string name="action_call">Hívás</string>
<string name="action_open">Megnyitás</string>
<string name="SSD_sort_drag">Manuális sorrend részfeladatokkal</string>
<string name="SSD_sort_auto">Intelligens rendezés</string>
<string name="SSD_sort_auto">Intelligens rendezés</string>
<string name="SSD_sort_alpha">Név alapján</string>
<string name="SSD_sort_due">Határidő alapján</string>
<string name="SSD_sort_importance">Prioritás alapján</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">Modifica</string>
<string name="action_call">Chiama</string>
<string name="action_open">Apri</string>
<string name="SSD_sort_drag">Ordinamento manuale con attività correlate</string>
<string name="SSD_sort_auto">Ordinamento Intelligente</string>
<string name="SSD_sort_auto">Ordinamento Intelligente</string>
<string name="SSD_sort_alpha">Per titolo</string>
<string name="SSD_sort_due">Per scadenza</string>
<string name="SSD_sort_importance">Per priorità</string>

@ -32,8 +32,7 @@
<string name="TAd_actionEditTask">עריכה</string>
<string name="action_call">התקשר</string>
<string name="action_open">פתח</string>
<string name="SSD_sort_drag">סידור ידני עם תתי-משימות</string>
<string name="SSD_sort_auto">מיון חכם</string>
<string name="SSD_sort_auto">מיון חכם</string>
<string name="SSD_sort_alpha">ע״פ כותרת</string>
<string name="SSD_sort_due">ע״פ מועד יעד</string>
<string name="SSD_sort_importance">ע״פ עדיפות</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">編集する</string>
<string name="action_call">呼び出し</string>
<string name="action_open">開く</string>
<string name="SSD_sort_drag">サブタスクの手動設定順</string>
<string name="SSD_sort_auto">自動</string>
<string name="SSD_sort_auto">自動</string>
<string name="SSD_sort_alpha">タイトル順</string>
<string name="SSD_sort_due">期限順</string>
<string name="SSD_sort_importance">優先順位順</string>

@ -30,8 +30,7 @@
<string name="TAd_actionEditTask">편집</string>
<string name="action_call">전화</string>
<string name="action_open">열기</string>
<string name="SSD_sort_drag">수동 정렬 (하위할일 포함)</string>
<string name="SSD_sort_auto">Tasks 스마트 정렬</string>
<string name="SSD_sort_auto">Tasks 스마트 정렬</string>
<string name="SSD_sort_alpha">제목 순서</string>
<string name="SSD_sort_due">마감일 순서</string>
<string name="SSD_sort_importance">우선순위 순서로</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">Redaguoti</string>
<string name="action_call">Skambinti</string>
<string name="action_open">Atidaryti</string>
<string name="SSD_sort_drag">Rankinis eiliškumas su sub-užduotimis</string>
<string name="SSD_sort_auto">Gudrus eiliškumas</string>
<string name="SSD_sort_auto">Gudrus eiliškumas</string>
<string name="SSD_sort_alpha">Pagal pavadinimą</string>
<string name="SSD_sort_due">Pagal pabaigos terminą</string>
<string name="SSD_sort_importance">Pagal pirmenybę</string>

@ -21,8 +21,7 @@
<string name="TLA_menu_sort">Sorter</string>
<string name="TLA_menu_settings">Innstillinger</string>
<string name="TAd_actionEditTask">Rediger</string>
<string name="SSD_sort_drag">Manuell rekkefølge med underoppgaver</string>
<string name="SSD_sort_auto">Smart sortering</string>
<string name="SSD_sort_auto">Smart sortering</string>
<string name="SSD_sort_alpha">Etter tittel</string>
<string name="SSD_sort_due">Etter tidsfristsdato</string>
<string name="SSD_sort_importance">Etter prioritet</string>

@ -25,8 +25,7 @@
<string name="TLA_menu_settings">Instellingen</string>
<string name="TAd_actionEditTask">Bewerken</string>
<string name="action_call">Bel</string>
<string name="SSD_sort_drag">Handmatige volgorde met subtaken</string>
<string name="SSD_sort_auto">Slim Sorteren</string>
<string name="SSD_sort_auto">Slim Sorteren</string>
<string name="SSD_sort_alpha">Op titel</string>
<string name="SSD_sort_due">Op einddatum</string>
<string name="SSD_sort_importance">Op prioriteit</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">Edytuj</string>
<string name="action_call">Zadzwoń</string>
<string name="action_open">Otwórz</string>
<string name="SSD_sort_drag">Ręczne z podzadaniami</string>
<string name="SSD_sort_auto">Automatyczne</string>
<string name="SSD_sort_auto">Automatyczne</string>
<string name="SSD_sort_alpha">Wg tytułu</string>
<string name="SSD_sort_due">Wg daty</string>
<string name="SSD_sort_importance">Wg priorytetów</string>

@ -29,8 +29,7 @@
<string name="TAd_actionEditTask">Editar</string>
<string name="action_call">Chamar</string>
<string name="action_open">Abrir</string>
<string name="SSD_sort_drag">Ordem manual com subtarefas</string>
<string name="SSD_sort_auto">Ordenação inteligente</string>
<string name="SSD_sort_auto">Ordenação inteligente</string>
<string name="SSD_sort_alpha">Por título</string>
<string name="SSD_sort_due">Por data de vencimento</string>
<string name="SSD_sort_importance">Por prioridade</string>

@ -27,8 +27,7 @@
<string name="TLA_menu_search">Procura</string>
<string name="TLA_menu_settings">Definições</string>
<string name="TAd_actionEditTask">Editar</string>
<string name="SSD_sort_drag">Ordem manual com subtarefas</string>
<string name="SSD_sort_auto">Ordenação Inteligente Tasks</string>
<string name="SSD_sort_auto">Ordenação Inteligente Tasks</string>
<string name="SSD_sort_alpha">Por Título</string>
<string name="SSD_sort_due">Por data limite</string>
<string name="SSD_sort_importance">Por Importância</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">Редактировать</string>
<string name="action_call">Позвонить</string>
<string name="action_open">Открыть</string>
<string name="SSD_sort_drag">Ручная сортировка с подзадачами</string>
<string name="SSD_sort_auto">Умная сортировка</string>
<string name="SSD_sort_auto">Умная сортировка</string>
<string name="SSD_sort_alpha">По названию</string>
<string name="SSD_sort_due">По намеченному сроку</string>
<string name="SSD_sort_importance">По приоритету</string>

@ -27,8 +27,7 @@
<string name="TAd_actionEditTask">Upraviť</string>
<string name="action_call">Volať</string>
<string name="action_open">Otvoriť</string>
<string name="SSD_sort_drag">Ručne triediť s podúlohami</string>
<string name="SSD_sort_auto">Chytré triedenie</string>
<string name="SSD_sort_auto">Chytré triedenie</string>
<string name="SSD_sort_alpha">Podľa názvu</string>
<string name="SSD_sort_due">Podľa dátumu</string>
<string name="SSD_sort_importance">Podľa dôležitosti</string>

@ -23,8 +23,7 @@
<string name="TLA_menu_search">Iskanje</string>
<string name="TLA_menu_settings">Nastavitve</string>
<string name="TAd_actionEditTask">Uredi</string>
<string name="SSD_sort_drag">Ročna nastavitev s podopravki</string>
<string name="SSD_sort_auto">Pametno razvrščanje</string>
<string name="SSD_sort_auto">Pametno razvrščanje</string>
<string name="SSD_sort_alpha">Po naslovu</string>
<string name="SSD_sort_due">Po datumu roka</string>
<string name="SSD_sort_importance">Po prioriteti</string>

@ -1,8 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--suppress AndroidLintTypographyEllipsis,AndroidLintTypographyDashes,AndroidLintTypos-->
<resources>
<string name="SSD_sort_drag">Ručni poredak sa podzadacima</string>
<string name="SSD_sort_auto">Pametno sortiranje</string>
<string name="SSD_sort_auto">Pametno sortiranje</string>
<string name="SSD_sort_alpha">Po naslovu</string>
<string name="SSD_sort_due">Po datumu</string>
<string name="SSD_sort_importance">Po prioritetnosti</string>

@ -24,8 +24,7 @@
<string name="TLA_menu_search">Sök</string>
<string name="TLA_menu_settings">Inställningar</string>
<string name="TAd_actionEditTask">Redigera</string>
<string name="SSD_sort_drag">Manuell sortering med underuppgifter</string>
<string name="SSD_sort_auto">Smart sortering</string>
<string name="SSD_sort_auto">Smart sortering</string>
<string name="SSD_sort_alpha">Efter titel</string>
<string name="SSD_sort_due">Efter förfallodatum</string>
<string name="SSD_sort_importance">Efter prioritet</string>

@ -31,8 +31,7 @@
<string name="TAd_actionEditTask">Düzenle</string>
<string name="action_call">Ara</string>
<string name="action_open"></string>
<string name="SSD_sort_drag">Alt görevleri elle sırala</string>
<string name="SSD_sort_auto">Tasks akıllı sıralama</string>
<string name="SSD_sort_auto">Tasks akıllı sıralama</string>
<string name="SSD_sort_alpha">Başlığa göre</string>
<string name="SSD_sort_due">Bitiş tarihine göre</string>
<string name="SSD_sort_importance">Önceliğe göre</string>

@ -30,8 +30,7 @@
<string name="TAd_actionEditTask">Редагувати</string>
<string name="action_call">Набрати</string>
<string name="action_open">Відкрити</string>
<string name="SSD_sort_drag">Ручний порядок з підзадачами</string>
<string name="SSD_sort_auto">Розумне сортування</string>
<string name="SSD_sort_auto">Розумне сортування</string>
<string name="SSD_sort_alpha">За назвою</string>
<string name="SSD_sort_due">За кінцевою датою</string>
<string name="SSD_sort_importance">За пріоритетом</string>

@ -26,8 +26,7 @@
<string name="TAd_actionEditTask">编辑</string>
<string name="action_call">通话</string>
<string name="action_open">打开</string>
<string name="SSD_sort_drag">手动指定来显示子任务</string>
<string name="SSD_sort_auto">清单小助理智能排序</string>
<string name="SSD_sort_auto">清单小助理智能排序</string>
<string name="SSD_sort_alpha">按标题</string>
<string name="SSD_sort_due">按截止日期</string>
<string name="SSD_sort_importance">按优先级</string>

@ -32,7 +32,6 @@ File %1$s contained %2$s.\n\n
<string name="TAd_actionEditTask">Edit</string>
<string name="action_call">Call</string>
<string name="action_open">Open</string>
<string name="SSD_sort_drag">Manual order with subtasks</string>
<string name="SSD_sort_my_order">My order</string>
<string name="SSD_sort_auto">Smart sort</string>
<string name="SSD_sort_alpha">By title</string>

Loading…
Cancel
Save