Commit Graph

7043 Commits

Author SHA1 Message Date
Tony Wickham 7fa1e32f21 Merge "Align taskbar children to Y value instead of X." into tm-qpr-dev 2023-03-06 23:51:50 +00:00
Brian Isganitis 2790c9dbbf Merge "Implement light mode for persistent Taskbar." into tm-qpr-dev 2023-03-06 23:07:41 +00:00
TreeHugger Robot f22345eace Merge "Fix an issue with concurrent modification on widget holders list" into tm-qpr-dev 2023-03-06 20:05:29 +00:00
Johannes Gallmann 83683829f7 Merge "Add onEndCallback to ContainerAnimationRunner" into tm-qpr-dev 2023-03-06 18:55:49 +00:00
Hyunyoung Song eeee84efb6 Merge "Hide the splash icon when launching with no view and no item." into tm-qpr-dev 2023-03-06 18:23:32 +00:00
Pat Manning d3cffe8156 Align taskbar children to Y value instead of X.
Fix: 271858023
Test: manual on tablet.
Change-Id: I60882a062d5f2bb8f24525e2cec9c4a091b31545
2023-03-06 17:57:58 +00:00
Hongwei Wang 1897e4f40f Merge "Turn ENABLE_PIP_APP_ICON_OVERLAY on by default" into tm-qpr-dev 2023-03-06 17:13:56 +00:00
TreeHugger Robot a176ad060f Merge "Sync overview scroll so that it ends before/at same time as taskbar animation" into tm-qpr-dev 2023-03-04 01:46:17 +00:00
Jeremy Sim ad9bdcfd2d Merge "Create TAPL test suite for splitscreen" into tm-qpr-dev 2023-03-04 01:10:47 +00:00
Sunny Goyal 33c3e77411 Merge "Simplifying code around multiple translation components" into tm-qpr-dev 2023-03-04 00:59:54 +00:00
Sihua Ma e0420ab2bc Fix an issue with concurrent modification on widget holders list
This could happen when the QuickstepWidgetHolder is not initialized on the main thread, or destroy() is not called on the main thread, while a random widget is removed at the same time which iterates the widget holder list and calls the callbacks.

Also fixing an issue with memory leak that is caused by the strong reference in WeakHashMap

Test: Presubmit
Fix: 271362384
Change-Id: I621ffb29c167cef9842758c5fdefd6bb66dd487e
2023-03-03 16:34:47 -08:00
TreeHugger Robot 3dd1440520 Merge "Translate taskbar to hotseat without jump when swiping up from overview" into tm-qpr-dev 2023-03-04 00:18:16 +00:00
Brian Isganitis d2d2913812 Merge changes from topic "running-in-test-camel" into tm-qpr-dev
* changes:
  Expose IS_RUNNING_IN_TEST_HARNESS as static method.
  Make isTooltipEnabled a getter due to its mutable dependencies.
2023-03-03 23:15:38 +00:00
Jon Miranda 8f2b50fdeb Sync overview scroll so that it ends before/at same time as taskbar animation
Fixes: 267355260
Test: open overview, scroll to 'Clear all button', tap on blank space
Change-Id: Ia58683f7b167ff42443dda3d39368bf6aaa366e0
2023-03-03 13:34:55 -08:00
Vinit Nayak f51426a6ee Merge "Add null check for recents when tapping on Taskbar icons" into tm-qpr-dev 2023-03-03 21:33:52 +00:00
Brian Isganitis 5248b02080 Merge "Treat setup wizard default home as null." into tm-qpr-dev 2023-03-03 21:11:18 +00:00
Vinit Nayak 750009face Merge "Fix quick switch in between two split pairs crash" into tm-qpr-dev 2023-03-03 19:37:04 +00:00
Ats Jenk 37d6a2be10 Merge "Hide desktop tile when choosing apps for split" into tm-qpr-dev 2023-03-03 19:32:13 +00:00
Schneider Victor-tulias 860b30e7ac Merge "Translate the TutorialStepIndicator to prevent overlapping skip and done buttons" into tm-qpr-dev 2023-03-03 18:14:44 +00:00
Johannes Gallmann f54b88d2d6 Add onEndCallback to ContainerAnimationRunner
Bug: 247121782
Test: Manual, i.e. tested that callback is invoked after launch animation
Change-Id: Ie52ffa1b76de01943dd16346560768b3ecced118
2023-03-03 16:55:07 +01:00
Nick Chameyev c7ab991818 Merge "Do not use private APIs in unfold module" into tm-qpr-dev 2023-03-03 13:22:03 +00:00
Vinit Nayak 26c893603f Add null check for recents when tapping on Taskbar icons
Fixes: 270669636
Test: Couldn't repro, but visually we have checks for
recentsView != null && OTHER_CONDITION, but in the else
case we don't check if recentsView being null is the reason
the if-block didn't get triggered

Change-Id: I72e7480bac56c7e7b7edb73edac4309e9923d302
2023-03-02 18:18:11 -08:00
Jeremy Sim 03815e6c79 Create TAPL test suite for splitscreen
This patch creates a new file, TaplTestsSplitscreen.java, containing one TAPL test sequence.

testSplitAppFromHomeWithItself() tests the user flow of splitting from home using an app that is already running, and then selecting the app itself again as a split target from the Taskbar. The expected result is that Launcher shows an error message gracefully and does not crash.

Fixes: 267554450
Test: Ran test file locally and verified that it passes.
Change-Id: I98a1e3a4143d10a6572175711059b3a77aa5dcd0
2023-03-02 16:35:54 -08:00
Brian Isganitis 473cfe0a1a Implement light mode for persistent Taskbar.
NavbarButtonsViewController has been massaged to make sure the buttons
contrast well with the color of the Taskbar background that they are on,
if applicable.

Test: Manual
Fix: 268052229
Change-Id: I917a1a1be013c304910b0f674ae8a13abb8e47a1
Merged-In: I917a1a1be013c304910b0f674ae8a13abb8e47a1
2023-03-03 00:35:20 +00:00
Brian Isganitis fdd044e16e Expose IS_RUNNING_IN_TEST_HARNESS as static method.
This variable is now mutable, making the uppercase format misleading.
For instance, users might assume they can use this value in other
immutable properties, when they really should be accessing the latest
value every time they need it.

Context: https://source.android.com/docs/setup/contribute/code-style#follow-field-naming-conventions

Test: Manual
Bug: 271160958
Change-Id: Iaaa51d9153cb8a7d686c72e1210b1948029dcfd5
2023-03-03 00:17:33 +00:00
Ats Jenk 55cb5fca91 Hide desktop tile when choosing apps for split
Bug: 269660657
Test: open overview, click on split screen action, observe desktop tile
  is hidden
Test: on home screen, long press on app icon and choose split screen,
  observe overview opens with desktop tile hidden

Change-Id: I60c06a8e2ef8fc13e741f8845254d22e9e430bb6
2023-03-02 15:14:34 -08:00
Schneider Victor-tulias 3146c5f6b4 Translate the TutorialStepIndicator to prevent overlapping skip and done buttons
On large fonts and display sizes, the TutorialStepIndicator can overlap the skip and/or done buttons. Adding some additional translation to account for this.

Fixes: 269588989
Test: tried the tutorial on the largest and default font and display sizes on a phone
Change-Id: I45a276bba3e9cb10336c6f3aa363b7a5c7a73543
2023-03-02 15:13:21 -08:00
Ats Jenk 8e20d62034 Merge "Support large desktop tile in grid only overview" into tm-qpr-dev 2023-03-02 22:45:38 +00:00
Sunny Goyal 82dfc15037 Simplifying code around multiple translation components
Bug: 270759683
Test: Verified on device
Change-Id: I6c758c715828ae25e0e3c60b793cf85d70cb2487
2023-03-02 12:22:03 -08:00
Luca Zuccarini f295e3a85a Hide the splash icon when launching with no view and no item.
This is achieved by instead creating an empty item info that only
specifies the splash type to be solid color.

Bug: 269343536
Test: manual
Change-Id: Ibf5c8f1c949e26af207b8c6e382f71677b9acc2d
2023-03-02 18:19:38 +00:00
Pat Manning c6c33dd115 Merge "Add modal action for grid only overview." into tm-qpr-dev 2023-03-02 17:06:51 +00:00
Ats Jenk 45e0a90013 Support large desktop tile in grid only overview
Based on UX specs, desktop tile should be using the large size and be
pinned ot the right in overview.
Updates to ensure the desktop tile is using the focused tile size when
grid only overview is enabled.

Test: enable grid only overview, have some fullscreen tasks in overview
  and some desktop tasks, open overview from home, observe desktop tile
  peeks from right
Test: same setup as before, open a fullscreen app, open overview,
  observe desktop tile peeks in from right
Test: same setup as before, go to desktop, open overview, observe
  desktop tile is focused
Test: turn off grid only overview, repeat the same test case

Bug: 271131878

Change-Id: Ic804428dca415f08a26c47e1d6b9b3a94fcfbfdf
2023-03-02 09:04:37 -08:00
TreeHugger Robot 7f8f573f46 Merge "Prevent QSB from being a part of the icon reveal animation." into tm-qpr-dev 2023-03-02 16:29:05 +00:00
Sunny Goyal f4bead71ea Merge "Restarting launcher if a flag changes" into tm-qpr-dev 2023-03-02 16:23:45 +00:00
Pat Manning b4f3807df2 Add modal action for grid only overview.
This is an issue for tablets on landscape.

Fix: 271314156
Test: manual.
Change-Id: I5c3c1a9ff4b193439bdcc72f17b20bc8da4d16f5
2023-03-02 10:43:55 +00:00
Stefan Andonian 86d8db485f Merge "Preload expensive objects before user is unlocked." into tm-qpr-dev 2023-03-02 07:06:54 +00:00
Jeremy Sim 24b1890c4b Merge "Fix bug with Taskbar not differentiating between user profiles" into tm-qpr-dev 2023-03-02 02:47:46 +00:00
Brian Isganitis 589cb3480a Treat setup wizard default home as null.
During setup, default home progresses setup -> null -> launcher, which
can lead us to unintentionally preload the fallback overview.

Fix: 258022658
Test: Manual
Change-Id: I952b7923b06f2d4b058f42834d1f840719c73fd0
2023-03-01 18:05:51 -08:00
Jon Miranda f01ca85c20 Prevent QSB from being a part of the icon reveal animation.
Fixes: 270694593
Test: taskbar on foldable and tablet
Change-Id: I1782f715454da1240174be1b4f496c910be3764a
2023-03-01 17:17:36 -08:00
Stefan Andonian 5bd9a225a8 Preload expensive objects before user is unlocked.
This change includes migrating data required for starting the launcher
from encrypted storage into device protected storage. All of the data
being moved has already been approved by the correct authorities.

Bug: 251502424
Test: Performed latency testing using logs from user unlock until first
workspace screen loaded.

Change-Id: I58b0cd1c7bad260c2252f9e172ef85ab885c7fe9
2023-03-01 23:09:07 +00:00
Tony Wickham a8b120bc7e Merge "Only recreate taskbar for uiMode theme changes" into tm-qpr-dev 2023-03-01 21:29:16 +00:00
Tony Wickham 10c78b94f5 Translate taskbar to hotseat without jump when swiping up from overview
Also use this code path to reset translation when going from an app to
launcher.

Test: swipe up from overview, goes home without hotseat jumping
Fixes: 262826748
Change-Id: If8a4278a61e3786cfe16c388eabefacc63e8f327
2023-03-01 19:20:57 +00:00
Jeremy Sim e35d112693 Fix bug with Taskbar not differentiating between user profiles
This patch fixes a bug where Taskbar would not differentiate between user profiles when selecting an app to launch from Overview.

The bug occurred because findLastActiveTaskAndRunCallback(), which checks for already-running tasks when launching an app from the Taskbar, only checks for a ComponentName match and not a userId match.

Fixed by making the findLastActiveTaskAndRunCallback() also check for a userId match.

Fixes: 270456926
Test: Manual
Change-Id: I43ff06083a5dce775fdbd0b0ed951beaae34c0ab
2023-03-01 10:57:41 -08:00
Jeremy Sim a49569a90e Merge "Fix bug with rotating in the middle of split select staging animation" into tm-qpr-dev 2023-03-01 18:53:00 +00:00
Alex Chau 6a10a003d6 Merge "Land ENABLE_TASKBAR_IN_OVERVIEW" into tm-qpr-dev 2023-03-01 17:13:35 +00:00
Jordan Demeulenaere be82bc661c Format files with the upcoming version of ktfmt
This CL was generated automatically from the following command:

$ external/ktfmt/prepare_upgrade.py --repo=packages/apps/Launcher3/ --build_id=9645412 --bug_id=266197805

This CL formats all files already correctly formatted with the upcoming
version of ktfmt.

Bug: 266197805
Test: Presubmits
Change-Id: Ide7d63a75fed98aabe348821355356c77f00a9ec
Merged-In: Ide7d63a75fed98aabe348821355356c77f00a9ec
2023-03-01 09:11:48 +00:00
Jeremy Sim 8477226a3d Fix bug with rotating in the middle of split select staging animation
This patch fixes a bug where a user could cause a crash by rotating the device in the middle of the split staging animation.

The bug arose because:
1) Normally, when you rotate the device, reapplyState() is called to refresh the UI. This reloads the state, cancels any animations that happen to be running at the time, and generally works fine in most cases.
2) When animations are canceled within Overview, we also call RecentsView#reset() to clean up loose ends and prevent bugs.
3) Unlike other states, the split select state is unique because it is a transient state that holds the user's choices temporarily. If that information was cleared -- by reset() -- before it loads, it will crash.

Fixed by creating a new function in SplitScreenSelectState, onStateReapplied(), that is called when a reload is occurring. It makes sure that animations do not get canceled by calling end() to accelerate them to completion before the reloading occurs.

Fixes: 249819567
Test: Manual
Change-Id: I70c4651bcb5df81edd25f6e58e21520ebb391d01
2023-02-28 17:13:36 -08:00
Tony Wickham b0fa52f3ee Only recreate taskbar for uiMode theme changes
Test: simulate docking/undocking, ensure taskbar is not recreated;
set dark/light theme and ensure taskbar is still recreated
Fixes: 233459895

Change-Id: I583557039f4a7c02baaa5e62eb888f55d659adb0
2023-02-28 23:55:31 +00:00
Brian Isganitis aa08af872b Make isTooltipEnabled a getter due to its mutable dependencies.
IS_RUNNING_IN_TEST_HARNESS is mutable and can change during the
lifecycle of launcher.

Test: Manual
Fix: 271160958
Change-Id: Ib033e0684d99e784185e1da1e52632411f6c096b
2023-02-28 21:51:52 +00:00
Alex Chau 81b1d3576a Merge "Skip updateIconAlphaForHome if Taskbar is already destroyed" into tm-qpr-dev 2023-02-28 21:23:53 +00:00