From 1e254dcf964b8e302bc8296e63af598c69b9afa2 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Thu, 26 Jan 2012 21:05:22 -0800 Subject: [PATCH] Added clear data as one of the manage old tasks items --- .../astrid/core/OldTaskPreferences.java | 52 +++++++++++++++---- astrid/res/values/strings-core.xml | 2 + astrid/res/xml/preferences_oldtasks.xml | 4 ++ 3 files changed, 48 insertions(+), 10 deletions(-) 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"/> + +