- Offset taskbar to be halfway between QSB and bottom of the screen.
- Add taskbar translationY state property to animate when going
between launcher and an app.
- Draw the taskbar background in TaskbarContainerView instead of
TaskbarView so it stays pinned to the bottom as TaskbarView
translates up. If we want to have a background behind the
taskbar on home, this should move back to TaskbarView so that
the drawing can be shared by mTaskbarViewOnHome.
Test: visually on home screen, translates when entering and
exiting an app
Bug: 182981881
Bug: 171917176
Change-Id: I44f8b2c770074f7f015dcccbc2befd3453811193
Removes recents-related code including the divider between it and
hotseat.
Test: manually on device
Fixes: 184366189
Bug: 184789479
Bug: 171917176
Change-Id: I7776c98659ded70f53a49befddcd23c8353c6440
> Merging overview and all-apps scrims into a single View
> Decoupling TaskMenuView from taskView
Bug: 184676497
Test: Manual
Change-Id: I49f7249eaa2a800054385ab8e73a441d6a1b5e16
Update Clear All and Empty message to use primary color, not workspace
color, as they are drawn on floating background now, not wallpaper.
Bug: 184260454
Fixes: 184260454
Test: local build, flash and run
Change-Id: Ie8ef4b7ace3053c2068a27b7cbedbbb039fc36d8
Preview video attached to BR
Key changes:
- SearchUiManager#getScrollRangeDelta is removed. AllApps initial vertical offset is now controlled by deviceProfile.allAppsOpenVerticalTranslate.
- ShelfScrimView is renamed to AllAppsScrimView. Scrim no longer does vertical translate with AllApps open. Shelf/overview related code removed.
- Scrim and AllApps content transition are animated with different interpolators. Scrim color is a blend of accentColor and allAppsScrim with proportion determined by progress*TINT_DECAY_MULTIPLIER
Bug: 183001675
Test: Manual
Change-Id: Id6bde7ee65c55c83c2973fe41f458b9364d39ecd
- calculateTaskSize now returns the Rect for focused task
- Introduced calculateGridTaskSize for non-focused task, and translate non-focused tasks to fit the grid
- As Task Rect is now vertically centered, removed ClearAllButton's grid vertical translation
- When ClearAllButton is not shown (e.g. quickswitch), make sure ClearAllButton's scroll won't be used when page snapping. This happens when page scrolls are translated so they're negative.
- Added back ActionsView when task is focused below the TaskView, which become invisible as you scroll
- In Modal state, move the ActionsView down so it won't cover the TaskView
Bug: 175939487
Test: manual
Change-Id: Idfa94a51f856418adc0503cf04211dcb4b1814fe
Also required updates to colors and status bar icons to match with new
color.
Bug: 179922117
Test: local build and flash on two devices
Change-Id: Ibec54107f52c01f125e6d100abe32434f2067b71
- Grid scaling has problem that scales task icon and menu, which makes it hard to control icon size and text size in the manula
- Replaced the whole concept with dedicated Task size calculation in grid layout
- Support different icon size in TaskView in grid and removed task_thumbnail_top_margin
- Removed grid progress in TaskViewSimulator as well
- Refactored how ClearAllButton scroll and translations are calcualted to align clear all properly in grid
- Make page center calculation aware of PagedView pivot and scaling
Bug: 174464863
Test: Manual on two screens
Change-Id: I47b13ef6e55c6e16c52ea04225f5bde02ed82fc2
Adds dynamic sizing to margins around task view, also creates space in the
overview actions view in landscape to make space for the proactive chips if
needed.
Bug: 182529089
Test: Local build and run on two devices
Change-Id: I447de3564a3249ede4e8e8a4d3e5d1c177f6be61
Instead of keeping the Taskbar window showing above the home screen,
we now integrate a copy of TaskbarView directly into Launcher's view
hierarchy. Most TaskbarController calls apply to both TaskbarViews
(mTaskbarViewInApp and mTaskbarViewOnHome), except for calls related
to Hotseat, which only apply to mTasbkarViewInApp given the real
Hotseat will be showing with mTaskbarViewOnHome.
More cleanup will follow this change.
Test: All taskbar interactions (e.g. drag and drop) continue to work
Bug: 182512211
Bug: 171917176
Change-Id: I0f0b124f652daa85f866e1df8f9e2981540331a0
TODO:
* Extract out common elements in TaskShortcutFactory.MultiWindowFactory
for commonalities between new and old way of
invoking split screen
* Integrate with WM APIs (b/182002789)
* Write tests for SplitSelectStateController
Bug: 181704764
Change-Id: Ice35adb4ea82897f5e2433dc9b93a549f3d511b5
- Seamlessly show real hotseat and hide taskbar hotseat, while
keeping rest of taskbar visible
- Update MultiValueAlpha to allow for taking max alpha instead
of blending, and use that for Hotseat
- Fix folder open bounds on home screen when taskbar is present
Test: Open folder from taskbar on home, can drag out items
Bug: 182079330
Bug: 171917176
Change-Id: I7c1983e3219b1341cf233260f0ccac9051c4dc14
This change spaces out app icon and proactive row as well as removing
the clipping from task snapshots.
Bug: 179922117
Test: Local on two devices
Change-Id: I5075b6dd7895cb40cdd59495fd27e4153c9cc2ea
- Add translation to align task into top right/left corner of grid rect
- Also updated grid padding according to mocks
Bug: 174464863
Test: Launch overview, launch overview from app, launch into app
Change-Id: Ie856f9c43ebf35f5e58b5d125ff1754ad7bc0160
Also removes fake shadow from TaskMenuView as not required in new style.
Bug: 182276195
Test: Run on 3a and 4
Change-Id: Iadf89e30e56d8d7419b1e6c9550bb1b2bf3d5c49
- Introduced gridProgress to RecentsView/TaskView ofr animating into grid
- Introduced gridProgress dependant translation and scale properties in TaskView
- Animate running task into grid with TaskViewSimulator
- Remove overview actions (for now) but keep clear all button in large screens
- Adjust ClearAllButton translation to acoomodate for grid
- Use screen width +-50% to calculate task visibility
- Use the position where TaskView is on screenEnd as pageScroll
- TODO: Handle separate recents activity
Doc: go/foldables-launcher-overview
Video: http://dr/file/d/107Aydii1LoFCwP63nWG3Twr2PBDE5ZgD/view?resourcekey=0-aUjdnx8ezimS9tmAgao9ag
Test: Test Launchering overview and launching overview from apps with folloiwng combination:
- large / small screen sizes
- portrait / landscape
- thumbnails from different screen sizes / orientations
Bug: 174464863
Fixes: 181509346
Change-Id: I4b691cde774f2e37532b68ba83c6eed399f2332e
- Add TaskbarActivityContext which allows shared Launcher elements to
"just work" using existing generic ActivityContext.
- TaskbarContainerView extends BaseDragLayer<TaskbarActivityContext>.
- Inflate FolderIcon and Folder using TaskbarActivityContext to be
shown in TaskbarContainerView.
- Use TaskbarActivityContext's DeviceProfile to determine icon size
instead of overriding in styles. This also ensures that normal
BubbleTextView icons have the same size as FolderIcons.
Test: Place a folder in home screen hotseat, ensure it shows up in
taskbar and can be opened, and that apps inside it can be launched
or dragged.
Bug: 171917176
Change-Id: Ic25d2f84bcd7e3399c88989305ea565497c030d9
New mocks have increased padding between the tasks.
I think we might need to fold some of these size calculations together
eventually, but this should be ok for the moment.
Bug: 179922117
Test: Local build and run
Change-Id: I4b5186d36012e80d55fae791e0c151c3112eecd1
The buttons send Intents to the designated app (specified by
niu_actions_package) to do the following:
Listen - Read the contents of the screen aloud
Translate - Translate the contents of the screen
Search - Perform a visual search on the contents of the screen
The Intents also include (via URI) the screenshot of current app used as
a thumbnail by Recents.
The feature is controlled by the enable_niu_actions flag, set to false
here. Both this flag and the niu_actions_package String must be set for
a given Launcher to use these buttons.
Bug: 177955244
Bug: 177955748
Test: Manual (enabled on LauncherGoGoogle and sent Intents to demo Lens
app)
Change-Id: I3d1f870bb176ed0cbae637a45c072bd8acac1d4b
- Also adds a divider between Hotseat and Recents
- Dedupes Recents from Hotseat
Test: Open some recent tasks, ensure they are deduped
from Hotseat and also handle < 2 tasks.
Bug: 171917176
Change-Id: Ia782c6ccbcda94cfd844aad04dc3d25a3f072c2b
- Long clicking a BubbleTextView in Taskbar will start a system drag
and drop operation, setting the original view invisible meanwhile.
- Defer gesture navigation when starting over a Taskbar item, and
cancel any started gesture if a Taskbar drag and drop starts.
Bug: 171917176
Change-Id: If5049071fbf1755f545ee937daa4edabd869f00d
In TaskbarView#onTouchEvent(), which is only reached if a Taskbar
icon didn't already consuem the event, check each child to see if
the event occurs within a 48x48dp bounding box, and delegate the
event and subsequent events to it until UP or CANCEL.
Bug: 171917176
Change-Id: I7afafe0835828ab9213ec6abfe4e88ad7b9af3c4
- Currently supports WorkspaceItemInfo (e.g. normal app icons
including hotseat predictions and pinned deep shortcuts).
- Currently doesn't support Folders, Notification dots, or
long press.
Some technical details:
- Always allow HotseatPredictionController updates given the
Hotseat is always showing even when Launcher is stopped.
- Represent Taskbar Hotseat items as BubbleTextViews, to
allow for normal click handling etc. When the hotseat is
updated, we reuse the same BubbleTextViews that were
initially inflated, and just reapply the new info.
- Add new BubbleTextView iconDisplay for Taskbar, to allow
for different treatment such as icon size.
Bug: 171917176
Change-Id: I325eb39051f2dc69228b39b5c40ed0cbdad8e200
Hookup notifyEvent for metrics, on device intelligence.
Bug: 178454668
Bug: 178455221
Test: manual (See attached screenshots in the bug)
Change-Id: I652b4f2b0644a4726ccc3e01ce4c945a719f96a8
Signed-off-by: Hyunyoung Song <hyunyoungs@google.com>
- Allow SearchAction to be represented by SearchResultIcon and SearchResultIconRow
- Fix tap enter to launch regression
- Remove Plugin Pipeline
Bug: 177223401
Test: Manual
Change-Id: Id1d445f6af3f80f840d567165051188c78230ed0
Setup architecture for separation between aosp and quickstep search as setup for switch to android.app.SearchTarget
Bug: 177223401
Test: manual
Change-Id: Iefd069a34d5e5551bf731e9171958e93377774aa
Move all the logic that calculate the app open float properties
to a separate class.
This is in preparation for the new app launch properties.
Change-Id: I1a008b2ea1379cbf667c5ad3ad58ece04bd88185
Giving the gesture nav tutorial sandbox environment a more accurate look and feel requires the ability to inject mock drawables. The choice of drawables should go to TutorialControllers.
Bug: 175019879
Change-Id: Ie5b03b3fa07b017c0596a58dedf65d3e866a0727
This shortcut allows users to initiate peer-to-peer app sharing from an app's long-press menu on the home screen. It does so by passing an intent to the specified component. In this base implementation, that specification in config.xml is left blank, and the button will not appear. In GMS Launchers such as LauncherGoGoogle, the config should be set to point to Nearby Sharing.
This also establishes Launcher3QuickStepGo as a distinct subclass of QuickstepLauncher instead of merely a build configuration.
Bug: 157515296
Bug: 174286192
Test: Manual (tested on local wembley devices)
Test: m -j RunLauncherGoGoogleRoboTests
Change-Id: I826bd03721d2e7e963b15d5958e9a18a1cc16f1d
Test: manual, presubmit on the source branch
x20/teams/android-launcher/merge/ub-launcher3-master_master_6925377.html
Change-Id: I928b100c8f41abff34047df69d988622123f9939
Test: manual
Added a Sandbox mode tutorial fragment and controller. This fragment allows the user to try all the gesture commands and receive feedback, whether the gesture was successful or not.
Preview: https://drive.google.com/file/d/1Qmn71ZHMOrv2XjUngb6S4W5jOaBIvF1_/view?usp=sharing
Change-Id: I7d28ce25daa38fa6d05b18d43d02b77c1fc8a264
Test: manual, presubmit on the source branch
x20/teams/android-launcher/merge/ub-launcher3-master_master_6834159.html
Change-Id: I4350d0ddedd107d7005625480aefda19e5d06ba2
- Compute velocities as px/ms from VelocityTracker, instead of
computing px/s and dividing by 1000 in various places
- Use quickstep_fling_threshold_speed in TriggerSwipeUpTouchTracker
instead of ViewConfiguration#getScaledMinimumFlingVelocity
- Check MotionPauseDetector to determine whether a fling is
sufficient to escape after pause, in additon to above threshold
Bug: 159089437
Change-Id: Ib0fae7804e1f008f3b6ab37d6c463352c224b0e4
Bug: 165869384
Bug: 161599758
TL;DR;;
Also introduce some additional methods for
- all apps start and stop
- metrics logging
Change-Id: I666ff5a27a5f8befdb0db483ebb07344a90e96bc
Test: manual, presubmit on the source branch
x20/teams/android-launcher/merge/ub-launcher3-master_master_6799015.html
Change-Id: Ib9d52ba333f2982d2420cab42a0935e8e8a303b3
Test: manual, presubmit on the source branch
x20/teams/android-launcher/merge/ub-launcher3-master_master_6767682.html
Change-Id: I5e9c73a7ac3033fe82006c4bd72824f56b8988f8
We no longer support the "peeking" model where the shelf would
peek on motion pause from an app and overview would peek on motion
pause from home. Thus, removed/inlined the following:
- FlingAndHoldTouchController (merged into its sole subclass
NoButtonNavbarToOverviewTouchController)
- ShelfPeekAnim
- OverviewPeekState
Change-Id: I066a3ad2636fde4786089c922b896bf1e03361fd
Separate out the overscroll plugin from the task overlay.
These two classes aren't really related.
Bug: 162012217
Tested: checked plugin still works
Change-Id: Id89eff1ad2ae9766efaaecd8cfc66d6521b9ca8c
Handling swipe-down/swipe-up gestural in device bottom area
for one-handed mode
1) The regsion is larger than gesture navigationbar view
2) One handed gestural in quickstep only active on NO_BUTTON, TWO_BUTTONS mode
3) One handed gestural only support on portrait mode
Bug: 150747547
Bug: 154189137
Bug: 156988988
Test: make and install
Test: manual enable one handed mode and swipe down to trigger
Test: manual start one handed and rotate device
Change-Id: I7b2447bfb2fe4082c95176b62934b98077b84920
(cherry picked from commit 7d375e31fe)
> Using a separate View as icon, instead of the taskView
> Updating swipe animation logic to abstract out FloatingIconView dependency
Change-Id: Ib466262afead11ebe4ca035d589f0382c37e3e97
- If a user has mostly predicted hotseat, show a snack bar. otherwise, show migration option.
- Guard onboarding activity with permission `com.google.android.apps.nexuslauncher.permission.HOTSEAT_EDU`
Bug: 158569583
Test: Manual
Change-Id: Id0c1c812233fcf288a2f49848720199dedd2015d
Instead, adds it to the gesture-exclusion activities
to prevent normal gesture handling.
Bug: 148542211
Change-Id: Ie04d2e71346a0c039e73fcc386cedc1b74fadadb
Doc: go/hybrid-hotseat-tips
Issue 157683315: for fully populated hotseat, count returns to home screen and show discovery tip if Tip action was not tapped.
Issue 158301717: Don't use cached items if client has predicted items.
Test: Manual
Change-Id: I4747a1148caa62a6262fb6592d5185bdf216ede6
- Creates a backup table `hybrid_hotseat_restore` and copies current workspace layout before hotseat migration
- restores to back up when user turns off suggestions and launcher receives empty predicted items
- deletes hybrid_hotseat_restore table if there's a layout change
Test: Manual
Bug: 157688471
Change-Id: Iaf7ddb33799493d36dbcd12408b57224162221d9
Extracts fake task view animation logic to
SwipeUpGestureTutorialController, which
Home and Overview controllers extend.
Fixes: 157945497
Change-Id: Ibd1c129c57e9bee8db62baae455ca1bd9df114c7
The "TaskView" morphs as you drag up from the
nav bar, and transforms into a "home icon" or
final "TaskView" when you release your finger.
If you cancel the gesture (e.g. drag back down),
the view simply fades out and provides a hint
to swipe straight up.
Demo: https://drive.google.com/open?id=1NXlO1W6IhLoX0k2K6b-QZ5IXp0o7OYqO
Bug: 148542211
Change-Id: I3d5e9a45fcadc6a498941ea17813b9487720a504
Handling swipe-down/swipe-up gestural in device bottom area
for one-handed mode
1) The regsion is larger than gesture navigationbar view
2) One handed gestural in quickstep only active on NO_BUTTON, TWO_BUTTONS mode
3) One handed gestural only support on portrait mode
Bug: 150747547
Bug: 154189137
Bug: 156988988
Test: make and install
Test: manual enable one handed mode and swipe down to trigger
Test: manual start one handed and rotate device
Change-Id: I7b2447bfb2fe4082c95176b62934b98077b84920
* Added FeatureFlag.ENABLE_ALL_APPS_EDU
* When user swipes up on nav bar three times and goes to hint state
consecutively, we show the new All Apps education tutorial.
* For now we block interaction while the animation is playing,
and we remove the view when the animation is done.
* Future CL will leave view up until user successfully reaches All Apps state.
Bug: 151768994
Change-Id: I903e0a3914d0558950ecb8cd714d97ddc10ca06b
(cherry picked from commit 517cec5344)
* Added FeatureFlag.ENABLE_ALL_APPS_EDU
* When user swipes up on nav bar three times and goes to hint state
consecutively, we show the new All Apps education tutorial.
* For now we block interaction while the animation is playing,
and we remove the view when the animation is done.
* Future CL will leave view up until user successfully reaches All Apps state.
Bug: 151768994
Change-Id: I903e0a3914d0558950ecb8cd714d97ddc10ca06b
- Support dismissing Compose via the reverse gesture from the appear
gesture
- Use Tony Wickham's ag/10204761 with some glue code to enable the
app below Compose panning in the same direction as the gesture as
Compose peeks in
- Add feature flag to use Compose hosted in a window (permits underlying
app panning)
- Use InterpolatingVelocityTracker to fix OtherActivityInputConsumer
processing swipes in the wrong direction ~20% of the time due to a bug
in VelocityTracker (see go/quirky-bubbles)
Change-Id: I3adbaee1763f21557fb628b60d03b0a03e7079ab
- This activity would create another task (no longer in the same
stack since we don't have activity type stacks) which was causing
the camera to be occluded sometimes, which then cancels the recents
animation
- Tweaking the animation slightly to match the movement of the closing
the activity back to the lockscreen
Bug: 156514461
Test: Launch camera on the lockscreen and swipe up to dismiss (repeatedly)
Change-Id: I8aaac22767288d7fbf183683276c50acaaf831d2
It will have a 30dp horizontal paddings and vertically in the middle of the screen.
Test: local
Bug: 155444014
Change-Id: I4f3d627008b2c114cc4921bf683919c6044926e4
Using horizontal padding 48dp to adjust the scale of the taskview and put it in the middle of the vertical space.
Test: local
Bug: 155444014
Change-Id: Iee6096baf18ae1106c24c83b4675abd4d3ff4d4f
Device policy or app secure surface policy mean that snapshot based
actions shouldn't work.
This is encoded in whether the snapshot is "real", the fake snapshot is
generated when policy doesn't allow captures.
Test: tested with Test DPC fake device policy app
Change-Id: Ib34e5a90ab58fb401d4516c531866d1c13569256
Revert "Compose gesture integrated fully into Nexus Launcher"
Revert submission 11035205-compose_gesture_fully_integrated_launcher
Reason for revert: Broke Launcher Android Studio build, quick switch, and home gesture doesn't work if Compose is open.
Reverted Changes:
I2d97b22d5:OverscrollPlugin refactored to use onTouchEvent
Ia19a55f65:Compose gesture integrated fully into Nexus Launch...
I65aa07ac1:Compose gesture integrated fully into Launcher
Change-Id: Ic05c47eb686b3942ba519e76db32977fc568844b
- Support dismissing Compose via the reverse gesture from the appear
gesture
- Use Tony Wickham's ag/10204761 with some glue code to enable the
app below Compose panning in the same direction as the gesture as
Compose peeks in
- Add feature flag to use Compose hosted in a window (permits underlying
app panning)
- Use InterpolatingVelocityTracker to fix OtherActivityInputConsumer
processing swipes in the wrong direction ~20% of the time due to a bug
in VelocityTracker (see go/quirky-bubbles)
Change-Id: I65aa07ac112db8bd89cec9acfa0ce2b6ebacd43f
> Linking actions view to state flags
> Creating multiple visibility channels that can be controlled separately
Bug: 153906903
Change-Id: I33d20f5fdc8bcdf0520dae3aac986548eb7e0058
- Adds a new launch target in Dev options
- Moves Back handling to the parent TutorialFragment
(so all Tutorials can handle it as necessary)
- Currently uses a dummy translating rectangle in
place of a proper hand animation
- No actual home gesture recognition is in place yet
Test: Manual
Bug: 148542211
Change-Id: Ic5a545eb9f5003914803272c8ffe367220d63336
Removes nested LinearLayout and RelativeLayout, as well
as a Space (instead just aligning buttons to the bottom).
Test: Manually verified result looks same as before.
Change-Id: I773079107be5f8862bae68c0f8f5bf6edff79ce8
- Extracts abstract classes for common functionality
- Renames some layouts, etc. to not be back-specific
- Consolidates more logic in the controllers rather
than classes like BackGestureTutorialTypeInfo
- Removes redundant TutorialStep enum (combining it
with TutorialType)
Still considering removing additional layers of
abstraction like the Fragment itself (instead
keeping UI within the Activity, which would still
be controlled by a TutorialController).
Test: Built and went through the Back tutorial to
confirm existing funcitonality was not disrupted.
Bug: 148542211
Merged-In: Id893869cb59609141dcdbdca01744d0f5952b546
Change-Id: Id893869cb59609141dcdbdca01744d0f5952b546
- Extracts abstract classes for common functionality
- Renames some layouts, etc. to not be back-specific
- Consolidates more logic in the controllers rather
than classes like BackGestureTutorialTypeInfo
- Removes redundant TutorialStep enum (combining it
with TutorialType)
Still considering removing additional layers of
abstraction like the Fragment itself (instead
keeping UI within the Activity, which would still
be controlled by a TutorialController).
Test: Built and went through the Back tutorial to
confirm existing funcitonality was not disrupted.
Bug: 148542211
Change-Id: I590af62f5fe3186a15deb5883e6ef6e6cb7e4665
Change-Id: Id893869cb59609141dcdbdca01744d0f5952b546
Make the overview actions container not limited by the taskview any more, and add left and right margin as 16dp to it.
Screenshot: https://hsv.googleplex.com/5938979251683328
Test: local
Bug: 153591867
Change-Id: I8056105fe4c03311e473bb317cba345048ec2203
- Change drawable to match specs, using ShadowDrawable to
add shadow when necessary based on workspace theme.
- New drawable is 18dp by 6dp; add support for different
width vs height, and decouple from workspace page
indicator (which is still 24dp tall).
Bug: 151768994
Change-Id: Icfd0eac197ebc4d1f5bb799f8538c4bd99d800cd
If a user has has 0 apps in the hotseat, jump directly to showing predications.
Otherwise show migration dialog as usual and if user rejects it, show different tips based on the number of available spots.
Bug: 142753423
Test: Manual
Change-Id: Ic5202caf074db2409f6468dd9373875571f3f3c1
(cherry picked from commit aa2aff5a8f)
If a user has has 0 apps in the hotseat, jump directly to showing predications.
Otherwise show migration dialog as usual and if user rejects it, show different tips based on the number of available spots.
Bug: 142753423
Test: Manual
Change-Id: Ic5202caf074db2409f6468dd9373875571f3f3c1
This is used to step through the "happy path" of the existing
back tutorial steps (right edge and left edge). Unlike in the
Pixel Tips app, the tutorial only continues if you perform the
gesture from the correct edge of the screen.
This also lays the groundwork to provide helpful tips if the
expected gesture is performed incorrectly, although currently
such gestures are just ignored.
Demo: https://drive.google.com/open?id=12S42mZQITGzIWnj7mP1L__PCOgAQcjgp
Bug: 148542211
Change-Id: Ib2e0b2ff7c021db48c96d58e1370fa2e93330912
WM is making changes which allows apps to maintain
their orientation independent of the orientation of
the foreground app. This allows recents to always start
in portrait even when the app currently running is in
landscape. This means we have to give the illusion of
a landscape oriented overview when user swipes up in
gesterual nav when launcher is started in portrait
configuration.
PagedOrientationHandler abstracts all coordinate specific
logic from Paged/RecentsView primarily, but also all
other dynamic calculations throughout launcher.
PagedViewOrientationState is the single point of exposure
to other classes that depend on those changes. The goal
is to also minimize holding state to allow for default
implementations of PagedOrientationHandler for all the
3p/Fallback classes. PagedViewOrientationState also
holds other data around rotation that isn't
specifically tied to view logic.
The fake landscape overview can be toggled with:
adb shell settings put global forced_rotation [0/1]
Fixes: 146176182
Change-Id: I65d8d4e9f92b93931cbe0053ccaf0cda8d2ffd6c
Starts by showing a notification, which will open a dialog
with options for users to keep their hotseat layout or fully
migrate to hybrid hotseat
Bug:142753423
Test:Manual
Change-Id: I178de612837ec8551f6776fa7c6fb6111bc7431d
include actual implementation of gesture tutorial.
Bug: 146173041
Test: adb shell am start -a \
"com.android.quickstep.action.BACK_GESTURE_TUTORIAL"
Change-Id: Ic166f0a10d8efc22d9684f089142de164ca24c90
import various resources from tips gesture tutorial
Bug: 146173041
Test: build and verify it passes
Change-Id: Iacea7ba1f2d15452e7442f2976633da7012fab35
Two changes for the latest Compose prototype:
1. Pass the identity of the underlying app to the Overscroll plugin.
2. Enable the Compose gesture over an app when there's a Recents extra
card plugin active (otherwise the current app won't count as the
rightmost one).
Some changes to the gesture:
- Angle decreased from 35° to 25° to remove overlap with
Assistant gesture
- Distance increased from 8 to 110 dp. 110 dp is 2x the Assistant
gesture and roughly the same as scrubbing into an app from Home.
- Fling detection added; uses same distance threshold, 110 dp.
- If a touch was recognized as another gesture, the touch will not be
reinterpreted as a Compose gesture, no matter what touch movement occurs
- Fixes issue where Assistant + Compose could both be triggered
- Fixes issue where scrubbing apps to the left, then back to the right,
would bring in Compose. i.e. if a touch down + touch movement starts
bringing in Assistant UI elements, then, the user moves their touch
below the Assistant angle, the Compose gesture will not start
being recognized
- Gesture length required for fling lowered from 110 dp to 40 dp, per
tuning with PM.
Bug: b/146508473
Change-Id: I414573d1a92684d1d992837a5f1df522346ec211
Add the actions to the task overlay to simplify code sharing.
Test: added unit tests for controller
Change-Id: Ie497a717b189903cc1834685f4b7d0cb926a7f52
There were two descriptions before, one saying Overview and the
other saying Recent apps. Now we always use Recent apps.
Bug: 145181858
Change-Id: I0d33fdccb30ad3eb56ebfb3d533ea01c2e7866c1
Adds ENABLE_OVERVIEW_ACTIONS feature flag and base factory. Requires an
implementation in overlay to show any actions.
Test: run locally with flag on and off.
Bug: 145628186
Change-Id: I1c36330464cc01e1e987ebfea1a9f451067598a5
Test:
1. . build/envsetup.sh && tapas NexusLauncher
2. ccdebug && cclogcat
3. launch from workspace any app that is also in predicted apps
4. verify in terminal it has correct predicted_rank
Bug: 143855018
Change-Id: I07a62f07057537a6c09384cf944bbc5aa5888d22
> Connect to a predefined content provider to get package specific action
> Add that action to shortcut menu and task menu
Change-Id: Ide5c09d04112e86c8e19c2f9e66c88c15b3fd04e
It was possible to invoke the assistant accidentally. This change
adds a minimum distance threshold before we register a fling (the
same distance as used for drag, 55dp).
Bug: 137106918
Test: manual; tested that accidental flings were much more difficult,
but intentional invocations were still easy to register
Change-Id: I40c8bd43c1a28c7b161467804a1e44746b8e92ef
- Peek in overview further, and with more overshoot
- Fade out and scale down workspace faster while swiping up
- Scale and translate workspace slower when letting go to enter
overview (so it doesn't zoom out at warp speed)
- Fade in all apps shelf sooner
Bug: 132455160
Change-Id: Ieafad0ccf9bb587889bc35d536627661db10e358
> Recycling DigitalWellBeingToast so that the view is not inflated everytime
> Simplifying DigitalWellBeingToast to use a single text view
> Adding support for footers in taskView without creating additional layout
Bug: 122345781
Change-Id: Ia889819b93eb8644532ea95c6767554874d5e2d1
When the container was present, but empty, it was showing it's background.
Bug: 133783088
Change-Id: I97b65435d66e9ced7f5487dc50a00665794f8fcd
Tested: manual
This ensures that they do not fight for the space. This is intended to
be iterated upon as we find solutions to some of the technical
challenges in the current POR.
Change-Id: I831e8797b16f28fe2cd742c96e9b7c916abf77a5
This replaces all other chips containers and causes minimal
layout overhead: It is strictly within the task itself and
causes zero jank or space issues.
Screenshots:
https://drive.google.com/corp/drive/folders/1-3ZNCJtWc9_cgmP1nNd8U1yvpCr6GGoq
Test: manual
Change-Id: I5e22a34c4dc1ac3e73c4d5c913befc2360cb388e
There are 2 conditions that we force the MotionPauseDetector to treat
the motion as not paused:
1. If we haven't passed a small displacement (48dp before, 36dp now)
2. If we have moved mostly orthogonally
These existed soley for the OtherActivityInputConsumer case, because
1. We only need the displacement requirement to make room for the
peeking shelf, which doesn't exist in other cases (it's already there on
home for example)
2. We can only move orthogonally for quick switch, which again doesn't
exist for other users of MotionPauseDetector.
So now instead of checking min displacement and orthogonal distance
inside MotionPauseDetector, we let callers setDisallowPause()
before adding positions to their MotionPauseDetector.
The only user visible change is that you no longer have to swipe up 48dp
before we allow pause to overview from home. This also paves the way to
using the same logic that determines to disallowPause to also detach
recents from the window while swiping up from an app.
Bug: 129985827
Change-Id: Ie690aa314da3260aff2209341a29638604f9501c
=> Using the drag slop (currently 10dp), which is the appropriate slop when comparing to the other gestures. Touch slop (which was being used for the Assistant) is only being used for gestures starting from the back button. This means that the delegate was getting triggered much too often (unfair slop competition). This prevents that.
=> Fixed additional bugs with the consumer delegate / sharedState; the shared state notion really only applies to the OtherActivityInputConumer, and it wasn't being propagated from the AssistantConsumer.In addition, the isActive() method is only being used as a proxy for whether or not to use the shared state, so clarified the naming. This fixes another case where touch could become completely stuck and you could no longer swipe up.
=> Modified the effective angle to be 90 degrees down to 20 above the horizontal.
=> Reduced the drag threshold to 55 dps.
=> Known issue: the time threshold requires motion events to be triggered. In practice, this works because the finger doesn't stay completely still, but we should add a timer to update the progress smoothly.
=> Removed pause detector.
Change-Id: Ie23e836c6d778914594774b830c3cd2e7b94eca4
=> bumping detectable region to 48 dp horizontal + vertical within corner
=> centering detectable angle; total 70 degrees (ie. btw 10 off the vertical and 10 off the horizontal)
=> pilfering touch events when slop is passed and assistant gesture is engaged
=> Fixing issue where we were incorrectly using “sharedState” causing incorrect handling of gestures subsequent to AssistantTouchConsumer being invoked (it was forgetting to clear it’s input state and hence reporting “active” when it wasn’t). The symptom was that gestures after the AssistantTouchConsumer would never actually move the active window even though state was being updated; you’d feel the Overview haptic.
=> Devices with large corner radii are still somewhat problematic as the initial touch down often lands high on the display (ie. above the 48 dp region).
Change-Id: I3d5761112f4cb8b7b1eee987de5afe9aee260304
Now that we don't show DWB toast for negative remaining time
Bug: 127689526
Change-Id: I3ced3ec0da9bd7b09df9b66b4ef608e87339573f
(cherry picked from commit e921bacfb8)
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
Add AnimationComponents.ATOMIC_OVERVIEW_PEEK_COMPONENT, and rename
previous ATOMIC_COMPONENT to ATOMIC_OVERVIEW_SCALE_COMPONENT.
When SWIPE_HOME is enabled:
- Overview lives to the left of Workspace, which is encoded in
LauncherState.NORMAL.getOverviewScaleAndTranslation().
- Create atomic animation based on ATOMIC_OVERVIEW_PEEK_COMPONENT
and OVERVIEW_PEEK state when swiping and holding from home screen.
Bug: 111926330
Change-Id: Iab6dbef7238dae15b3036d4b2a026b781eee6b4b
The reason is that there is no API that reports that an app is grayed.
Not showing DWB toast for apps that ran over their limit because they
shouldn't be in Overview.
Bug: 129067053
Change-Id: Ia04e17aa85ca015b7932496ad5e730fe61b4be69
The corners will be separated with quick switch by detecting at the slop
of the angle from touch down to that position. If over 30 deg then
assistant will be tracked otherwise quick switch while swipe up will not
be tracked at all.
Test: manual
Bug: 112934365
Change-Id: I6a3aeb1509d9706696a30ef1fba3ce7e3e5ec07c