Merge changes from topic "vibrate-setting" into sc-v2-dev-plus-aosp
* changes:
[automerge] Add setting for showing the vibrate icon in status bar 2p: 16148d2c8c
Add setting for showing the vibrate icon in status bar
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 21d52b5..25b93fe 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8507,6 +8507,9 @@
<!-- Sound: Other sounds: Title for the option enabling touch sounds. [CHAR LIMIT=30] -->
<string name="touch_sounds_title">Touch sounds</string>
+ <!-- Sound: Other sounds: Title for the option enabling the vibrate icon. [CHAR LIMIT=50] -->
+ <string name="vibrate_icon_title">Always show icon when in vibrate mode</string>
+
<!-- Sound: Other sounds: Title for the option enabling haptic feedback on touch. [CHAR LIMIT=30] -->
<string name="vibrate_on_touch_title">Touch vibration</string>
diff --git a/res/xml/other_sound_settings.xml b/res/xml/other_sound_settings.xml
index 7b3f362..35444b3 100644
--- a/res/xml/other_sound_settings.xml
+++ b/res/xml/other_sound_settings.xml
@@ -44,6 +44,11 @@
android:key="touch_sounds"
android:title="@string/touch_sounds_title" />
+ <!-- Vibrate icon in status bar -->
+ <SwitchPreference
+ android:key="vibrate_icon"
+ android:title="@string/vibrate_icon_title" />
+
<!-- Vibrate on touch -->
<SwitchPreference
android:key="vibrate_on_touch"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index e30f139..a447bf7 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -191,6 +191,12 @@
android:title="@string/touch_sounds_title"
android:order="-30"/>
+ <!-- Show vibrate icon in status bar -->
+ <SwitchPreference
+ android:key="vibrate_icon"
+ android:title="@string/vibrate_icon_title"
+ android:order="-27"/>
+
<!-- Vibrate on touch -->
<SwitchPreference
android:key="vibrate_on_touch"
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 85623b8..20081b3 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -264,12 +264,15 @@
new BootSoundPreferenceController(context);
final EmergencyTonePreferenceController emergencyTonePreferenceController =
new EmergencyTonePreferenceController(context, fragment, lifecycle);
+ final VibrateIconPreferenceController vibrateIconPreferenceController =
+ new VibrateIconPreferenceController(context, fragment, lifecycle);
controllers.add(dialPadTonePreferenceController);
controllers.add(screenLockSoundPreferenceController);
controllers.add(chargingSoundPreferenceController);
controllers.add(dockingSoundPreferenceController);
controllers.add(touchSoundPreferenceController);
+ controllers.add(vibrateIconPreferenceController);
controllers.add(vibrateOnTouchPreferenceController);
controllers.add(dockAudioMediaPreferenceController);
controllers.add(bootSoundPreferenceController);
@@ -281,6 +284,7 @@
chargingSoundPreferenceController,
dockingSoundPreferenceController,
touchSoundPreferenceController,
+ vibrateIconPreferenceController,
vibrateOnTouchPreferenceController,
dockAudioMediaPreferenceController,
bootSoundPreferenceController,
diff --git a/src/com/android/settings/notification/VibrateIconPreferenceController.java b/src/com/android/settings/notification/VibrateIconPreferenceController.java
new file mode 100644
index 0000000..25d2326
--- /dev/null
+++ b/src/com/android/settings/notification/VibrateIconPreferenceController.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static com.android.settings.notification.SettingPref.TYPE_SECURE;
+
+import android.content.Context;
+import android.provider.Settings.Secure;
+
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+public class VibrateIconPreferenceController extends SettingPrefController {
+
+ private static final String KEY_VIBRATE_ICON = "vibrate_icon";
+
+ public VibrateIconPreferenceController(Context context, SettingsPreferenceFragment parent,
+ Lifecycle lifecycle) {
+ super(context, parent, lifecycle);
+ mPreference = new SettingPref(
+ TYPE_SECURE, KEY_VIBRATE_ICON, Secure.STATUS_BAR_SHOW_VIBRATE_ICON, 0 /*default off*/);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+}