> Extracting common methods from Launcher & DragLauncher to base classes
> Remoting some dependencies on Launcher and using the base class instead
Change-Id: I121cacf8a14190b4703cda60bdeb4f79eee69ded
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
> 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
- 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
> 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
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
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
- 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
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
- 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
- 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
- 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
- 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
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
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
- 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
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
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
- 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
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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