diff options
author | Tony Wickham <twickham@google.com> | 2017-01-20 08:15:28 -0800 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2017-01-25 09:51:06 -0800 |
commit | 010d2550184179785e4467ff1ffb4f4f4e850ec2 (patch) | |
tree | 533ad5bc79d26b10fda6a4ab7a88f5d43643c4ea /src/com/android/launcher3/BubbleTextView.java | |
parent | c711e6006f380a500a48383b4f079258b47d4a0d (diff) | |
download | android_packages_apps_Trebuchet-010d2550184179785e4467ff1ffb4f4f4e850ec2.tar.gz android_packages_apps_Trebuchet-010d2550184179785e4467ff1ffb4f4f4e850ec2.tar.bz2 android_packages_apps_Trebuchet-010d2550184179785e4467ff1ffb4f4f4e850ec2.zip |
Add NotificationListener to launcher.
- NotificationListener extends NotificationListenerService, and is
added to the manifest.
- Added PopupDataProvider, which contains logic for storing and
interacting with data that goes into the long-press popup menu
(shortcuts and notifications). A follow-up CL will rename
DeepShortcutsContainer to a generic PopupContainerWithArrow.
- If Launcher has notification access, NotificationListener will
get callbacks when notifications are posted and removed; upon
receiving these callbacks, NotificationListener passes them to
PopupDataProvider via a NotificationsChangedListener interface.
- Upon receiving the changed notifications, PopupDataProvider maps
them to the corresponding package/user and tells launcher to
update relevant icons on the workspace and all apps.
This is guarded by FeatureFlags.BADGE_ICONS.
Bug: 32410600
Change-Id: I59aeb31a7f92399c9c4b831ab551e51e13f44f5c
Diffstat (limited to 'src/com/android/launcher3/BubbleTextView.java')
-rw-r--r-- | src/com/android/launcher3/BubbleTextView.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index d9e9c7bb0..47a5b4fbd 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -39,14 +39,16 @@ import android.widget.TextView; import com.android.launcher3.IconCache.IconLoadRequest; import com.android.launcher3.IconCache.ItemInfoUpdateReceiver; -import com.android.launcher3.badge.BadgeRenderer; import com.android.launcher3.badge.BadgeInfo; +import com.android.launcher3.badge.BadgeRenderer; +import com.android.launcher3.badging.NotificationInfo; import com.android.launcher3.folder.FolderIcon; import com.android.launcher3.graphics.DrawableFactory; import com.android.launcher3.graphics.HolographicOutlineHelper; import com.android.launcher3.model.PackageItemInfo; import java.text.NumberFormat; +import java.util.List; /** * TextView that draws a bubble behind the text. We cannot use a LineBackgroundSpan @@ -168,6 +170,8 @@ public class BubbleTextView extends TextView if (promiseStateChanged || info.isPromise()) { applyPromiseState(promiseStateChanged); } + + applyBadgeState(info); } public void applyFromApplicationInfo(AppInfo info) { @@ -178,6 +182,8 @@ public class BubbleTextView extends TextView // Verify high res immediately verifyHighRes(); + + applyBadgeState(info); } public void applyFromPackageItemInfo(PackageItemInfo info) { @@ -502,8 +508,9 @@ public class BubbleTextView extends TextView } } - public void applyBadgeState(BadgeInfo badgeInfo) { + public void applyBadgeState(ItemInfo itemInfo) { if (mIcon instanceof FastBitmapDrawable) { + BadgeInfo badgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo); BadgeRenderer badgeRenderer = mLauncher.getDeviceProfile().mBadgeRenderer; ((FastBitmapDrawable) mIcon).applyIconBadge(badgeInfo, badgeRenderer); } @@ -634,7 +641,8 @@ public class BubbleTextView extends TextView * Returns true if the view can show custom shortcuts. */ public boolean hasDeepShortcuts() { - return !mLauncher.getShortcutIdsForItem((ItemInfo) getTag()).isEmpty(); + return !mLauncher.getPopupDataProvider().getShortcutIdsForItem((ItemInfo) getTag()) + .isEmpty(); } /** |