diff options
author | Winson Chung <winsonc@google.com> | 2012-05-07 11:17:22 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-05-07 11:17:22 -0700 |
commit | 06ade3db26c3e9fbacf2fa3c4ffc3b2440c7e971 (patch) | |
tree | 0e30a5374ba613f9f1b372f138bf317e5aaed394 | |
parent | 369c0c7f6ed8bd5714897f4c30333a6266d6e735 (diff) | |
parent | be365165ed00205265c1876c4829fa9ac630da2a (diff) | |
download | android_packages_apps_Trebuchet-06ade3db26c3e9fbacf2fa3c4ffc3b2440c7e971.tar.gz android_packages_apps_Trebuchet-06ade3db26c3e9fbacf2fa3c4ffc3b2440c7e971.tar.bz2 android_packages_apps_Trebuchet-06ade3db26c3e9fbacf2fa3c4ffc3b2440c7e971.zip |
am be365165: Try and resolve the package name from the intent directly falling back to the resolved component name if it fails. (Bug 6452306)
* commit 'be365165ed00205265c1876c4829fa9ac630da2a':
Try and resolve the package name from the intent directly falling back to the resolved component name if it fails. (Bug 6452306)
-rw-r--r-- | src/com/android/launcher2/ApplicationInfo.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher2/DragController.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher2/ItemInfo.java | 22 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/ShortcutInfo.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 3 |
6 files changed, 36 insertions, 7 deletions
diff --git a/src/com/android/launcher2/ApplicationInfo.java b/src/com/android/launcher2/ApplicationInfo.java index 1fc1d1f55..281d59c68 100644 --- a/src/com/android/launcher2/ApplicationInfo.java +++ b/src/com/android/launcher2/ApplicationInfo.java @@ -102,6 +102,12 @@ class ApplicationInfo extends ItemInfo { firstInstallTime = info.firstInstallTime; } + /** Returns the package name that the shortcut's intent will resolve to, or an empty string if + * none exists. */ + String getPackageName() { + return super.getPackageName(intent); + } + /** * Creates the application intent based on a component name and various launch flags. * Sets {@link #itemType} to {@link LauncherSettings.BaseLauncherColumns#ITEM_TYPE_APPLICATION}. diff --git a/src/com/android/launcher2/DragController.java b/src/com/android/launcher2/DragController.java index 9b617552e..b4b20c69f 100644 --- a/src/com/android/launcher2/DragController.java +++ b/src/com/android/launcher2/DragController.java @@ -381,8 +381,8 @@ public class DragController { if (dragInfo != null && dragInfo.intent != null && info.intent != null) { - boolean isSamePackage = info.intent.getComponent().getPackageName().equals( - dragInfo.intent.getComponent().getPackageName()); + boolean isSamePackage = dragInfo.getPackageName().equals( + info.getPackageName()); if (isSamePackage) { cancelDrag(); return; diff --git a/src/com/android/launcher2/ItemInfo.java b/src/com/android/launcher2/ItemInfo.java index 11a6c0d00..d34b87e39 100644 --- a/src/com/android/launcher2/ItemInfo.java +++ b/src/com/android/launcher2/ItemInfo.java @@ -16,13 +16,14 @@ package com.android.launcher2; -import java.io.ByteArrayOutputStream; -import java.io.IOException; - import android.content.ContentValues; +import android.content.Intent; import android.graphics.Bitmap; import android.util.Log; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + /** * Represents an item in the launcher. */ @@ -109,6 +110,21 @@ class ItemInfo { container = info.container; } + /** Returns the package name that the intent will resolve to, or an empty string if + * none exists. */ + static String getPackageName(Intent intent) { + if (intent != null) { + String packageName = intent.getPackage(); + if (packageName == null) { + packageName = intent.getComponent().getPackageName(); + } + if (packageName != null) { + return packageName; + } + } + return ""; + } + /** * Write the fields of this item to the DB * diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index bae4c56fc..97e52fe31 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -1684,7 +1684,7 @@ public class LauncherModel extends BroadcastReceiver { for (ItemInfo i : sWorkspaceItems) { if (i instanceof ShortcutInfo) { ShortcutInfo info = (ShortcutInfo) i; - if (info.intent.getComponent().getPackageName().equals(packageName)) { + if (packageName.equals(info.getPackageName())) { infos.add(info); } } diff --git a/src/com/android/launcher2/ShortcutInfo.java b/src/com/android/launcher2/ShortcutInfo.java index 76892dbde..533059f57 100644 --- a/src/com/android/launcher2/ShortcutInfo.java +++ b/src/com/android/launcher2/ShortcutInfo.java @@ -98,6 +98,12 @@ class ShortcutInfo extends ItemInfo { return mIcon; } + /** Returns the package name that the shortcut's intent will resolve to, or an empty string if + * none exists. */ + String getPackageName() { + return super.getPackageName(intent); + } + public void updateIcon(IconCache iconCache) { mIcon = iconCache.getIcon(intent); usingFallbackIcon = iconCache.isDefaultIcon(mIcon); diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 2ae4ff650..f0d339557 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -3624,7 +3624,8 @@ public class Workspace extends SmoothPagedView for (String intentStr : newApps) { try { Intent intent = Intent.parseUri(intentStr, 0); - if (packageNames.contains(intent.getComponent().getPackageName())) { + String pn = ItemInfo.getPackageName(intent); + if (packageNames.contains(pn)) { newApps.remove(intentStr); } } catch (URISyntaxException e) {} |