From 1f0b5347b8aeb1f796c7d68ca4ee06660cbb1a2c Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 27 Jan 2017 14:28:42 -0800 Subject: [PATCH] Use notification icon views' tags to store NotificationInfo. Previously we had a mapping from View to NotificationInfo, but this way we don't have to maintain that separate mapping and can follow the pattern used throughout the rest of launcher. Change-Id: Ia988f822613b9978bab3d0127226de920a3e73c9 --- .../notification/NotificationFooterLayout.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/com/android/launcher3/notification/NotificationFooterLayout.java b/src/com/android/launcher3/notification/NotificationFooterLayout.java index cd610bd3bb..f84ddb1fba 100644 --- a/src/com/android/launcher3/notification/NotificationFooterLayout.java +++ b/src/com/android/launcher3/notification/NotificationFooterLayout.java @@ -36,10 +36,8 @@ import com.android.launcher3.graphics.IconPalette; import com.android.launcher3.popup.PopupContainerWithArrow; import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Map; /** * A {@link LinearLayout} that contains only icons of notifications. @@ -57,7 +55,6 @@ public class NotificationFooterLayout extends LinearLayout { private final List mNotifications = new ArrayList<>(); private final List mOverflowNotifications = new ArrayList<>(); - private final Map mViewsToInfos = new HashMap<>(); LinearLayout.LayoutParams mIconLayoutParams; private LinearLayout mIconRow; @@ -113,7 +110,6 @@ public class NotificationFooterLayout extends LinearLayout { */ public void commitNotificationInfos() { mIconRow.removeAllViews(); - mViewsToInfos.clear(); for (int i = 0; i < mNotifications.size(); i++) { NotificationInfo info = mNotifications.get(i); @@ -139,8 +135,8 @@ public class NotificationFooterLayout extends LinearLayout { icon.setAlpha(0); icon.animate().alpha(1); } + icon.setTag(info); mIconRow.addView(icon, addIndex, mIconLayoutParams); - mViewsToInfos.put(icon, info); } private void updateOverflowText(TextView overflowTextView) { @@ -163,7 +159,7 @@ public class NotificationFooterLayout extends LinearLayout { moveAndScaleIcon.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - callback.onIconAnimationEnd(mViewsToInfos.get(firstNotification)); + callback.onIconAnimationEnd((NotificationInfo) firstNotification.getTag()); } }); animation.play(moveAndScaleIcon); @@ -205,11 +201,10 @@ public class NotificationFooterLayout extends LinearLayout { if (child instanceof TextView) { overflowView = (TextView) child; } else { - NotificationInfo childInfo = mViewsToInfos.get(child); + NotificationInfo childInfo = (NotificationInfo) child.getTag(); if (!notifications.contains(childInfo.notificationKey)) { mIconRow.removeView(child); mNotifications.remove(childInfo); - mViewsToInfos.remove(child); if (!mOverflowNotifications.isEmpty()) { NotificationInfo notification = mOverflowNotifications.remove(0); mNotifications.add(notification);