Commit Graph

259 Commits

Author SHA1 Message Date
Sunny Goyal 5686333117 Adding a utility class to cache views at an activity level
Bug: 122345781
Change-Id: I9a939e0b19c06c1089c1ceb515f8b97fb5dbb49e
2019-05-22 14:23:12 -07:00
TreeHugger Robot 2445ca0777 Merge "Fix bug where FolderIcon stays visible during swipe up to home animation." into ub-launcher3-qt-dev 2019-05-20 20:16:47 +00:00
Jon Miranda ae975a613d Swipe up to home into FolderIcon animation bug fixes.
- Fixes clipping issues.
- Fixes badge being shifted.

Bug: 124510042
Change-Id: I2520d963fb2041a049650c2b8c12ddb3de7b8d87
2019-05-20 11:10:25 -07:00
Jon Miranda e543818bb6 Fix bug where FolderIcon stays visible during swipe up to home animation.
This can happen when opening an app from a folder, and then immediately
swiping up back to home.

This happens because when we swipe up to go home, there's a race condition
where the folder close animation finishes and sets the FolderIcon to VISIBLE
right before FloatingIconView sets it to INVISIBLE.

To fix it, in OverviewState#onStateEnabled we call
AbstractFloatingView#closeAllOpenViews(animate=false). Then we added logic
to cancel any Folder closing animation (which there is,
from WindowTransformSwipeHandler#onLauncherStart) and to just close the
folder right then and there.

Bug: 132588097
Change-Id: I4379431815e7cbddede5ea0213fe9323f001484b
2019-05-20 10:01:15 -07:00
Hyunyoung Song d8c71598ee Make folder backgrounds opaque
Bug: 130451254
Change-Id: I3b15d97e44e4ccc2968cfb4402d2479cca958afe
2019-05-15 17:12:39 -07:00
Hyunyoung Song e751d90c44 Implement 3 shades of folder icon/container fill color
Bug: 130451254

Change-Id: I36d885a2b0247f1bb84cb98073459853ae723331
2019-05-14 10:15:11 -07:00
vadimt 1b383af652 Not using magic constants for navbar height
Change-Id: I6783b8a2ebb059ce35748d8c3e818cbe732ff40d
2019-05-08 17:20:34 -07:00
Tony Wickham e1cb93f957 Always place notification dots directly on adaptive icon path
- Calculate point on icon path nearest to top right corner, and
  use that as center for the dot
- Cleanup code related to dot offset

Test:
Set each style (different icon shape) and verify dot is in correct
placement for each of:
- Folders
- Icons in folders
- Icons in all apps
- Icons on workspace

Bug: 124414511
Change-Id: I036ed3677e8af222f00d4fad4a36a7e4d9b49ad9
2019-05-06 10:42:55 -07:00
Sunny Goyal 905262c1a7 Adding utility method to get adaptive icon scale
Change-Id: I5ff190c3b794bb13309375782ccd420e85b59091
2019-05-03 21:31:46 -07:00
vadimt 04f356fe17 Fixing jank in folder animation.
This continues ag/6410337

Bug: 69236787
Test: Manual
Change-Id: Iac9f7ab21bf3741846b9721d4c8235e8fc49f7fb
2019-05-02 15:40:18 -07:00
Sunny Goyal ae6e318711 Initial changes to creating a fake landscape Launcher UI
Workspace and hotseat are drawn in rotated UI giving the impression that the
device is in Portrait, even though it is in landscape

Bug: 131360075
Change-Id: I29c4068af25fd4dcf7039b9a45886e864a137977
2019-05-02 10:59:28 -07:00
Sunny Goyal 9589916418 ShortcutInfo renamed to WorkspaceItemInfo
Will get rid of ShortcutInfoCompat in a follow up cl

Change-Id: I7d7d9c938635f59b216290ba28bea9d0e0721a7d
2019-04-16 00:08:24 -07:00
Tony Wickham 9791bd1555 Swipe up on nav bar to go home from -1 and widgets
More specifically, any window (e.g. qsb search) or AbstractFloatingView.

NavBarToHomeTouchController now implements TouchController directly instead
of AbstractStateChangeTouchController, as it not only dealing with
launcher states. This makes it easier to override intercept logic to
handle cases like not having window focus, for example.

AbstractFloatingViews can createHintCloseAnim() to play an animation
hinting that it is about to be closed by swiping up. Widgets sheets use
this to pull back similar to the all apps transition to home.

Bug: 129976669
Change-Id: Ie157b978d9f1ee36d5fd32cea72ec02ce40878c0
2019-04-09 10:53:24 -07:00
Tony 5cb5e40855 Recompute folder icon drawing params before computing its position
Otherwise the returned position could be empty, leading to the crash
in the bug (for example).

Bug: 129474866
Change-Id: I0d300d8022b50f83221a84c09a59b597bfa291dc
2019-03-28 12:34:13 -05:00
Jon Miranda 6f455b583f Fix sizing of FloatingIconView so that it matches the workspace.
* Added a cross fade at the end for text and shadows.
* Animate in FolderIcon bg/dot/text after swapping.

Bug: 129297366
Change-Id: Ieeb5d7b8fb389a2f7ee263d38b3021ffdefefd93
2019-03-27 09:42:50 -07:00
Jon Miranda e6f3fa47d6 Fix bug where folder items preview remain in low res state.
- We update the ranks of all folder items after loading, to ensure there are
  no gaps caused by removed folder items. This also ensures that we load
  the high resolution icons for all preview items.
- FolderIconPreviewVerifier#setFolderInfo was not always called
- Init mGridSize with [1, 1] to prevent divide by zero error in case
  setFolderInfo is not called

Bug: 126268196
Change-Id: I856489968665a39303e2922c78cf90f2b3ee6ebb
2019-03-08 12:43:09 -08:00
Jon Miranda 69b35e0195 Fix app to folder icon animation.
- Needed to account for the preview bounds (similar to BubbleTextView icon
  bounds)
- Also needed to update the bitmap shift amount so that it is re-centered
- Moved ShiftedBitmapDrawable to its own class in graphics package

Bug: 123900446
Change-Id: Ifa9e3f688e55d017cf86a0285f5cdb1b014f01e6
2019-03-05 12:23:28 -08:00
Jon Miranda 1a49fb5733 Transform closing window to icon on workspace using adaptive icons.
With adaptive icons, we can have FloatingIconView match the shape
and size of the closing window, regardless of the icon shape.

FloatingIconView starts off as a rounded rect (same corners as task view)
and then morphs into the icon shape using FolderShape#createRevealAnimator
in reverse.

Decided to add FeatureFlag.ADAPTIVE_ICON_WINDOW_ANIM since there are still
some issues with folders, badges, and a visible jump when swapping the
FloatingIconView with the original icon.

Bug: 123900446

Change-Id: I94969eea6d5f4b932a84a11eb403611276042b46
2019-03-01 12:48:25 -08:00
Sunny Goyal bcadb7f4ba Changing some colors for folderIcon in dark themes
Bug: 111139480
Change-Id: I5b338c6faf61626a21f703da37b95466806cbbfd
2019-02-05 14:45:51 -08:00
Sunny Goyal 8c48d8bea6 Changing min sdk to 25
Change-Id: I0d28069967854357ca755bf25dec19d4979bdecf
2019-01-29 11:29:52 -08:00
Sunny Goyal 90e3fbca62 Updating folder shape when icon shape changes
> Removing unnecessary threading logic and the code was running on main thread anyway

Bug: 118757840
Change-Id: I7a012db5a0dbe2c23bd6ff2cd39679a803731ee8
2019-01-23 16:43:26 -08:00
Sunny Goyal 5bc1846375 Adding support for putting arbitary attributes in InvariantDeviceProfile
This would allow derivative projects to profile profile specific
customization options

Change-Id: Id4703dc54d649a8d8a930f72c836c4ec23ffc45d
2019-01-07 15:26:21 -08:00
Sunny Goyal 9fc5ae7fa7 Moving folder shape logic definition to xml
Adding support for storing custom parameters in shape definition

Change-Id: I06f04f1836b337f8cc0ab2ad8c893bb03ae9c794
2019-01-07 12:35:35 -08:00
Tony Wickham 7120490595 Merge "Rename "badges" to "dots" where appropriate" into ub-launcher3-master 2018-12-05 21:19:57 +00:00
Sunny Goyal c6726f5c36 Merge "Adding support for launcher preview generation" into ub-launcher3-master 2018-12-05 09:10:17 +00:00
Sunny Goyal ef92b82778 Adding support for launcher preview generation
Creating a utility class which generates a launcher preview
for a provided InvariantDeviceProfile

Bug: 118758696
Change-Id: I0aebeb6eed37f72edd1cc305e58eece305aae3ff
2018-12-04 20:19:14 -08:00
Tony Wickham f34bee819c Rename "badges" to "dots" where appropriate
This will reduce confusion with the other "badging" concept we use for,
e.g. work profiles. It is also consistent with the external name
"notification dots".

Change-Id: I2a2c9d96dc0d6284eb0c48adc78a856271caad4d
2018-12-04 10:46:40 -08:00
Tony Wickham 8912b04c80 Move BadgeRenderer to iconloader library
- Rename BadgeRenderer to DotRenderer
- Move drawing parameters to new class DrawParams
- Add leftAlign param
Change-Id: I69de56c13280ba5e7e1ea3868c23edfac01012e9
2018-11-30 16:28:56 -08:00
Sunny Goyal ab770a10b9 Making CellLayout inflatable without LauncherActivtiy
This will allow creating cellLayout with a different device profile
or a different activtiy which can be used when displaying multiple
activities in multi-display or generating a preview for changing
display properties.

Change-Id: I386731d95e33c48bdef270ce9c0d3e9feefb6262
2018-11-20 17:11:13 -08:00
Sunny Goyal 066ace1b88 Replacing setAlphaComponent with setAlphaComponentBound for better animation interpolation
setAlphaComponent throws expetion for invalid range, which can cause brashes in overshoot
interpolation

Bug: 118390004
Change-Id: Ic9c5ff3d660eba353b982c4c47ccfaf329b3e296
2018-11-06 09:59:03 -08:00
Sunny Goyal d0ae492e9f Changing the FolderIcon shape based on AdpativeIcon
> Creating an abstract interface to represent a folderIcon shape
> Defined few common folder shapes
> Picking the folder shape closest to the AdaptiveIcon shape

Bug: 111433118
Change-Id: Ib35eddbdd6692767aa9dbe6aae1a379a68cc456a
2018-10-17 12:14:41 -07:00
Tony Wickham 6a71a5bd77 Add undo snackbar for deleting items
- Add methods to ModelWriter to prepareForUndoDelete, then
  enqueueDeleteRunnable, followed by commitDelete or abortDelete.
- Add Snackbar floating view
- Show Undo snackbar when dropping or flinging to delete target; if the
  undo action is clicked, we abort the delete, otherwise we commit it.

Bug: 24238108
Change-Id: I9997235e1f8525cbb8b1fa2338099609e7358426
2018-08-30 16:22:25 -07:00
Tony 4043b05cde Cancel badge scale anim when setting new badge scale
Otherwise it's possible the badge scale animation will override the
non-animated set value, which could mean a badge continues to show
even though it shouldn't:
- Animate badge scale to 1
- Before animation finishes, set badge scale to 0
- Badge scale ends at 1, since animation wasn't cancelled, so we
  continue to show it indefinitely

Also exported some properties in case a similar issue arises.

Bug: 111791593
Change-Id: Ia1a417239b909886adf9351e9bdc06a3b22d8b73
2018-08-17 13:47:39 -07:00
Sunny Goyal d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
TreeHugger Robot b6ecb17356 Merge "Removing Launcher activity dependency on various animations" into ub-launcher3-master 2018-08-13 20:03:33 +00:00
TreeHugger Robot d6ba50412b Merge "Adding overscroll in recents view" into ub-launcher3-master 2018-08-10 22:53:49 +00:00
Sunny Goyal b7b0135c93 Adding overscroll in recents view
Bug: 109828536
Change-Id: I4fe94bd157c2b65f80604751e6f0f7d5d81d058d
2018-08-10 22:41:20 +00:00
Sunny Goyal 849c6a2b18 Removing Launcher activity dependency on various animations
(This cl reverts change-Id: I455edcd17bda83ab51c2c04fa40e66097a4d6975)

Various animations were marked for cancellation when launcher activity is
destroyed. This this does not work with multiple activities (Launcher,
fallback recents, shortcut confirmation). Also since launcher activity
handles configuration changes, the activity is not destroyed often.

Instead associating a target with various animations which automatically
cancels the animations when that target goes away.

Change-Id: I64cd095a28075561a9e20c9dcdeb9f90c18e1047
2018-08-10 13:31:46 -07:00
TreeHugger Robot 52b28f0926 Merge "Adjust notification dots" into ub-launcher3-master 2018-08-09 22:19:57 +00:00
Tony 05d98c246b Adjust notification dots
- Use consistent bounds for folders as other icons, to ensure dot
  has a consistent placement (moved right+up a bit)
- Strengthen the ambient shadow to improve contrast
  - Increased blur size and opacity
- Use a dark gray rather than black for dots on dark folders

Bug: 73331123
Change-Id: I888f4645d3a48465af93f5003dda8f8b7c3129f3
2018-07-23 16:41:45 -07:00
Jon Miranda aeb4dd026c Fix bug where default folder name doesn't change when locale changes.
Bug: 78611156
Change-Id: I25c67fc5ebc3edc2d6090f0da0e37bf2e4c07cbf
2018-07-12 12:41:52 -07:00
Sunny Goyal e598699dc5 Remove custom focus logic
Using the system logic for focus handling so that partially visible contents are
properly handled, eg in overview only hotseat is visible
This does changes the focus logic on workspace when both icons and widgets or different sizes
are present, we may consider reviving (parts of) this logic in the future

Bug: 80189843
Change-Id: I874e284e0a62b579c24d36db9b74da3de7a7e367
2018-05-23 10:54:18 -07:00
Tony Wickham 52c1b66f46 Go back to previous state when hitting back from discovery bounce
Normally when you hit back, we just close the floating view if there
is one. This makes less sense for DiscoveryBounce, since it doesn't
feel like a different state even though it's technically a floating
view. So in that case, don't consume the back press; let launcher
handle it to go to the previous state.

Bug: 80075741
Change-Id: I7270b61be70509cb2101400a12929478a5d082aa
2018-05-21 16:01:49 -07:00
Sunny Goyal de75321542 Fixing wrong accessibility focus when opening a floating view
> Using common logic for announcing a floating view for widgets and folders

Bug: 79091095
Bug: 79748886
Change-Id: Ibb3fe48e68e724f50d69f51a03d3b35ad0baf625
2018-05-16 13:11:00 -07:00
Jon Miranda 83337f9e8e Call close for AbstractFloatingViews that were removed while still open.
I'm not sure how/when this case occurs (perhaps during some transition/state
change), but manually removing the floating view matches the symptoms in the
bug.

Bug: 72996404
Change-Id: I1e7c1a338fcd16c8e07b3c49fb9c9b2097eb2708
2018-04-25 11:25:40 -07:00
Sunny Goyal ed7a6937cb Unifying and maintaining the text-alpha and text visibility property
Bug: 76228194
Change-Id: I70be5f9fd22c53864a9a0308f256baa7dc1f3ab7
2018-04-17 20:08:10 +00:00
Jon Miranda 591e360803 Match folder icon size to normalized circle icon size.
Simplifies the logic for calculating the folder icon size,
and ensures consistent sizing in different launcher viewing modes.

Bug: 74078689
Change-Id: I5cf4474fd81e55aa50b056418c95533801f07d48
2018-03-28 12:46:48 -07:00
Tony Wickham b65040ac7b Fix back button not showing in all floating views
We only show the back button when adding the floating view to the
drag layer if it is already "open". A couple of floating items
(folder and options popup) added first then set mIsOpen, causing
the back button to not appear. (We have to check that it is open,
and not just on the drag layer, because we want to get rid of the
back button when changing to some states such as spring-loaded. If
we only checked if the view was present, it wouldn't hide if one of
the floating views such as folder or shortcuts was animated closed.)

Bug: 76169527
Change-Id: I0dff6d2e3424eab72d47dccc42cc703a0fb0141b
2018-03-23 16:22:06 -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 7c7be8c20a Simplifying options popup and overview handling
> Removing support for page drag-n-drop from pagedView
> Removing Overview UI from Launcher3 without quickstep and using options popup instead
> Removing touch handlers from CellLayouts and showing options popup based on workspace long press
> Excluding touch outside inset when showing the popup

Bug: 74136505
Change-Id: I34c2a7ff58452db26f5d1a85d554be40fc75f2b8
2018-03-13 12:57:32 -07:00