ResolverComparator transitivity
Fix a bug where ResolverComparator's results were not consistent for
targets that cross profile boundaries.
Bug: 31640894
Change-Id: Ic6bf9512d2c2eb6f8fb7851e18eb9a347db29755
diff --git a/core/java/com/android/internal/app/ResolverComparator.java b/core/java/com/android/internal/app/ResolverComparator.java
index 03a3a38..4d4c7ce 100644
--- a/core/java/com/android/internal/app/ResolverComparator.java
+++ b/core/java/com/android/internal/app/ResolverComparator.java
@@ -157,7 +157,10 @@
// We want to put the one targeted to another user at the end of the dialog.
if (lhs.targetUserId != UserHandle.USER_CURRENT) {
- return 1;
+ return rhs.targetUserId != UserHandle.USER_CURRENT ? 0 : 1;
+ }
+ if (rhs.targetUserId != UserHandle.USER_CURRENT) {
+ return -1;
}
if (mHttp) {