summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Powell <adamp@google.com> 2015-06-25 00:08:52 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2015-06-25 00:08:54 +0000
commit91feb107f2c7b51bf3cbdef43bea2fb61b56a8ee (patch)
tree42f51822c6b2edf69ef1c977ccd36b9e09351ba2
parent93666e8691c9b41855add5c1c92bfc9e0912764e (diff)
parentc412be6824900d5e9d6f44fa9aa3015f0d5b517b (diff)
Merge "Fix ChooserActivity check for still-alive ChooserTargets" into mnc-dev
-rw-r--r--core/java/com/android/internal/app/ResolverActivity.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index fe3ab9e49743..e5ff51c4822b 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -74,6 +74,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
@@ -867,6 +868,16 @@ public class ResolverActivity extends Activity {
}
}
+ /**
+ * Check a simple match for the component of two ResolveInfos.
+ */
+ static boolean resolveInfoMatch(ResolveInfo lhs, ResolveInfo rhs) {
+ return lhs == null ? rhs == null
+ : lhs.activityInfo == null ? rhs.activityInfo == null
+ : Objects.equals(lhs.activityInfo.name, rhs.activityInfo.name)
+ && Objects.equals(lhs.activityInfo.packageName, rhs.activityInfo.packageName);
+ }
+
final class DisplayResolveInfo implements TargetInfo {
private final ResolveInfo mResolveInfo;
private final CharSequence mDisplayLabel;
@@ -1462,7 +1473,7 @@ public class ResolverActivity extends Activity {
public boolean hasResolvedTarget(ResolveInfo info) {
for (int i = 0, N = mDisplayList.size(); i < N; i++) {
- if (info.equals(mDisplayList.get(i).getResolveInfo())) {
+ if (resolveInfoMatch(info, mDisplayList.get(i).getResolveInfo())) {
return true;
}
}