From 438d1320f1fc6792cf9dc2d3cc17c8ac898aeb9d Mon Sep 17 00:00:00 2001 From: Mike Digman Date: Wed, 13 May 2020 15:59:55 -0700 Subject: [PATCH] Add app grouping indicators to Sharesheet When an app publishes multiple share targets those are now grouped under a single target. However, there is no visual indicator of grouping. This adds that in. Test: manual, custom built apks for testing Fixes: 150481688 Change-Id: Ibf72cec3a337a71387928d30126b286519f03f73 --- .../internal/app/ChooserListAdapter.java | 11 ++++++++ .../res/drawable/chooser_group_background.xml | 25 ++++++++++++++++++ .../res/drawable/ic_chooser_group_arrow.xml | 26 +++++++++++++++++++ core/res/res/values/symbols.xml | 2 ++ 4 files changed, 64 insertions(+) create mode 100644 core/res/res/drawable/chooser_group_background.xml create mode 100644 core/res/res/drawable/ic_chooser_group_arrow.xml diff --git a/core/java/com/android/internal/app/ChooserListAdapter.java b/core/java/com/android/internal/app/ChooserListAdapter.java index f426bc0ecbb53..31fee3fe0d5da 100644 --- a/core/java/com/android/internal/app/ChooserListAdapter.java +++ b/core/java/com/android/internal/app/ChooserListAdapter.java @@ -30,6 +30,7 @@ import android.content.pm.LabeledIntent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ShortcutInfo; +import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.UserHandle; import android.os.UserManager; @@ -253,6 +254,16 @@ public class ChooserListAdapter extends ResolverListAdapter { holder.text.setBackground(null); holder.itemView.setBackground(holder.defaultItemViewBackground); } + + // If the target is grouped show an indicator + if (info instanceof MultiDisplayResolveInfo) { + Drawable bkg = mContext.getDrawable(R.drawable.chooser_group_background); + holder.text.setPaddingRelative(0, 0, bkg.getIntrinsicWidth() /* end */, 0); + holder.text.setBackground(bkg); + } else { + holder.text.setBackground(null); + holder.text.setPaddingRelative(0, 0, 0, 0); + } } void updateAlphabeticalList() { diff --git a/core/res/res/drawable/chooser_group_background.xml b/core/res/res/drawable/chooser_group_background.xml new file mode 100644 index 0000000000000..2bf9337557ed7 --- /dev/null +++ b/core/res/res/drawable/chooser_group_background.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/core/res/res/drawable/ic_chooser_group_arrow.xml b/core/res/res/drawable/ic_chooser_group_arrow.xml new file mode 100644 index 0000000000000..d42bb97bbb370 --- /dev/null +++ b/core/res/res/drawable/ic_chooser_group_arrow.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 369a3e51df264..31b802344afa0 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2744,6 +2744,8 @@ + +