From ed587d406d0fbd985faa924d67dd2daeb341f20e Mon Sep 17 00:00:00 2001 From: yumeichen Date: Mon, 26 Aug 2024 10:46:51 +0000 Subject: Add an extra condition to check whether it is the default notification uri There is a valid case that the default notification uri with `vibration_uri` as the parameter like: ``` content://settings/system/notification_sound?vibration_uri=file%3A%2Fproduct%252Fmedia%252Fvibration%2Fnotification%2FRumble.xml ``` This CL is to enable this case. Flag: android.media.audio.enable_ringtone_haptics_customization Bug: 351975435 Test: atest RingtoneManagerTest Change-Id: If14de08c6e3c84167df19a8adfc06892f2b5667d --- media/java/android/media/RingtoneManager.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index f0ab6ecc5cda..0f24654879cd 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -1089,7 +1089,24 @@ public class RingtoneManager { defaultRingtoneUri = ContentProvider.getUriWithoutUserId(defaultRingtoneUri); if (defaultRingtoneUri == null) { return -1; - } else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)) { + } + + if (Flags.enableRingtoneHapticsCustomization() + && Utils.hasVibration(defaultRingtoneUri)) { + // skip to check TYPE_ALARM because the customized haptic hasn't enabled in alarm + if (defaultRingtoneUri.toString() + .contains(Settings.System.DEFAULT_RINGTONE_URI.toString())) { + return TYPE_RINGTONE; + } else if (defaultRingtoneUri.toString() + .contains(Settings.System.DEFAULT_NOTIFICATION_URI.toString())) { + return TYPE_NOTIFICATION; + } else if (defaultRingtoneUri.toString() + .contains(Settings.System.DEFAULT_ALARM_ALERT_URI.toString())) { + return TYPE_ALARM; + } + } + + if (defaultRingtoneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)) { return TYPE_RINGTONE; } else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_NOTIFICATION_URI)) { return TYPE_NOTIFICATION; -- cgit v1.2.3-59-g8ed1b