This ensures the taskbar hotseat aligns with the home screen
hotseat, as the latter supports empty cells. When in apps,
the taskbar still collapses the empty cells.
Test: Turn off hotseat predictions, remove some hotseat items,
and ensure the taskbar hotseat spreads out when on home.
Bug: 179886115
Bug: 171917176
Change-Id: I6047c3c5691685edcd8b3519e0305812b1295550
Remove hotseat space from workspace in DeviceProfile if
taskbar is present, and instantly swap between taskbar and
hotseat when entering SpringLoadedMode. To allow for an exact
handoff, we also scale up the TaskbarView such that its icons
match the hotseat icon size when on the home screen.
Note that this CL only supports dragging to the taskbar, not
out of it (which still triggers system drag and drop instead).
Test: In RTL and LTR, drag a workspace item and ensure hotseat
seamlessly swaps with the taskbar hotseat and allows drops.
Bug: 179886115
Bug: 171917176
Change-Id: Id6462075b9b0b66b06d51a78c9c0b3e11e83e84d
3 Button mode doesn't use recents animation so live tile would not work on 3 button mode before migration to recents animation happens.
Bug: 169694902
Test: manual
Change-Id: I9574c624f3d220834fa18e910637cd64460adb0c
- Use same swipe height as the tests use to get to Overview
- Use mStartState instead of fromState when determining
target state, to disallow swiping through states, i.e.
from NORMAL to OVERVIEW back to NORMAL in one long swipe
up gesture. Instead, now swipe up from NORMAL goes to
OVERVIEW and swipe up from OVERVIEW goes to NORMAL.
Fixes: 177316094
Change-Id: Ic8e9c8650d4cf11eec344802e3569413bfd5d7bc
(cherry picked from commit a24b9ff69d)
- 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
Sometimes tests aren't getting input events, and this could help
verify that the input monitor is being initialized.
Also remove obsolete check that could mean we don't initialize
when we should.
Bug: 180915942
Change-Id: I811cb432b456bc67d9e7ded945db36eb227f5071
Allow the launcher to provide a fill-in intent when starting a
PendingIntent splitscreen, and add a new method to allow the launcher
to request removing a task from the side stage.
Bug: 179176511
Test: Manually tested with the foldable launcher prototype
Change-Id: I23173b432ffe9c988744641170412aa9111cf55d
mLiveTileRestartListener is originally used to render the animation to launch the app that's the live tile app (for example, settings is the live tile app and we can launch settings from notification shade).
However, we don't want this callback to be triggered when the recents animation is finished / live tile is ended because the default animation in that case won't be skipped.
The other scenario that we don't want the animation to be rendered here is when the restarted app is not the live tile app. This can be repro'ed in this scenario - launch any app and go to live tile; launch settings; swipe up from settings; launch the previous live tile app. In this case, we rely on the mLaunchOtherTaskHandler take care of the rendering of this animation.
Fixes: 181372992
Test: manual
Change-Id: I41b63ce5163f1ac136bf8b5909907a3f84d937d8
Launcher tries to set the window transform on the recents animation
leash when it's settled on end target, which might conflict with
SwipePipToHomeAnimator and causes flash/flick at the end of the
transition. Simply skip the window transform since
SwipePipToHomeAnimator is the one solely responsible for updating the
leash in this case.
Bug: 179720719
Test: repeatedly enter PiP from ApiDemos with autoEnterPip enabled
Change-Id: Ia98675c21e3bd898cd11cf6ed97f6eaadcb11a42
This will help us avoid leaks, etc.
Also changes ENABLE_SMARTSPACE_ENHANCED back to a DeviceFlag
Bug: 181194850
Bug: 181077020
Test: atest NexusLauncherOutOfProcTests:com.android.launcher3.memory.MemoryTests -- --abi armeabi-v7a
Change-Id: I6f54af3e6b6302a073b8b7d448ff72b05a803d8f
We're initializing the correct values, but the callback only runs if
the value is different than the default value of 0. Thus we weren't
updating the visibility according to the value 0 in init().
Test: Initialize taskbar while launcher is resumed
Fixes: 180103543
Change-Id: I3f754cac59e2bd5ad542de050e8b4c3146d5eebf
This ensures it gets laid out to compute things like page scrolls.
Test: Repro steps to both bugs below
- Force stop launcher, swipe up slightly, hold, and let go to return
to the current task; ensure no jumps or jank
- Force stop launcher, swipe up and hold to go to Overview, ensure
no jump on motion pause
Fixes: 180736503
Fixes: 175064755
Change-Id: I44581f87600b02a3c9ddefcb8c94bb3845cd9152
- Handle back to back addTaskbarIfNecessary(). Specifically, handle
cleanup() before the previous add was attached. This is already
handled on WM side, just had to remove isAttachedToWindow() check.
- Add isAttachedToWindow() check to isViewInTaskbar()
Test: call addTaskbarIfNecessary() three times back to back, ensure no crash.
Fixes: 180509238
Bug: 171917176
Change-Id: Id68b6c376029eb5c651f47afa56666391c516aef
Normally availableHeight excludes system insets, but taskbar is added
after availableHeight is calculated. This discrepency causes some bad
calculations such as TaskView size.
Test: touch nav bar when in an app with taskbar present, ensure the
task doesn't jump due to incorrect calculation
Fixes: 179478728
Bug: 171917176
Change-Id: I16d39d3e1d9708e2a64c81b1ac24466f9567d1b9
- Disabled variable width for running task, as PersistedTaskSnapshotData is not always up to date for current task after rotating the device
Bug: 174464656
Test: Test tablet overview with different comination of portrait/landscape wide/narrow thumbnails in portrait/landscape
Change-Id: Ifa01e72020ccaf422e3975b092462de85fa19efd
Existing ContentObserver will cache values and overwrite
them when the value itself is modified or caller force
updates.
Bug: 149571513
Test: Wrote unit tests, mostly for caching logic.
Not meant to test ContentObserver contract for registering an
observer.
Change-Id: I12835f6c2be27ce17f65a55c51c4ef85c63b4487
Previously there was only support for CellLayout to draw the
leave-behind. Added FolderIconParent interface so any parent can
draw the leave-behind, and implement that by TaskbarView.
Test: Open folder in Taskber, ensure leave-behind draws
Bug: 171917176
Change-Id: I08d1d939a34f971f893994fe05cac972d165ef53
- 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
These do not work well with gesture-nav and can potentially
block the Launcher UI.
Instead exposing on custom actions with keyboard accelerator and
using thee internal arrowPopup for resize options
Fixing SecondoryDropTarget not sending appropriate stats log
Bug: 179854703
Test: Verified on device
Change-Id: I268690f8a937896e4350496128a38959003f8939
* Transitions between AllApps and App screen logs LAUNCHER_ONSTOP & LAUNCHER_ONRESUME events. This change add InstanceId specific to the current AllApps session to these logs; this will help to regenerate AllApps session from logs on the server side. This should only affect logs from AllApps screen, but not others.
* Removes LiveSearchManager.allAppsLogger method as it may create confusion with 2 methods for logging into Statsd
* Moved AllApps entry and exit logs to Launcher.
Bug: 178562918
Test: Manual
Change-Id: I5fab941777a3dfd2e9b19c0efd5b06d3884222ef