summaryrefslogtreecommitdiff
path: root/packages/SettingsProvider/src
diff options
context:
space:
mode:
authorFabian Kozynski <kozynski@google.com>2020-04-16 11:45:40 -0400
committerFabian Kozynski <kozynski@google.com>2020-04-22 13:16:15 +0000
commit2095c43a25c0a8cb42dfb2493a1334bfb5984b0e (patch)
tree280060ef709bd983dc2d48988eddd7d1f0f43055 /packages/SettingsProvider/src
parentbb366191293f5dd6f2d209bffc0a37fb3970af70 (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')
-rw-r--r--packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java1
-rw-r--r--packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java1
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java6
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java24
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) {