diff options
author | Winson Chung <winsonc@google.com> | 2013-10-17 11:03:24 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2013-10-17 11:04:00 -0700 |
commit | 2c1afde5cd60eb13f05aeae0c170e697493ef307 (patch) | |
tree | e2e2783a77d940658302f01f8e3df3110f580abe /src/com/android/launcher3/InstallShortcutReceiver.java | |
parent | 51b9f6a5707047f9fe67e25256deecc9348dd35a (diff) | |
download | android_packages_apps_Trebuchet-2c1afde5cd60eb13f05aeae0c170e697493ef307.tar.gz android_packages_apps_Trebuchet-2c1afde5cd60eb13f05aeae0c170e697493ef307.tar.bz2 android_packages_apps_Trebuchet-2c1afde5cd60eb13f05aeae0c170e697493ef307.zip |
Ensuring that we have a valid name for installed shortcuts. (Bug 11266005)
Change-Id: Idf723ba165522cf259d9fe71533e1d5765512865
Diffstat (limited to 'src/com/android/launcher3/InstallShortcutReceiver.java')
-rw-r--r-- | src/com/android/launcher3/InstallShortcutReceiver.java | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/com/android/launcher3/InstallShortcutReceiver.java b/src/com/android/launcher3/InstallShortcutReceiver.java index 821c15f52..5ae6c3414 100644 --- a/src/com/android/launcher3/InstallShortcutReceiver.java +++ b/src/com/android/launcher3/InstallShortcutReceiver.java @@ -209,16 +209,8 @@ public class InstallShortcutReceiver extends BroadcastReceiver { } // This name is only used for comparisons and notifications, so fall back to activity name // if not supplied - String name = data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME); - if (name == null) { - try { - PackageManager pm = context.getPackageManager(); - ActivityInfo info = pm.getActivityInfo(intent.getComponent(), 0); - name = info.loadLabel(pm).toString(); - } catch (PackageManager.NameNotFoundException nnfe) { - return; - } - } + String name = ensureValidName(context, intent, + data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)).toString(); Bitmap icon = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON); Intent.ShortcutIconResource iconResource = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE); @@ -304,6 +296,25 @@ public class InstallShortcutReceiver extends BroadcastReceiver { Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); } LauncherAppState app = LauncherAppState.getInstance(); - return app.getModel().infoFromShortcutIntent(context, data, null); + ShortcutInfo info = app.getModel().infoFromShortcutIntent(context, data, null); + info.title = ensureValidName(context, launchIntent, info.title); + return info; + } + + /** + * Ensures that we have a valid, non-null name. If the provided name is null, we will return + * the application name instead. + */ + private static CharSequence ensureValidName(Context context, Intent intent, CharSequence name) { + if (name == null) { + try { + PackageManager pm = context.getPackageManager(); + ActivityInfo info = pm.getActivityInfo(intent.getComponent(), 0); + name = info.loadLabel(pm).toString(); + } catch (PackageManager.NameNotFoundException nnfe) { + return ""; + } + } + return name; } } |