OSDN Git Service

Re-enable badges, with all dots
authorTony Wickham <twickham@google.com>
Thu, 27 Apr 2017 19:07:34 +0000 (12:07 -0700)
committerTony Wickham <twickham@google.com>
Thu, 27 Apr 2017 21:04:56 +0000 (14:04 -0700)
Also updated folder badge (dot) color to light gray,
added notification header back (with same number as
before, where each notification counts as >= 1),
and increased shadow opacity for the dots.

Change-Id: I53a3e0d94f23f482b55b3c10a922939ebb381314

res/values-v26/bools.xml
src/com/android/launcher3/badge/BadgeRenderer.java
src/com/android/launcher3/graphics/IconPalette.java
src/com/android/launcher3/graphics/ShadowGenerator.java
src/com/android/launcher3/notification/NotificationKeyData.java
src/com/android/launcher3/popup/PopupContainerWithArrow.java

index b15b6d9..30537fe 100644 (file)
@@ -17,7 +17,7 @@
 -->
 
 <resources>
-    <bool name="notification_badging_enabled">false</bool>
+    <bool name="notification_badging_enabled">true</bool>
 
     <bool name="enable_install_shortcut_api">false</bool>
 </resources>
\ No newline at end of file
index 2971ceb..ba1977a 100644 (file)
@@ -38,6 +38,8 @@ import com.android.launcher3.graphics.ShadowGenerator;
  */
 public class BadgeRenderer {
 
+    private static final boolean DOTS_ONLY = true;
+
     // The badge sizes are defined as percentages of the app icon size.
     private static final float SIZE_PERCENTAGE = 0.38f;
     // Used to expand the width of the badge for each additional digit.
@@ -101,7 +103,7 @@ public class BadgeRenderer {
         String notificationCount = badgeInfo == null ? "0"
                 : String.valueOf(badgeInfo.getNotificationCount());
         int numChars = notificationCount.length();
-        int width = mSize + mCharSize * (numChars - 1);
+        int width = DOTS_ONLY ? mSize : mSize + mCharSize * (numChars - 1);
         // Lazily load the background with shadow.
         Bitmap backgroundWithShadow = mBackgroundsWithShadow.get(numChars);
         if (backgroundWithShadow == null) {
@@ -112,8 +114,8 @@ public class BadgeRenderer {
         // We draw the badge relative to its center.
         int badgeCenterX = iconBounds.right - width / 2;
         int badgeCenterY = iconBounds.top + mSize / 2;
-        boolean isText = badgeInfo != null && badgeInfo.getNotificationCount() != 0;
-        boolean isIcon = icon != null;
+        boolean isText = !DOTS_ONLY && badgeInfo != null && badgeInfo.getNotificationCount() != 0;
+        boolean isIcon = !DOTS_ONLY && icon != null;
         boolean isDot = !(isText || isIcon);
         if (isDot) {
             badgeScale *= DOT_SCALE;
index 1212cba..0182e53 100644 (file)
@@ -35,7 +35,7 @@ public class IconPalette {
     private static final boolean DEBUG = false;
     private static final String TAG = "IconPalette";
 
-    public static final IconPalette FOLDER_ICON_PALETTE = new IconPalette(Color.WHITE);
+    public static final IconPalette FOLDER_ICON_PALETTE = new IconPalette(Color.parseColor("#BDC1C6"));
 
     private static final float MIN_PRELOAD_COLOR_SATURATION = 0.2f;
     private static final float MIN_PRELOAD_COLOR_LIGHTNESS = 0.6f;
index 5dd8d20..469fe34 100644 (file)
@@ -87,8 +87,6 @@ public class ShadowGenerator {
 
         float shadowRadius = height * 1f / 32;
         float shadowYOffset = height * 1f / 16;
-        int ambientShadowAlpha = AMBIENT_SHADOW_ALPHA / 2;
-        int keyShadowAlpha = KEY_SHADOW_ALPHA / 2;
 
         int radius = height / 2;
 
@@ -109,11 +107,11 @@ public class ShadowGenerator {
         int bottom = center + height / 2;
 
         // Draw ambient shadow, center aligned within size
-        blurPaint.setAlpha(ambientShadowAlpha);
+        blurPaint.setAlpha(AMBIENT_SHADOW_ALPHA);
         canvas.drawRoundRect(left, top, right, bottom, radius, radius, blurPaint);
 
         // Draw key shadow, bottom aligned within size
-        blurPaint.setAlpha(keyShadowAlpha);
+        blurPaint.setAlpha(KEY_SHADOW_ALPHA);
         canvas.drawRoundRect(left, top + shadowYOffset, right, bottom + shadowYOffset,
                 radius, radius, blurPaint);
 
index 154ea21..bf7ae1a 100644 (file)
@@ -37,7 +37,7 @@ public class NotificationKeyData {
     private NotificationKeyData(String notificationKey, String shortcutId, int count) {
         this.notificationKey = notificationKey;
         this.shortcutId = shortcutId;
-        this.count = count;
+        this.count = Math.max(1, count);
     }
 
     public static NotificationKeyData fromNotification(StatusBarNotification sbn) {
index deab3d9..dc7fa05 100644 (file)
@@ -562,11 +562,6 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra
     }
 
     private void updateNotificationHeader() {
-        if (true) {
-            // For now, don't show any number in the popup.
-            // TODO: determine whether a number makes sense, and if not, remove associated code.
-            return;
-        }
         ItemInfo itemInfo = (ItemInfo) mOriginalIcon.getTag();
         BadgeInfo badgeInfo = mLauncher.getPopupDataProvider().getBadgeInfoForItem(itemInfo);
         if (mNotificationItemView != null && badgeInfo != null) {