From caec1a7440ae42fcd26680f3143a352519850634 Mon Sep 17 00:00:00 2001 From: Mike Digman Date: Mon, 18 May 2020 09:27:15 -0700 Subject: Add pinned target indicator to Sharesheet, update visuals After a user pins an app it takes up a persistent space in the suggested app row. Users may forget they've pinned an app as there's no indicator. Add an in-line icon to label suggested targets as pinned. No indicator should be shown in the A-Z list. This CL also updates related visual styling to get close to redlines. Bug: 150405021 Bug: 152978014 Test: manual Change-Id: Iee774b88e284617449a673d7e622c0ce233ded1a --- .../android/internal/app/ChooserListAdapter.java | 12 +++++++--- .../android/internal/app/ResolverListAdapter.java | 6 ++--- core/res/res/drawable/chooser_group_background.xml | 2 +- .../res/res/drawable/chooser_pinned_background.xml | 25 +++++++++++++++++++++ core/res/res/drawable/ic_chooser_pin.xml | 26 ++++++++++++++++++++++ core/res/res/layout/resolve_grid_item.xml | 2 +- core/res/res/values/symbols.xml | 2 ++ 7 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 core/res/res/drawable/chooser_pinned_background.xml create mode 100644 core/res/res/drawable/ic_chooser_pin.xml diff --git a/core/java/com/android/internal/app/ChooserListAdapter.java b/core/java/com/android/internal/app/ChooserListAdapter.java index 2568d097d404..f1b716143787 100644 --- a/core/java/com/android/internal/app/ChooserListAdapter.java +++ b/core/java/com/android/internal/app/ChooserListAdapter.java @@ -238,8 +238,9 @@ public class ChooserListAdapter extends ResolverListAdapter { } @Override - protected void onBindView(View view, TargetInfo info) { - super.onBindView(view, info); + protected void onBindView(View view, TargetInfo info, int position) { + super.onBindView(view, info, position); + if (info == null) return; // If target is loading, show a special placeholder shape in the label, make unclickable final ViewHolder holder = (ViewHolder) view.getTag(); @@ -257,11 +258,16 @@ public class ChooserListAdapter extends ResolverListAdapter { holder.itemView.setBackground(holder.defaultItemViewBackground); } - // If the target is grouped show an indicator if (info instanceof MultiDisplayResolveInfo) { + // If the target is grouped show an indicator Drawable bkg = mContext.getDrawable(R.drawable.chooser_group_background); holder.text.setPaddingRelative(0, 0, bkg.getIntrinsicWidth() /* end */, 0); holder.text.setBackground(bkg); + } else if (info.isPinned() && getPositionTargetType(position) == TARGET_STANDARD) { + // If the target is pinned and in the suggested row show a pinned indicator + Drawable bkg = mContext.getDrawable(R.drawable.chooser_pinned_background); + holder.text.setPaddingRelative(bkg.getIntrinsicWidth() /* start */, 0, 0, 0); + holder.text.setBackground(bkg); } else { holder.text.setBackground(null); holder.text.setPaddingRelative(0, 0, 0, 0); diff --git a/core/java/com/android/internal/app/ResolverListAdapter.java b/core/java/com/android/internal/app/ResolverListAdapter.java index af9c0408ccaa..d942e859ccd0 100644 --- a/core/java/com/android/internal/app/ResolverListAdapter.java +++ b/core/java/com/android/internal/app/ResolverListAdapter.java @@ -524,7 +524,7 @@ public class ResolverListAdapter extends BaseAdapter { if (view == null) { view = createView(parent); } - onBindView(view, getItem(position)); + onBindView(view, getItem(position), position); return view; } @@ -541,10 +541,10 @@ public class ResolverListAdapter extends BaseAdapter { } public final void bindView(int position, View view) { - onBindView(view, getItem(position)); + onBindView(view, getItem(position), position); } - protected void onBindView(View view, TargetInfo info) { + protected void onBindView(View view, TargetInfo info, int position) { final ViewHolder holder = (ViewHolder) view.getTag(); if (info == null) { holder.icon.setImageDrawable( diff --git a/core/res/res/drawable/chooser_group_background.xml b/core/res/res/drawable/chooser_group_background.xml index 2bf9337557ed..036028de7bcb 100644 --- a/core/res/res/drawable/chooser_group_background.xml +++ b/core/res/res/drawable/chooser_group_background.xml @@ -21,5 +21,5 @@ android:width="12dp" android:height="12dp" android:start="4dp" - android:end="4dp" /> + android:end="0dp" /> diff --git a/core/res/res/drawable/chooser_pinned_background.xml b/core/res/res/drawable/chooser_pinned_background.xml new file mode 100644 index 000000000000..fbbe8c107fb9 --- /dev/null +++ b/core/res/res/drawable/chooser_pinned_background.xml @@ -0,0 +1,25 @@ + + + + + + \ No newline at end of file diff --git a/core/res/res/drawable/ic_chooser_pin.xml b/core/res/res/drawable/ic_chooser_pin.xml new file mode 100644 index 000000000000..47851dcbf5bd --- /dev/null +++ b/core/res/res/drawable/ic_chooser_pin.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/core/res/res/layout/resolve_grid_item.xml b/core/res/res/layout/resolve_grid_item.xml index fdd965f3b157..50e6f33f628a 100644 --- a/core/res/res/layout/resolve_grid_item.xml +++ b/core/res/res/layout/resolve_grid_item.xml @@ -44,7 +44,7 @@ android:layout_height="wrap_content" android:textAppearance="?attr/textAppearanceSmall" android:textColor="?attr/textColorPrimary" - android:textSize="14sp" + android:textSize="12sp" android:gravity="top|center_horizontal" android:lines="1" android:ellipsize="end" /> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index b483ee04a7ec..a9e0b58f75a1 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2747,6 +2747,8 @@ + + -- cgit v1.2.3-59-g8ed1b