diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-01-29 14:30:08 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-01-29 14:30:08 -0800 |
commit | ad37152c14c716f678d07dd568811a9704c2a9c8 (patch) | |
tree | bf5e511281d04fd9b2ce87dc2bac4017b8d8d57b | |
parent | a22921fc31930887fc9d6b3fb1ceb37c0ad098c5 (diff) | |
parent | b171e5675b91e6e4fc1cf741b3b2d0313ad2fe27 (diff) | |
download | android_packages_apps_Trebuchet-ad37152c14c716f678d07dd568811a9704c2a9c8.tar.gz android_packages_apps_Trebuchet-ad37152c14c716f678d07dd568811a9704c2a9c8.tar.bz2 android_packages_apps_Trebuchet-ad37152c14c716f678d07dd568811a9704c2a9c8.zip |
resolve merge conflicts of b171e5675b to ub-launcher3-calgary.
Change-Id: I329c7518d8c3f0f43e96c6446d5b53a6f4439211
-rw-r--r-- | src/com/android/launcher3/LauncherBackupAgentHelper.java | 30 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherProvider.java | 3 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherSettings.java | 2 |
3 files changed, 30 insertions, 5 deletions
diff --git a/src/com/android/launcher3/LauncherBackupAgentHelper.java b/src/com/android/launcher3/LauncherBackupAgentHelper.java index b192ba3cc..c2ab20a62 100644 --- a/src/com/android/launcher3/LauncherBackupAgentHelper.java +++ b/src/com/android/launcher3/LauncherBackupAgentHelper.java @@ -20,6 +20,7 @@ import android.app.backup.BackupAgentHelper; import android.app.backup.BackupDataInput; import android.app.backup.BackupManager; import android.content.Context; +import android.content.SharedPreferences; import android.database.Cursor; import android.os.ParcelFileDescriptor; import android.util.Log; @@ -32,13 +33,13 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper { private static final String TAG = "LauncherBAHelper"; + private static final String KEY_LAST_NOTIFIED_TIME = "backup_manager_last_notified"; + private static final String LAUNCHER_DATA_PREFIX = "L"; static final boolean VERBOSE = false; static final boolean DEBUG = false; - private static BackupManager sBackupManager; - /** * Notify the backup manager that out database is dirty. * @@ -47,10 +48,29 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper { * @param context application context */ public static void dataChanged(Context context) { - if (sBackupManager == null) { - sBackupManager = new BackupManager(context); + dataChanged(context, 0); + } + + /** + * Notify the backup manager that out database is dirty. + * + * <P>This does not force an immediate backup. + * + * @param context application context + * @param throttleMs duration in ms for which two consecutive calls to backup manager should + * not be made. + */ + public static void dataChanged(Context context, long throttleMs) { + SharedPreferences prefs = Utilities.getPrefs(context); + long now = System.currentTimeMillis(); + long lastTime = prefs.getLong(KEY_LAST_NOTIFIED_TIME, 0); + + // User can manually change the system time, which could lead to now < lastTime. + // Re-backup in that case, as the backup will have a wrong lastModifiedTime. + if (now < lastTime || now >= (lastTime + throttleMs)) { + BackupManager.dataChanged(context.getPackageName()); + prefs.edit().putLong(KEY_LAST_NOTIFIED_TIME, now).apply(); } - sBackupManager.dataChanged(); } private LauncherBackupHelper mHelper; diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index ac9b32168..a57f68037 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -278,6 +278,9 @@ public class LauncherProvider extends ContentProvider { mListener.onSettingsChanged(arg, value); } } + if (extras.getBoolean(LauncherSettings.Settings.NOTIFY_BACKUP)) { + LauncherBackupAgentHelper.dataChanged(getContext()); + } Bundle result = new Bundle(); result.putBoolean(LauncherSettings.Settings.EXTRA_VALUE, value); return result; diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java index 55a53785f..fb5306830 100644 --- a/src/com/android/launcher3/LauncherSettings.java +++ b/src/com/android/launcher3/LauncherSettings.java @@ -341,6 +341,8 @@ public class LauncherSettings { public static final String EXTRA_VALUE = "value"; public static final String EXTRA_DEFAULT_VALUE = "default_value"; + // Extra for set_boolean method to also notify the backup manager of the change. + public static final String NOTIFY_BACKUP = "notify_backup"; public static Bundle call(ContentResolver cr, String method) { return cr.call(CONTENT_URI, method, null, null); |