Merge cherrypicks of [4691111, 4689862, 4690575, 4690576, 4690577, 4690578, 4689866, 4689868, 4689869, 4689870, 4691132, 4689456, 4689963, 4691133, 4691134, 4691156, 4691157, 4691159, 4691161, 4690581, 4689964, 4689460, 4691112, 4690582, 4690583, 4691165, 4691166, 4691167, 4691168, 4691169, 4691170, 4691211, 4691212, 4691213, 4691214, 4691215, 4691216, 4691217, 4691218, 4691219, 4691232, 4691233, 4691234, 4691235, 4691236, 4691237, 4691238, 4691239, 4691240, 4691241, 4691243, 4691245, 4691247, 4691249, 4691250, 4691291, 4691292, 4691293, 4691294, 4691295, 4691296, 4691255, 4689476, 4689477, 4689478, 4691223, 4691224, 4691136, 4689479, 4689480, 4691137, 4691225, 4691226, 4691227, 4691371, 4691228, 4691328, 4689967, 4691138, 4691139, 4691140, 4691433, 4689968, 4689969, 4691395, 4691230, 4691297, 4691298, 4691299, 4691300, 4691396, 4691397, 4691398, 4691399, 4691400, 4691401, 4691402, 4691403, 4691404, 4691405, 4691406, 4691407, 4691408, 4691409, 4691410, 4691471, 4691472, 4691473, 4691474, 4691475, 4691476, 4691477, 4691478, 4691479, 4691480, 4691481, 4691482, 4691483, 4691484, 4691485, 4691486, 4691487, 4691488, 4691143, 4691144, 4691511, 4691113, 4689482, 4691533, 4691145, 4691146, 4691147, 4691148, 4691536] into sparse-4732991-L01200000196794104

Change-Id: I9e299de793197eec9a8054005267c098aaa44d75
diff --git a/src/com/android/packageinstaller/UninstallerActivity.java b/src/com/android/packageinstaller/UninstallerActivity.java
index dbd7ac3..142e95e 100755
--- a/src/com/android/packageinstaller/UninstallerActivity.java
+++ b/src/com/android/packageinstaller/UninstallerActivity.java
@@ -229,7 +229,7 @@
 
     public void startUninstallProgress() {
         boolean returnResult = getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false);
-        CharSequence label = mDialogInfo.appInfo.loadLabel(getPackageManager());
+        CharSequence label = mDialogInfo.appInfo.loadSafeLabel(getPackageManager());
 
         if (isTv()) {
             Intent newIntent = new Intent(Intent.ACTION_VIEW);
diff --git a/src/com/android/packageinstaller/handheld/UninstallAlertDialogFragment.java b/src/com/android/packageinstaller/handheld/UninstallAlertDialogFragment.java
index 417b75a..b50960e 100644
--- a/src/com/android/packageinstaller/handheld/UninstallAlertDialogFragment.java
+++ b/src/com/android/packageinstaller/handheld/UninstallAlertDialogFragment.java
@@ -37,15 +37,14 @@
         final PackageManager pm = getActivity().getPackageManager();
         final UninstallerActivity.DialogInfo dialogInfo =
                 ((UninstallerActivity) getActivity()).getDialogInfo();
-        final CharSequence appLabel = dialogInfo.appInfo.loadLabel(pm);
-
+        final CharSequence appLabel = dialogInfo.appInfo.loadSafeLabel(pm);
         AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
         StringBuilder messageBuilder = new StringBuilder();
 
         // If the Activity label differs from the App label, then make sure the user
         // knows the Activity belongs to the App being uninstalled.
         if (dialogInfo.activityInfo != null) {
-            final CharSequence activityLabel = dialogInfo.activityInfo.loadLabel(pm);
+            final CharSequence activityLabel = dialogInfo.activityInfo.loadSafeLabel(pm);
             if (!activityLabel.equals(appLabel)) {
                 messageBuilder.append(
                         getString(R.string.uninstall_activity_text, activityLabel));
diff --git a/src/com/android/packageinstaller/television/UninstallAlertFragment.java b/src/com/android/packageinstaller/television/UninstallAlertFragment.java
index c128174..138a5c3 100644
--- a/src/com/android/packageinstaller/television/UninstallAlertFragment.java
+++ b/src/com/android/packageinstaller/television/UninstallAlertFragment.java
@@ -42,14 +42,14 @@
         final PackageManager pm = getActivity().getPackageManager();
         final UninstallerActivity.DialogInfo dialogInfo =
                 ((UninstallerActivity) getActivity()).getDialogInfo();
-        final CharSequence appLabel = dialogInfo.appInfo.loadLabel(pm);
+        final CharSequence appLabel = dialogInfo.appInfo.loadSafeLabel(pm);
 
         StringBuilder messageBuilder = new StringBuilder();
 
         // If the Activity label differs from the App label, then make sure the user
         // knows the Activity belongs to the App being uninstalled.
         if (dialogInfo.activityInfo != null) {
-            final CharSequence activityLabel = dialogInfo.activityInfo.loadLabel(pm);
+            final CharSequence activityLabel = dialogInfo.activityInfo.loadSafeLabel(pm);
             if (!activityLabel.equals(appLabel)) {
                 messageBuilder.append(
                         getString(R.string.uninstall_activity_text, activityLabel));