Commit Graph

19 Commits

Author SHA1 Message Date
Hyunyoung Song 48cb7bc7a4 Move IconNormalizer/ShadowGenerator/LauncherIcons to icons package
Bug: 115891474

Sending out the package name changing CL first before I make
LauncherIconsHandler and tests around it.

Change-Id: Ic10479a06333e1435b392a7072cd08782e710cbd
2018-09-26 11:57:37 -07:00
Tony 05d98c246b Adjust notification dots
- Use consistent bounds for folders as other icons, to ensure dot
  has a consistent placement (moved right+up a bit)
- Strengthen the ambient shadow to improve contrast
  - Increased blur size and opacity
- Use a dark gray rather than black for dots on dark folders

Bug: 73331123
Change-Id: I888f4645d3a48465af93f5003dda8f8b7c3129f3
2018-07-23 16:41:45 -07:00
Derek Sollenberger 26a1b452f4 Stop using deprecated Canvas APIs.
Bug: 73777445
Test: compile
Change-Id: Ic0a1f4ebc10ba46229fd97408c052c0b450b4945
2018-03-01 04:39:57 +00:00
Sunny Goyal 2865cf3dba Fixing dot being drawn at wrong offset
Bug: 71730537
Change-Id: I090283596c0137cb751d29dfab54b370e6bbe97e
2018-01-09 10:24:02 -08:00
Sunny Goyal 179249d804 Dominant color is part of icon cache
> Calculating extracted color during icon generation and storing it in model and DB
> Removing unused logic avoid various types of badge rendering
> Icons are badged with extracted colors, while folder is badged with theme color

Bug: 35428783
Change-Id: I93e30c52fbded7515c3ae1778422e84672eafb56
2018-01-03 16:55:58 -08:00
Jon Miranda 48043ee0d6 Also reset mBadgeScale to 0 when recycling view.
When left as 1f, the drawBadgeIfNecessary thinks that there
is still a badge -- which results in a NPE when trying to draw
the badge.

Bug: 68324671
Change-Id: I4eedb5825b3a6429c99de0466a77d368a39b1951
2017-11-01 16:01:13 -07:00
Sunny Goyal e463c8f191 Rafactoring shadow generator logic to allow customizing various parameters
Change-Id: I38f8ac4352cb9e23d377832ffe2f4923a4df7a70
2017-06-20 13:37:05 -07:00
Tony Wickham 7092db0241 Add support for color extracted notification dots
Changing the badge_color in colors.xml to transparent
will cause them to be color extracted.

When an extracted color is used in the IconPalette, we
desaturate the background. Otherwise we respect the
exact color specified in colors.xml.

Change-Id: Ie82d0c5335fa5f24d4cc47766e4c1719c4916f8b
2017-06-08 21:08:47 +00:00
Tony Wickham e6a790e5ae Use a single color for all icon badges.
Bug: 38346375
Change-Id: I26b7ad3dcfea6a18e169d656e19605c9794eadd3
2017-05-16 13:04:23 -07:00
Tony Wickham f77a6f7fd7 Re-enable badges, with all dots
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
2017-04-27 14:04:56 -07:00
Tony Wickham 0530e8c608 Support notifications with 0 count (show as dots)
- Show number if number > 0
- Show icon if number == 0 and a notification specified an icon to show
- Show a dot otherwise
- In cases of multiple notifications, stack a second badge behind the
  first (visuals will be updated in future CL, as well as support
  stacked dots)
- Folders always show dot if any app within has a badge.

Change-Id: I0a89059b0e0a0d174fe739c9da4f75fa18c0edfa
2017-04-26 19:39:05 -07:00
Tony Wickham 1237df0a7c Update icon badges to match spec
- Size defined as percentage of app icon size
- Width changes when there are 2 or 3 digits (round rect)
- Offset slightly away from the app icon
  - Had to move drawing to BubbleTextView instead of
    FastBitmapDrawable
- Hide badge when dragging and while popup is open
- Tweaks for some color/text parameters

Bug: 35744066
Change-Id: Ibb15ca634abaa0729aea637c904c4c6889a58c7c
2017-04-25 12:55:02 -07:00
Tony Wickham 6c82867a7e Add shadow to badges
- Add static method to ShadowGenerator to generate a
  circle Bitmap with a shadow.
- Move setColorScale() from DragView to Themes, and
  use it to apply color to the shadowed Bitmap.

Bug: 35744066
Change-Id: I8d1da528bbf94dc83851f0b4016361ed9f8d5349
2017-03-01 16:36:04 -08:00
Tony Wickham 51889b0be8 Merge deep shortcuts in rounded rect
- DeepShortcutViews are added to ShortcutsItemView, which
  is in PopupContainerWithArrow
- Moved some shortcut-specific logic to ShortcutsItemView
  (namely, touch/long-click handling for draggin shortcuts)
- Moved round-rect clipping to PopupItemView
- Removed collapseToIcon() logic, including
  PillWidthRevealOutlineProvider, which was only used for
  that purpose. It isn't necessary now that the deep
  shortcuts have no background themselves.
- Replaced focus pill drawable with ripple effect on
  shortcuts and notification view.

Bug: 35766387
Change-Id: I6bc09f1851cfbb806df4bf75a6e435b0f1900c9c
2017-03-01 10:16:16 -08:00
Tony Wickham 7f3526a1a4 Update notification view to match newer specs
- Use smaller radius for notifications round rect background
- Remove "Notifications" header, and clip children to round rect path
- Flip main notification so that icon shows on the right instead of
  left; footer is also flipped so animation makes sense
- Clean up animations to animate view outline instead of height

Bug: 32410600
Change-Id: I6bd1e1f8395b3703f28c3b0056a89e67672368ab
2017-02-24 12:09:06 -08:00
Tony Wickham 1e61849bc7 Animate badges when they are added or removed
- Scale the badge and text or icon up or down, respectively.
- Only animate if the badge is visible, and don't animate when
  applying shortcut or app info.
- Animate folder badge out when folder enters accepting state.

Bug: 34838365
Bug: 32410600
Change-Id: Ie60cb1fc54fe60d72734d833040545d27660d645
2017-02-07 14:10:09 -08:00
Tony Wickham a799bed803 Show notification icon in place of "1" in badge.
- When notifications update, add the NotificationInfo to the
  BadgeInfo if there is only one for an app. BadgeRenderer
  will use the NotificationInfo to get the icon to draw.
- When retrieving the icon from the NotificationInfo, we draw
  it into a shader (similar to MaskableIconDrawable), which is
  rendered by BadgeRenderer.
- For now, we only use the notification icon if it is large.

Bug: 34839959
Bug: 32410600
Bug: 33553066
Change-Id: I31851804008dd15bab75d2759441187830c3265e
2017-02-07 09:48:43 -08:00
Tony Wickham 010d255018 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
2017-01-25 09:51:06 -08:00
Tony Wickham 9a8d11f930 FastBitmapDrawable can draw an icon badge (notification count)
- Added BadgeInfo to contain data to be shown in a badge
  (currently just notification count).
- Added BadgeRenderer in DeviceProfile to contain things
  relevant to drawing the badge, such as size and Paint's.
- Added IconPalette to compute colors for the badge based
  on a dominant color (will also be used for notifications)
- FastBitmapDrawable uses these classes to draw the badge.

Bug: 32410600
Change-Id: I6595a4879943357590f7d20c22594691a573ecaf
2017-01-13 10:58:10 -08:00