summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2012-05-07 10:34:12 -0700
committerWinson Chung <winsonc@google.com>2012-05-07 11:11:52 -0700
commitbe365165ed00205265c1876c4829fa9ac630da2a (patch)
tree0206c9f408de7e2f5760d6210f00761dfc1e040c /src/com
parent96b8a056f81720e632d07e3467f1528e834f746e (diff)
downloadandroid_packages_apps_Trebuchet-be365165ed00205265c1876c4829fa9ac630da2a.tar.gz
android_packages_apps_Trebuchet-be365165ed00205265c1876c4829fa9ac630da2a.tar.bz2
android_packages_apps_Trebuchet-be365165ed00205265c1876c4829fa9ac630da2a.zip
Try and resolve the package name from the intent directly falling back to the resolved component name if it fails. (Bug 6452306)
Change-Id: Ifb2187fb845f807f30df966bf298ffde1b779b46
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher2/ApplicationInfo.java6
-rw-r--r--src/com/android/launcher2/DragController.java4
-rw-r--r--src/com/android/launcher2/ItemInfo.java22
-rw-r--r--src/com/android/launcher2/LauncherModel.java2
-rw-r--r--src/com/android/launcher2/ShortcutInfo.java6
-rw-r--r--src/com/android/launcher2/Workspace.java3
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 3c84805dd..5e45c99d8 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -3622,7 +3622,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) {}