Unmute emergency calls when they connect.

Also, never allow muting of an emergency call.

bug:10750253
Change-Id: If67375a6e8776971e2ddace3e7fb11794d9e5283
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index c3abd9f..4b67db9 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -727,6 +727,12 @@
                 info.phoneNumber = number;
                 connection.setUserData(info);
             }
+
+            // Always set mute to off when we are dialing an emergency number
+            if (isEmergencyCall) {
+                setMute(false);
+            }
+
             setAudioMode();
 
             if (DBG) log("about to activate speaker");
@@ -1935,6 +1941,11 @@
     static void setMute(boolean muted) {
         CallManager cm = PhoneGlobals.getInstance().mCM;
 
+        // Emergency calls never get muted.
+        if (isInEmergencyCall(cm)) {
+            muted = false;
+        }
+
         // make the call to mute the audio
         setMuteInternal(cm.getFgPhone(), muted);
 
@@ -1948,6 +1959,16 @@
         }
     }
 
+    static boolean isInEmergencyCall(CallManager cm) {
+        for (Connection cn : cm.getActiveFgCall().getConnections()) {
+            if (PhoneNumberUtils.isLocalEmergencyNumber(cn.getAddress(),
+                    PhoneGlobals.getInstance())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     /**
      * Internally used muting function.
      */