Merge "Fix misleading phrasing of notification message for crashed phone apps and show phone app name in notification."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a0a518f..2990c42 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -73,8 +73,8 @@
     <string name="notification_crashedInCallService_title">Crashed phone app</string>
     <!-- Body of the notification presented when an in call service crashed. [CHAR LIMIT=NONE] -->
     <string name="notification_crashedInCallService_body">
-        Your Phone app <xliff:g id="in_call_service_app_name">%s</xliff:g> has crashed.
-        You call was continued using the Phone app that came with your device.
+        Your phone app <xliff:g id="in_call_service_app_name">%s</xliff:g> has crashed.
+        You call was continued using the phone app that came with your device.
     </string>
 
     <!-- Content description of the call muted notification icon for
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index 6a9771a..171bdf3 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -24,6 +24,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
@@ -1804,6 +1805,17 @@
     }
 
     private void sendCrashedInCallServiceNotification(String packageName) {
+        PackageManager packageManager = mContext.getPackageManager();
+        CharSequence appName;
+        try {
+            appName = packageManager.getApplicationLabel(
+                    packageManager.getApplicationInfo(packageName, 0));
+            if (TextUtils.isEmpty(appName)) {
+                appName = packageName;
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            appName = packageName;
+        }
         NotificationManager notificationManager = (NotificationManager) mContext
                 .getSystemService(Context.NOTIFICATION_SERVICE);
         Notification.Builder builder = new Notification.Builder(mContext,
@@ -1816,7 +1828,7 @@
                 .setStyle(new Notification.BigTextStyle()
                         .bigText(mContext.getString(
                                 R.string.notification_crashedInCallService_body,
-                                packageName)));
+                                appName)));
         notificationManager.notify(NOTIFICATION_TAG, IN_CALL_SERVICE_NOTIFICATION_ID,
                 builder.build());
     }