diff --git a/core/java/com/android/internal/app/ChooserListAdapter.java b/core/java/com/android/internal/app/ChooserListAdapter.java
index 2568d097d4043..f1b716143787d 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 af9c0408ccaa1..d942e859ccd05 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 2bf9337557ed7..036028de7bcb1 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 0000000000000..fbbe8c107fb98
--- /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 0000000000000..47851dcbf5bdf
--- /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 fdd965f3b157e..50e6f33f628a4 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 b483ee04a7ec9..a9e0b58f75a10 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2747,6 +2747,8 @@
+
+