This adds support for handling long clicking on the IME switch button.
Initially it will behave exactly like short clicking, i.e. show the IME
switcher menu.
Flag: android.view.inputmethod.ime_switcher_revamp
Test: atest
TaskbarNavButtonControllerTest#testPressImeSwitcher
TaskbarNavButtonControllerTest#testLongPressImeSwitcher
Bug: 311791923
Change-Id: Ibd0d6bce2bab11511bc082f46731ec86038c8cf8
Before this CL we would show only one Taskbar icon per app, making it
impossible (through the taskbar) to switch between several windows of
the same app.
With this CL we add one icon per task instead, making it possible to
bring each task to the front individually.
Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps
Bug: 351118893
Bug: 349790805
Bug: 351156858
Test: Started several Chrome windows -> taskbar has one icon per window
Change-Id: Ia692977effceb9ce339906bf6ca24d73e19d8769
Matches the prediction helper (the prediction service ignores added
widgets if launch location doesn't match the pattern. The size / pos
details however aren't used, so we pass defaults.
With this, prediction service may be able to predict widgets that
aren't already added, hence providing more suggestions.
Bug: N/A
Test: Unit test
Flag: EXEMPT BUGFIX
Change-Id: Ieaba4c9a8354dc96ea2bc70cafa106978037c572
- Made TaskThumbnailViewDeprecated nullable in TaskContainer, with non-null getter that requires feature flag to be on/off
- Removed TaskThumbnailViewDeprecated.setTaskOverlay, as it'll now be null with feature flag on
- Removed TaskThumbnailViewDeprecated from DesktopTaskView xml
- Simplifed DesktopTaskView binding logic, to always get thumbnailViews from viewPool, removeView and recycle all thumbnailViews in onRecycle
- Didn't implement view pooling of TaskThumbnailView due to difficulty with TaskContainer not being recycled togetehr with TaskThumbnailView
Bug: 338360089
Test: TaskThumbnailViewModelTest
Test: manual testing for DesktopTaskView for both enable_refactor_task_thumbnail on and off
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: I38a6dfc6bc561689578d1660794f91d30bad4a68
* changes:
Override DisplayController on main thread.
Add annotations for manipulating secure settings.
Don't use UiThreadTest for Taskbar Unit tests.
Suspend Launcher taskbar while removed for tests.
* Extract out both the top level split root leash
as well as the left and right split root leashes
* Set windowCorner radius on the left/right roots
Test: No more flicker near divider when launching app
pair (see comment for video in CL)
Flag: EXEMPT bugfix
Bug: 349387413
Change-Id: I6fce290d1e7766e55c2f11cc8c365f0c29087c0f
- Also migrated getScaledInsets method into TaksOverlay
Bug: 335606129
Test: TaskOverlayViewModelTest
Test: TaskOverlayHelper is not tested because it should be a view-based screenshot test for TaskOverlay, which is currently impossible until we refactor TaskOverlay to MVVM
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I07a8657ff0fe925d8021875310e3ed12a712ba7a
By default, tests will run with user setup complete and kids mode
disabled.
Test: TaskbarUnitTestRuleTest
Flag: TEST_ONLY
Bug: 230027385
Change-Id: If6c74b3b2c07aa0eac5b6bda933b565351d65188
This annotation also runs the rule on the main thread, which can lead to
deadlocks with other threads (e.g. loading the model synchronously).
Change-Id: Ib276e9dc322f6f65bd32658e774d6076efb94f2e
Flag: TEST_ONLY
Test: Taskbar Unit Tests
Bug: 230027385
This approach is less destructive than completely destroying Taskbar
while still ensuring it will not try to recreate itself.
Test: Taskbar Unit Tests
Bug: 230027385
Flag: TEST_ONLY
Change-Id: Ida0f7cc0b9c5b1d53bbadc2bb9fd81689c7f3940
* changes:
Completely destroy Launcher's Taskbar.
Add context for sandboxing Taskbar window contexts.
Add tests for TaskbarUnitTestRule.
Have recreateTaskbar perform recreate on UiThread.
Move test rules to subpackage.
Just removing it temporarily from the window manager is insufficient.
Taskbar can attempt to recreate itself due to many callbacks being
invoked during tests such as the settings changing. After the tests
finish, the launcher process will restart anyways so taskbar will come
back automatically.
Flag: TEST_ONLY
Test: TaskbarUnitTestRule tests
Bug: 230027385
Change-Id: I18245c224f6d2ffc78d8bf80d30275429074f9b5
- Add GroupTask and DesktopTask equals() (with tests)
- Add tests to verify multiple onRecentTasksChanged
doesn't commitRunningAppsToUI if there's no change
- Add tests to verify commitRunningAppsToUI is still
called if minimized or running apps set changes
Bug: 348802109
Bug: 348787176
Test: TaskbarRecentAppsControllerTest
Test: GroupTaskTest
Test: log TaskbarView#onMeasure() locally, ensure it is called
much less despite noisy onRecentTasksChanged callbacks
Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps
Change-Id: I3efff7f4492272f88aa2bdbd7cc45bd2bf8156f6
Test: Enter split anim from overview on phone is smoother than
Michael Jackson's moonwalk
Bug: 349387413
Flag: EXEMPT bugfix
Change-Id: I01fd1eee6fe111623a22dd6aaf130837ebbdeeb1
- Moved majority of TaskContainer.thumbnailViewDeprecated usage to TaskContainer.snapshotView, so they'll cover the new TaskThumbnailView as well
- There are afew location left that will be handled as a follow-up
- Removed TaskThumbnailView's splitTranslation and use translation directly as it's the only translation we use
Bug: 336612373
Test: Ensure all Task CUJs still work without refacorting
Test: Ensure major Task CUJs work with refactoring
Flag: EXEMPT refactor
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Ieb52236bc503ce0d0a511249978c1821a82d406e
For each desktop session, Overview shows a single tile with multiple
desktop tasks. With this CL avoid showing minimized tasks in that tile.
Bug: 333013317
Flag: com.android.window.flags.enable_desktop_windowing_mode
Test: manual: ensured minimized desktop tasks are not shown in Overview
Change-Id: I48cb6826849abf225c0fe4448ca7b0b13afea44e
This refactor makes it simpler for the rule to keep track of the test
instance (immutable). Having the rule be a TestRule instead of a
MethodRule also simplifies nesting TestRules within this implementation
(future CLs).
Test: Taskbar{AllApps,Overlay}ControllerTest
Flag: EXEMPT refactor
Bug: 230027385
Change-Id: Icf587202242fcb4526946d9c7619e5be4f59154e