From 45297f851af715b2a0367459089a7a8f9c39b8fd Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Thu, 17 Oct 2013 15:16:48 -0400 Subject: backup launcher preferences Bug: 11267816 Change-Id: I12a32477164fe2205bc8cb02e0a23c561a7f9189 --- src/com/android/launcher3/LauncherBackupAgentHelper.java | 16 ++++++++++++++++ src/com/android/launcher3/LauncherBackupHelper.java | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/com/android/launcher3/LauncherBackupAgentHelper.java b/src/com/android/launcher3/LauncherBackupAgentHelper.java index 2b5059b72..83e4a60d4 100644 --- a/src/com/android/launcher3/LauncherBackupAgentHelper.java +++ b/src/com/android/launcher3/LauncherBackupAgentHelper.java @@ -18,10 +18,14 @@ package com.android.launcher3; import android.app.backup.BackupAgentHelper; import android.app.backup.BackupManager; +import android.app.backup.SharedPreferencesBackupHelper; import android.content.Context; +import android.content.SharedPreferences; public class LauncherBackupAgentHelper extends BackupAgentHelper { + private static final String TAG = "LauncherBackupAgentHelper"; + private static BackupManager sBackupManager; /** @@ -38,9 +42,21 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper { sBackupManager.dataChanged(); } + @Override + public void onDestroy() { + // There is only one process accessing this preference file, but the restore + // modifies the file outside the normal codepaths, so it looks like another + // process. This forces a reload of the file, in case this process persists. + String spKey = LauncherAppState.getSharedPreferencesKey(); + SharedPreferences sp = getSharedPreferences(spKey, Context.MODE_MULTI_PROCESS); + super.onDestroy(); + } @Override public void onCreate() { + addHelper(LauncherBackupHelper.LAUNCHER_PREFS_PREFIX, + new SharedPreferencesBackupHelper(this, + LauncherAppState.getSharedPreferencesKey())); addHelper(LauncherBackupHelper.LAUNCHER_PREFIX, new LauncherBackupHelper(this)); } } diff --git a/src/com/android/launcher3/LauncherBackupHelper.java b/src/com/android/launcher3/LauncherBackupHelper.java index 8023fcd36..2a5ed6961 100644 --- a/src/com/android/launcher3/LauncherBackupHelper.java +++ b/src/com/android/launcher3/LauncherBackupHelper.java @@ -82,6 +82,8 @@ public class LauncherBackupHelper implements BackupHelper { public static final String LAUNCHER_PREFIX = "L"; + public static final String LAUNCHER_PREFS_PREFIX = "LP"; + private static final Bitmap.CompressFormat IMAGE_FORMAT = android.graphics.Bitmap.CompressFormat.PNG; -- cgit v1.2.3