diff --git a/astrid/plugin-src/com/todoroo/astrid/core/OldTaskPreferences.java b/astrid/plugin-src/com/todoroo/astrid/core/OldTaskPreferences.java
index 3bb76bd3b..6471c3934 100644
--- a/astrid/plugin-src/com/todoroo/astrid/core/OldTaskPreferences.java
+++ b/astrid/plugin-src/com/todoroo/astrid/core/OldTaskPreferences.java
@@ -6,6 +6,7 @@ package com.todoroo.astrid.core;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
+import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
@@ -19,7 +20,9 @@ import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
+import com.todoroo.andlib.utility.Preferences;
import com.todoroo.andlib.utility.TodorooPreferenceActivity;
+import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.service.MetadataService;
@@ -33,8 +36,9 @@ import com.todoroo.astrid.service.TaskService;
*/
public class OldTaskPreferences extends TodorooPreferenceActivity {
- @Autowired private TaskService taskService;
- @Autowired private MetadataService metadataService;
+ @Autowired TaskService taskService;
+ @Autowired MetadataService metadataService;
+ @Autowired Database database;
ProgressDialog pd;
@@ -50,37 +54,65 @@ public class OldTaskPreferences extends TodorooPreferenceActivity {
DependencyInjectionService.getInstance().inject(this);
// Extended prefs
- Preference preference_delete_completed = screen.findPreference(getString(R.string.EPr_manage_delete_completed));
- preference_delete_completed.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ Preference preference = screen.findPreference(getString(R.string.EPr_manage_delete_completed));
+ preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
showDeleteCompletedDialog();
return true;
}
});
- Preference preference_purge_deleted = screen.findPreference(getString(R.string.EPr_manage_purge_deleted));
- preference_purge_deleted.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ preference = screen.findPreference(getString(R.string.EPr_manage_purge_deleted));
+ preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
showPurgeDeletedDialog();
return true;
}
});
- Preference preference_delete_completed_events = screen.findPreference(getString(R.string.EPr_manage_delete_completed_gcal));
- preference_delete_completed_events.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ preference = screen.findPreference(getString(R.string.EPr_manage_delete_completed_gcal));
+ preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
showDeleteCompletedEventsDialog();
return true;
}
});
- Preference preference_delete_all_events = screen.findPreference(getString(R.string.EPr_manage_delete_all_gcal));
- preference_delete_all_events.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ preference = screen.findPreference(getString(R.string.EPr_manage_delete_all_gcal));
+ preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
showDeleteAllEventsDialog();
return true;
}
});
+
+ preference= screen.findPreference(getString(R.string.EPr_manage_clear_all));
+ preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ public boolean onPreferenceClick(Preference p) {
+ showClearDataDialog();
+ return true;
+ }
+ });
+ }
+
+ private void showClearDataDialog() {
+ DialogUtilities.okCancelDialog(
+ this,
+ getResources().getString(
+ R.string.EPr_manage_clear_all_message),
+ new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Editor editor = Preferences.getPrefs(OldTaskPreferences.this).edit();
+ editor.clear();
+ editor.commit();
+
+ deleteDatabase(database.getName());
+
+ System.exit(0);
+ }
+ },
+ null);
}
/* (non-Javadoc)
diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml
index 6e9fdfa60..0ad4de7e2 100644
--- a/astrid/res/values/strings-core.xml
+++ b/astrid/res/values/strings-core.xml
@@ -473,6 +473,8 @@
Do you really want to purge all your deleted tasks?\n\nThese tasks will be gone forever!
Purged %d tasks!
Caution! Purged tasks can\'t be recovered without backup file!
+ Clear All Data
+ Delete all tasks and settings in Astrid?\n\nWarning: can\'t be undone!
Delete Calendar Events for Completed Tasks
Do you really want to delete all your events for completed tasks?
diff --git a/astrid/res/xml/preferences_oldtasks.xml b/astrid/res/xml/preferences_oldtasks.xml
index 7ac098fc8..734b3b93f 100644
--- a/astrid/res/xml/preferences_oldtasks.xml
+++ b/astrid/res/xml/preferences_oldtasks.xml
@@ -22,5 +22,9 @@
android:title="@string/EPr_manage_delete_all_gcal"
android:key="@string/EPr_manage_delete_all_gcal"
android:summary="@string/EPr_manage_delete_all_gcal_summary"/>
+
+