summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly <beverlyt@google.com> 2018-07-02 16:45:00 -0400
committer Beverly <beverlyt@google.com> 2018-07-31 11:42:05 -0400
commit91d0a63a58510da6b7f4ac3f9adaa19e91d9e394 (patch)
treeb99e8cca3db042af16412dd9e63e203a153fbbfb
parent0bdc3552efec1d023bcc5790c802d1f6ff2bd6e7 (diff)
Move some global settings to secure settings
The following Settings are being moved to Settings.Secure from Settings.Global since they are settings that exist per user - CHARGING_SOUNDS_ENABLED - CHARGING_VIBRATION_ENABLED - ZEN_DURATION - SHOW_ZEN_UPGRADE_NOTIFICATION - SHOW_ZEN_SETTINGS_SUGGESTION - ZEN_SETTINGS_UPDATE - ZEN_SETTINGS_SUGGESTION_VIEWED zen_duration used to be a global setting -> move it to Settings.Secure since users can set different values Fixes: 110926544 Test: make RunSettingsLibRoboTests -j40 ROBOTEST_FILTER=ZenDurationDialogTest Test: manual upgrade Change-Id: Ifa36affe3e52e67a54698a8cf2c3424343877179
-rw-r--r--core/java/android/provider/Settings.java113
-rw-r--r--core/proto/android/providers/settings/global.proto10
-rw-r--r--core/proto/android/providers/settings/secure.proto27
-rw-r--r--core/tests/coretests/src/android/provider/SettingsBackupTest.java6
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java23
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java42
-rw-r--r--packages/SettingsProvider/res/values/defaults.xml6
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java40
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java170
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java16
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java28
-rw-r--r--services/core/java/com/android/server/power/Notifier.java42
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java4
13 files changed, 358 insertions, 169 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ebd90bdc2414..f4f43e327222 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -6031,6 +6031,57 @@ public final class Settings {
NON_NEGATIVE_INTEGER_VALIDATOR;
/**
+ * Whether to play a sound for charging events.
+ * @hide
+ */
+ public static final String CHARGING_SOUNDS_ENABLED = "charging_sounds_enabled";
+
+ /**
+ * Whether to vibrate for wireless charging events.
+ * @hide
+ */
+ public static final String CHARGING_VIBRATION_ENABLED = "charging_vibration_enabled";
+
+ /**
+ * If 0, turning on dnd manually will last indefinitely.
+ * Else if non-negative, turning on dnd manually will last for this many minutes.
+ * Else (if negative), turning on dnd manually will surface a dialog that prompts
+ * user to specify a duration.
+ * @hide
+ */
+ public static final String ZEN_DURATION = "zen_duration";
+
+ private static final Validator ZEN_DURATION_VALIDATOR = ANY_INTEGER_VALIDATOR;
+
+ /** @hide */ public static final int ZEN_DURATION_PROMPT = -1;
+ /** @hide */ public static final int ZEN_DURATION_FOREVER = 0;
+
+ /**
+ * If nonzero, will show the zen upgrade notification when the user toggles DND on/off.
+ * @hide
+ */
+ public static final String SHOW_ZEN_UPGRADE_NOTIFICATION = "show_zen_upgrade_notification";
+
+ /**
+ * If nonzero, will show the zen update settings suggestion.
+ * @hide
+ */
+ public static final String SHOW_ZEN_SETTINGS_SUGGESTION = "show_zen_settings_suggestion";
+
+ /**
+ * If nonzero, zen has not been updated to reflect new changes.
+ * @hide
+ */
+ public static final String ZEN_SETTINGS_UPDATED = "zen_settings_updated";
+
+ /**
+ * If nonzero, zen setting suggestion has been viewed by user
+ * @hide
+ */
+ public static final String ZEN_SETTINGS_SUGGESTION_VIEWED =
+ "zen_settings_suggestion_viewed";
+
+ /**
* Whether the in call notification is enabled to play sound during calls. The value is
* boolean (1 or 0).
* @hide
@@ -8033,6 +8084,13 @@ public final class Settings {
IN_CALL_NOTIFICATION_ENABLED,
LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS,
LOCK_SCREEN_SHOW_NOTIFICATIONS,
+ ZEN_DURATION,
+ SHOW_ZEN_UPGRADE_NOTIFICATION,
+ SHOW_ZEN_SETTINGS_SUGGESTION,
+ ZEN_SETTINGS_UPDATED,
+ ZEN_SETTINGS_SUGGESTION_VIEWED,
+ CHARGING_SOUNDS_ENABLED,
+ CHARGING_VIBRATION_ENABLED,
};
/**
@@ -8178,6 +8236,13 @@ public final class Settings {
VALIDATORS.put(IN_CALL_NOTIFICATION_ENABLED, IN_CALL_NOTIFICATION_ENABLED_VALIDATOR);
VALIDATORS.put(LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, BOOLEAN_VALIDATOR);
VALIDATORS.put(LOCK_SCREEN_SHOW_NOTIFICATIONS, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(ZEN_DURATION, ZEN_DURATION_VALIDATOR);
+ VALIDATORS.put(SHOW_ZEN_UPGRADE_NOTIFICATION, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(SHOW_ZEN_SETTINGS_SUGGESTION, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(ZEN_SETTINGS_UPDATED, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(ZEN_SETTINGS_SUGGESTION_VIEWED, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(CHARGING_SOUNDS_ENABLED, BOOLEAN_VALIDATOR);
+ VALIDATORS.put(CHARGING_VIBRATION_ENABLED, BOOLEAN_VALIDATOR);
}
/**
@@ -8651,16 +8716,20 @@ public final class Settings {
/**
* Whether to play a sound for charging events.
+ * @deprecated Use {@link android.provider.Settings.Secure#CHARGING_SOUNDS_ENABLED} instead
* @hide
*/
+ @Deprecated
public static final String CHARGING_SOUNDS_ENABLED = "charging_sounds_enabled";
private static final Validator CHARGING_SOUNDS_ENABLED_VALIDATOR = BOOLEAN_VALIDATOR;
/**
* Whether to vibrate for wireless charging events.
+ * @deprecated Use {@link android.provider.Settings.Secure#CHARGING_VIBRATION_ENABLED}
* @hide
*/
+ @Deprecated
public static final String CHARGING_VIBRATION_ENABLED = "charging_vibration_enabled";
private static final Validator CHARGING_VIBRATION_ENABLED_VALIDATOR = BOOLEAN_VALIDATOR;
@@ -11721,18 +11790,27 @@ public final class Settings {
public static final String ZEN_MODE_CONFIG_ETAG = "zen_mode_config_etag";
/**
- * If 0, turning on dnd manually will last indefinitely.
- * Else if non-negative, turning on dnd manually will last for this many minutes.
- * Else (if negative), turning on dnd manually will surface a dialog that prompts
- * user to specify a duration.
+ * @deprecated Use {@link android.provider.Settings.Secure#ZEN_DURATION} instead
* @hide
*/
+ @Deprecated
public static final String ZEN_DURATION = "zen_duration";
private static final Validator ZEN_DURATION_VALIDATOR = ANY_INTEGER_VALIDATOR;
- /** @hide */ public static final int ZEN_DURATION_PROMPT = -1;
- /** @hide */ public static final int ZEN_DURATION_FOREVER = 0;
+ /**
+ * @deprecated Use {@link android.provider.Settings.Secure#ZEN_DURATION_PROMPT} instead
+ * @hide
+ */
+ @Deprecated
+ public static final int ZEN_DURATION_PROMPT = -1;
+
+ /**
+ * @deprecated Use {@link android.provider.Settings.Secure#ZEN_DURATION_FOREVER} instead
+ * @hide
+ */
+ @Deprecated
+ public static final int ZEN_DURATION_FOREVER = 0;
/**
* Defines global heads up toggle. One of HEADS_UP_OFF, HEADS_UP_ON.
@@ -12276,8 +12354,16 @@ public final class Settings {
// Certain settings have been moved from global to the per-user secure namespace
private static final HashSet<String> MOVED_TO_SECURE;
static {
- MOVED_TO_SECURE = new HashSet<>(1);
- MOVED_TO_SECURE.add(Settings.Global.INSTALL_NON_MARKET_APPS);
+ MOVED_TO_SECURE = new HashSet<>(8);
+ MOVED_TO_SECURE.add(Global.INSTALL_NON_MARKET_APPS);
+ MOVED_TO_SECURE.add(Global.ZEN_DURATION);
+ MOVED_TO_SECURE.add(Global.SHOW_ZEN_UPGRADE_NOTIFICATION);
+ MOVED_TO_SECURE.add(Global.SHOW_ZEN_SETTINGS_SUGGESTION);
+ MOVED_TO_SECURE.add(Global.ZEN_SETTINGS_UPDATED);
+ MOVED_TO_SECURE.add(Global.ZEN_SETTINGS_SUGGESTION_VIEWED);
+ MOVED_TO_SECURE.add(Global.CHARGING_SOUNDS_ENABLED);
+ MOVED_TO_SECURE.add(Global.CHARGING_VIBRATION_ENABLED);
+
}
/** @hide */
@@ -12953,28 +13039,37 @@ public final class Settings {
*/
public static final String SHOW_MUTE_IN_CRASH_DIALOG = "show_mute_in_crash_dialog";
+
/**
* If nonzero, will show the zen upgrade notification when the user toggles DND on/off.
* @hide
+ * @deprecated - Use {@link android.provider.Settings.Secure#SHOW_ZEN_UPGRADE_NOTIFICATION}
*/
+ @Deprecated
public static final String SHOW_ZEN_UPGRADE_NOTIFICATION = "show_zen_upgrade_notification";
/**
* If nonzero, will show the zen update settings suggestion.
* @hide
+ * @deprecated - Use {@link android.provider.Settings.Secure#SHOW_ZEN_SETTINGS_SUGGESTION}
*/
+ @Deprecated
public static final String SHOW_ZEN_SETTINGS_SUGGESTION = "show_zen_settings_suggestion";
/**
* If nonzero, zen has not been updated to reflect new changes.
+ * @deprecated - Use {@link android.provider.Settings.Secure#ZEN_SETTINGS_UPDATED}
* @hide
*/
+ @Deprecated
public static final String ZEN_SETTINGS_UPDATED = "zen_settings_updated";
/**
- * If nonzero, zen setting suggestion has beem viewed by user
+ * If nonzero, zen setting suggestion has been viewed by user
* @hide
+ * @deprecated - Use {@link android.provider.Settings.Secure#ZEN_SETTINGS_SUGGESTION_VIEWED}
*/
+ @Deprecated
public static final String ZEN_SETTINGS_SUGGESTION_VIEWED =
"zen_settings_suggestion_viewed";
diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto
index ed7316a43156..040e36ae706c 100644
--- a/core/proto/android/providers/settings/global.proto
+++ b/core/proto/android/providers/settings/global.proto
@@ -745,7 +745,7 @@ message GlobalSettingsProto {
optional SettingProto car_dock = 1;
optional SettingProto car_undock = 2;
- optional SettingProto charging_sounds_enabled = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ reserved 3; // Moved to secure settings Sound.charging_sounds_enabled
optional SettingProto charging_started = 4;
optional SettingProto desk_dock = 5;
optional SettingProto desk_undock = 6;
@@ -941,12 +941,8 @@ message GlobalSettingsProto {
optional SettingProto mode = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto mode_ringer_level = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto mode_config_etag = 3;
- // If 0, turning on dnd manually will last indefinitely. Else if
- // non-negative, turning on dnd manually will last for this many minutes.
- // Else (if negative), turning on dnd manually will surface a dialog that
- // prompts user to specify a duration.
- optional SettingProto duration = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
- optional SettingProto show_zen_upgrade_notification = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ reserved 4; // Moved to secure settings Zen.duration
+ reserved 5; // Moved to secure settings Zen.show_zen_upgrade_notification
}
optional Zen zen = 138;
diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto
index 237efd8f017f..f2e8c70a5682 100644
--- a/core/proto/android/providers/settings/secure.proto
+++ b/core/proto/android/providers/settings/secure.proto
@@ -300,6 +300,7 @@ message SecureSettingsProto {
optional SettingProto enabled_policy_access_packages = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto badging = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto show_note_about_notification_hiding = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto in_call_notification_enabled = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
}
optional Notification notification = 41;
@@ -404,6 +405,15 @@ message SecureSettingsProto {
optional SettingProto skip_first_use_hints = 52 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto sleep_timeout = 53 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto sms_default_application = 54 [ (android.privacy).dest = DEST_AUTOMATIC ];
+
+ message Sounds {
+ option (android.msg_privacy).dest = DEST_EXPLICIT;
+
+ optional SettingProto charging_sounds_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto charging_vibration_enabled = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ }
+ optional Sounds sounds = 72;
+
// Defines whether managed profile ringtones should be synced from its
// parent profile.
optional SettingProto sync_parent_sounds = 55 [ (android.privacy).dest = DEST_AUTOMATIC ];
@@ -484,7 +494,22 @@ message SecureSettingsProto {
optional SettingProto wake_gesture_enabled = 68 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ message Zen {
+ option (android.msg_privacy).dest = DEST_EXPLICIT;
+
+ // If 0, turning on dnd manually will last indefinitely. Else if
+ // non-negative, turning on dnd manually will last for this many minutes.
+ // Else (if negative), turning on dnd manually will surface a dialog that
+ // prompts user to specify a duration.
+ optional SettingProto duration = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto show_zen_upgrade_notification = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto show_zen_settings_suggestion = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto settings_updated = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto settings_suggestion_viewed = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ }
+ optional Zen zen = 71;
+
// Please insert fields in alphabetical order and group them into messages
// if possible (to avoid reaching the method limit).
- // Next tag = 71;
+ // Next tag = 73;
}
diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
index 37dec134b86e..1a87fa2bd34e 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -389,10 +389,6 @@ public class SettingsBackupTest {
Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS,
Settings.Global.SHOW_RESTART_IN_CRASH_DIALOG,
Settings.Global.SHOW_TEMPERATURE_WARNING,
- Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION,
- Settings.Global.SHOW_ZEN_SETTINGS_SUGGESTION,
- Settings.Global.ZEN_SETTINGS_UPDATED,
- Settings.Global.ZEN_SETTINGS_SUGGESTION_VIEWED,
Settings.Global.SMART_SELECTION_UPDATE_CONTENT_URL,
Settings.Global.SMART_SELECTION_UPDATE_METADATA_URL,
Settings.Global.SMS_OUTGOING_CHECK_INTERVAL_MS,
@@ -495,8 +491,8 @@ public class SettingsBackupTest {
Settings.Global.WIFI_VERBOSE_LOGGING_ENABLED,
Settings.Global.WIFI_WATCHDOG_ON,
Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON,
- Settings.Global.WINDOW_ANIMATION_SCALE,
Settings.Global.CHARGING_STARTED_SOUND,
+ Settings.Global.WINDOW_ANIMATION_SCALE,
Settings.Global.WTF_IS_FATAL,
Settings.Global.ZEN_MODE,
Settings.Global.ZEN_MODE_CONFIG_ETAG,
diff --git a/packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java b/packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java
index 6da486ab3aa8..fd9d02b933b5 100644
--- a/packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java
+++ b/packages/SettingsLib/src/com/android/settingslib/notification/ZenDurationDialog.java
@@ -24,7 +24,6 @@ import android.content.DialogInterface;
import android.provider.Settings;
import android.service.notification.Condition;
import android.service.notification.ZenModeConfig;
-import androidx.annotation.VisibleForTesting;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CompoundButton;
@@ -42,6 +41,8 @@ import com.android.settingslib.R;
import java.util.Arrays;
+import androidx.annotation.VisibleForTesting;
+
public class ZenDurationDialog {
private static final int[] MINUTE_BUCKETS = ZenModeConfig.MINUTE_BUCKETS;
@VisibleForTesting protected static final int MIN_BUCKET_MINUTES = MINUTE_BUCKETS[0];
@@ -66,9 +67,9 @@ public class ZenDurationDialog {
}
public Dialog createDialog() {
- int zenDuration = Settings.Global.getInt(
- mContext.getContentResolver(), Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_FOREVER);
+ int zenDuration = Settings.Secure.getInt(
+ mContext.getContentResolver(), Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_FOREVER);
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext)
.setTitle(R.string.zen_mode_duration_settings_title)
@@ -91,12 +92,12 @@ public class ZenDurationDialog {
protected void updateZenDuration(int currZenDuration) {
final int checkedRadioButtonId = mZenRadioGroup.getCheckedRadioButtonId();
- int newZenDuration = Settings.Global.getInt(
- mContext.getContentResolver(), Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_FOREVER);
+ int newZenDuration = Settings.Secure.getInt(
+ mContext.getContentResolver(), Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_FOREVER);
switch (checkedRadioButtonId) {
case FOREVER_CONDITION_INDEX:
- newZenDuration = Settings.Global.ZEN_DURATION_FOREVER;
+ newZenDuration = Settings.Secure.ZEN_DURATION_FOREVER;
MetricsLogger.action(mContext,
MetricsProto.MetricsEvent.
NOTIFICATION_ZEN_MODE_DURATION_FOREVER);
@@ -110,7 +111,7 @@ public class ZenDurationDialog {
newZenDuration);
break;
case ALWAYS_ASK_CONDITION_INDEX:
- newZenDuration = Settings.Global.ZEN_DURATION_PROMPT;
+ newZenDuration = Settings.Secure.ZEN_DURATION_PROMPT;
MetricsLogger.action(mContext,
MetricsProto.MetricsEvent.
NOTIFICATION_ZEN_MODE_DURATION_PROMPT);
@@ -118,8 +119,8 @@ public class ZenDurationDialog {
}
if (currZenDuration != newZenDuration) {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.ZEN_DURATION, newZenDuration);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.ZEN_DURATION, newZenDuration);
}
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java
index 9b491c200cdc..c8619d8ab665 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java
@@ -72,7 +72,7 @@ public class ZenDurationDialogTest {
@Test
public void testAlwaysPrompt() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION,
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
Settings.Global.ZEN_DURATION_PROMPT);
mController.createDialog();
@@ -86,8 +86,8 @@ public class ZenDurationDialogTest {
@Test
public void testForever() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_FOREVER);
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_FOREVER);
mController.createDialog();
assertTrue(mController.getConditionTagAt(ZenDurationDialog.FOREVER_CONDITION_INDEX).rb
@@ -100,7 +100,7 @@ public class ZenDurationDialogTest {
@Test
public void testSpecificDuration() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION, 45);
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION, 45);
mController.createDialog();
assertFalse(mController.getConditionTagAt(ZenDurationDialog.FOREVER_CONDITION_INDEX).rb
@@ -114,51 +114,51 @@ public class ZenDurationDialogTest {
@Test
public void testChooseAlwaysPromptSetting() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_FOREVER);
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_FOREVER);
AlertDialog dialog = (AlertDialog) mController.createDialog();
mController.getConditionTagAt(ZenDurationDialog.ALWAYS_ASK_CONDITION_INDEX).rb.setChecked(
true);
- mController.updateZenDuration(Settings.Global.ZEN_DURATION_FOREVER);
+ mController.updateZenDuration(Settings.Secure.ZEN_DURATION_FOREVER);
- assertEquals(Settings.Global.ZEN_DURATION_PROMPT, Settings.Global.getInt(mContentResolver,
- Settings.Global.ZEN_DURATION, Settings.Global.ZEN_DURATION_FOREVER));
+ assertEquals(Settings.Secure.ZEN_DURATION_PROMPT, Settings.Secure.getInt(mContentResolver,
+ Settings.Secure.ZEN_DURATION, Settings.Secure.ZEN_DURATION_FOREVER));
}
@Test
public void testChooseForeverSetting() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_PROMPT);
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_PROMPT);
AlertDialog dialog = (AlertDialog) mController.createDialog();
mController.getConditionTagAt(ZenDurationDialog.FOREVER_CONDITION_INDEX).rb.setChecked(
true);
- mController.updateZenDuration(Settings.Global.ZEN_DURATION_PROMPT);
+ mController.updateZenDuration(Settings.Secure.ZEN_DURATION_PROMPT);
- assertEquals(Settings.Global.ZEN_DURATION_FOREVER, Settings.Global.getInt(mContentResolver,
- Settings.Global.ZEN_DURATION, Settings.Global.ZEN_DURATION_PROMPT));
+ assertEquals(Settings.Secure.ZEN_DURATION_FOREVER, Settings.Secure.getInt(mContentResolver,
+ Settings.Secure.ZEN_DURATION, Settings.Secure.ZEN_DURATION_PROMPT));
}
@Test
public void testChooseTimeSetting() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_PROMPT);
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_PROMPT);
AlertDialog dialog = (AlertDialog) mController.createDialog();
mController.getConditionTagAt(ZenDurationDialog.COUNTDOWN_CONDITION_INDEX).rb.setChecked(
true);
- mController.updateZenDuration(Settings.Global.ZEN_DURATION_PROMPT);
+ mController.updateZenDuration(Settings.Secure.ZEN_DURATION_PROMPT);
// countdown defaults to 60 minutes:
- assertEquals(60, Settings.Global.getInt(mContentResolver,
- Settings.Global.ZEN_DURATION, Settings.Global.ZEN_DURATION_PROMPT));
+ assertEquals(60, Settings.Secure.getInt(mContentResolver,
+ Settings.Secure.ZEN_DURATION, Settings.Secure.ZEN_DURATION_PROMPT));
}
@Test
public void testGetTimeFromBucket() {
- Settings.Global.putInt(mContentResolver, Settings.Global.ZEN_DURATION,
- Settings.Global.ZEN_DURATION_PROMPT);
+ Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+ Settings.Secure.ZEN_DURATION_PROMPT);
AlertDialog dialog = (AlertDialog) mController.createDialog();
// click time button starts at 60 minutes
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index e1a602b53d9d..c53417b4e0f5 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -217,4 +217,10 @@
<!-- Default for Settings.System.VIBRATE_WHEN_RINGING -->
<bool name="def_vibrate_when_ringing">false</bool>
+
+ <!-- Default for Settings.Secure.CHARGING_VIBRATION_ENABLED -->
+ <bool name="def_charging_vibration_enabled">true</bool>
+
+ <!-- Default for Settings.Secure.CHARGING_SOUNDS_ENABLED -->
+ <bool name="def_charging_sounds_enabled">true</bool>
</resources>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index 10c1211b1d7f..007e14096bf2 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -1182,9 +1182,6 @@ class SettingsProtoDumpUtil {
dumpSetting(s, p,
Settings.Global.CHARGING_STARTED_SOUND,
GlobalSettingsProto.Sounds.CHARGING_STARTED);
- dumpSetting(s, p,
- Settings.Global.CHARGING_SOUNDS_ENABLED,
- GlobalSettingsProto.Sounds.CHARGING_SOUNDS_ENABLED);
p.end(soundsToken);
final long soundTriggerToken = p.start(GlobalSettingsProto.SOUND_TRIGGER);
@@ -1478,12 +1475,6 @@ class SettingsProtoDumpUtil {
dumpSetting(s, p,
Settings.Global.ZEN_MODE_CONFIG_ETAG,
GlobalSettingsProto.Zen.MODE_CONFIG_ETAG);
- dumpSetting(s, p,
- Settings.Global.ZEN_DURATION,
- GlobalSettingsProto.Zen.DURATION);
- dumpSetting(s, p,
- Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION,
- GlobalSettingsProto.Zen.SHOW_ZEN_UPGRADE_NOTIFICATION);
p.end(zenToken);
dumpSetting(s, p,
@@ -1984,6 +1975,9 @@ class SettingsProtoDumpUtil {
dumpSetting(s, p,
Settings.Secure.SHOW_NOTE_ABOUT_NOTIFICATION_HIDING,
SecureSettingsProto.Notification.SHOW_NOTE_ABOUT_NOTIFICATION_HIDING);
+ dumpSetting(s, p,
+ Settings.Secure.IN_CALL_NOTIFICATION_ENABLED,
+ SecureSettingsProto.Notification.IN_CALL_NOTIFICATION_ENABLED);
p.end(notificationToken);
final long packageVerifierToken = p.start(SecureSettingsProto.PACKAGE_VERIFIER);
@@ -2146,6 +2140,16 @@ class SettingsProtoDumpUtil {
dumpSetting(s, p,
Settings.Secure.SMS_DEFAULT_APPLICATION,
SecureSettingsProto.SMS_DEFAULT_APPLICATION);
+
+ final long soundsToken = p.start(SecureSettingsProto.SOUNDS);
+ dumpSetting(s, p,
+ Settings.Secure.CHARGING_SOUNDS_ENABLED,
+ SecureSettingsProto.Sounds.CHARGING_SOUNDS_ENABLED);
+ dumpSetting(s, p,
+ Settings.Secure.CHARGING_VIBRATION_ENABLED,
+ SecureSettingsProto.Sounds.CHARGING_VIBRATION_ENABLED);
+ p.end(soundsToken);
+
dumpSetting(s, p,
Settings.Secure.SYNC_PARENT_SOUNDS,
SecureSettingsProto.SYNC_PARENT_SOUNDS);
@@ -2252,6 +2256,24 @@ class SettingsProtoDumpUtil {
SecureSettingsProto.Launcher.SWIPE_UP_TO_SWITCH_APPS_ENABLED);
p.end(launcherToken);
+ final long zenToken = p.start(SecureSettingsProto.ZEN);
+ dumpSetting(s, p,
+ Settings.Secure.ZEN_DURATION,
+ SecureSettingsProto.Zen.DURATION);
+ dumpSetting(s, p,
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION,
+ SecureSettingsProto.Zen.SHOW_ZEN_UPGRADE_NOTIFICATION);
+ dumpSetting(s, p,
+ Settings.Secure.SHOW_ZEN_SETTINGS_SUGGESTION,
+ SecureSettingsProto.Zen.SHOW_ZEN_SETTINGS_SUGGESTION);
+ dumpSetting(s, p,
+ Settings.Secure.ZEN_SETTINGS_UPDATED,
+ SecureSettingsProto.Zen.SETTINGS_UPDATED);
+ dumpSetting(s, p,
+ Settings.Secure.ZEN_SETTINGS_SUGGESTION_VIEWED,
+ SecureSettingsProto.Zen.SETTINGS_SUGGESTION_VIEWED);
+ p.end(zenToken);
+
// Please insert new settings using the same order as in SecureSettingsProto.
p.end(token);
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 9592b63c6d1e..773ff2726044 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2935,7 +2935,7 @@ public class SettingsProvider extends ContentProvider {
}
private final class UpgradeController {
- private static final int SETTINGS_VERSION = 170;
+ private static final int SETTINGS_VERSION = 171;
private final int mUserId;
@@ -3595,7 +3595,8 @@ public class SettingsProvider extends ContentProvider {
}
if (currentVersion == 156) {
- // Version 157: Set a default value for zen duration
+ // Version 157: Set a default value for zen duration,
+ // in version 169, zen duration is moved to secure settings
final SettingsState globalSettings = getGlobalSettingsLocked();
final Setting currentSetting = globalSettings.getSettingLocked(
Global.ZEN_DURATION);
@@ -3731,32 +3732,8 @@ public class SettingsProvider extends ContentProvider {
}
if (currentVersion == 165) {
- // Version 165: Show zen settings suggestion and zen updated
- final SettingsState settings = getGlobalSettingsLocked();
- final Setting currentSetting = settings.getSettingLocked(
- Global.SHOW_ZEN_SETTINGS_SUGGESTION);
- if (currentSetting.isNull()) {
- settings.insertSettingLocked(
- Global.SHOW_ZEN_SETTINGS_SUGGESTION, "1",
- null, true, SettingsState.SYSTEM_PACKAGE_NAME);
- }
-
- final Setting currentUpdatedSetting = settings.getSettingLocked(
- Global.ZEN_SETTINGS_UPDATED);
- if (currentUpdatedSetting.isNull()) {
- settings.insertSettingLocked(
- Global.ZEN_SETTINGS_UPDATED, "0",
- null, true, SettingsState.SYSTEM_PACKAGE_NAME);
- }
-
- final Setting currentSettingSuggestionViewed = settings.getSettingLocked(
- Global.ZEN_SETTINGS_SUGGESTION_VIEWED);
- if (currentSettingSuggestionViewed.isNull()) {
- settings.insertSettingLocked(
- Global.ZEN_SETTINGS_SUGGESTION_VIEWED, "0",
- null, true, SettingsState.SYSTEM_PACKAGE_NAME);
- }
-
+ // Version 165: MOVED: Show zen settings suggestion and zen updated settings
+ // moved to secure settings and are set in version 169
currentVersion = 166;
}
@@ -3783,15 +3760,8 @@ public class SettingsProvider extends ContentProvider {
}
if (currentVersion == 167) {
- // Version 167: by default, vibrate for wireless charging
- final SettingsState globalSettings = getGlobalSettingsLocked();
- final Setting currentSetting = globalSettings.getSettingLocked(
- Global.CHARGING_VIBRATION_ENABLED);
- if (currentSetting.isNull()) {
- globalSettings.insertSettingLocked(
- Global.CHARGING_VIBRATION_ENABLED, "1",
- null, true, SettingsState.SYSTEM_PACKAGE_NAME);
- }
+ // Version 167: MOVED - Settings.Global.CHARGING_VIBRATION_ENABLED moved to
+ // Settings.Secure.CHARGING_VIBRATION_ENABLED, set in version 170
currentVersion = 168;
}
@@ -3811,36 +3781,112 @@ public class SettingsProvider extends ContentProvider {
}
if (currentVersion == 169) {
- // Version 169: by default, add STREAM_VOICE_CALL to list of streams that can
- // be muted.
- final SettingsState systemSettings = getSystemSettingsLocked(userId);
- final Setting currentSetting = systemSettings.getSettingLocked(
- Settings.System.MUTE_STREAMS_AFFECTED);
- if (!currentSetting.isNull()) {
- try {
- int currentSettingIntegerValue = Integer.parseInt(
- currentSetting.getValue());
- if ((currentSettingIntegerValue
- & (1 << AudioManager.STREAM_VOICE_CALL)) == 0) {
- systemSettings.insertSettingLocked(
- Settings.System.MUTE_STREAMS_AFFECTED,
- Integer.toString(
- currentSettingIntegerValue
- | (1 << AudioManager.STREAM_VOICE_CALL)),
- null, true, SettingsState.SYSTEM_PACKAGE_NAME);
- }
- } catch (NumberFormatException e) {
- // remove the setting in case it is not a valid integer
- Slog.w("Failed to parse integer value of MUTE_STREAMS_AFFECTED"
- + "setting, removing setting", e);
- systemSettings.deleteSettingLocked(
- Settings.System.MUTE_STREAMS_AFFECTED);
- }
+ // Version 169: Set the default value for Secure Settings ZEN_DURATION,
+ // SHOW_ZEN_SETTINGS_SUGGESTION, ZEN_SETTINGS_UPDATE and
+ // ZEN_SETTINGS_SUGGESTION_VIEWED
+
+ final SettingsState globalSettings = getGlobalSettingsLocked();
+ final Setting globalZenDuration = globalSettings.getSettingLocked(
+ Global.ZEN_DURATION);
+
+ final SettingsState secureSettings = getSecureSettingsLocked(userId);
+ final Setting secureZenDuration = secureSettings.getSettingLocked(
+ Secure.ZEN_DURATION);
+
+ // ZEN_DURATION
+ if (!globalZenDuration.isNull()) {
+ secureSettings.insertSettingLocked(
+ Secure.ZEN_DURATION, globalZenDuration.getValue(), null, false,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ // set global zen duration setting to null since it's deprecated
+ globalSettings.insertSettingLocked(
+ Global.ZEN_DURATION, null, null, true,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ } else if (secureZenDuration.isNull()) {
+ String defaultZenDuration = Integer.toString(getContext()
+ .getResources().getInteger(R.integer.def_zen_duration));
+ secureSettings.insertSettingLocked(
+ Secure.ZEN_DURATION, defaultZenDuration, null, true,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+
+ // SHOW_ZEN_SETTINGS_SUGGESTION
+ final Setting currentShowZenSettingSuggestion = secureSettings.getSettingLocked(
+ Secure.SHOW_ZEN_SETTINGS_SUGGESTION);
+ if (currentShowZenSettingSuggestion.isNull()) {
+ secureSettings.insertSettingLocked(
+ Secure.SHOW_ZEN_SETTINGS_SUGGESTION, "1",
+ null, true, SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+
+ // ZEN_SETTINGS_UPDATED
+ final Setting currentUpdatedSetting = secureSettings.getSettingLocked(
+ Secure.ZEN_SETTINGS_UPDATED);
+ if (currentUpdatedSetting.isNull()) {
+ secureSettings.insertSettingLocked(
+ Secure.ZEN_SETTINGS_UPDATED, "0",
+ null, true, SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+
+ // ZEN_SETTINGS_SUGGESTION_VIEWED
+ final Setting currentSettingSuggestionViewed = secureSettings.getSettingLocked(
+ Secure.ZEN_SETTINGS_SUGGESTION_VIEWED);
+ if (currentSettingSuggestionViewed.isNull()) {
+ secureSettings.insertSettingLocked(
+ Secure.ZEN_SETTINGS_SUGGESTION_VIEWED, "0",
+ null, true, SettingsState.SYSTEM_PACKAGE_NAME);
}
+
currentVersion = 170;
}
+ if (currentVersion == 170) {
+ // Version 170: Set the default value for Secure Settings:
+ // CHARGING_SOUNDS_ENABLED and CHARGING_VIBRATION_ENABLED
+
+ final SettingsState globalSettings = getGlobalSettingsLocked();
+ final SettingsState secureSettings = getSecureSettingsLocked(userId);
+
+ // CHARGING_SOUNDS_ENABLED
+ final Setting globalChargingSoundEnabled = globalSettings.getSettingLocked(
+ Global.CHARGING_SOUNDS_ENABLED);
+ final Setting secureChargingSoundsEnabled = secureSettings.getSettingLocked(
+ Secure.CHARGING_SOUNDS_ENABLED);
+
+ if (!globalChargingSoundEnabled.isNull()) {
+ secureSettings.insertSettingLocked(
+ Secure.CHARGING_SOUNDS_ENABLED,
+ globalChargingSoundEnabled.getValue(), null, false,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+
+ // set global charging_sounds_enabled setting to null since it's deprecated
+ globalSettings.insertSettingLocked(
+ Global.CHARGING_SOUNDS_ENABLED, null, null, true,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ } else if (secureChargingSoundsEnabled.isNull()) {
+ String defChargingSoundsEnabled = getContext().getResources()
+ .getBoolean(R.bool.def_charging_sounds_enabled) ? "1" : "0";
+ secureSettings.insertSettingLocked(
+ Secure.CHARGING_SOUNDS_ENABLED, defChargingSoundsEnabled, null,
+ true, SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+
+ // CHARGING_VIBRATION_ENABLED
+ final Setting secureChargingVibrationEnabled = secureSettings.getSettingLocked(
+ Secure.CHARGING_VIBRATION_ENABLED);
+
+ if (secureChargingVibrationEnabled.isNull()) {
+ String defChargingVibrationEnabled = getContext().getResources()
+ .getBoolean(R.bool.def_charging_vibration_enabled) ? "1" : "0";
+ secureSettings.insertSettingLocked(
+ Secure.CHARGING_VIBRATION_ENABLED, defChargingVibrationEnabled,
+ null, true, SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+
+ currentVersion = 171;
+ }
+
// vXXX: Add new settings above this point.
if (currentVersion != newVersion) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
index d1e33d3fb8d6..f52319659b0b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
@@ -142,14 +142,14 @@ public class DndTile extends QSTileImpl<BooleanState> {
@Override
public void showDetail(boolean show) {
- int zenDuration = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.ZEN_DURATION, 0);
- boolean showOnboarding = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0;
+ int zenDuration = Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.ZEN_DURATION, 0);
+ boolean showOnboarding = Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0;
if (showOnboarding) {
// don't show on-boarding again or notification ever
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 0);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0);
// turn on DND
mController.setZen(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS, null, TAG);
// show on-boarding screen
@@ -158,7 +158,7 @@ public class DndTile extends QSTileImpl<BooleanState> {
Dependency.get(ActivityStarter.class).postStartActivityDismissingKeyguard(intent, 0);
} else {
switch (zenDuration) {
- case Settings.Global.ZEN_DURATION_PROMPT:
+ case Settings.Secure.ZEN_DURATION_PROMPT:
mUiHandler.post(() -> {
Dialog mDialog = new EnableZenModeDialog(mContext).createDialog();
mDialog.getWindow().setType(
@@ -170,7 +170,7 @@ public class DndTile extends QSTileImpl<BooleanState> {
mHost.collapsePanels();
});
break;
- case Settings.Global.ZEN_DURATION_FOREVER:
+ case Settings.Secure.ZEN_DURATION_FOREVER:
mController.setZen(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS, null, TAG);
break;
default:
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 9c5e064fceb1..c87f927b22cc 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -508,8 +508,8 @@ public class ZenModeHelper {
public void setManualZenMode(int zenMode, Uri conditionId, String caller, String reason) {
setManualZenMode(zenMode, conditionId, reason, caller, true /*setRingerMode*/);
- Settings.Global.putInt(mContext.getContentResolver(), Global.SHOW_ZEN_SETTINGS_SUGGESTION,
- 0);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.SHOW_ZEN_SETTINGS_SUGGESTION, 0);
}
private void setManualZenMode(int zenMode, Uri conditionId, String reason, String caller,
@@ -627,8 +627,8 @@ public class ZenModeHelper {
}
if (config.version < ZenModeConfig.XML_VERSION || forRestore) {
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 1);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 1);
// resets zen automatic rules to default
// if all prev auto rules were disabled on update
@@ -639,8 +639,8 @@ public class ZenModeHelper {
}
} else {
// devices not restoring/upgrading already have updated zen settings
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.ZEN_SETTINGS_UPDATED, 1);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.ZEN_SETTINGS_UPDATED, 1);
}
if (DEBUG) Log.d(TAG, reason);
synchronized (mConfig) {
@@ -824,10 +824,10 @@ public class ZenModeHelper {
if (automaticRule.isAutomaticActive()) {
if (zenSeverity(automaticRule.zenMode) > zenSeverity(zen)) {
// automatic rule triggered dnd and user hasn't seen update dnd dialog
- if (Settings.Global.getInt(mContext.getContentResolver(),
- Global.ZEN_SETTINGS_SUGGESTION_VIEWED, 1) == 0) {
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.SHOW_ZEN_SETTINGS_SUGGESTION, 1);
+ if (Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.ZEN_SETTINGS_SUGGESTION_VIEWED, 1) == 0) {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.SHOW_ZEN_SETTINGS_SUGGESTION, 1);
}
zen = automaticRule.zenMode;
}
@@ -1192,18 +1192,18 @@ public class ZenModeHelper {
&& zen != Global.ZEN_MODE_OFF
&& !isWatch
&& Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0;
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0;
if (isWatch) {
Settings.Global.putInt(mContext.getContentResolver(),
- Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 0);
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0);
}
if (showNotification) {
mNotificationManager.notify(TAG, SystemMessage.NOTE_ZEN_UPGRADE,
createZenUpgradeNotification());
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 0);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0);
}
}
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index d44561181aa3..b4dafc964133 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -585,9 +585,9 @@ final class Notifier {
}
/**
- * Called when wireless charging has started so as to provide user feedback (sound and visual).
+ * Called when wireless charging has started - to provide user feedback (sound and visual).
*/
- public void onWirelessChargingStarted(int batteryLevel) {
+ public void onWirelessChargingStarted(int batteryLevel, @UserIdInt int userId) {
if (DEBUG) {
Slog.d(TAG, "onWirelessChargingStarted");
}
@@ -596,13 +596,14 @@ final class Notifier {
Message msg = mHandler.obtainMessage(MSG_WIRELESS_CHARGING_STARTED);
msg.setAsynchronous(true);
msg.arg1 = batteryLevel;
+ msg.arg2 = userId;
mHandler.sendMessage(msg);
}
/**
- * Called when wired charging has started so as to provide user feedback
+ * Called when wired charging has started - to provide user feedback
*/
- public void onWiredChargingStarted() {
+ public void onWiredChargingStarted(@UserIdInt int userId) {
if (DEBUG) {
Slog.d(TAG, "onWiredChargingStarted");
}
@@ -610,6 +611,7 @@ final class Notifier {
mSuspendBlocker.acquire();
Message msg = mHandler.obtainMessage(MSG_WIRED_CHARGING_STARTED);
msg.setAsynchronous(true);
+ msg.arg1 = userId;
mHandler.sendMessage(msg);
}
@@ -748,10 +750,10 @@ final class Notifier {
/**
* Plays the wireless charging sound for both wireless and non-wireless charging
*/
- private void playChargingStartedSound() {
+ private void playChargingStartedSound(@UserIdInt int userId) {
final String soundPath = Settings.Global.getString(mContext.getContentResolver(),
Settings.Global.CHARGING_STARTED_SOUND);
- if (isChargingFeedbackEnabled() && soundPath != null) {
+ if (isChargingFeedbackEnabled(userId) && soundPath != null) {
final Uri soundUri = Uri.parse("file://" + soundPath);
if (soundUri != null) {
final Ringtone sfx = RingtoneManager.getRingtone(mContext, soundUri);
@@ -763,17 +765,17 @@ final class Notifier {
}
}
- private void showWirelessChargingStarted(int batteryLevel) {
- playWirelessChargingVibration();
- playChargingStartedSound();
+ private void showWirelessChargingStarted(int batteryLevel, @UserIdInt int userId) {
+ playWirelessChargingVibration(userId);
+ playChargingStartedSound(userId);
if (mStatusBarManagerInternal != null) {
mStatusBarManagerInternal.showChargingAnimation(batteryLevel);
}
mSuspendBlocker.release();
}
- private void showWiredChargingStarted() {
- playChargingStartedSound();
+ private void showWiredChargingStarted(@UserIdInt int userId) {
+ playChargingStartedSound(userId);
mSuspendBlocker.release();
}
@@ -781,17 +783,17 @@ final class Notifier {
mTrustManager.setDeviceLockedForUser(userId, true /*locked*/);
}
- private void playWirelessChargingVibration() {
- final boolean vibrateEnabled = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.CHARGING_VIBRATION_ENABLED, 0) != 0;
- if (vibrateEnabled && isChargingFeedbackEnabled()) {
+ private void playWirelessChargingVibration(@UserIdInt int userId) {
+ final boolean vibrateEnabled = Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.CHARGING_VIBRATION_ENABLED, 1, userId) != 0;
+ if (vibrateEnabled && isChargingFeedbackEnabled(userId)) {
mVibrator.vibrate(WIRELESS_CHARGING_VIBRATION_EFFECT, VIBRATION_ATTRIBUTES);
}
}
- private boolean isChargingFeedbackEnabled() {
- final boolean enabled = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.CHARGING_SOUNDS_ENABLED, 1) != 0;
+ private boolean isChargingFeedbackEnabled(@UserIdInt int userId) {
+ final boolean enabled = Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.CHARGING_SOUNDS_ENABLED, 1, userId) != 0;
final boolean dndOff = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS)
== Settings.Global.ZEN_MODE_OFF;
@@ -813,7 +815,7 @@ final class Notifier {
sendNextBroadcast();
break;
case MSG_WIRELESS_CHARGING_STARTED:
- showWirelessChargingStarted(msg.arg1);
+ showWirelessChargingStarted(msg.arg1, msg.arg2);
break;
case MSG_SCREEN_BRIGHTNESS_BOOST_CHANGED:
sendBrightnessBoostChangedBroadcast();
@@ -822,7 +824,7 @@ final class Notifier {
lockProfile(msg.arg1);
break;
case MSG_WIRED_CHARGING_STARTED:
- showWiredChargingStarted();
+ showWiredChargingStarted(msg.arg1);
break;
}
}
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 9468dd754619..13800b692eed 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -1705,9 +1705,9 @@ public final class PowerManagerService extends SystemService
if (mBootCompleted) {
if (mIsPowered && !BatteryManager.isPlugWired(oldPlugType)
&& BatteryManager.isPlugWired(mPlugType)) {
- mNotifier.onWiredChargingStarted();
+ mNotifier.onWiredChargingStarted(mForegroundProfile);
} else if (dockedOnWirelessCharger) {
- mNotifier.onWirelessChargingStarted(mBatteryLevel);
+ mNotifier.onWirelessChargingStarted(mBatteryLevel, mForegroundProfile);
}
}
}