Loading src/com/android/launcher3/BubbleTextView.java +3 −11 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ import com.android.launcher3.graphics.HolographicOutlineHelper; import com.android.launcher3.graphics.IconPalette; import com.android.launcher3.graphics.PreloadIconDrawable; import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.popup.PopupContainerWithArrow; import java.text.NumberFormat; Loading Loading @@ -573,18 +572,11 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver { public void applyBadgeState(ItemInfo itemInfo, boolean animate) { if (mIcon instanceof FastBitmapDrawable) { BadgeInfo badgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); BadgeRenderer badgeRenderer = mLauncher.getDeviceProfile().mBadgeRenderer; PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen(mLauncher); if (popup != null) { popup.updateNotificationHeader(badgeInfo, itemInfo); } boolean wasBadged = mBadgeInfo != null; boolean isBadged = badgeInfo != null; mBadgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); boolean isBadged = mBadgeInfo != null; float newBadgeScale = isBadged ? 1f : 0; mBadgeInfo = badgeInfo; mBadgeRenderer = badgeRenderer; mBadgeRenderer = mLauncher.getDeviceProfile().mBadgeRenderer; if (wasBadged || isBadged) { mIconPalette = ((FastBitmapDrawable) mIcon).getIconPalette(); // Animate when a badge is first added or when it is removed. Loading src/com/android/launcher3/Launcher.java +5 −0 Original line number Diff line number Diff line Loading @@ -1576,6 +1576,11 @@ public class Launcher extends BaseActivity public void run() { mWorkspace.updateIconBadges(updatedBadges); mAppsView.updateIconBadges(updatedBadges); PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen(Launcher.this); if (popup != null) { popup.updateNotificationHeader(updatedBadges); } } }; if (!waitUntilResume(r)) { Loading src/com/android/launcher3/popup/PopupContainerWithArrow.java +15 −14 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ import com.android.launcher3.util.PackageUserKey; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import static com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import static com.android.launcher3.userevent.nano.LauncherLogProto.ItemType; Loading Loading @@ -172,6 +173,8 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra final int arrowVerticalOffset = resources.getDimensionPixelSize( R.dimen.popup_arrow_vertical_offset); mOriginalIcon = originalIcon; // Add dummy views first, and populate with real info when ready. PopupPopulator.Item[] itemsToPopulate = PopupPopulator .getItemsToPopulate(shortcutIds, notificationKeys, systemShortcuts); Loading Loading @@ -200,9 +203,7 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra ? Collections.EMPTY_LIST : mShortcutsItemView.getSystemShortcutViews(reverseOrder); if (mNotificationItemView != null) { BadgeInfo badgeInfo = mLauncher.getPopupDataProvider() .getBadgeInfoForItem(originalItemInfo); updateNotificationHeader(badgeInfo, originalIcon); updateNotificationHeader(); } // Add the arrow. Loading @@ -212,7 +213,6 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra animateOpen(); mOriginalIcon = originalIcon; mLauncher.getDragController().addDragListener(this); mOriginalIcon.forceHideBadge(true); Loading Loading @@ -551,21 +551,22 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra } /** * Updates the notification header to reflect the badge info. Since this can be called * for any badge info (not necessarily the one associated with this app), we first * check that the ItemInfo matches the one of this popup. * Updates the notification header if the original icon's badge updated. */ public void updateNotificationHeader(BadgeInfo badgeInfo, ItemInfo originalItemInfo) { if (originalItemInfo != mOriginalIcon.getTag()) { return; public void updateNotificationHeader(Set<PackageUserKey> updatedBadges) { ItemInfo itemInfo = (ItemInfo) mOriginalIcon.getTag(); PackageUserKey packageUser = PackageUserKey.fromItemInfo(itemInfo); if (updatedBadges.contains(packageUser)) { updateNotificationHeader(); } updateNotificationHeader(badgeInfo, mOriginalIcon); } private void updateNotificationHeader(BadgeInfo badgeInfo, BubbleTextView originalIcon) { private void updateNotificationHeader() { ItemInfo itemInfo = (ItemInfo) mOriginalIcon.getTag(); BadgeInfo badgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); if (mNotificationItemView != null && badgeInfo != null) { IconPalette palette = originalIcon.getIcon() instanceof FastBitmapDrawable ? ((FastBitmapDrawable) originalIcon.getIcon()).getIconPalette() IconPalette palette = mOriginalIcon.getIcon() instanceof FastBitmapDrawable ? ((FastBitmapDrawable) mOriginalIcon.getIcon()).getIconPalette() : null; mNotificationItemView.updateHeader(badgeInfo.getNotificationCount(), palette); } Loading Loading
src/com/android/launcher3/BubbleTextView.java +3 −11 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ import com.android.launcher3.graphics.HolographicOutlineHelper; import com.android.launcher3.graphics.IconPalette; import com.android.launcher3.graphics.PreloadIconDrawable; import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.popup.PopupContainerWithArrow; import java.text.NumberFormat; Loading Loading @@ -573,18 +572,11 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver { public void applyBadgeState(ItemInfo itemInfo, boolean animate) { if (mIcon instanceof FastBitmapDrawable) { BadgeInfo badgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); BadgeRenderer badgeRenderer = mLauncher.getDeviceProfile().mBadgeRenderer; PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen(mLauncher); if (popup != null) { popup.updateNotificationHeader(badgeInfo, itemInfo); } boolean wasBadged = mBadgeInfo != null; boolean isBadged = badgeInfo != null; mBadgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); boolean isBadged = mBadgeInfo != null; float newBadgeScale = isBadged ? 1f : 0; mBadgeInfo = badgeInfo; mBadgeRenderer = badgeRenderer; mBadgeRenderer = mLauncher.getDeviceProfile().mBadgeRenderer; if (wasBadged || isBadged) { mIconPalette = ((FastBitmapDrawable) mIcon).getIconPalette(); // Animate when a badge is first added or when it is removed. Loading
src/com/android/launcher3/Launcher.java +5 −0 Original line number Diff line number Diff line Loading @@ -1576,6 +1576,11 @@ public class Launcher extends BaseActivity public void run() { mWorkspace.updateIconBadges(updatedBadges); mAppsView.updateIconBadges(updatedBadges); PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen(Launcher.this); if (popup != null) { popup.updateNotificationHeader(updatedBadges); } } }; if (!waitUntilResume(r)) { Loading
src/com/android/launcher3/popup/PopupContainerWithArrow.java +15 −14 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ import com.android.launcher3.util.PackageUserKey; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import static com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import static com.android.launcher3.userevent.nano.LauncherLogProto.ItemType; Loading Loading @@ -172,6 +173,8 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra final int arrowVerticalOffset = resources.getDimensionPixelSize( R.dimen.popup_arrow_vertical_offset); mOriginalIcon = originalIcon; // Add dummy views first, and populate with real info when ready. PopupPopulator.Item[] itemsToPopulate = PopupPopulator .getItemsToPopulate(shortcutIds, notificationKeys, systemShortcuts); Loading Loading @@ -200,9 +203,7 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra ? Collections.EMPTY_LIST : mShortcutsItemView.getSystemShortcutViews(reverseOrder); if (mNotificationItemView != null) { BadgeInfo badgeInfo = mLauncher.getPopupDataProvider() .getBadgeInfoForItem(originalItemInfo); updateNotificationHeader(badgeInfo, originalIcon); updateNotificationHeader(); } // Add the arrow. Loading @@ -212,7 +213,6 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra animateOpen(); mOriginalIcon = originalIcon; mLauncher.getDragController().addDragListener(this); mOriginalIcon.forceHideBadge(true); Loading Loading @@ -551,21 +551,22 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra } /** * Updates the notification header to reflect the badge info. Since this can be called * for any badge info (not necessarily the one associated with this app), we first * check that the ItemInfo matches the one of this popup. * Updates the notification header if the original icon's badge updated. */ public void updateNotificationHeader(BadgeInfo badgeInfo, ItemInfo originalItemInfo) { if (originalItemInfo != mOriginalIcon.getTag()) { return; public void updateNotificationHeader(Set<PackageUserKey> updatedBadges) { ItemInfo itemInfo = (ItemInfo) mOriginalIcon.getTag(); PackageUserKey packageUser = PackageUserKey.fromItemInfo(itemInfo); if (updatedBadges.contains(packageUser)) { updateNotificationHeader(); } updateNotificationHeader(badgeInfo, mOriginalIcon); } private void updateNotificationHeader(BadgeInfo badgeInfo, BubbleTextView originalIcon) { private void updateNotificationHeader() { ItemInfo itemInfo = (ItemInfo) mOriginalIcon.getTag(); BadgeInfo badgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); if (mNotificationItemView != null && badgeInfo != null) { IconPalette palette = originalIcon.getIcon() instanceof FastBitmapDrawable ? ((FastBitmapDrawable) originalIcon.getIcon()).getIconPalette() IconPalette palette = mOriginalIcon.getIcon() instanceof FastBitmapDrawable ? ((FastBitmapDrawable) mOriginalIcon.getIcon()).getIconPalette() : null; mNotificationItemView.updateHeader(badgeInfo.getNotificationCount(), palette); } Loading