Commit Graph

15 Commits

Author SHA1 Message Date
Tony 18c4aa458e Update accessibility for popup
- 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
2017-05-11 13:59:52 -07:00
Tony 0b8a6fe532 Visual updates for popup
- 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
2017-05-09 20:02:23 -05:00
Tony Wickham 24ba787ded Handle back-to-back height reduction animations
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
2017-04-27 15:18:37 -07:00
Tony Wickham ce44516dd8 Update popup to match redlines
- 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
2017-04-11 16:44:38 -07:00
Tony Wickham 36579219de Only create one bitmap to clip popup item corners
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
2017-04-07 14:30:25 -07:00
Tony Wickham 81ebe383f5 Small cleanup for notifications
- Add null check when collapsing footer, as container could be null
  if the app is opened
- Remove redundant method that always passed mNotificationItemView
- Set mNotificationItemView to null when it is removed

Change-Id: Ia329815224b213fc688733eaaf6f29ee6888caaf
2017-03-15 14:46:02 -07:00
Tony Wickham 9407d4ab57 Update notification visuals (part 2)
- Background is now white, and color beneath and divider color
  updated accordingly (not from color extraction)
- Removed overflow text ("+6") and added it to a header
  ("6 Notifications"). Use "..." instead if there is an overflow.
- Even spaced out icons in notification footer between the
  far right icon and the ellipsis
- Remove code to change arrow tint, since it is always white
  now. This also fixes the issue where it was drawn as a rect.

Bug: 35766387
Change-Id: I03bfda4ff029f23dd8b3dd1b72f534ea0e2c0816
2017-03-02 11:27:16 -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 6d66c1cfeb Remove first icon from notification footer after it animates.
Before, we had a hack where the notifation view would tell the
footer to trim its notifications, which is inefficient and ugly
since we already know exactly what notification to remove. So
now we move the relevant removal logic (keeping things like the
overflow text in sync) to a removeViewFromIconRow() that is
used after the icon animates as well as when trimming notifications.

Bug: 32410600
Change-Id: I19e54e0c28daea869b45649c7f5c74843412bb86
2017-02-22 15:33:35 -08:00
Tony Wickham 7aefaae5d9 Ignore touches before notification is populated
Bug: 35398757
Change-Id: I24f1b66787af7c7caeb325e9a1f3e6ef86e62b81
2017-02-15 16:05:40 -08:00
Tony Wickham c6b79e307f Add logging for notifications.
- Log notification launches
- Log notification swipes
- Fix logDragNDrop() to only log if the pre-drag ends (so it doesn't
  log a long-press that only shows shortcuts without dragging).
- Add shortcut rank to logs when launching deep shortcuts, where 0
  is the shortcut closest to the app icon (highest rank).

Bug: 34770729
Bug: 32410600
Change-Id: I99dcef9b6a71da2ef58e32397702bb137407b10f
2017-02-07 10:16:52 -08:00
Tony Wickham f79877c04c Ensure notification icons have enough contrast with background.
This uses the same color calculations as the system, except that
we use the extracted notification background instead of assuming
it is white.

Bug: 32410600
Change-Id: I7be8b9459ca38d01a6780758898541e69ec42576
2017-01-27 12:43:31 -08:00
Tony Wickham 2efcdd0c78 Store notification keys in a List instead of a Set.
This will preserve the order when iterating over the notifications to
populate the popup container.

Bug: 34735689
Change-Id: Ic390ffef140e454566ffc6ab1763950349df25ce
2017-01-26 11:28:43 -08:00
Tony Wickham 9438ed414f Add swipe-to-dismiss notifications in popup menu.
- Next secondary icon animates up to replace dismissed main notification
- Add padding around main notification so it always aligns with the
  straight edges of the view (not the rounded corners); looks more
  dismissable
- Notification view collapses as notifications are dismissed
- To mimic system notification behavior, we copy SwipeHelper,
  FlingAnimationUtils, and Interpolators. We also apply elevation
  to notifications and reveal a darker color beneath when dismissing.

Bug: 32410600
Change-Id: I9fbf10e73bb4996f17ef061c856efb013967d972
2017-01-25 17:36:31 -08:00