Commit Graph

59 Commits

Author SHA1 Message Date
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 0b0847b272 Fixing taskMenu and taskView clicks in fallback activity
> Extracting common methods from Launcher & DragLauncher to base classes
> Remoting some dependencies on Launcher and using the base class instead

Change-Id: I121cacf8a14190b4703cda60bdeb4f79eee69ded
2018-03-15 17:29:43 -07:00
Sunny Goyal 8a2a63b3f0 Moving click and long click handling for items from launcher to separate class
Change-Id: I1d12862205f7fa7f3671ff351e66dba58bb430e2
2018-03-08 15:21:42 -08:00
Sunny Goyal 02424b20f3 Adding a horizontal popup when when workspace is longPressed
Change-Id: I5b3c48262c246bfe53e0010ca89c820f42503eef
2018-01-19 15:11:10 -08:00
Tony Wickham 49556b1f11 Fix regression with popup refactor
System shortcuts used to be a child of the popup, so we were
telling the parent to close; now the popup should just close
itself.

Bug: 71517074
Change-Id: I5c359f1169fee155790a30b6ed4a0464ef8fc043
2018-01-16 15:17:28 -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
Tony efacffa08a Fix popup container alignment issues
- Arrow did not line up with the icon when right aligned
- Popup was always centered horizontally in RTL instead
  of aligning with the icon

Change-Id: I90e065d0b0c1c59166e5c2e5de5e6cff9126ee6f
2017-12-22 13:54:08 -08:00
Sunny Goyal d0030b05f5 Adding placeholder method for compat implementations for Accessibility manager
> Moving some utility methods to the compat class

Bug: 69611105
Change-Id: Ide0cab0b926d7bc03617fc568d2a2b429ee00cd9
2017-12-08 16:09:45 -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
Sunny Goyal 1797af41d1 Cleaning up drag state management.
When the drag is started, the UI automatically goes into spring loaded mode. On a successful
drop, it is the responsibility of the {@link DropTarget} to exit out of the spring loaded
mode. If the drop was cancelled for some reason, the UI will automatically exit out of this mode.

Bug: 34692289
Change-Id: Ic611739a43bb8d9279b587aaee3039326c143e8b
2017-10-16 13:06:52 -07:00
Sunny Goyal 10a1bd0e65 Converting PopupContainerWithArrow into a base class so that it is easier
to create other types of popup

Bug: 67585158
Change-Id: I966ae7bb90f941951b26feaf71b3ea30c3f3c0cc
2017-10-10 10:28:05 -07:00
Sunny Goyal 1ce9c476f7 Removing some methods from the DragSource
This makes is easier to create new DragSource and sets up
proper default values in DragOptions

Change-Id: I6cb0b1df41b9730cf29f785fe85fe7f0b573ee3a
2017-10-03 16:18:46 -07:00
Sunny Goyal 3792096688 Allowing the widgetBottomSheet to be dragged
even when the touch is started from outside the panel

Removing various instanceOf checks in onNewIntent and onBackPress
and moving all the corresponding logging in the FloatingView
This simplifies handling of panel specific log and avoids
missing a particular panel type in the if-else statement.

Bug: 64751884
Bug: 64751923
Change-Id: I98f5aae18560a64be73c9efcf495479740d49a00
2017-10-02 16:18:52 -07: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
Hyunyoung Song 27790352a3 separate enforceContainerWithinScreen logic to a private method
Change-Id: Ifcf8c6a79286269646a845b5be6cfa92b64fcbcc
2017-07-20 13:57:23 -07:00
Hyunyoung Song 435a35dec3 PopupContainerWithArrow should align correctly in RTL mode
Test: see attached screenshot in the bug

Bug: 63721807

the horizontal gravity enforcement has to be done on (left+translateX) value
and not just translateX. Hence that enforcement has been moved to onLayout.

Change-Id: I9b6502dc55d59e04a406ebe71ac3b649b31d6088
2017-07-19 12:35:11 -07:00
Tony 45cdfa78d4 Polish popup
- Remove divider between system shortcut header and shortcuts
- Slightly reduce padding between popup and icon
- Fix gravity to center in drag layer using x and y calculations since
  we use the y value to position the popup when removing notifications

Change-Id: I1cb10ed953d11cc0924d8ee70881a434cb748317
2017-07-05 12:32:16 -07:00
Tony d6573ed128 Tweak popup animation
- Decrease duration
- Add alpha fade in and out
- Remove arrow scale when closing, so that
  the reversal happens immediately

These changes help the popup feel snappier while also reducing
visual jank when moving icons (as the animation accelerates in
later and the alpha stays close to 0).

Bug: 62738635
Change-Id: Ic8af4e0e5bc00913ea713853997069e8b9c8f953
2017-06-29 13:43:35 -07:00
Tony 7308cde2ca Don't fade in text if icon is in hotseat
Bug: 63011217
Change-Id: Ie914fcdfd0bf36b0cf12cc54f4e93206aa1074bd
2017-06-28 13:47:18 -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
Mario Bertschler a3f91c9752 PopupContainerWithArrow accepting bubbletextview without icon being set.
Change-Id: I5f58c339c094b4a88adf27c2ecaa01ba052b2285
2017-06-22 12:00:07 -07:00
Tony Wickham 5a1ca5756e Adjust some sizes in popup
- Increase main notification height and pad text/icon bottom
- Reduce shortcuts height when there are notifications to 48dp
  - When the last notification is dismissed, animate back to 56dp

Bug: 35766387
Change-Id: I84f843c042137fdf93fa720802eb2f19337197b4
2017-06-19 18:42:46 -07:00
Tony Wickham 034d74da19 Merge "Show more shortcuts when last notification is dimissed" into ub-launcher3-dorval-polish 2017-06-20 01:36:55 +00:00
Tony 8f402808e4 Fade original icon's text in as popup closes
Bug: 62444131
Change-Id: If8f91d8455a5952d252f9cdd1b211afb5ee035c7
2017-06-16 17:24:54 -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 0ecf5bcfcb resolve merge conflicts of 7092db024 to ub-launcher3-dorval-polish
Test: I solemnly swear I tested this conflict resolution.x
Change-Id: I0f9ed3d42fcb04299c3c23d06629f855614c0538
2017-06-08 15:49:07 -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 90038ebab2 Add support for popup dark theme
Bug: 62380473
Change-Id: Ib22e9b82841bf10b7f139638f268f0a878e3c6b9
2017-06-06 16:34:20 -07:00
Tony Wickham 79b176e42c Fix visibility of notification footer divider
Now it is only visible when the notification footer is present,
instead of always being visible.

Change-Id: Ie85ff31918901115cdfe55b36e75aa80b43e7b13
2017-06-05 17:54:45 -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 17b7f9bdf4 Don't hide text in pre-drag when opening popup above icon
Bug: 38468930
Change-Id: Id03162af829a00442d1db0a93f7e9d8bcb998b1a
2017-05-24 10:50:41 -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 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 2fe09f24eb Move update popup header out of BubbleTextView
Now we update from Launcher, which is both more efficient (only run it
when badges update, not whenever BubbleTextView applies an ItemInfo) and
more logical/cleaner.

Change-Id: Ib77433d9489c29e9781b3a48de37de0e07b5ba07
2017-04-26 08:46:39 -07:00
TreeHugger Robot 0fa96ea2f6 Merge "Update icon badges to match spec" into ub-launcher3-dorval 2017-04-25 20:02:37 +00: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 a7e1c1c088 Only add widgets system shortcut if widgets exist
Before we were adding it in a disabled state, and then enabling it once
widgets were bound (if widgets existed for that app). Now we load all
widgets when launcher starts so that we can use the values for the
purpose of animating the popup container. Then, as the container opens,
we reload widgets/shortcuts for that particular app and add/remove the
widgets shortcut if necessary.

Bug: 34940468
Change-Id: I64bd009442d10d3d1f9a977bdedfdb639a7dd193
2017-04-20 15:10:38 -07:00
Tony Wickham 8ae09bc376 Merge "Slightly round corners of popup arrow" into ub-launcher3-dorval 2017-04-17 18:30:13 +00:00
Tony 58292674e5 Slightly round corners of popup arrow
Bug: 35766387
Change-Id: I8d2be54c977074dbcf0d5884f44347edd0217bb5
2017-04-17 10:25:49 -07:00
Tony Wickham ee82b035db Ensure system shortcut icons always appear in correct order
- Remove "|| true" that I accidentally left in from testing on a
  different CL
- Always reverse system shortcut icons that appear in the header of the
  ShortcutsItemView, so they are in priority order from right to left

Bug: 35766387
Change-Id: Ia7ac5a72eb2f6d3795e35bd044c426ef46fc0ccc
2017-04-13 15:31: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 26b1746593 Add support for system shortcuts in popup container
- Currently the system shortcuts are just widgets and app info
- As shortcuts, they live in ShortcutsItemView
- They are populated either as icons only (if there are deep
  shortcuts) or as icons + text
- Widgets are disabled until binding them is complete (we request for
  them to be bound on long-press now). We should revisit this.

Bug: 34940468
Change-Id: Ia51d002c3b3ede87658bdab57abfc3eeca1ed242
2017-03-30 16:35:56 -07:00
Tony Wickham 50e5165b78 Add WidgetsAndMore bottom sheet
- Contains two rows, one for widgets, and one for "configurable
  shortcuts" that have customization activities
- Extends AbstractFloatingView and uses VerticalPullDetector for
  touch interactions
- No way to show this currently; will add options to popup in followup

Bug: 34940468
Change-Id: Iab62c2cb89428f91119c9c86f9db886496c321fd
2017-03-30 15:48:53 -07:00
Tony Wickham 2f5bb16915 De-dupe shortcuts with the same id as the main notification.
- 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
2017-03-24 14:18:53 -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 3ce144b41b Add null check when populating popup
It was crashing when there were notifications
but no shortcuts.

Change-Id: I92e961e6186ef24736777855e114bd3245f7ac91
2017-03-01 17:14:28 -08:00