From 2366ff12a2f251e33412a6e65e4f5642c3a7d59c Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Fri, 23 Sep 2016 10:32:04 -0700 Subject: [PATCH] ResolverComparator transitivity Fix a bug where ResolverComparator's results were not consistent for targets that cross profile boundaries. Bug: 31640894 Change-Id: Ic6bf9512d2c2eb6f8fb7851e18eb9a347db29755 --- core/java/com/android/internal/app/ResolverComparator.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/ResolverComparator.java b/core/java/com/android/internal/app/ResolverComparator.java index 03a3a3821f6a9..4d4c7ceb16550 100644 --- a/core/java/com/android/internal/app/ResolverComparator.java +++ b/core/java/com/android/internal/app/ResolverComparator.java @@ -157,7 +157,10 @@ class ResolverComparator implements Comparator { // 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) {