diff options
author | Fabian Kozynski <kozynski@google.com> | 2020-04-16 11:45:40 -0400 |
---|---|---|
committer | Fabian Kozynski <kozynski@google.com> | 2020-04-22 13:16:15 +0000 |
commit | 2095c43a25c0a8cb42dfb2493a1334bfb5984b0e (patch) | |
tree | 280060ef709bd983dc2d48988eddd7d1f0f43055 /packages/SettingsProvider/src | |
parent | bb366191293f5dd6f2d209bffc0a37fb3970af70 (diff) |
[DO NOT MERGE] Add setting for power menu in lock screen privacy
Adds a new Setting for the user to show or hide power menu content
(cards & passes, controls) when the device is locked (secured). A value
of 0 (default) means hide content and a value of 1 means show.
The setting updates from the notification in the following way:
* If Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS is 1 AND
Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS is 1, the new setting is
set to 1 (the user has allowed sensitive content).
* If at least one of those settings is 0, the new setting is set to 0
(the user has not allowed sensitive content).
* If the settings are not set, the new setting is not set.
Test: build
Test: manual with adb
Bug: 152212779
Change-Id: If6d9436f633bc45330956372ea7f8a40ed22ed52
Diffstat (limited to 'packages/SettingsProvider/src')
4 files changed, 31 insertions, 1 deletions
diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java index 736e995451cd..c04a1ba689b9 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -97,6 +97,7 @@ public class SecureSettings { Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, Settings.Secure.QS_TILES, Settings.Secure.CONTROLS_ENABLED, + Settings.Secure.POWER_MENU_LOCKED_SHOW_CONTENT, Settings.Secure.DOZE_ENABLED, Settings.Secure.DOZE_ALWAYS_ON, Settings.Secure.DOZE_PICK_UP_GESTURE, diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index b413e8e9dda2..76746e5488b6 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -142,6 +142,7 @@ public class SecureSettingsValidators { VALIDATORS.put(Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.QS_TILES, TILE_LIST_VALIDATOR); VALIDATORS.put(Secure.CONTROLS_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Secure.POWER_MENU_LOCKED_SHOW_CONTENT, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.DOZE_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.DOZE_ALWAYS_ON, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.DOZE_PICK_UP_GESTURE, BOOLEAN_VALIDATOR); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 8a7b9134a5d9..a5dce6da348f 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -2278,6 +2278,12 @@ class SettingsProtoDumpUtil { SecureSettingsProto.ParentalControl.REDIRECT_URL); p.end(parentalControlToken); + final long powerMenuPrivacyToken = p.start(SecureSettingsProto.POWER_MENU_PRIVACY); + dumpSetting(s, p, + Settings.Secure.POWER_MENU_LOCKED_SHOW_CONTENT, + SecureSettingsProto.PowerMenuPrivacy.SHOW); + p.end(powerMenuPrivacyToken); + final long printServiceToken = p.start(SecureSettingsProto.PRINT_SERVICE); dumpSetting(s, p, Settings.Secure.PRINT_SERVICE_SEARCH_URI, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index d3d04e5a31d0..74eee6300b2a 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -3437,7 +3437,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 189; + private static final int SETTINGS_VERSION = 190; private final int mUserId; @@ -4777,6 +4777,28 @@ public class SettingsProvider extends ContentProvider { currentVersion = 189; } + if (currentVersion == 189) { + final SettingsState secureSettings = getSecureSettingsLocked(userId); + final Setting showNotifications = secureSettings.getSettingLocked( + Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS); + final Setting allowPrivateNotifications = secureSettings.getSettingLocked( + Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS); + if ("1".equals(showNotifications.getValue()) + && "1".equals(allowPrivateNotifications.getValue())) { + secureSettings.insertSettingLocked( + Secure.POWER_MENU_LOCKED_SHOW_CONTENT, + "1", null /* tag */, false /* makeDefault */, + SettingsState.SYSTEM_PACKAGE_NAME); + } else if ("0".equals(showNotifications.getValue()) + || "0".equals(allowPrivateNotifications.getValue())) { + secureSettings.insertSettingLocked( + Secure.POWER_MENU_LOCKED_SHOW_CONTENT, + "0", null /* tag */, false /* makeDefault */, + SettingsState.SYSTEM_PACKAGE_NAME); + } + currentVersion = 190; + } + // vXXX: Add new settings above this point. if (currentVersion != newVersion) { |