diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2013-07-31 14:42:11 +0200 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2013-07-31 14:42:11 +0200 |
| commit | 4a806d990a678e20a09c893f65c8cabff2aefbd5 (patch) | |
| tree | e5532783ad75891bc96c6fad43b922d73c2f7e20 /main/src/cgeo/geocaching/settings/SettingsActivity.java | |
| parent | 4cef30e041e27634f56be70d5694d83663bc1d68 (diff) | |
| download | cgeo-4a806d990a678e20a09c893f65c8cabff2aefbd5.zip cgeo-4a806d990a678e20a09c893f65c8cabff2aefbd5.tar.gz cgeo-4a806d990a678e20a09c893f65c8cabff2aefbd5.tar.bz2 | |
refactoring: move DB backup into new utils class
Diffstat (limited to 'main/src/cgeo/geocaching/settings/SettingsActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/settings/SettingsActivity.java | 46 |
1 files changed, 8 insertions, 38 deletions
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 4e1d4eb..e084d0e 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -3,7 +3,6 @@ package cgeo.geocaching.settings; import cgeo.geocaching.Intents; import cgeo.geocaching.R; import cgeo.geocaching.SelectMapfileActivity; -import cgeo.geocaching.cgData; import cgeo.geocaching.cgeoapplication; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.apps.cache.navi.NavigationAppFactory; @@ -13,7 +12,7 @@ import cgeo.geocaching.connector.gc.Login; import cgeo.geocaching.files.SimpleDirChooser; import cgeo.geocaching.maps.MapProviderFactory; import cgeo.geocaching.maps.interfaces.MapSource; -import cgeo.geocaching.ui.Formatter; +import cgeo.geocaching.utils.DatabaseBackupUtils; import cgeo.geocaching.utils.Log; import cgeo.geocaching.utils.LogTemplateProvider; import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate; @@ -21,7 +20,6 @@ import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate; import org.apache.commons.lang3.StringUtils; import org.openintents.intents.FileManagerIntents; -import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.net.Uri; @@ -311,39 +309,13 @@ public class SettingsActivity extends PreferenceActivity { backup.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(final Preference preference) { - final Context context = preference.getContext(); - // avoid overwriting an existing backup with an empty database - // (can happen directly after reinstalling the app) - if (cgData.getAllCachesCount() == 0) { - ActivityMixin.helpDialog(SettingsActivity.this, - context.getString(R.string.init_backup), - context.getString(R.string.init_backup_unnecessary)); - return false; - } + return DatabaseBackupUtils.createBackup(SettingsActivity.this, new Runnable() { - final ProgressDialog dialog = ProgressDialog.show(context, - context.getString(R.string.init_backup), - context.getString(R.string.init_backup_running), true, false); - new Thread() { @Override public void run() { - final String backupFileName = cgData.backupDatabase(); - runOnUiThread(new Runnable() { - @Override - public void run() { - dialog.dismiss(); - ActivityMixin.helpDialog(SettingsActivity.this, - context.getString(R.string.init_backup_backup), - backupFileName != null - ? context.getString(R.string.init_backup_success) - + "\n" + backupFileName - : context.getString(R.string.init_backup_failed)); - VALUE_CHANGE_LISTENER.onPreferenceChange(SettingsActivity.this.getPreference(R.string.pref_fakekey_preference_backup_info), ""); - } - }); + VALUE_CHANGE_LISTENER.onPreferenceChange(SettingsActivity.this.getPreference(R.string.pref_fakekey_preference_backup_info), ""); } - }.start(); - return true; + }); } }); @@ -351,8 +323,7 @@ public class SettingsActivity extends PreferenceActivity { restore.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(final Preference preference) { - ((cgeoapplication) SettingsActivity.this.getApplication()) - .restoreDatabase(SettingsActivity.this); + DatabaseBackupUtils.restoreDatabase(SettingsActivity.this); return true; } }); @@ -496,11 +467,10 @@ public class SettingsActivity extends PreferenceActivity { ? listPreference.getEntries()[index] : null); } else if (getKey(R.string.pref_fakekey_preference_backup_info).equals(preference.getKey())) { - File lastBackupFile = cgData.getRestoreFile(); - String text; - if (lastBackupFile != null) { + final String text; + if (DatabaseBackupUtils.hasBackup()) { text = preference.getContext().getString(R.string.init_backup_last) + " " - + Formatter.formatShortDateTime(lastBackupFile.lastModified()); + + DatabaseBackupUtils.getBackupDateTime(); } else { text = preference.getContext().getString(R.string.init_backup_last_no); } |
