From 02ba61203e6cee1936affb9015c7857c03125079 Mon Sep 17 00:00:00 2001 From: Daniel U Date: Fri, 1 Apr 2016 18:41:42 +0100 Subject: [PATCH] Copy lockscreen notification settings upon upgrade Copy the primary values of LOCK_SCREEN_SHOW_NOTIFICATIONS and LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS into managed profile upon upgrade. Bug:27673591 Change-Id: I3207b7e5bf844f0df534324220082edbdabe8444 --- .../providers/settings/SettingsProvider.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 61c9f2b15c823..5621642954ee2 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -1942,7 +1942,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 126; + private static final int SETTINGS_VERSION = 127; private final int mUserId; @@ -2167,6 +2167,36 @@ public class SettingsProvider extends ContentProvider { currentVersion = 126; } + if (currentVersion == 126) { + // Version 126: copy the primary values of LOCK_SCREEN_SHOW_NOTIFICATIONS and + // LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS into managed profile. + if (mUserManager.isManagedProfile(userId)) { + final SettingsState systemSecureSettings = + getSecureSettingsLocked(UserHandle.USER_SYSTEM); + + final Setting showNotifications = systemSecureSettings.getSettingLocked( + Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS); + if (showNotifications != null) { + final SettingsState secureSettings = getSecureSettingsLocked(userId); + secureSettings.insertSettingLocked( + Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, + showNotifications.getValue(), + SettingsState.SYSTEM_PACKAGE_NAME); + } + + final Setting allowPrivate = systemSecureSettings.getSettingLocked( + Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS); + if (allowPrivate != null) { + final SettingsState secureSettings = getSecureSettingsLocked(userId); + secureSettings.insertSettingLocked( + Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, + allowPrivate.getValue(), + SettingsState.SYSTEM_PACKAGE_NAME); + } + } + currentVersion = 127; + } + // vXXX: Add new settings above this point. // Return the current version.