From 876a36604395b96303df74668dd73138ae8c825e Mon Sep 17 00:00:00 2001 From: Daniel Olusakin Date: Wed, 8 Sep 2021 17:15:20 +0000 Subject: [PATCH] Add resolved label to identifier when grouping targets for the alphabetical list Change-Id: I168bd6f69660d401c98c50d450ab2155d3814a8e --- .../com/android/internal/app/ChooserListAdapter.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/java/com/android/internal/app/ChooserListAdapter.java b/core/java/com/android/internal/app/ChooserListAdapter.java index 07c4050531375..140fabc4f2687 100644 --- a/core/java/com/android/internal/app/ChooserListAdapter.java +++ b/core/java/com/android/internal/app/ChooserListAdapter.java @@ -299,18 +299,19 @@ public class ChooserListAdapter extends ResolverListAdapter { // Consolidate multiple targets from same app. Map consolidated = new HashMap<>(); for (DisplayResolveInfo info : allTargets) { - String packageName = info.getResolvedComponentName().getPackageName(); - DisplayResolveInfo multiDri = consolidated.get(packageName); + String resolvedTarget = info.getResolvedComponentName().getPackageName() + + '#' + info.getDisplayLabel(); + DisplayResolveInfo multiDri = consolidated.get(resolvedTarget); if (multiDri == null) { - consolidated.put(packageName, info); + consolidated.put(resolvedTarget, info); } else if (multiDri instanceof MultiDisplayResolveInfo) { ((MultiDisplayResolveInfo) multiDri).addTarget(info); } else { // create consolidated target from the single DisplayResolveInfo MultiDisplayResolveInfo multiDisplayResolveInfo = - new MultiDisplayResolveInfo(packageName, multiDri); + new MultiDisplayResolveInfo(resolvedTarget, multiDri); multiDisplayResolveInfo.addTarget(info); - consolidated.put(packageName, multiDisplayResolveInfo); + consolidated.put(resolvedTarget, multiDisplayResolveInfo); } } List groupedTargets = new ArrayList<>();