Bug: 344670180
Test: open accessibility action menu on bubble bar. use menu to
- expand bubble bar
- dismiss bubble bar
Test: when bubble bar is on the right, the action menu has an option to
move bubble bar to the left only, use menu to move bar to the left
Test: when bubble bar is on the left, the action menu has an option to
move bubble bar to the right only, use menu to move bar to the right
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id875a43927bc3410a83d1342b9456330c9521085
This is an effort to align/unify color usage across all launcher projects and the system itself.
This fix recreates all dynamic color attributes present in the OS since many launcher areas cannot access private attributes.
It is recomemnded to use these new local attributes in all launcher areas and avoid creating new color resources when these can be used directly.
Bug: 352690172
Test: Presubmits
Flag: EXEMPT bugfix
Change-Id: Ic36b8bf70ee37f2fdd32e459e66f0e2d001d6ba2
This CL adds the RecentsDependencyContainer to maintain singletons and dependencies related to RecentsView. RecentsDependencies is a singleton that requires the application context to be initialized. Unlike regular singletons, this class has an initialize function where it gets initialized and can be retrieved with getInstance without providing the appContext each time.
- We've updated the refactored classes behind the -enable_refactor_task_thumbnail flag to use this DI solution rather than relying on .parent or recreating dependencies.
- To inject dependencies, you can use RecentsDependencies.inject for lazy initialization or RecentsDependencies.get for eager initialization.
- At the moment, we don't have a singleton or factory definition. All dependencies created by RecentsDependencies will be stored in a specific scope, making the instance a singleton within that scope.
- You can create or retrieve a dependency in a particular scope by calling RecentsDependencies.inject(scopeId).
- If you don't need the dependency to be stored in RecentsDependencies, you can create it manually in your code and inject the necessary parameters from RecentsDependencies (see the viewModel in TaskOverlayHelper).
- Handling the cleaning/resetting of dependencies will be addressed in b/353917593. RecentsView lifecycle is more complex and doesn't get recreated every time. We need to determine which dependencies or scopes can be destroyed and recreated.
Fix: 349055024
Test: NONE
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I27b92e3038f1cce0fd53b637dba5054c05b40283
- The reason Recents is empty after a force-stop is when RecentsTasksList.getTasks is called first time after restart, the result is always invalid but we cached the invalid result with a chagneId(=1). The next time we call getTasks again, we think the cached result is valid, and returend an empty list.
- The fix is to mark such result as invalid to avoid caching the wrong result
Fix: 353926204
Test: RecentTasksListTest
Flag: EXEMPT bugfix
Change-Id: If15ab8fd7454db8a08c22b17eaac73f0c78aa75f
Introduce FLAG_IGNORE_IN_APP to prevent taskbar from stashing prematurely
due to HomeTransitionListener signal.
Bug: 345768019
Fixes: 319162553
Test: Launch an app, note the two animations are synced
Verified by locally introducing a startDelay (since otherwise it is hard to tell)
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: Ibb64e0321f33cf81e337fc7c1b2c3edfb23e6ba4
* The WidgetsBaseEntry and related types are specific to picker UI.
So, moved them to a entry builder class.
Bug: 353347512
Flag: EXEMPT BUGFIX
Test: Unit test
Change-Id: I42b3083b42ee03dc8d548e7464689ea270a36f22
The notification dot drawing state depends on changes in the bubble
bar, so the bubble bar now directly requests updates to the dot at
specific states.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 351904597
Fixes: 350782375
Test: atest BubbleViewTest
Test: manual basically just hammering on it trying to break it
1. Dot appears for new bubble in all states of the bar
2. Expand bubble bar
- Dot is removed for selected and shows for others
that have a dot
3. After removing bubble while expanded
- Dot is removed from newly selected bubble
4. Collapse bubble bar
- Dot is hidden for all bubbles
5. Dot removed after tapping on a bubble when expanded
Change-Id: I4a940d38a8c77bddaf058b7ef882bab06886bcf4
* changes:
Consider the widget option menu choice in search results
Show only filtered / default widgets in standalone activity by default
Add a 3 dot vertical menu and styles (child cl makes it functional)
Set default widgets and all widgets separately from standalone activity
Update the widget picker activity theme for popup menus styling
- Added GetThumbnailMatrixUseCase to retrieve task using taskId and calcualte Matrix using provided canvas size and isRTL
- TTVM and OverlayVM will uses GetThumbnailMatrixUseCaseTest with runBlocking to obtain the matrix from the loaded thumbnail
- TTV and Overlay listen for size change, and call VM to get the latest Matrix and apply to the view
Fix: 343101424
Test: GetThumbnailMatrixUseCaseTest
Test: TaskThumbnailViewModelTest
Test: TaskOverlayViewModelTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: If3f37824bed84d5cbaa54d7a4b12f5f1ef4e2c09
Replace usages of the old get/setPendingIntentBackgroundActivityLaunchAllowedByPermission
API with the new replacement (passing in mode = ALWAYS).
Test: atest DragAndDropPolicyTest StageCoordinatorTests AlarmManagerServiceTest BackgroundActivityStartControllerExemptionTests BackgroundActivityStartControllerTests ActivityOptionsTest ActivityStarterTests BackgroundActivityLaunchTest
Flag: EXEMPT refactor
Bug: 352182359
Change-Id: I692dbb2122995d5cc3fa87bf5061704987ebddbb
The earlier version didn't inherit in-built popup styles and launcher
inherits from these too.
Bug: 347288851
Flag: EXEMPT standalone picker
Test: standalone picker will be covered in b/339716822
Change-Id: Ic33afbcea3838a608385e3f94cb864f66cef9e8a
TaskbarTransitions is needed for gesture nav too
Also updated the TaskbarTransitions check so that foldables are included (instead of just phones with the unification for phones flag on
Fixes: 353620747
Test: Scrim shows in Youtube immerisve mode
Flag: EXEMPT bugfix
Change-Id: I9990ef8f793e28b3af2f42b0a5a117fdfbdd4081
Launcher should pass an empty srcRectHint to Shell
via stopSwipePipToHome if overlay is present, so
that Shell know that srcRectHint is being "simulated"
for the enter PiP animation with an app icon overlay.
Shell will recalculate the simulated src-rect based on
appBounds and aspect ratio of the destination bounds.
Bug: 352773027
Flag: EXEMPT bugfix
Test: swipe PiP to home from Maps with fixed rotation (90 and 270)
Change-Id: I5f89c5af9d6b8a66725e346d09e7b3d84044bb4c
The freeform shortcut was previously changed to only show if the desktop
windowing flag was disabled, which is incorrect since it's not a
reliable indicator about whether desktop windowing is supported or not.
When the flag is enabled as the feature progresses, it causes the button
to be hidden on devices that support freeform windows but don't support
desktop windowing, such as phones or tablets when freeform is enabled in
developer options.
To properly check that DW is not enabled, this CL changes the flag check
to DesktopModeStatus#canEnterDesktopMode.
Bug: 353740331
Test: enable freeform in dev options, disable desktop windowing - check
"freeform" button is available through long-press of the app icon in
overview/recents.
Flag: EXEMPT bugfix
Change-Id: I0ea5073e5570838acf49a27f54546fd97e6739cd
1. Removes unused method `getAllWidgetComponentsWithoutShortcuts`
2. Exposes widgets either as component map or package item map - to
eliminate the duplicate logic around widget sections.
3. Add tests that validate that each package is unique - to help
cover the redirect issue seen in past.
4. In follow up cls, other methods that deal with picker specific data
types like WidgetsListBaseEntry will also be moved out - leaving the
model to only be responsible for providing all widgets map or widgets
by package.
Bug: 341611976
Flag: EXEMPT BUGFIX
Test: Unit test
Change-Id: Ife70874d312b51c66025a6ec678480f2b5c41793
- DeviceProfile have java fields that cannot be mocked, nor can be freely instantiated, so I've to use FakeInvariantDeviceProfileTest to give me some predefined DeviceProfile for testing
Bug: 343101424
Test: RecentsOrientedStateRepositoryTest
Test: RecentsDeviceProfileRepositoryTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Iaa34ef60a418eb336859d260f5808b263de6b4f7
I was too excited when I finally got the repro on my device. After some debugging, I found it (ag/27947503)
Fixes: 350790048
Test: with the change, double task bar is gone.
Flag: EXEMPT bugfix
Change-Id: I969dbf5e9d2c5cc277dfb366858023e6eeff14e2