Merge "Avoid duplicate ringtone load" into tm-qpr-dev am: 40da40a9cb
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telecomm/+/19867639
Change-Id: I8e5e539c7c4940c9d16cdf24dfc592df9cbf7b21
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/server/telecom/RingtoneFactory.java b/src/com/android/server/telecom/RingtoneFactory.java
index b1846fe..5c46998 100644
--- a/src/com/android/server/telecom/RingtoneFactory.java
+++ b/src/com/android/server/telecom/RingtoneFactory.java
@@ -73,11 +73,13 @@
Uri ringtoneUri = incomingCall.getRingtone();
Ringtone ringtone = null;
+ AudioAttributes audioAttrs = getRingtoneAudioAttributes();
+
if(ringtoneUri != null && userContext != null) {
// Ringtone URI is explicitly specified. First, try to create a Ringtone with that.
try {
- ringtone = RingtoneManager.getRingtone(userContext, ringtoneUri,
- volumeShaperConfig);
+ ringtone = RingtoneManager.getRingtone(
+ userContext, ringtoneUri, volumeShaperConfig, audioAttrs);
} catch (NullPointerException npe) {
Log.e(this, npe, "getRingtone: NPE while getting ringtone.");
}
@@ -104,12 +106,19 @@
}
try {
ringtone = RingtoneManager.getRingtone(
- contextToUse, defaultRingtoneUri, volumeShaperConfig);
+ contextToUse, defaultRingtoneUri, volumeShaperConfig, audioAttrs);
} catch (NullPointerException npe) {
Log.e(this, npe, "getRingtone: NPE while getting ringtone.");
}
}
- return setRingtoneAudioAttributes(ringtone);
+ return ringtone;
+ }
+
+ public AudioAttributes getRingtoneAudioAttributes() {
+ return new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+ .build();
}
public Ringtone getRingtone(Call incomingCall) {
@@ -121,21 +130,12 @@
public Ringtone getHapticOnlyRingtone() {
Uri ringtoneUri = Uri.parse("file://" + mContext.getString(
com.android.internal.R.string.config_defaultRingtoneVibrationSound));
- Ringtone ringtone = RingtoneManager.getRingtone(mContext, ringtoneUri, null);
+ AudioAttributes audioAttrs = getRingtoneAudioAttributes();
+ Ringtone ringtone = RingtoneManager.getRingtone(mContext, ringtoneUri, null, audioAttrs);
if (ringtone != null) {
// Make sure the sound is muted.
ringtone.setVolume(0);
}
- return setRingtoneAudioAttributes(ringtone);
- }
-
- private Ringtone setRingtoneAudioAttributes(Ringtone ringtone) {
- if (ringtone != null) {
- ringtone.setAudioAttributes(new AudioAttributes.Builder()
- .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
- .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
- .build());
- }
return ringtone;
}