InCallUI: Show emergency call number

- Show emergency call number when calling.

(cherry-picked from commit 6626a1eeac5a60b3074cc1ff70ae9691d9d133f8)

Change-Id: I6d895b8e40ae56974a1697079cc418f3ca10dc7d
CRs-Fixed: 1020091
diff --git a/InCallUI/res/layout/primary_call_info.xml b/InCallUI/res/layout/primary_call_info.xml
index 33007bc..e9c718a 100644
--- a/InCallUI/res/layout/primary_call_info.xml
+++ b/InCallUI/res/layout/primary_call_info.xml
@@ -121,7 +121,7 @@
             android:textAlignment="viewStart"
             android:textAppearance="?android:attr/textAppearanceLarge"
             android:textSize="@dimen/call_name_text_size"
-            android:singleLine="true"
+            android:singleLine="false"
             ex:resizing_text_min_size="@dimen/call_name_text_min_size" />
 
         <!-- Contact photo for primary call info -->
diff --git a/InCallUI/res/values/qtistrings.xml b/InCallUI/res/values/qtistrings.xml
index b540b65..e4ed18f 100644
--- a/InCallUI/res/values/qtistrings.xml
+++ b/InCallUI/res/values/qtistrings.xml
@@ -31,6 +31,8 @@
 
 <!-- The xml contains Qti specific resource strings neede for any value added features. -->
 <resources>
+    <!-- Dtermine whether emergency calls should be marked. -->
+    <bool name="mark_emergency_call">true</bool>
     <!-- Call substate label -->
     <string name="call_substate_label"> Call substate - \u000a</string>
     <!-- Call substate label for call resumed -->
diff --git a/InCallUI/src/com/android/incallui/CallerInfo.java b/InCallUI/src/com/android/incallui/CallerInfo.java
index f270678..db1b864 100644
--- a/InCallUI/src/com/android/incallui/CallerInfo.java
+++ b/InCallUI/src/com/android/incallui/CallerInfo.java
@@ -402,6 +402,16 @@
         return this;
     }
 
+    /* package */ CallerInfo markAsEmergency(Context context, String number) {
+        number = PhoneNumberUtils.normalizeNumber(number);
+        name = context.getString(R.string.emergency_call_dialog_number_for_display) + " "
+                + number;
+        phoneNumber = null;
+
+        photoResource = R.drawable.img_phone;
+        mIsEmergency = true;
+        return this;
+    }
 
     /**
      * Mark this CallerInfo as a voicemail call. The voicemail label
diff --git a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
index f7f0cbb..f133b62 100644
--- a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
+++ b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
@@ -261,7 +261,14 @@
                     if (cw.event == EVENT_EMERGENCY_NUMBER) {
                         // Note we're setting the phone number here (refer to javadoc
                         // comments at the top of CallerInfo class).
-                        mCallerInfo = new CallerInfo().markAsEmergency(mQueryContext);
+                        if (mQueryContext.getResources().getBoolean(R.bool.mark_emergency_call)) {
+                            Log.d(this, "Emergency Number and Mark Emergency Number enabled");
+                            mCallerInfo = new CallerInfo().markAsEmergency(mQueryContext,
+                                    cw.number);
+                        } else {
+                            Log.d(this, "Emergency Number and Mark Emergency Number disabled");
+                            mCallerInfo = new CallerInfo().markAsEmergency(mQueryContext);
+                        }
                     } else if (cw.event == EVENT_VOICEMAIL_NUMBER) {
                         mCallerInfo = new CallerInfo().markAsVoiceMail(mQueryContext);
                     } else {