Resolver/Chooser - Fix reuse of textview
Upon reuse of a view by the recyclerview, it was possible to show a
reused view's sublabel, as it was doing incorrect comparisons. Make
sure to always reset the textviews, and hide it if necessary.
Fixes: 150813955
Test: manual, but helpful to have many apps installed and launch the sharesheet
Change-Id: Idb0c03c0b0917104bd9f26cdd9ed33a0055fa6f2
diff --git a/core/java/com/android/internal/app/ResolverListAdapter.java b/core/java/com/android/internal/app/ResolverListAdapter.java
index 04a186c..094fb1e 100644
--- a/core/java/com/android/internal/app/ResolverListAdapter.java
+++ b/core/java/com/android/internal/app/ResolverListAdapter.java
@@ -689,17 +689,17 @@
}
public void bindLabel(CharSequence label, CharSequence subLabel, boolean showSubLabel) {
- if (!TextUtils.equals(text.getText(), label)) {
- text.setText(label);
- }
+ text.setText(label);
if (TextUtils.equals(label, subLabel)) {
- subLabel = "";
+ subLabel = null;
}
- if (showSubLabel || !TextUtils.equals(text2.getText(), subLabel)) {
+ text2.setText(subLabel);
+ if (showSubLabel || subLabel != null) {
text2.setVisibility(View.VISIBLE);
- text2.setText(subLabel);
+ } else {
+ text2.setVisibility(View.GONE);
}
itemView.setContentDescription(null);