Pressing the home button a second time while the app icon is animating cancels the animation. The listener view's AFV doesn't need to be explicitly closed since it will be cleaned up.
Flag: not needed
Fixes: 291807246
Test: manually pressed the home button twice quickly
Change-Id: Ia963e06da78742eade91a6174c3d5f5328368bc5
Fix: 289960317
Test: Verify in unfolded felix that going from 2 icon folder and dragging 2nd icon out of folder lets you open the app that remains where the folder was
Test: Verify in unfolded felix that going from 2 icon folder and dragging 2nd icon into remove droptarget removes the folder and turns it into a single clickable icon
flag: no flag
Change-Id: I26138ee9f8e7cdb45cafe2446dc4d1e3d6d8347f
This reverts commit 853a5b9e0c.
Fixes SecondaryDisplayLauncher class by using lambda instead of method
reference for #getAllAppsItemLongClickListener. This change is necessary
because mDragLayer is late-init.
Test: Home Settings > Developer Options > Launch Secondary Display
Bug: 289261756
Flag: No
Change-Id: I7b83f81651dde360edea6ee7bea6cc82441e6bef
Bug: 276361926
Test: Initate split, dismiss whenever home is pressed,
doesn't dismiss when all apps dragged down
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE
Change-Id: Idc95123e27963c3913d04c6eb27f0e4c9b1eb401
This cleans up how alternative AllApps implementations such as Taskbar
and SecondaryDisplay override the default INSTANCE_ALL_APPS listener.
This change will also be helpful for Toast in Taskbar drag-n-drop.
Test: Manual
Bug: 289261756
Flag: n/a
Change-Id: I55eb881bcd1e210852d435a3ea2a6686ce0a9838
It is possible that SimpleActivityRule is not being properly notified of Launcher's creation in Platinum tests.
Flag: not needed
Bug: 289161193
Test: AddWidgetTest
Change-Id: I09947e7202129d9335f737dcd626f706de6dbf00
- In the case where the system does not play the requested animation
we can still ensure that this doesn't result in a leak of the
activity by resetting the result when launcher is hidden (which
happens after the launch transition)
Bug: 285995223
Test: Presubmit
Test: Take heapdump after repro steps in b/285995223#comment6 and verify
there are no lingering static icon load results
Change-Id: I1d169df158cfaab64fbe1f4ce597d8f73d86a1c1
The reason why the buttons aren't being updated with the translated string is because the cache the views get the string from is not updated/loaded with the new language.
Rather, the update happens after the view has been inflated. With this change, when the string cache updates in bindStringCache(), we update the UI right then.
bug: 280958663
test: Manual
Change-Id: I7a49ee401d5a5f3268cfaef1abee8153e913a8ce
Create a reverse hashmap of PackageUserKey to Uid in AllAppsStore for
faster lookup of uid based on packageName and userHandle.
Log Uid in Impression Logging.
Bug: 282849559
Test: Manual. See various usecases documented in http://shortn/_UcvAYOmLIP
Flag: NA
Change-Id: I416426214f6b6efc45f7d4c0433bbbfca9056adf
> Unifying multiple binder tracing implementations
> Removing wallpaper customization check as it has been rolled out
few years ago, this avoids additional RPC to check for wallpaper
> Removing RaceConditionReproducer as it is not used anywhere and
is not integrated with this tracing anymore
Bug: 273718665
Test: Presubmit
Flag: N/A
Change-Id: I801af5d039a9d38d5d39e803723ec6da50a9d59f
- LauncherWidgetHolder.startListening is called before Launcher.setupView, so it's possible for getWorkspace() to be called as part of the appWidgetRemovedCallback. Reordered these calls to fix this null pointer
Flag: not needed
Fixes: 283850341
Test: Screenshot tests
Change-Id: Ied1f23647721fc4199eab2a5a79def1e306b00f3
> Addition/removal of shortcus is already removed. This just
cleans up the unused code path
Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I8ab7f57b693f996920e50e8beecafcffab5167e9
Also moving various state handling to these end callbacks enstead of relying on resume
Bug: 265134143
Test: Verified that the end callback is received
Change-Id: I326a99c80154d244c0e49f678717c476602b6240
- Edit Mode doesn't close after dragging / dropping an app
- Edit Mode can be entered through options popup menu, Spring Loaded still entered by dragging items
- Adds new onLeavingState call to launcher states to cleanup changes
Bug: 279590398
Flag: MULTI_SELECT_EDIT_MODE
Test: manually tested the new state with flag on/off
Change-Id: If4550037f9659dcb8cd8b1943388d1ec5d55fa29
And call initCompose() in Launcher.java. Therefore there is no behavior
change for BaseActivity, or other ActivityContext subtypes that don't
call initCompose().
This should work for non-activity subtypes of ActivityContext. It's
likely that the Launcher activity will require more complete supoort for
Lifecycle and SavedState.
Note: In order to test the ComposeView, need to build this CL together
with ag/22461463.
1. `ViewTreeLifecycleOwner.set(..., ...);` is necessary to fix the
following crash:
java.lang.IllegalStateException: ViewTreeLifecycleOwner not found
This error comes from WindowRecomposer.android.kt
- http://cs/androidx-platform-dev/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/WindowRecomposer.android.kt;l=351-354;rcl=5673af1441ebe04c776f528193dfc5f85c0c9a66
2. `ViewTreeSavedStateRegistryOwner.set(..., ...);` is necessary to fix
the following crash:
java.lang.IllegalStateException: Composed into the View which doesn't propagateViewTreeSavedStateRegistryOwner!
This error comes from AndroidComposeView.android.kt.
- http://cs/androidx-platform-dev/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt;l=1178-1183;rcl=5673af1441ebe04c776f528193dfc5f85c0c9a66
3. The lifecycle needs to be STARTED. Otherwise the ComposeView doesn't
show up in its parent (i.e., isn't drawn).
- In ComponentActivity, `onSaveInstanceState` starts the lifecycle.
- In ComposeInitializeImpl (from SystemUI),
ViewLifecycleOwner.updateState() starts the lifecycle when the
window is visible and in focus.
The implementation in this CL does the same thing as the
ComposeInitializeImpl.
Bug: 275905704
Test: on device, trigger a card such as the timer
Test: RUN_ERROR_PRONE=True m out/soong/.intermediates/packages/apps/Launcher3/Launcher3/android_common/lint/lint-report.xml
Test: RUN_ERROR_PRONE=True m out/soong/.intermediates/vendor/google/gms/packages/SearchLauncher/SearchLauncher/android_common/lint/lint-report.html
Test: Presubmit
Change-Id: Ieced66ad5238916a82ea13c01f69146bbdcf287a
DropTargetHandler was calling getModelWriter() on a final variable
and the model writer it was using was and old one.
Fix: 280170665
Test: Manul test, delete widget and rotate the device, you have to do this twice.
Change-Id: I7b3ac4b272568fcc81438ffd5ac84cf7b64a62ea
This change will make the Escape key close floating panels in
Launcher.
Bug: 280801803
Test: Flashed on device, tried with physical keyboard and panels
will close.
Change-Id: Ie09e57716a7be74638037abe6272b47eec1b8a6c
More details at "Log Startup Latency" section in go/launcher-startup-latency
Test: tested on phone, foldable and tablet, print latency logs in logcat
Bug: 278092752
Change-Id: Ibf269b0ecd6007d29b95e36f65ab6f02c45deb3a
Removing debug logs for bugs that have already been closed. These logs are filling up the logcat buffer and impeding in other test investigations.
Flag: not needed
Test: Tapl tests
Bug: 260260325
Change-Id: I4d69b904f2ea79d758cf6bef7d90d172f2eb2a91
This is the second of several patches implementing the App Pairs feature behind a flag.
This patch includes:
- AppPairsController, a new controller that will handle creation, launching, and deletion of app pairs
- ITEM_TYPE_APP_PAIR is a new type of FolderInfo (FolderInfo now can be either a folder or an app pair, and should probably be renamed to CollectionInfo or something more generic in future)
- Necessary plumbing for these new types
- Database code that handles saving a new app pair to the database with the correct schema
Flag: ENABLE_APP_PAIRS (set to false)
Bug: 274189428
Test: Not included in this CL, but will follow
Change-Id: Ie3aefd4eb9171f471789f54876de742849d3013b
Originally there was a bug in a method (isTextClippedVertically) in ButtonDropTarget. While attempting to write a unit test it became necessary to refactor ButtonDropTarget and DeleteDropTarget to decouple them from their dependency on launcher in order to allow for a unit test to be written
The pattern we are introducing here is to decouple Launcher from a controller, in order to facilitate easier testing.
Instead of calling Launcher.getLauncher() we call the method through ActivityContext, which has a testing wrapper already defined. Here is a diagram that explains the old and new pattern
Design Pattern: https://screenshot.googleplex.com/7apiE2DaGDrFzy9.png
Test: isTextClippedVerticallyTest
Bug: b/274402490
Change-Id: I1f3003d0b62dddbceb6e492b15aa5d7352d3a293
All existing legacy shortcuts will be migrated one-time to deep shortcuts
This shortcuts are pinned under the Launcher package, with custom badging
Bug: 275875209
Test: Updated unit tests
Flag: N/A
Change-Id: I7da001f724776ad8d6c807517b7e4e259de626c2