Commit Graph

34 Commits

Author SHA1 Message Date
Jon Miranda 313b2c2d28 Update notification popup UI.
- Update UI to match specs.
- Only shows one notification (removed footer, animation code)

Bug: 175329686
Bug: 190402054
Test: open popup, dismiss notification from shade,
      open popup, click on notification
      checked RTL

Change-Id: I92672f94233d986ae5b5c54979980967308cb156
2021-06-18 22:42:44 +00:00
Jon Miranda 32ff76cb4e Adding color back to popup container.
For Color exctraction now occurs in groups:
- System shortcuts
- Deep shortcuts
- Notifications

For home setting popup, each DeepShortcutView will have its own
extracted color.

Bug: 188095443
Test: manual
Change-Id: I7e209f863ff180b8f017aeb2a73c6f1a51842e68
2021-06-10 19:15:24 +00:00
Jon Miranda 35c5477d5c Remove color extraction from popup arrow, add shadows.
Bug: 175329686
Bug: 187014675
Test: manual

Change-Id: I84a3f23b7a9ceef004a2b1b66e5f8a10585bd113
2021-05-11 17:35:01 -07:00
Jon Miranda 2a58d13b9b Add separate background colors to each popup container child.
- Colors interpolate between the primary and secondary popup colors
- Removed condensed height and icon scale

Bug: 175329686
Test: visual, manual checking apps with different shortcut options
Change-Id: I064c329dc8ad3ae6f408056c74372cca3ce20b68
2021-03-19 13:41:07 -04:00
Jon Miranda c79316740b Update deep shortcut to new ui.
- Removed divider views, using margin to separate views
- Removed elevations
- Added a ViewGroup to hold all notification views, and applied an outline

Bug: 175329686
Test: visual
Change-Id: Iad70dcfdaeba6050c2b17c07f76bb7bfb728e544
2021-03-18 11:09:34 -04:00
Samuel Fufa a18eb686d0 Add dismiss option for hotseat items
Bug: 145556909
Test:Manual
Change-Id: Ia40d22226b5cf9482f19f82ef08e399d294be6da
2020-01-06 16:40:24 -08:00
Tony Wickham 5aeb3b84b8 Refactor SwipeDetector to track both axes
Existing clients now use the SingleAxisSwipeDetector subclass. A
followup CL will add BothAxesSwipeDetector, whose first client will be
the quick switch from home controller.

Bug: 126596417
Change-Id: I54c71088cfe99ff28cdc719a1eb7a7d06ac95d2d
2019-10-24 10:38:17 -07:00
Andy Wickham 769c795edf Some cleanup for SwipeDetector.
It is now organized as follows:
 - private constants
 - public constants
 - private final fields
 - private variable fields
 - constructors
 - public methods
 - private methods
 - public interface/abstract class

This is intended to be a functional no-op.

Bug: 141939911
Change-Id: Iad5a9b3b73b35641f8a4f1d52ada6adef3825c47
Tested: Built and sanity checked manually.
2019-10-01 14:38:56 -07:00
Sunny Goyal 2fd7a8bc59 Updating the UI of the options popup to make it look similar to icon popup
Bug: 77327164
Change-Id: I3580df8bf8a43cb44123f203ffed9a85fa33aea7
2018-04-02 12:28:47 -07: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
Sunny Goyal 00ac920241 Simplifying app icon popup
> 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
2017-11-15 16:43:20 -08:00
Tony Wickham 2063ebd990 Adjust notification paddings
- 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
2017-09-06 13:37:00 -07:00
Sunny Goyal b72d8b2c8b Using common fling detection logic for notification and all-apps
> 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
2017-07-20 01:33:10 -07:00
Tony 67a25b3c4d Keep gutter aligned when removing notification footer
Bug: 63262764
Change-Id: I94e7978dafc04fc2673a9bb8c6d24ff20641416f
2017-07-06 08:28:33 -07:00
Tony Wickham aa2272f81c Popup visual changes
- 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
2017-06-27 19:43:18 -07:00
Tony 887bd1fe1a Show more shortcuts when last notification is dimissed
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
2017-06-15 16:21:34 -07:00
Tony Wickham 47ab9b1fc5 Generalize findContrastColor() to work for dark backgrounds
Previously it assumed the background was lighter than the foreground.

Bug: 62380473
Change-Id: Icd53750a2f9181890c8b9c62721d07946e115e99
2017-06-06 17:38:57 -07:00
Tony Wickham 90038ebab2 Add support for popup dark theme
Bug: 62380473
Change-Id: Ib22e9b82841bf10b7f139638f268f0a878e3c6b9
2017-06-06 16:34:20 -07:00
Tony acaf5b3a37 Remove gap between popup items
- 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
2017-05-31 15:11:43 -07:00
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