diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2011-09-20 09:55:42 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2011-09-20 10:08:43 +0200 |
| commit | ee499b33eae305db4e4ee58712ee0ea29179f815 (patch) | |
| tree | 00d67d2d6e2b61b4cb6b09d7c084f5d885af75c7 /main/src | |
| parent | ba93fcc4fa9fcdf2e9a5a49f43650fa89e0788e6 (diff) | |
| download | cgeo-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')
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); + } + } + } |
