Merge "Ensure CDMA emergency tone/vibration respects ringer mode." into pi-dev
diff --git a/src/com/android/services/telephony/EmergencyTonePlayer.java b/src/com/android/services/telephony/EmergencyTonePlayer.java
index a21489d..8e26349 100644
--- a/src/com/android/services/telephony/EmergencyTonePlayer.java
+++ b/src/com/android/services/telephony/EmergencyTonePlayer.java
@@ -16,6 +16,9 @@
package com.android.services.telephony;
+import static android.media.AudioManager.RINGER_MODE_NORMAL;
+import static android.media.AudioManager.RINGER_MODE_SILENT;
+
import android.content.Context;
import android.media.AudioAttributes;
import android.media.AudioManager;
@@ -81,6 +84,12 @@
}
private void startVibrate() {
+ int ringerMode = mAudioManager.getRingerMode();
+ if (ringerMode == RINGER_MODE_SILENT) {
+ Log.i(this, "startVibrate: skipping vibrate tone due to ringer mode %d", ringerMode);
+ return;
+ }
+
if (!mIsVibrating) {
mVibrator.vibrate(VIBRATE_PATTERN, 0, VIBRATION_ATTRIBUTES);
mIsVibrating = true;
@@ -95,6 +104,12 @@
}
private void startAlert() {
+ int ringerMode = mAudioManager.getRingerMode();
+ if (ringerMode != RINGER_MODE_NORMAL) {
+ Log.i(this, "startAlert: skipping emergency tone due to ringer mode %d", ringerMode);
+ return;
+ }
+
if (mToneGenerator == null) {
mToneGenerator = new ToneGenerator(
AudioManager.STREAM_VOICE_CALL, ALERT_RELATIVE_VOLUME_PERCENT);
@@ -106,8 +121,6 @@
mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
0);
mToneGenerator.startTone(ToneGenerator.TONE_CDMA_EMERGENCY_RINGBACK);
- } else {
- Log.d(this, "An alert is already running.");
}
}