diff options
author | Winson Chung <winsonc@google.com> | 2013-10-17 11:03:24 -0700 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2014-06-05 23:03:34 -0700 |
commit | 4cb760d60c6f96d6a778cd17c6507562b98388a7 (patch) | |
tree | 7b7e659a22b23352a9a53d7ec6fc389517d59e05 /src | |
parent | 1841966775586ce9e98d14b3843d7d06deb51ab8 (diff) | |
download | android_packages_apps_Trebuchet-4cb760d60c6f96d6a778cd17c6507562b98388a7.tar.gz android_packages_apps_Trebuchet-4cb760d60c6f96d6a778cd17c6507562b98388a7.tar.bz2 android_packages_apps_Trebuchet-4cb760d60c6f96d6a778cd17c6507562b98388a7.zip |
Ensuring that we have a valid name for installed shortcuts. (Bug 11266005)
Change-Id: Idf723ba165522cf259d9fe71533e1d5765512865
Diffstat (limited to 'src')
-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 a9d237a2d..835c472d4 100644 --- a/src/com/android/launcher3/InstallShortcutReceiver.java +++ b/src/com/android/launcher3/InstallShortcutReceiver.java @@ -223,16 +223,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); @@ -318,6 +310,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; } } |