Merge "Create a new config for attentional haptics OGG resource" into sc-dev
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index ab53b4c..28f18a4 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -3971,6 +3971,9 @@
<!-- URI for in call notification sound -->
<string translatable="false" name="config_inCallNotificationSound">/product/media/audio/ui/InCallNotification.ogg</string>
+ <!-- URI for default ringtone sound file to be used for silent ringer vibration -->
+ <string translatable="false" name="config_defaultRingtoneVibrationSound">/product/media/audio/ui/AttentionalHaptics.ogg</string>
+
<!-- Default number of notifications from the same app before they are automatically grouped by the OS -->
<integer translatable="false" name="config_autoGroupAtCount">4</integer>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 552898b..ef5cfe3 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3236,6 +3236,8 @@
<public name="config_systemCompanionDeviceProvider"/>
<!-- @hide @SystemApi -->
<public name="config_systemUi" />
+ <!-- @hide For use by platform and tools only. Developers should not specify this value. -->
+ <public name="config_defaultRingtoneVibrationSound"/>
</staging-public-group>
<staging-public-group type="id" first-id="0x01020055">
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java
index 79d505e..f8297bc 100644
--- a/media/java/android/media/Ringtone.java
+++ b/media/java/android/media/Ringtone.java
@@ -405,9 +405,11 @@
*/
public void play() {
if (mLocalPlayer != null) {
- // do not play ringtones if stream volume is 0
- // (typically because ringer mode is silent).
- if (mAudioManager.getStreamVolume(
+ // Play ringtones if stream volume is over 0 or if it is a haptic-only ringtone
+ // (typically because ringer mode is vibrate).
+ boolean isHapticOnly = AudioManager.hasHapticChannels(mUri)
+ && !mAudioAttributes.areHapticChannelsMuted() && mVolume == 0;
+ if (isHapticOnly || mAudioManager.getStreamVolume(
AudioAttributes.toLegacyStreamType(mAudioAttributes)) != 0) {
startLocalPlayer();
}