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.");
         }
     }