Clear completed tasks from any task list

pull/493/head
Alex Baker 8 years ago
parent d7bd1b9760
commit 77517ab879

@ -15,6 +15,7 @@ import com.todoroo.astrid.sync.SyncResultCallback;
import org.tasks.R;
import org.tasks.activities.GoogleTaskListSettingsActivity;
import org.tasks.analytics.Tracking;
import org.tasks.injection.FragmentComponent;
import javax.inject.Inject;
@ -56,9 +57,6 @@ public class GtasksListFragment extends TaskListFragment {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_clear_completed:
clearCompletedTasks();
return true;
case R.id.menu_gtasks_list_settings:
Intent intent = new Intent(getActivity(), GoogleTaskListSettingsActivity.class);
intent.putExtra(GoogleTaskListSettingsActivity.EXTRA_STORE_DATA, list.getStoreObject());
@ -87,7 +85,9 @@ public class GtasksListFragment extends TaskListFragment {
}
}
private void clearCompletedTasks() {
@Override
protected void clearCompleted() {
tracker.reportEvent(Tracking.Events.GTASK_CLEAR_COMPLETED);
syncService.clearCompleted(list, new SyncResultCallback() {
@Override
public void started() {

@ -52,6 +52,8 @@ import com.todoroo.astrid.voice.VoiceInputAssistant;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.activities.FilterSettingsActivity;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.data.TaskListDataProvider;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.dialogs.SortDialog;
@ -65,6 +67,7 @@ import org.tasks.tasklist.ViewHolder;
import org.tasks.tasklist.ViewHolderFactory;
import org.tasks.ui.CheckBoxes;
import org.tasks.ui.MenuColorizer;
import org.tasks.ui.ProgressDialogAsyncTask;
import javax.inject.Inject;
@ -120,6 +123,7 @@ public class TaskListFragment extends InjectingFragment implements
@Inject TimerPlugin timerPlugin;
@Inject TaskDao taskDao;
@Inject ViewHolderFactory viewHolderFactory;
@Inject protected Tracker tracker;
@BindView(R.id.swipe_layout) SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.swipe_layout_empty) SwipeRefreshLayout emptyRefreshLayout;
@ -304,11 +308,33 @@ public class TaskListFragment extends InjectingFragment implements
Intent intent = new Intent(getActivity(), FilterSettingsActivity.class);
intent.putExtra(FilterSettingsActivity.TOKEN_FILTER, filter);
startActivityForResult(intent, REQUEST_EDIT_FILTER);
return true;
case R.id.menu_clear_completed:
dialogBuilder.newMessageDialog(R.string.clear_completed_tasks_confirmation)
.setPositiveButton(android.R.string.ok, (dialog, which) -> clearCompleted())
.setNegativeButton(android.R.string.cancel, null)
.show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
protected void clearCompleted() {
tracker.reportEvent(Tracking.Events.CLEAR_COMPLETED);
new ProgressDialogAsyncTask(getActivity(), dialogBuilder) {
@Override
protected Integer doInBackground(Void... params) {
return taskDeleter.clearCompleted(filter);
}
@Override
protected int getResultResource() {
return R.string.EPr_manage_delete_completed_status;
}
}.execute();
}
@OnClick(R.id.fab)
void createNewTask() {
Task task = addTask("");

@ -9,7 +9,6 @@ import android.os.Bundle;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.TaskDao;
@ -47,11 +46,6 @@ public class OldTaskPreferences extends InjectingPreferenceActivity {
return false;
});
findPreference(getString(R.string.EPr_manage_delete_completed)).setOnPreferenceClickListener(preference -> {
deleteCompletedTasks();
return false;
});
findPreference(getString(R.string.EPr_manage_delete_completed_gcal)).setOnPreferenceClickListener(preference -> {
deleteCompletedEvents();
return false;
@ -73,36 +67,13 @@ public class OldTaskPreferences extends InjectingPreferenceActivity {
});
}
private void deleteCompletedTasks() {
dialogBuilder.newMessageDialog(R.string.EPr_manage_delete_completed_message)
.setPositiveButton(android.R.string.ok, (dialog, which) -> new ProgressDialogAsyncTask(OldTaskPreferences.this, dialogBuilder) {
@Override
protected Integer doInBackground(Void... params) {
Query query = Query.select(Task.ID, Task.CALENDAR_URI)
.where(Criterion.and(Task.COMPLETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull()));
taskDao.forEach(query, calendarEventProvider::deleteEvent);
Task template = new Task();
template.setDeletionDate(DateUtilities.now());
template.setCalendarUri("");
return taskDao.update(Task.COMPLETION_DATE.gt(0), template);
}
@Override
protected int getResultResource() {
return R.string.EPr_manage_delete_completed_status;
}
}.execute())
.setNegativeButton(android.R.string.cancel, null)
.show();
}
private void purgeDeletedTasks() {
dialogBuilder.newMessageDialog(R.string.EPr_manage_purge_deleted_message)
.setPositiveButton(android.R.string.ok, (dialog, which) -> new ProgressDialogAsyncTask(OldTaskPreferences.this, dialogBuilder) {
@Override
protected Integer doInBackground(Void... params) {
Query query = Query.select(Task.ID, Task.CALENDAR_URI)
.where(Criterion.and(Task.DELETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull()));
.where(Criterion.and(Task.DELETION_DATE.gt(0)));
taskDao.forEach(query, calendarEventProvider::deleteEvent);
int result = taskDao.deleteWhere(Task.DELETION_DATE.gt(0));
metadataDao.removeDanglingMetadata();

@ -10,11 +10,12 @@ import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import static com.todoroo.astrid.dao.TaskDao.TaskCriteria.isVisible;
/**
* Helpers for sorting a list of tasks
*
@ -56,7 +57,7 @@ public class SortHelper {
Criterion.or(Task.COMPLETION_DATE.lte(0), Task.COMPLETION_DATE.gt(DateUtilities.now() - 60000)).toString());
}
if (preferences.getBoolean(R.string.p_show_hidden_tasks, false)) {
originalSql = originalSql.replace(TaskCriteria.isVisible().toString(),
originalSql = originalSql.replace(isVisible().toString(),
Criterion.all.toString());
}

@ -149,6 +149,10 @@ public class TaskDao {
return Task.DELETION_DATE.eq(0);
}
public static Criterion notCompleted() {
return Task.COMPLETION_DATE.eq(0);
}
/** @return tasks that have not yet been completed or deleted */
public static Criterion activeAndVisible() {
return Criterion.and(Task.COMPLETION_DATE.eq(0),

@ -7,9 +7,6 @@ package com.todoroo.astrid.data;
import android.content.ContentValues;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Functions;
/**
* Data access object for accessing Astrid's {@link Task} table. If you
* are looking to store extended information about a Task, you probably
@ -20,17 +17,6 @@ import com.todoroo.andlib.sql.Functions;
*/
public class TaskApiDao {
/**
* Generates SQL clauses
*/
public static class TaskCriteria {
/** @return tasks that are not hidden at current time */
public static Criterion isVisible() {
return Task.HIDE_UNTIL.lt(Functions.now());
}
}
/** @return true if task change shouldn't be broadcast */
public static boolean insignificantChange(ContentValues values) {
if(values == null || values.size() == 0) {

@ -2,28 +2,40 @@ package com.todoroo.astrid.service;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import org.tasks.Broadcaster;
import org.tasks.calendars.CalendarEventProvider;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import static com.google.common.collect.Iterables.transform;
import static com.todoroo.andlib.sql.Criterion.all;
import static com.todoroo.astrid.dao.TaskDao.TaskCriteria.isVisible;
import static com.todoroo.astrid.dao.TaskDao.TaskCriteria.notCompleted;
public class TaskDeleter {
private final TaskDao taskDao;
private final CalendarEventProvider calendarEventProvider;
private final Broadcaster broadcaster;
@Inject
public TaskDeleter(TaskDao taskDao, CalendarEventProvider calendarEventProvider) {
public TaskDeleter(TaskDao taskDao, CalendarEventProvider calendarEventProvider, Broadcaster broadcaster) {
this.taskDao = taskDao;
this.calendarEventProvider = calendarEventProvider;
this.broadcaster = broadcaster;
}
/**
* Clean up tasks. Typically called on startup
*/
public void deleteTasksWithEmptyTitles(Long suppress) {
void deleteTasksWithEmptyTitles(Long suppress) {
Query query = Query.select(Task.ID).where(TaskDao.TaskCriteria.hasNoTitle());
taskDao.forEach(query, task -> {
long id = task.getId();
@ -45,9 +57,31 @@ public class TaskDeleter {
long id = item.getId();
item.clear();
item.setId(id);
calendarEventProvider.deleteEvent(item);
item.setDeletionDate(DateUtilities.now());
taskDao.save(item);
}
}
private int markDeleted(List<Task> tasks) {
Task template = new Task();
template.setDeletionDate(DateUtilities.now());
int count = taskDao.update(Task.ID.in(transform(tasks, Task::getId)), template);
if (count > 0) {
broadcaster.refresh();
}
return count;
}
public int clearCompleted(Filter filter) {
List<Task> completed = new ArrayList<>();
String query = filter.getSqlQuery()
.replace(isVisible().toString(), all.toString())
.replace(notCompleted().toString(), all.toString());
taskDao.fetchFiltered(query, Task.ID, Task.COMPLETION_DATE).forEach(task -> {
if (task.isCompleted()) {
completed.add(task);
}
});
return markDeleted(completed);
}
}

@ -21,6 +21,8 @@ public class Tracking {
GTASK_RENAME_LIST(R.string.tracking_category_google_tasks, R.string.tracking_action_rename_list),
GTASK_DELETE_LIST(R.string.tracking_category_google_tasks, R.string.tracking_action_delete_list),
GTASK_SET_COLOR(R.string.tracking_category_google_tasks, R.string.p_theme_color),
GTASK_CLEAR_COMPLETED(R.string.tracking_category_google_tasks, R.string.tracking_action_clear_completed),
CLEAR_COMPLETED(R.string.tracking_category_event, R.string.tracking_action_clear_completed),
UPGRADE(R.string.tracking_category_event, R.string.tracking_event_upgrade),
LEGACY_TASKER_TRIGGER(R.string.tracking_category_event, R.string.tracking_event_legacy_tasker_trigger),
NIGHT_MODE_MISMATCH(R.string.tracking_category_event, R.string.tracking_event_night_mode_mismatch),

@ -1,10 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_clear_completed"
android:title="@string/gtasks_GTA_clear_completed"
app:showAsAction="never" />
<item
android:id="@+id/menu_gtasks_list_settings"
android:title="@string/list_settings"

@ -30,4 +30,8 @@
android:title="@string/show_completed"
android:checkable="true" />
</group>
<item
android:id="@+id/menu_clear_completed"
android:title="@string/gtasks_GTA_clear_completed"
app:showAsAction="never" />
</menu>

@ -59,8 +59,6 @@
<string name="EPr_fullTask_title">إظهار عنوان المهمه</string>
<string name="task_list_options">خيارات قائمة المهام</string>
<string name="EPr_manage_header"> إدارة المهام القديمة</string>
<string name="EPr_manage_delete_completed">حذف المهمه المٌتمَمه</string>
<string name="EPr_manage_delete_completed_message">هل فعلا تريد حذف كل المهام المُتَممه؟</string>
<string name="EPr_manage_delete_completed_gcal">حذف أحداث التقويم للمهام المُتَممه</string>
<string name="EPr_manage_delete_all_gcal">حذف جميع نشاطات التقويم للمهام</string>
<string name="EPr_manage_delete_all_gcal_message">هل فعلا تريد حذف جميع الأحداث للمهام ؟</string>

@ -109,8 +109,6 @@
<string name="EPr_cal_end_at_due_time">Приключване на събития в календара на крайния срок</string>
<string name="EPr_cal_start_at_due_time">Започване на събития в календара на крайния срок</string>
<string name="EPr_manage_header">Управление на стари задачи</string>
<string name="EPr_manage_delete_completed">Изтрий приключени задачи</string>
<string name="EPr_manage_delete_completed_message">Наистина ли искате да изтриете всичките си приключени задачи?</string>
<string name="EPr_manage_delete_completed_status">Изтрити %d задачи!</string>
<string name="EPr_manage_purge_deleted">Изчистване на изтритите задачи</string>
<string name="EPr_manage_purge_deleted_message">Наистина ли искате да изчистите всичките си приключени задачи?\n\nТези задачи ще изчезнат завинаги!</string>

@ -66,7 +66,6 @@
<string name="EPr_appearance_header">Aparença</string>
<string name="EPr_beastMode_reset">Restableix els valors predeterminats</string>
<string name="EPr_fullTask_title">Mostra el títol sencer de la tasca</string>
<string name="EPr_manage_delete_completed_message">Segur que voleu suprimir totes les tasques completades?</string>
<string name="EPr_manage_delete_completed_status">S\'han suprimit %d tasques</string>
<string name="EPr_manage_delete_completed_gcal_message">Segur que voleu suprimir els esdeveniments de calendari de les tasques completades?</string>
<string name="day_after_tomorrow">Demà passat</string>

@ -100,8 +100,6 @@
<string name="EPr_cal_end_at_due_time">Událost v kalendáři končí splněním úkolu</string>
<string name="EPr_cal_start_at_due_time">Událost v kalendáři začíná splněním úkolu</string>
<string name="EPr_manage_header">Spravovat staré úkoly</string>
<string name="EPr_manage_delete_completed">Odstranit dokončené úkoly</string>
<string name="EPr_manage_delete_completed_message">Opravdu chcete odstranit všechny dokončené úkoly?</string>
<string name="EPr_manage_delete_completed_status">Odstraněno %d úkolů!</string>
<string name="EPr_manage_purge_deleted">Vymazat smazané úkoly</string>
<string name="EPr_manage_purge_deleted_message">Opravdu chcete vymazat vaše smazané úkoly?\n\nTyto úkoly budou vymazány navždy!</string>

@ -104,8 +104,6 @@
<string name="EPr_cal_end_at_due_time">Kalendereintrag endet zur Fälligkeits-Uhrzeit</string>
<string name="EPr_cal_start_at_due_time">Kalendereintrag Startet zur Fälligkeits-Uhrzeit</string>
<string name="EPr_manage_header">Alte Aufgaben verwalten</string>
<string name="EPr_manage_delete_completed">Erledigte Aufgaben löschen</string>
<string name="EPr_manage_delete_completed_message">Willst du wirklich alle erledigten Aufgaben löschen?</string>
<string name="EPr_manage_delete_completed_status">%d Aufgaben gelöscht</string>
<string name="EPr_manage_purge_deleted">Gelöschte Aufgaben endgültig löschen</string>
<string name="EPr_manage_purge_deleted_message">Willst du wirklich alle gelöschten Aufgaben bereinigen?\n\nDiese Aufgaben werden für immer gelöscht bleiben!</string>

@ -90,8 +90,6 @@
<string name="EPr_cal_end_at_due_time">Τερματισμός γεγονότων ημερολογίου στην ώρα λήξης τους</string>
<string name="EPr_cal_start_at_due_time">Εκκίνηση γεγονότων ημερολογίου στην ώρα λήξης τους</string>
<string name="EPr_manage_header">Διαχείριση παλιών εργασιών</string>
<string name="EPr_manage_delete_completed">Διαγραφή ολοκληρωμένων εργασιών</string>
<string name="EPr_manage_delete_completed_message">Θέλετε στα αλήθεια την διαγραφή όλων των ολοκληρωμένων εργασιών σας;</string>
<string name="EPr_manage_delete_completed_status">Διαγράφηκαν %d εργασίες!</string>
<string name="EPr_manage_purge_deleted">Εκκαθάριση διεγραμμένων εργασιών</string>
<string name="EPr_manage_purge_deleted_message">Θέλετε πραγματικά να καθαρίσετε όλες τις διαγραμμένες εργασίες;\n\nΑυτές οι εργασίες θα χαθούν για πάντα!</string>

@ -105,8 +105,6 @@
<string name="EPr_cal_end_at_due_time">Finalizar eventos del calendario al vencimiento</string>
<string name="EPr_cal_start_at_due_time">Iniciar eventos del calendario al vencimiento</string>
<string name="EPr_manage_header">Administrar tareas antiguas</string>
<string name="EPr_manage_delete_completed">Borrar tareas completadas</string>
<string name="EPr_manage_delete_completed_message">¿Seguro que desea borrar todas las tareas completadas?</string>
<string name="EPr_manage_delete_completed_status">¡%d tareas borradas!</string>
<string name="EPr_manage_purge_deleted">Limpiar tareas eliminadas</string>
<string name="EPr_manage_purge_deleted_message">¿Seguro que desea limpiar todas las tareas eliminadas?\n\n¡Estas tareas se perderán por siempre!</string>

@ -109,8 +109,6 @@
<string name="EPr_cal_end_at_due_time">Lopeta kalenteritapahtuma määräaikana</string>
<string name="EPr_cal_start_at_due_time">Aloita kalenteritapahtumat määräaikana</string>
<string name="EPr_manage_header">Hallinnoi vanhoja tehtäviä</string>
<string name="EPr_manage_delete_completed">Poista valmiit tehtävät</string>
<string name="EPr_manage_delete_completed_message">Haluatko todella poistaa kaikki valmiit tehtävät</string>
<string name="EPr_manage_delete_completed_status">Poistettu %d tehtävää</string>
<string name="EPr_manage_purge_deleted">Tyjennä poistetut tehtävät</string>
<string name="EPr_manage_purge_deleted_message">Haluatko todella tyhjentää kaikki poistetut tehtävät?\n\n Nämä tehtävät häviävät lopullisesti!</string>

@ -104,8 +104,6 @@
<string name="EPr_cal_end_at_due_time">Terminer les événements dans le calendrier à l\'échéance</string>
<string name="EPr_cal_start_at_due_time">Commencer les événements dans le calendrier à l\'échéance</string>
<string name="EPr_manage_header">Gérer les anciennes tâches</string>
<string name="EPr_manage_delete_completed">Supprimer les tâches terminées</string>
<string name="EPr_manage_delete_completed_message">Voulez-vous vraiment la suppression de toutes les tâches terminées ?</string>
<string name="EPr_manage_delete_completed_status">%d tâches supprimées !</string>
<string name="EPr_manage_purge_deleted">Supprimer définitivement les tâches supprimées</string>
<string name="EPr_manage_purge_deleted_message">Voulez vous vraiment supprimer définitivement toutes les tâches supprimées ?\n\nCes tâches seront perdues à jamais !</string>

@ -98,8 +98,6 @@
<string name="EPr_cal_end_at_due_time">Naptáresemények befejezése határidőkor</string>
<string name="EPr_cal_start_at_due_time">Naptáresemények kezdése határidőkor</string>
<string name="EPr_manage_header">Régi feladatok kezelése</string>
<string name="EPr_manage_delete_completed">Elvégzett feladatok törlése</string>
<string name="EPr_manage_delete_completed_message">Biztosan törölni akarja az összes elvégzett feladatot?</string>
<string name="EPr_manage_delete_completed_status">%d feladat törölve!</string>
<string name="EPr_manage_purge_deleted">Törölt feladatok elvetése</string>
<string name="EPr_manage_purge_deleted_message">Biztosan el akarja vetni az összes törölt feladatot?\n\nEzek a feladatok többé nem lesznek visszaállíthatóak!</string>

@ -106,8 +106,6 @@
<string name="EPr_cal_end_at_due_time">Calendario eventi fino alla scadenza</string>
<string name="EPr_cal_start_at_due_time">Calendario eventi dalla scadenza</string>
<string name="EPr_manage_header">Gestisci compiti vecchi</string>
<string name="EPr_manage_delete_completed">Elimina i compiti completati</string>
<string name="EPr_manage_delete_completed_message">Vuoi davvero eliminare tutti i compiti completati?</string>
<string name="EPr_manage_delete_completed_status">Eliminate %d attività!</string>
<string name="EPr_manage_purge_deleted">Elimina definitivamente i compiti eliminati</string>
<string name="EPr_manage_purge_deleted_message">Vuoi davvero eliminare definitivamente i compiti eliminati?\n\nQuesti compiti saranno persi per sempre!</string>

@ -106,8 +106,6 @@
<string name="EPr_cal_end_at_due_time">סיים את אירועי היומן במועד היעד?</string>
<string name="EPr_cal_start_at_due_time">התחל את מאורעות היומן במועד היעד</string>
<string name="EPr_manage_header">נהל משימות ישנות</string>
<string name="EPr_manage_delete_completed">מחק משימות שבוצעו</string>
<string name="EPr_manage_delete_completed_message">האם אתה בטוח שברצונך למחוק את כל המשימות שבוצעו?</string>
<string name="EPr_manage_delete_completed_status">%d משימות נמחקו!</string>
<string name="EPr_manage_purge_deleted">מחק לצמיתות משימות שנמחקו</string>
<string name="EPr_manage_purge_deleted_message">האם אתה בטוח שברצונך למחוק לצמיתות את כל המשימות שנמחקו?</string>

@ -106,8 +106,6 @@
<string name="EPr_cal_end_at_due_time">カレンダーイベント終了時間</string>
<string name="EPr_cal_start_at_due_time">カレンダーイベント開始時間</string>
<string name="EPr_manage_header">古いタスクを管理</string>
<string name="EPr_manage_delete_completed">完了したタスクを削除</string>
<string name="EPr_manage_delete_completed_message">完了したタスクをすべて削除してもよろしいですか?</string>
<string name="EPr_manage_delete_completed_status">%d タスクが削除されました!</string>
<string name="EPr_manage_purge_deleted">削除済のタスクを消去</string>
<string name="EPr_manage_purge_deleted_message">削除済のタスクをすべて消去してもよろしいですか?\n\nこれらのタスクは永久になくなります!</string>

@ -108,8 +108,6 @@
<string name="EPr_cal_end_at_due_time">설정한 시간에 달력 이벤트 종료</string>
<string name="EPr_cal_start_at_due_time">설정한 시간에 달력 이벤트 시작</string>
<string name="EPr_manage_header">오래된 일정 관리하기</string>
<string name="EPr_manage_delete_completed">완료한 일정 지우기</string>
<string name="EPr_manage_delete_completed_message">완료한 일정을 모두 삭제하시겠습니까?</string>
<string name="EPr_manage_delete_completed_status">%d 일정을 삭제했습니다!</string>
<string name="EPr_manage_purge_deleted">삭제한 일정을 비우기</string>
<string name="EPr_manage_purge_deleted_message">삭제한 일정을 모두 비울까요?\n\n비운 일정은 다시 살릴 수 없습니다!</string>

@ -105,8 +105,6 @@
<string name="EPr_cal_end_at_due_time">Agenda item op tijd afronden</string>
<string name="EPr_cal_start_at_due_time">Agenda item op tijd starten</string>
<string name="EPr_manage_header">Oude taken beheren</string>
<string name="EPr_manage_delete_completed">Voltooide taken verwijderen</string>
<string name="EPr_manage_delete_completed_message">Alle voltooide taken werkelijk verwijderen?</string>
<string name="EPr_manage_delete_completed_status">%d taken verwijderd!</string>
<string name="EPr_manage_purge_deleted">Verwijderde taken opruimen</string>
<string name="EPr_manage_purge_deleted_message">Alle verwijderde taken werkelijk opschonen?\n\nDeze taken zijn dan definitief verwijderd!</string>

@ -106,8 +106,6 @@
<string name="EPr_cal_end_at_due_time">Zakończ zadania kalendarza w ustalonym czasie</string>
<string name="EPr_cal_start_at_due_time">Rozpocznij zadania kalendarza w ustalonym czasie</string>
<string name="EPr_manage_header">Zarządzaj starymi zadaniami</string>
<string name="EPr_manage_delete_completed">Usuń zakończone zadania</string>
<string name="EPr_manage_delete_completed_message">Czy na pewno chcesz usunąć wszystkie zadania wykonane?</string>
<string name="EPr_manage_delete_completed_status">Usunięto %d zadań!</string>
<string name="EPr_manage_purge_deleted">Skasuj usunięte zadania</string>
<string name="EPr_manage_purge_deleted_message">Czy na pewno chcesz, aby oczyścić wszystkie usunięte zadania?\n\n Te zadania znikną na zawsze!</string>

@ -96,8 +96,6 @@
<string name="EPr_cal_end_at_due_time">Eventos da agenda terminou no devido tempo</string>
<string name="EPr_cal_start_at_due_time">Eventos da agenda iniciaram no devido tempo</string>
<string name="EPr_manage_header">Gerenciar tarefas antigas</string>
<string name="EPr_manage_delete_completed">Exclui as tarefas concluídas</string>
<string name="EPr_manage_delete_completed_message">Você realmente deseja excluir todas as tarefas concluídas?</string>
<string name="EPr_manage_delete_completed_status">%d tarefas excluídas!</string>
<string name="EPr_manage_purge_deleted">Limpar tarefas excluídas</string>
<string name="EPr_manage_purge_deleted_message">Você realmente deseja limpar todas as suas tarefas excluídas?\n\nEstas tarefas irão desaparecer para sempre!</string>

@ -100,8 +100,6 @@
<string name="EPr_cal_end_at_due_time">Terminar evento do calendário na hora limite</string>
<string name="EPr_cal_start_at_due_time">Iniciar eventos de calendário na hora limite</string>
<string name="EPr_manage_header">Gerir tarefas antigas</string>
<string name="EPr_manage_delete_completed">Eliminar tarefas terminadas</string>
<string name="EPr_manage_delete_completed_message">Quer mesmo eliminar todas as tarefas terminadas?</string>
<string name="EPr_manage_delete_completed_status">%d tarefas eliminadas!</string>
<string name="EPr_manage_purge_deleted">Remover tarefas eliminadas</string>
<string name="EPr_manage_purge_deleted_message">Quer mesmo remover todas as tarefas eliminadas?\n\nNunca mais as conseguirá recuperar!</string>

@ -106,8 +106,6 @@
<string name="EPr_cal_end_at_due_time">Завершать события в календаре при наступлении срока</string>
<string name="EPr_cal_start_at_due_time">Создавать события в календаре при наступлении срока</string>
<string name="EPr_manage_header">Управление старыми задачами</string>
<string name="EPr_manage_delete_completed">Удалить завершенные задачи</string>
<string name="EPr_manage_delete_completed_message">Вы действительно хотите удалить все завершенные задачи?</string>
<string name="EPr_manage_delete_completed_status">Удалено %d задач!</string>
<string name="EPr_manage_purge_deleted">Очистить удаленные задачи?</string>
<string name="EPr_manage_purge_deleted_message">Действительно хотите убрать все удалённые задачи?\n\nЭта операция необратима!</string>

@ -98,8 +98,6 @@
<string name="EPr_cal_end_at_due_time">Ukončiť udalosť kalendára v danom čase</string>
<string name="EPr_cal_start_at_due_time">Začať kalendárne udalosti v danom čase</string>
<string name="EPr_manage_header">Spravovať staré úlohy</string>
<string name="EPr_manage_delete_completed">Vymazať dokončené úlohy</string>
<string name="EPr_manage_delete_completed_message">Naozaj chceš vymazať všetky dokončené úlohy?</string>
<string name="EPr_manage_delete_completed_status">Vymazané %d úlohy</string>
<string name="EPr_manage_purge_deleted">Zbaviť sa vymazaných úloh</string>
<string name="EPr_manage_purge_deleted_message">Naozaj chceš vyhodiť všetky tvoje vymazané úlohy?\n\nTieto budú vymazané navždy!</string>

@ -93,8 +93,6 @@
<string name="EPr_cal_end_at_due_time">Končaj dogodke na koledarju ob dospelosti</string>
<string name="EPr_cal_start_at_due_time">Začni dogodke na koledarju ob dospelosti</string>
<string name="EPr_manage_header">Upravljanje s preteklimi opravki</string>
<string name="EPr_manage_delete_completed">Zbriši dokončane opravke</string>
<string name="EPr_manage_delete_completed_message">Ste prepričani, da želite zbrisati vse dokončane opravke?</string>
<string name="EPr_manage_delete_completed_status">Število zbrisanih opravkov: %d </string>
<string name="EPr_manage_purge_deleted">Popolnoma odstrani zbrisane opravke</string>
<string name="EPr_manage_purge_deleted_message">Ste prepričani, da želite popolnoma odstraniti vse zbrisane opravke?\n\nTega ukaza ne bo mogoče razveljaviti! </string>

@ -106,8 +106,6 @@
<string name="EPr_cal_end_at_due_time">Avsluta kalenderhändelser vid förfallotid</string>
<string name="EPr_cal_start_at_due_time">Påbörja kalenderhändelser vid förfallotid</string>
<string name="EPr_manage_header">Hantera gamla uppgifter</string>
<string name="EPr_manage_delete_completed">Radera färdiga uppgifter</string>
<string name="EPr_manage_delete_completed_message">Vill du verkligen radera alla dina färdiga uppgifter?</string>
<string name="EPr_manage_delete_completed_status">%d uppgifter raderade!</string>
<string name="EPr_manage_purge_deleted">Rensa bort raderade uppgifter</string>
<string name="EPr_manage_purge_deleted_message">Vill du verkligen rensa bort alla dina raderade uppgifter?\n\nDe här uppgifterna kommer att tas bort för alltid!</string>

@ -68,8 +68,6 @@
<string name="EPr_beastMode_reset">Varsayılanlara sıfırla</string>
<string name="EPr_fullTask_title">Tüm görev başlığını göster</string>
<string name="EPr_manage_header">Eski Görevleri Yönet</string>
<string name="EPr_manage_delete_completed">Tamamlanan Görevleri Sil</string>
<string name="EPr_manage_delete_completed_message">Gerçekten tüm tamamlanmış görevleri silmek istiyor musun?</string>
<string name="EPr_manage_delete_completed_status">%d görev silindi!</string>
<string name="EPr_manage_purge_deleted">Silinen Görevleri Temizle</string>
<string name="EPr_manage_purge_deleted_message">Tüm silinen görevleri temizlemek istediğine emin misin?\n\nBu görevler tamamen silinecek!</string>

@ -109,8 +109,6 @@
<string name="EPr_cal_end_at_due_time">Завершення календарної події при настанні терміну</string>
<string name="EPr_cal_start_at_due_time">Початок календарної події при настанні терміну</string>
<string name="EPr_manage_header">Управління старими завданнями</string>
<string name="EPr_manage_delete_completed">Видалити виконані завдання</string>
<string name="EPr_manage_delete_completed_message">Ви дійсно хочете видалити всі завершені завдання?</string>
<string name="EPr_manage_delete_completed_status">Видалено %d завдань!</string>
<string name="EPr_manage_purge_deleted">Очистити видалені завдання</string>
<string name="EPr_manage_purge_deleted_message">Ви дійсно хочете очистити всі видалені завдання?\n\nЦя операція незворотна!</string>

@ -80,8 +80,6 @@
<string name="EPr_fullTask_title">显示完整的任务标题</string>
<string name="task_list_options">任务列表选项</string>
<string name="EPr_manage_header">管理旧任务</string>
<string name="EPr_manage_delete_completed">删除已完成任务</string>
<string name="EPr_manage_delete_completed_message">您真的要删除所有已完成任务吗?</string>
<string name="EPr_manage_delete_completed_status">删除了 %d 个任务!</string>
<string name="EPr_manage_purge_deleted">清除已删除任务</string>
<string name="EPr_manage_purge_deleted_message">您真的要清楚所有已删除任务吗? \n\n 这些任务将会被彻底永久删除!</string>

@ -79,8 +79,6 @@
<string name="EPr_beastMode_reset">恢復默認值</string>
<string name="EPr_fullTask_title">顯示完整的任務工作標題</string>
<string name="EPr_manage_header">管理舊任務工作</string>
<string name="EPr_manage_delete_completed">刪除已完成任務工作</string>
<string name="EPr_manage_delete_completed_message">您真的要刪除所有已完成任務工作嗎?</string>
<string name="EPr_manage_delete_completed_status">刪除了 %d 個任務工作!</string>
<string name="EPr_manage_purge_deleted">清除已刪除任務工作</string>
<string name="EPr_manage_purge_deleted_message">您真的要清楚所有已刪除任務工作嗎? \n\n 這些任務工作將會被徹底永久刪除!</string>

@ -292,6 +292,7 @@
<string name="tracking_action_on">On</string>
<string name="tracking_action_off">Off</string>
<string name="tracking_action_clear">Clear</string>
<string name="tracking_action_clear_completed">Clear completed</string>
<string name="tracking_event_night_mode_mismatch">Night Mismatch</string>
<string name="tracking_event_play_services_error">Play Services Error</string>
<string name="tracking_event_upgrade">Upgrade</string>

@ -297,8 +297,6 @@ File %1$s contained %2$s.\n\n
<!-- slide 33a/47c: Preference Screen Header: Old Task Management -->
<string name="EPr_manage_header">Manage old tasks</string>
<string name="EPr_manage_delete_completed">Delete completed tasks</string>
<string name="EPr_manage_delete_completed_message">Do you really want to delete all your completed tasks?</string>
<string name="EPr_manage_delete_completed_status">Deleted %d tasks!</string>
<string name="EPr_manage_purge_deleted">Purge deleted tasks</string>
<string name="EPr_manage_purge_deleted_message">Do you really want to purge all your deleted tasks?\n\nThese tasks will be gone forever!</string>
@ -828,5 +826,6 @@ File %1$s contained %2$s.\n\n
<string name="creating_new_list">Creating new list</string>
<string name="deleting_list">Deleting list</string>
<string name="renaming_list">Renaming list</string>
<string name="clear_completed_tasks_confirmation">Clear completed tasks?</string>
</resources>

@ -6,10 +6,6 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/EPr_manage_header">
<com.todoroo.astrid.ui.MultilinePreference
android:key="@string/EPr_manage_delete_completed"
android:title="@string/EPr_manage_delete_completed" />
<com.todoroo.astrid.ui.MultilinePreference
android:key="@string/EPr_manage_purge_deleted"
android:title="@string/EPr_manage_purge_deleted" />

Loading…
Cancel
Save