diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupActivity.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupActivity.java deleted file mode 100644 index 20fbc094e..000000000 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupActivity.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.backup; - -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; - -import org.tasks.R; -import com.todoroo.andlib.service.ContextManager; -import com.todoroo.astrid.utility.Flags; - -public class BackupActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - ContextManager.setContext(this); - setContentView(R.layout.backup_activity); - setTitle(R.string.backup_BAc_title); - - ((Button)findViewById(R.id.importButton)).setOnClickListener(new OnClickListener() { - @Override - public void onClick(View view) { - importTasks(); - } - }); - - ((Button)findViewById(R.id.exportButton)).setOnClickListener(new OnClickListener() { - @Override - public void onClick(View view) { - exportTasks(); - } - }); - } - - private void importTasks() { - FilePickerBuilder.OnFilePickedListener listener = new FilePickerBuilder.OnFilePickedListener() { - @Override - public void onFilePicked(String filePath) { - TasksXmlImporter.importTasks(BackupActivity.this, filePath, - new Runnable() { - @Override - public void run() { - setResult(RESULT_OK); - finish(); - Flags.set(Flags.REFRESH); - } - }); - } - }; - new FilePickerBuilder(this, - getString(R.string.import_file_prompt), - BackupConstants.defaultExportDirectory(), - listener).show(); - } - - private void exportTasks() { - TasksXmlExporter.exportTasks(this, TasksXmlExporter.ExportType.EXPORT_TYPE_MANUAL, new Runnable() { - @Override - public void run() { - setResult(RESULT_OK); - finish(); - } - }, null, null); - } - -} diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java index b04c26a06..22a7ab0d4 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java @@ -24,6 +24,7 @@ import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.TodorooPreferenceActivity; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; +import com.todoroo.astrid.utility.Flags; /** * Displays synchronization preferences and an action panel so users can @@ -68,12 +69,19 @@ public class BackupPreferences extends TodorooPreferenceActivity { } }); - findPreference(getString(R.string.backup_BAc_label)).setOnPreferenceClickListener(new OnPreferenceClickListener() { + findPreference(getString(R.string.backup_BAc_import)).setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - Intent intent = new Intent(BackupPreferences.this, BackupActivity.class); - startActivity(intent); - return false; + importTasks(); + return true; + } + }); + + findPreference(getString(R.string.backup_BAc_export)).setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + TasksXmlExporter.exportTasks(BackupPreferences.this, TasksXmlExporter.ExportType.EXPORT_TYPE_MANUAL, null, null); + return true; } }); } @@ -141,6 +149,24 @@ public class BackupPreferences extends TodorooPreferenceActivity { view.setBackgroundColor(statusColor); } } + } + private void importTasks() { + FilePickerBuilder.OnFilePickedListener listener = new FilePickerBuilder.OnFilePickedListener() { + @Override + public void onFilePicked(String filePath) { + TasksXmlImporter.importTasks(BackupPreferences.this, filePath, + new Runnable() { + @Override + public void run() { + Flags.set(Flags.REFRESH); + } + }); + } + }; + new FilePickerBuilder(this, + getString(R.string.import_file_prompt), + BackupConstants.defaultExportDirectory(), + listener).show(); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java index a3e123e34..f3fffd925 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java @@ -5,11 +5,6 @@ */ package com.todoroo.astrid.backup; -import java.io.File; -import java.io.FileFilter; -import java.util.Arrays; -import java.util.Comparator; - import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; @@ -18,12 +13,18 @@ import android.content.Intent; import android.os.IBinder; import android.util.Log; -import org.tasks.R; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.core.PluginServices; +import org.tasks.R; + +import java.io.File; +import java.io.FileFilter; +import java.util.Arrays; +import java.util.Comparator; + /** * Inspired heavily by SynchronizationService */ @@ -82,7 +83,7 @@ public class BackupService extends Service { Log.e("error-deleting", "Error deleting old backups", e); //$NON-NLS-1$ //$NON-NLS-2$ } - TasksXmlExporter.exportTasks(context, TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE, null, + TasksXmlExporter.exportTasks(context, TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE, backupDirectorySetting.getBackupDirectory(), null); } catch (Exception e) { diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java b/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java index 7dbeeb65b..d8b7cbef2 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java @@ -5,12 +5,6 @@ */ package com.todoroo.astrid.backup; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; - -import org.xmlpull.v1.XmlSerializer; - import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; @@ -19,7 +13,6 @@ import android.util.Log; import android.util.Xml; import android.widget.Toast; -import org.tasks.R; import com.todoroo.andlib.data.AbstractModel; import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property.PropertyVisitor; @@ -39,6 +32,13 @@ import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.utility.AstridPreferences; +import org.tasks.R; +import org.xmlpull.v1.XmlSerializer; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + public class TasksXmlExporter { // --- public interface @@ -48,13 +48,11 @@ public class TasksXmlExporter { * * @param context context * @param exportType from service, manual, or on upgrade - * @param runAfterExport runnable to run after exporting * @param backupDirectoryOverride new backupdirectory, or null to use default */ public static void exportTasks(Context context, ExportType exportType, - Runnable runAfterExport, File backupDirectoryOverride, String versionName) { - new TasksXmlExporter(context, exportType, runAfterExport, - backupDirectoryOverride, versionName); + File backupDirectoryOverride, String versionName) { + new TasksXmlExporter(context, exportType, backupDirectoryOverride, versionName); } public static enum ExportType { @@ -91,7 +89,7 @@ public class TasksXmlExporter { } private TasksXmlExporter(final Context context, final ExportType exportType, - final Runnable runAfterExport, File backupDirectoryOverride, String versionName) { + File backupDirectoryOverride, String versionName) { this.context = context; this.exportCount = 0; this.backupDirectory = backupDirectoryOverride == null ? @@ -125,8 +123,7 @@ public class TasksXmlExporter { doTasksExport(output); } - Preferences.setLong(BackupPreferences.PREF_BACKUP_LAST_DATE, - DateUtilities.now()); + Preferences.setLong(BackupPreferences.PREF_BACKUP_LAST_DATE, DateUtilities.now()); Preferences.setString(BackupPreferences.PREF_BACKUP_LAST_ERROR, null); if (exportType == ExportType.EXPORT_TYPE_MANUAL) { @@ -148,9 +145,14 @@ public class TasksXmlExporter { break; } } finally { - if(runAfterExport != null) { - runAfterExport.run(); - } + handler.post(new Runnable() { + @Override + public void run() { + if(progressDialog.isShowing() && context instanceof Activity) { + DialogUtilities.dismissDialog((Activity) context, progressDialog); + } + } + }); } } }).start(); @@ -328,7 +330,6 @@ public class TasksXmlExporter { handler.post(new Runnable() { @Override public void run() { - if(exportCount == 0) { Toast.makeText(context, context.getString(R.string.export_toast_no_tasks), Toast.LENGTH_LONG).show(); } else { @@ -336,9 +337,6 @@ public class TasksXmlExporter { context.getResources().getQuantityString(R.plurals.Ntasks, exportCount, exportCount), outputFile); Toast.makeText(context, text, Toast.LENGTH_LONG).show(); - if(progressDialog.isShowing() && context instanceof Activity) { - DialogUtilities.dismissDialog((Activity) context, progressDialog); - } } } }); diff --git a/astrid/src/main/res/layout/backup_activity.xml b/astrid/src/main/res/layout/backup_activity.xml deleted file mode 100644 index 380a2630c..000000000 --- a/astrid/src/main/res/layout/backup_activity.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - -