[Search] [Race condition] Fix wrong titles showing on BubbleTextHolder
No need to remove the listener on BubbleTextView#reset as BubbleTextView's parent should never change and always listen for ItemInfo updates.
Bug: 203506475
Test: Manual
Change-Id: Ie00b293495c79d36c9eb08408754389ab4b80839
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 521d8f4..0d01343 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -66,6 +66,7 @@
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.util.SafeCloseable;
import com.android.launcher3.views.ActivityContext;
+import com.android.launcher3.views.BubbleTextHolder;
import com.android.launcher3.views.IconLabelDotView;
import java.text.NumberFormat;
@@ -162,7 +163,7 @@
private HandlerRunnable mIconLoadRequest;
private boolean mEnableIconUpdateAnimation = false;
- private ItemInfoUpdateReceiver mItemInfoUpdateReceiver;
+ private BubbleTextHolder mBubbleTextHolder;
public BubbleTextView(Context context) {
this(context, null, 0);
@@ -240,7 +241,6 @@
mDotParams.scale = 0f;
mForceHideDot = false;
setBackground(null);
- mItemInfoUpdateReceiver = null;
}
private void cancelDotScaleAnim() {
@@ -340,14 +340,14 @@
private void setItemInfo(ItemInfoWithIcon itemInfo) {
setTag(itemInfo);
- if (mItemInfoUpdateReceiver != null) {
- mItemInfoUpdateReceiver.reapplyItemInfo(itemInfo);
+ if (mBubbleTextHolder != null) {
+ mBubbleTextHolder.onItemInfoUpdated(itemInfo);
}
}
- public void setItemInfoUpdateReceiver(
- ItemInfoUpdateReceiver itemInfoUpdateReceiver) {
- mItemInfoUpdateReceiver = itemInfoUpdateReceiver;
+ public void setBubbleTextHolder(
+ BubbleTextHolder bubbleTextHolder) {
+ mBubbleTextHolder = bubbleTextHolder;
}
@UiThread
diff --git a/src/com/android/launcher3/views/BubbleTextHolder.java b/src/com/android/launcher3/views/BubbleTextHolder.java
index 42701c6..1cb27e1 100644
--- a/src/com/android/launcher3/views/BubbleTextHolder.java
+++ b/src/com/android/launcher3/views/BubbleTextHolder.java
@@ -16,14 +16,13 @@
package com.android.launcher3.views;
import com.android.launcher3.BubbleTextView;
-import com.android.launcher3.icons.IconCache;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.ItemInfoWithIcon;
/**
* Views that contain {@link BubbleTextView} should implement this interface.
*/
-public interface BubbleTextHolder extends IconCache.ItemInfoUpdateReceiver {
+public interface BubbleTextHolder {
BubbleTextView getBubbleText();
/**
@@ -31,6 +30,6 @@
*
* @param itemInfo the new itemInfo
*/
- @Override
- default void reapplyItemInfo(ItemInfoWithIcon itemInfo){};
+ default void onItemInfoUpdated(ItemInfoWithIcon itemInfo) {
+ }
}