> 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
> Using a single linearLayout instead of multiple nested views
> Using clipToOutline for rounded corners instead of using canvas.saveLayer
> Removing nested view elevations and overdraw
> Using LayoutTransition for animating layout changes, instead of manually creating animators
Change-Id: I8e57092f52ca5a032a2756594fdd39788acc5a0d
It shouldn't be possible to have a null small icon, but apparently
there are cases where we get one anyway. Might as well handle it
gracefully instead of crashing.
Bug: 67156108
Change-Id: I01ad0251920f7f531a3019eb694946c3d295f9de
This requires maintaining notification group information by mapping
groupKey's to the summary key and child keys.
Bug: 65100024
Change-Id: Idd352ce5e243a0762bf30a9c79d36681456a1b17
- Reduce main notification height
- Increase header height and center "Notifications"
- Footer has short height when empty to serve as padding
Bug: 65215656
Change-Id: I691d176628b0b51e8d9af030084b8c29837778dc
- Added SettingsObserver as wrapper around ContentObserver
to observe Secure or System setting changes.
- NotificationListener and LauncherAppState observe changes
to the notification dots setting and unbind and rebind
the NotificationListener service, respectively.
Bug: 36815147
Change-Id: I2cc04ac816a8974969ad0ec759c5402e181fde24
> Refactoring SwipeDetector to both allow vertical and horizontal swipes
> Using SwipeDetector and common overscroll effect for notification swipes
instead of a separate logic
Change-Id: Ib706ee179811ade59ddb68184e1c202365d147c4
There was a potential race condition where we would try to do a full
refresh of notifications before the listener was connected. Now we
skip the full refresh if we aren't connected, which is fine because
we also do a full refresh in onListenerConnected() anyway.
Bug: 62107069
Change-Id: I2fe4f49eb8a840230d32034be11fe7765a366e75
- Don't remove elevation during animation (b/62905720)
- Other adjustments (b/35766387)
- Add "gutter" between notification and shortcuts
- Change shortcuts to always be primary color (e.g. white)
- Scale down shortcut icons when notifications present
- Apply icon extracted color to "Notifications" header
Change-Id: Idf791dc76d15d05d246000ad73810916d7cd1750
We currently only show 2 shortcuts when notifications are
present, but support up to 4 otherwise. With this change,
the hidden shortcuts are added back after dismissing the
notifications, instead of only after closing and reopening
the container.
To ensure the transition is as elegant as possible, we also
separated the shortcuts header from the rest of the shortcuts.
That way we can reveal the new shortcuts without removing the
header (the shortcuts come out from behind the header).
Bug: 38036250
Change-Id: Ie9ab35f9be57cec1d5345e9e70e84e09ea52c9fc
If a notification changes the color etc. on the CharSequence, then
it overrode our colors. Gmail for instance always makes the second
text dark (apparently), overriding our dark theme.
Change-Id: Ibd8751d70849fd10fd0114af02d382aba1771d4e
- Unround interior corners
- Update colors (shortcuts are gray when next to
notifications, notifications always white)
- Clean up animation to animate entire popup with
simple reveal instead of individual items
animating with reveal and icon scale
Bug: 35766387
Bug: 36110804
Change-Id: I33685d53e2db3904731676123dc230be4dabb5d4
- Content description includes count of notifications.
- Notifications have a dismiss action.
- All icons that support shortcuts will have action to show
shortcut menu, since there will be system shortcuts even if
there are no deep shortcuts.
Bug: 36564782
Change-Id: I51b085fa26754f2dcd93c7db6548f2edf054f494
- Update some dimens
- Increase left padding for shortcuts
- Adjust arrow and notification ellipsis offset accordingly
- Align shortcut dividers to be same width as text
- Notification text 14sp instead of 15sp
- Increase width of popup by 12dp
- Shortcuts text 87% black instead of 54%
- Arrow has same color as attached side, so takes on header
gray instead of white when appropriate
Bug: 37753827
Change-Id: I0844b85995f22218a3b7e605e1653cceaed6cda1
- Allow notifications with only title or text, not both (centered in popup)
- Allow notifications without an intent (don't add onClickListener)
Change-Id: I33d9bdbe0d27347d703b6fb81eda64ebdc7429d5
We reduce the height of the notification item when the second to last
notification is dismissed (to remove the unused footer) and when the
last notification is removed (to remove the unused notification item).
If the former is runninng when the latter starts, the end result is
janky because we weren't properly cleaning up the first animation when
the second began. We now cancel the existing animation before starting
the second.
Bug: 36172954
Change-Id: I742c15b6f59874bc675b4c20a83e9578ac5e5387
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
- 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
- Update specs in dimens.xml and colors.xml
- Move notification count to top right, and keep "Notifications" in left
- Also removed NotificationHeaderView and instead use FrameLayout
- Limit to 2 shortcuts instead of 3 if there are notifications
- Use SP instead of DP for text (b/35869307)
Bug: 35766387
Change-Id: I892640933ad6351946af3df6c805b98bb4e7cb50
Previously we created a bitmap the size of the entire popup item and
drew a rounded rect in it to clip the corners. Now we create a bitmap
that is only the size of the rounded corner radius, and rotate and
translate it to all four corners to achieve the same clipping.
Besides the reduced memory of this approach, it also simplifies things
when we reduce the item's height (e.g. when the second to last
notification is dismissed), because we no longer have to recreate the
background bitmap to match the new size; the translation calculations
in dispatchDraw() automatically take the current size into account.
Bug: 35869307
Change-Id: I938bbc4bd87479580287426b4197516caf1a64d4
We still ignore group summary headers, which means, for example,
we won't get Gmail unread count. But single notifications that
have numbers associated, such as messages from a single contact
will be included in the badge count. So if you have 2 hangounts
threads, one with 10 messages and one with 8, the badge would
say 18.
Bug: 34939841
Change-Id: I20b9a857d91715e10c0da400a1cee209d7b837b8
- Pass NotificationKeyData, which includes the shortcut id, instead of
just the notification key from NotificationListener
- Remove the shortcut with the same shortcut id as the first
notification, if it has one, in PopupPopulator#sortAndFilterShorcuts()
- Add some unit tests
Bug: 36571718
Change-Id: I308941b34c525b34686583476e3f82ccb8b7e2d8