Previously, if insets had been applied while folded ("phone"),
they would stick around when unfolding ("tablet").
This applies the intended 0 left/right margins when in "tablet"
mode regardless of the insets.
Fix: 321159393
Test: Open all apps in phone landscape, unfold
Flag: NA
Change-Id: Ida1f20711a2a2b9b54f6b2c18abf5abf4fd2b175
* Entering and leaving search now takes effect right away.
* Should fix race in which tapping an app while search results are
loading causes a tap on the previous app in the position, rather
than on the search result.
* Helps prevent the scrollbar from appearing to be scrolled down
somewhat when leaving search with floating header rows present;
still happens sometimes, though (on stock OS launcher, too).
Change-Id: I67bc59456eb2e57e13b1b99509d3313ff0243b88
Initial support quickstep, Android versions from Q to U, ensuring a smooth and efficient user experience. Enjoy effortless navigation and swift app switching on your Android device with QuickSwitch's compatibility across the Q, R, S, T, and U.
Co-authored-by: Goooler <wangzongler@gmail.com>
Co-authored-by: 无言 <57122860+liu-wanshun@users.noreply.github.com>
Adding logic to unlock private space and
scroll to the container after unlock event
is received by Launcher.
This change also moves pieces of Private Space
Animation to different classes, in order to make
it more robust.
Bug: 289024009
Test: atest PrivateProfileManagerTest
Flag: ACONFIG com.google.android.apps.nexuslauncher.inject_private_space_tile TEAMFOOD
Change-Id: Ica2fbc00ff3516ed5aca7fbbfc0bd2aa036a4cee
Introduce long-press shortcut to install a copy
of the main user app to private space.
Test: manual, installed apps in different stores
and tried shortcut
https://screenshot.googleplex.com/6oAVamTytiYmvPC.png
Bug: 316118005
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space_install_shortcut DEVELOPMENT
Change-Id: I702cd2a27388e3cc6e9e126308d5479836ba6655
Changes:
- For tablet, always center All Apps without applying additional
insets for things like cutouts.
- For tablet, allow the panel to span the full height of the
screen (minus system bars), rather than 5.5 app rows. This also
ensures the panel fully closes even if there are cutouts.
- Remove additional padding for vertical bar mode (landscape on
phones). This was double counting the cutout insets, but only
for some views, so things were not aligned. Now the apps line
up with the search bar, and the scroll bar still makes room for
any side insets.
Before and after examples:
https://drive.google.com/drive/folders/1k0vSzisf4ZuGyp-qR-IF0QwM-IcHBFrZ?resourcekey=0-uxjzuVQ1KA3WwOQ4v6Dh2w&usp=drive_link
Bug: 299923399
Bug: 259617884
Fix: 300761324
Test: Manual
Flag: NA
Change-Id: I136d516260a1343b1198693c73fa389fe0e11cc9
- Create base SectionDecorationInfo.java and RecyclerViewAnimationController.java
- SearchTransitionController now inherits from RecyclerViewAnimationController where RecyclerViewAnimationController will control
animation for private space
Bug: 299294792
Test: Verified SearchTransitionController didn't regress by turning off BACKGROUND_DRAWABLES flag.
- Verified QL highlight still works
- video: https://drive.google.com/file/d/15yjBWofebn6m7VgEnLK6kEYqhC_adJQ3/view?usp=sharing
Flag: None
Change-Id: If34f4bb199be0e113485279931d2927cb9fad397
This CL adds the following:
1. Adds filtering and addition of Private Profile apps in main user
all apps recycler view
2. Enables decoration of Private Profile apps
3. Enables hiding Private Space container based upon a settings entry.
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I33dc55a3a39e75d3fc336ca6a488b282e2dd322c
This CL adds the following:
* Static View Elements to be added to AllApps recycler View
* View Controller to load the above elements dynamically
* Private Space Section Decorator
* PrivateProfile Manager containing the logic related to Private Space
* Abstract UserProfileManager as the super class of Work/Private
ProfileManager
Private Space Views Figma
[link](https://www.figma.com/file/K6bIIcG882EiJNjxvSWsFT/V%E2%80%A2-Private-Space?type=design&node-id=14535-111985&mode=design&t=JLz9W0O551TpzQYH-0)
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I8aa4247c78064a551e5e0d0b46d3fc033873f99d
- Do not focus the Icon in Small Icon Result Rows
- Use FocusIndicatorHelper when focusing search result icons
Flag: NONE
Bug: 296844600
Fix: 310173226
Test: Test: TaplKeyboardFocusTest
Change-Id: Icfc82ae41ffc8ef7c7ad42950f98f3d2dc805795
AllApps used workspace paddings which are unbalanced in verticalBar. This changes it to always be centered. In dynamic grid AllApps now uses the whole width for the layout. In responsive grid it keeps the cell width and center the layout.
Note that this is centered on the screen but nothing could be done regarding the camera inset at this time, as it would need a refactor of how AllApps QSB is layout as well.
Bug: 269632571
Test: NexusLauncherTest
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Change-Id: I326d041bcef211d398d1a5c3210958b689414d49
This Cl adds the following:
1. Fixes for Quite Mode check maintained by Launcher
2. Addition of new Quite Mode broadcasts
3. Fixes for determining work profile user correctly.
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I5f6158b213723339e70ff99e66c5f439f5879e12
AllApps uses different values for left and right padding in some places (e.g. ActivityAllAppsContainerView uses workspacePadding.left/right), and this change is the first step into moving those values into DeviceProfile.
Bug: 269632571
Test: NexusLauncherTest
Flag: NONE
Change-Id: I14c4edf55ca74f256b1aaa336fff246a0c78e25d
When work profile is enabled, we will show 2 all apps recycler views, thus we should double the pre-inflated BubbleTextView count to make sure scrolling both personal and work all apps is smooth.
Traces are attached in bug.
Fix: 287462835
Test: Grab perfetto traces and compare scrolling all apps on phone with work profile enabled vs disabled
Change-Id: Iaa68ddacad0abcca0f260dd7fa21c92d2feabb03
The reason is because WorkManager doesn't reset when user searches (which is why the apps gray out when you go to toast, turn off work profile then back gesture to all apps)
Added test for ActivityAllAppsContainerView that test onAppsUpdated() and check for if there are work apps.
From the test environment, onAppsUpdated() needs to be public because the method is outside the package. However, I've wrapped onAppsUpdated package private so I can test it with a boolean parameter.
bug: 298492729
test: video:
before: https://drive.google.com/file/d/1D0VlGeJEI5lGbYgP5Tnu5UO_Dv61X8Dv/view?usp=sharing
after: https://drive.google.com/file/d/1D0qsq7sX_kAp2t92xser7YI4ADBhQfHY/view?usp=sharing
Change-Id: I4eb7cf21e273e29171fcd62a4762e8bb1778e720
Use `enable_expanding_pause_work_button` as an example.
See go/trunk-stable-launcher for implementation details
Bug: 294913042
Test: adb shell device_config put launcher com.google.android.platform.launcher.aconfig.flags.enable_expanding_pause_work_button true
Flag: enable_expanding_pause_work_button
Change-Id: I732722c8b219c023adf5bf31f132ce9da72fc4d5
SearchBox gets cleared in the current frame even before we read the
input entered by the user. So clear the searchbox in next frame after
onAllAppsTransitionEnd is completed.
See ag/22266746 where this change was introduced and I want to move the resetSearch() call to next frame.
Bug: 287693114
Test: Manual . Tested with both Floating search box on and off.
Flag: NA
Change-Id: I11509cf652f96847ad3c54f20a76f2a728775fe3
When work profile is disabled, we should also let main RV use AllAppsStore's recycler view pool.
Test: Turn off work profile, kill launcher process, swipe up all apps, start record perfetto trace, scroll down all apps, then stop record, verify no BubbleTextView inflation after change
Bug: 287523421
Flags: ENABLE_ALL_APPS_RV_PREINFLATION
Change-Id: Idd5f8193e85fc2a250877affc3b2e4ab4a704797
This will be called when transition animation to search is completed.
Bug: 285166099
Flag: NA
Test: Manual
Change-Id: I69e594cbf3564a866d258654fc23a00410e7deab
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
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
This CL ensures no inflation of BubbleTextView happens while binding applications, and reduces jank on slow device.
1. Let active/inactive all apps RVs share the same AllAppsRecyclerViewPool
2. Use worker thread to pre-inflate BubbleTextViews and add them to shared view pool on main thread
Bug: 287523421
Test: See before/after screenshot/video/trace attached in bug
Change-Id: I00213407be2c7c2d329997552785d0aa56c4d057
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
bug: 288442609
test: Manual
Change-Id: I7a49ee401d5a5f3268cfaef1abee8153e913a8ce
(cherry picked from commit 076dcdfd54)