Fix for badge updates in PredictionRowView

Bug: 72054359
Change-Id: I6d435c380d182ba99f9627c049f7f36ad331ee1d
This commit is contained in:
Mario Bertschler
2018-01-16 14:10:28 -08:00
parent 000e0a1480
commit 62d2db1d60

View File

@@ -364,18 +364,30 @@ public class AllAppsContainerView extends RelativeLayout implements DragSource,
public void updateIconBadges(Set<PackageUserKey> updatedBadges) {
final PackageUserKey packageUserKey = new PackageUserKey(null, null);
for (int j = 0; j < mAH.length; j++) {
if (mAH[j].recyclerView != null) {
final int n = mAH[j].recyclerView.getChildCount();
for (int i = 0; i < n; i++) {
View child = mAH[j].recyclerView.getChildAt(i);
if (!(child instanceof BubbleTextView) || !(child.getTag() instanceof ItemInfo)) {
continue;
}
ItemInfo info = (ItemInfo) child.getTag();
if (packageUserKey.updateFromItemInfo(info) && updatedBadges.contains(packageUserKey)) {
((BubbleTextView) child).applyBadgeState(info, true /* animate */);
}
}
updateIconBadges(updatedBadges, packageUserKey, mAH[j].recyclerView);
}
if (mHeader != null) {
updateIconBadges(updatedBadges, packageUserKey, mHeader.getPredictionRow());
}
}
private void updateIconBadges(Set<PackageUserKey> updatedBadges, PackageUserKey packageUserKey,
ViewGroup parent) {
if (parent == null) {
return;
}
final int n = parent.getChildCount();
for (int i = 0; i < n; i++) {
View child = parent.getChildAt(i);
if (child instanceof PredictionRowView) {
updateIconBadges(updatedBadges, packageUserKey, (PredictionRowView) child);
}
if (!(child instanceof BubbleTextView) || !(child.getTag() instanceof ItemInfo)) {
continue;
}
ItemInfo info = (ItemInfo) child.getTag();
if (packageUserKey.updateFromItemInfo(info) && updatedBadges.contains(packageUserKey)) {
((BubbleTextView) child).applyBadgeState(info, true /* animate */);
}
}
}