aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2011-09-20 09:55:42 +0200
committerSamuel Tardieu <sam@rfc1149.net>2011-09-20 10:08:43 +0200
commitee499b33eae305db4e4ee58712ee0ea29179f815 (patch)
tree00d67d2d6e2b61b4cb6b09d7c084f5d885af75c7 /main/src
parentba93fcc4fa9fcdf2e9a5a49f43650fa89e0788e6 (diff)
downloadcgeo-ee499b33eae305db4e4ee58712ee0ea29179f815.zip
cgeo-ee499b33eae305db4e4ee58712ee0ea29179f815.tar.gz
cgeo-ee499b33eae305db4e4ee58712ee0ea29179f815.tar.bz2
Use Google backup agent to backup preferences
This will do nothing if the SDK API < 8.
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/backup/CentralBackupAgent.java18
-rw-r--r--main/src/cgeo/geocaching/cgeoinit.java2
-rw-r--r--main/src/cgeo/geocaching/compatibility/AndroidLevel8.java4
-rw-r--r--main/src/cgeo/geocaching/compatibility/Compatibility.java6
4 files changed, 30 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/backup/CentralBackupAgent.java b/main/src/cgeo/geocaching/backup/CentralBackupAgent.java
new file mode 100644
index 0000000..742eb0c
--- /dev/null
+++ b/main/src/cgeo/geocaching/backup/CentralBackupAgent.java
@@ -0,0 +1,18 @@
+package cgeo.geocaching.backup;
+
+import cgeo.geocaching.cgSettings;
+
+import android.app.backup.BackupAgentHelper;
+import android.app.backup.SharedPreferencesBackupHelper;
+
+public class CentralBackupAgent extends BackupAgentHelper {
+
+ static final String PREFS_BACKUP_KEY = "prefs";
+
+ @Override
+ public void onCreate() {
+ SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, cgSettings.preferences);
+ addHelper(PREFS_BACKUP_KEY, helper);
+ }
+
+}
diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java
index 10495ee..455c00b 100644
--- a/main/src/cgeo/geocaching/cgeoinit.java
+++ b/main/src/cgeo/geocaching/cgeoinit.java
@@ -3,6 +3,7 @@ package cgeo.geocaching;
import cgeo.geocaching.LogTemplateProvider.LogTemplate;
import cgeo.geocaching.cgSettings.mapSourceEnum;
import cgeo.geocaching.activity.AbstractActivity;
+import cgeo.geocaching.compatibility.Compatibility;
import org.apache.commons.lang3.StringUtils;
@@ -139,6 +140,7 @@ public class cgeoinit extends AbstractActivity {
@Override
public void onStop() {
saveValues();
+ Compatibility.dataChanged(getPackageName());
super.onStop();
}
diff --git a/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java b/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
index 5bca728..5dc6204 100644
--- a/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
+++ b/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
@@ -1,6 +1,7 @@
package cgeo.geocaching.compatibility;
import android.app.Activity;
+import android.app.backup.BackupManager;
import android.view.Display;
public class AndroidLevel8 {
@@ -10,4 +11,7 @@ public class AndroidLevel8 {
return display.getRotation();
}
+ public void dataChanged(final String name) {
+ BackupManager.dataChanged(name);
+ }
}
diff --git a/main/src/cgeo/geocaching/compatibility/Compatibility.java b/main/src/cgeo/geocaching/compatibility/Compatibility.java
index 48b553f..cbbfb15 100644
--- a/main/src/cgeo/geocaching/compatibility/Compatibility.java
+++ b/main/src/cgeo/geocaching/compatibility/Compatibility.java
@@ -43,4 +43,10 @@ public final class Compatibility {
return Uri.parse(isLevel8 ? "content://com.android.calendar/events" : "content://calendar/events");
}
+ public static void dataChanged(final String name) {
+ if (isLevel8) {
+ level8.dataChanged(name);
+ }
+ }
+
}