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/FastBitmapDrawable.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/FastBitmapDrawable.java')
-rw-r--r-- | src/com/android/launcher3/FastBitmapDrawable.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/com/android/launcher3/FastBitmapDrawable.java b/src/com/android/launcher3/FastBitmapDrawable.java index b3e59f99b..587d44552 100644 --- a/src/com/android/launcher3/FastBitmapDrawable.java +++ b/src/com/android/launcher3/FastBitmapDrawable.java @@ -30,12 +30,13 @@ import android.graphics.PixelFormat; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; +import android.util.Log; import android.util.SparseArray; import android.view.animation.DecelerateInterpolator; -import com.android.launcher3.graphics.IconPalette; -import com.android.launcher3.badge.BadgeRenderer; import com.android.launcher3.badge.BadgeInfo; +import com.android.launcher3.badge.BadgeRenderer; +import com.android.launcher3.graphics.IconPalette; public class FastBitmapDrawable extends Drawable { private static final float DISABLED_DESATURATION = 1f; @@ -123,13 +124,17 @@ public class FastBitmapDrawable extends Drawable { } public void applyIconBadge(BadgeInfo badgeInfo, BadgeRenderer badgeRenderer) { + boolean wasBadged = mBadgeInfo != null; + boolean isBadged = badgeInfo != null; mBadgeInfo = badgeInfo; mBadgeRenderer = badgeRenderer; - if (mIconPalette == null) { - mIconPalette = IconPalette.fromDominantColor(Utilities - .findDominantColorByHue(mBitmap, 20)); + if (wasBadged || isBadged) { + if (mBadgeInfo != null && mIconPalette == null) { + mIconPalette = IconPalette.fromDominantColor(Utilities + .findDominantColorByHue(mBitmap, 20)); + } + invalidateSelf(); } - invalidateSelf(); } @Override @@ -157,7 +162,7 @@ public class FastBitmapDrawable extends Drawable { } private boolean hasBadge() { - return mBadgeInfo != null && mBadgeInfo.getNotificationCount() != null; + return mBadgeInfo != null && mBadgeInfo.getNotificationCount() != 0; } @Override |