summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-05-16 11:57:45 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-05-16 19:43:18 +0000
commit0d86a8dccf6557587eb3abae1bb3573e2c40c12c (patch)
treebd7dae4a11e16c4df87ba5abef464f83330b0458
parentd797327b79c5ded53f698201af5abb7d779ddfa9 (diff)
downloadandroid_packages_apps_Trebuchet-0d86a8dccf6557587eb3abae1bb3573e2c40c12c.tar.gz
android_packages_apps_Trebuchet-0d86a8dccf6557587eb3abae1bb3573e2c40c12c.tar.bz2
android_packages_apps_Trebuchet-0d86a8dccf6557587eb3abae1bb3573e2c40c12c.zip
On some "non-standard" devices, load label can cause a security exception
due to modified platform code Bug: 28243147 Change-Id: Iab899d0cb233e19ebf994f8a3eacba26f840148f
-rw-r--r--src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java8
-rw-r--r--src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java10
2 files changed, 16 insertions, 2 deletions
diff --git a/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java b/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java
index fee0376bd..15c5e69dd 100644
--- a/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java
+++ b/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java
@@ -26,6 +26,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
+import android.util.Log;
public class LauncherActivityInfoCompatV16 extends LauncherActivityInfoCompat {
@@ -51,7 +52,12 @@ public class LauncherActivityInfoCompatV16 extends LauncherActivityInfoCompat {
}
public CharSequence getLabel() {
- return mResolveInfo.loadLabel(mPm);
+ try {
+ return mResolveInfo.loadLabel(mPm);
+ } catch (SecurityException e) {
+ Log.e("LAInfoCompat", "Failed to extract app display name from resolve info", e);
+ return "";
+ }
}
public Drawable getIcon(int density) {
diff --git a/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java b/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java
index b99056023..2e4167e12 100644
--- a/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java
+++ b/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java
@@ -4,6 +4,8 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.util.Log;
+
import com.android.launcher3.LauncherAppWidgetProviderInfo;
import com.android.launcher3.Utilities;
import com.android.launcher3.compat.AppWidgetManagerCompat;
@@ -91,7 +93,13 @@ public class WidgetsAndShortcutNameComparator implements Comparator<Object> {
return Utilities.trim(mManager.loadLabel(widgetInfo));
} else {
ResolveInfo shortcutInfo = (ResolveInfo) o;
- return Utilities.trim(shortcutInfo.loadLabel(mPackageManager));
+ try {
+ return Utilities.trim(shortcutInfo.loadLabel(mPackageManager));
+ } catch (Exception e) {
+ Log.e("ShortcutNameComparator",
+ "Failed to extract app display name from resolve info", e);
+ return "";
+ }
}
}
};