aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java')
-rw-r--r--main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java45
1 files changed, 20 insertions, 25 deletions
diff --git a/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java b/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
index 24f375d..b291a8a 100644
--- a/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
+++ b/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.utils;
+import cgeo.geocaching.DataStore;
import cgeo.geocaching.MainActivity;
import cgeo.geocaching.R;
-import cgeo.geocaching.cgData;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.ui.Formatter;
@@ -12,8 +12,6 @@ import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.res.Resources;
-import android.os.Handler;
-import android.os.Message;
import java.io.File;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -34,34 +32,31 @@ public class DatabaseBackupUtils {
final Resources res = activity.getResources();
final ProgressDialog dialog = ProgressDialog.show(activity, res.getString(R.string.init_backup_restore), res.getString(R.string.init_restore_running), true, false);
final AtomicBoolean restoreSuccessful = new AtomicBoolean(false);
- Thread restoreThread = new Thread() {
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- dialog.dismiss();
- boolean restored = restoreSuccessful.get();
- String message = restored ? res.getString(R.string.init_restore_success) : res.getString(R.string.init_restore_failed);
- ActivityMixin.helpDialog(activity, res.getString(R.string.init_backup_restore), message);
- if (activity instanceof MainActivity) {
- ((MainActivity) activity).updateCacheCounter();
- }
- }
- };
-
+ new Thread() {
@Override
public void run() {
- restoreSuccessful.set(cgData.restoreDatabaseInternal());
- handler.sendMessage(handler.obtainMessage());
+ restoreSuccessful.set(DataStore.restoreDatabaseInternal());
+ activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ dialog.dismiss();
+ boolean restored = restoreSuccessful.get();
+ String message = restored ? res.getString(R.string.init_restore_success) : res.getString(R.string.init_restore_failed);
+ ActivityMixin.helpDialog(activity, res.getString(R.string.init_backup_restore), message);
+ if (activity instanceof MainActivity) {
+ ((MainActivity) activity).updateCacheCounter();
+ }
+ }
+ });
}
- };
- restoreThread.start();
+ }.start();
}
public static boolean createBackup(final Activity activity, final Runnable runAfterwards) {
final Context context = activity;
// avoid overwriting an existing backup with an empty database
// (can happen directly after reinstalling the app)
- if (cgData.getAllCachesCount() == 0) {
+ if (DataStore.getAllCachesCount() == 0) {
ActivityMixin.helpDialog(activity,
context.getString(R.string.init_backup),
context.getString(R.string.init_backup_unnecessary));
@@ -74,7 +69,7 @@ public class DatabaseBackupUtils {
new Thread() {
@Override
public void run() {
- final String backupFileName = cgData.backupDatabaseInternal();
+ final String backupFileName = DataStore.backupDatabaseInternal();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -96,8 +91,8 @@ public class DatabaseBackupUtils {
}
public static File getRestoreFile() {
- final File fileSourceFile = cgData.getBackupFileInternal();
- return fileSourceFile.exists() ? fileSourceFile : null;
+ final File fileSourceFile = DataStore.getBackupFileInternal();
+ return fileSourceFile.exists() && fileSourceFile.length() > 0 ? fileSourceFile : null;
}
public static boolean hasBackup() {