Commit Graph

126 Commits

Author SHA1 Message Date
Adnan Begovic
3b0dd96093 launcher3: Implement ExecutorsModule
Implement the ExecutorsModule interface
to provide the necessary dependencies needed
for having injectable executors.

Bug: 407593767
Test: N/A
Flag: NONE - new module
Change-Id: I4a53fc6be31664b7a6fa907761ea93a2d0377f08
2025-04-14 09:16:57 -07:00
Adnan Begovic
01d3f6f210 launcher3: Introduce executors modules.
The following change contains three parts:

1. Qualifiers for executor types.
2. A mapping of any provided-for-those-qualifier-types to
executors, executor services, or scheduled executor servies.
3. The exposure of the existing dagger qualifiers as a specific build target.

With this change, any host(launcher) can provide bindings for
these annotations stipulating whatever pool or thread allocations
as they see fit, while any dependent modules that want to isolate
their code from launcher can build against the qualifiers library
to ensure that they receive the right kind of executor at injection.

Bug: 407593767
Test: N/A
Flag: NONE - new module
Change-Id: I7e6ba623c7f85ec11bb86d1d3a66486f68efe7f6
2025-04-14 09:16:48 -07:00
Will Osborn
ec8d20d0ed Refactor RecentsAnimationDeviceState and TaskAnimationManager using new PerDisplay library
Test: locally tested on Tangor
Bug: 399371607
Flag: EXEMPT refactor

Change-Id: Ie52f53a2d5dee757a8dc3b19248736bc15e5e0c6
2025-03-28 12:08:36 +00:00
Treehugger Robot
aca72908f6 Merge "Use Launcher aconfig flag in Resource file." into main 2025-03-12 14:12:11 -07:00
Stefan Andonian
ae799cc4e8 Use Launcher aconfig flag in Resource file.
Use BaseIconRoot as an example. Also add bpfmt file formatting.

Bug: 393609690
Test: Verified compilation worked well and font actually built
successfully in both gradle and make.
Flag: com.android.launcher3.google_sans_flex_font

Change-Id: I2200d13a8d57e5d046a35226f08a751add937ca7
2025-03-12 18:44:05 +00:00
Brandon Dayauon
aa39accd49 Include multiuser flag to launcher3 dependency
Bug: 360313403
Test: mp Launcherd / Static import of the android.multiuser.Flag method
Flag: EXEMPT adding dependency
Change-Id: I1a234ce61550c12d65c6e682285ec357fe91b82a
2025-02-28 21:51:33 +00:00
Sunny Goyal
3fd385c1cd Moving grid customization provider to Dagger
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger

Change-Id: I0ebc2a614b9448e5de97d3dda43d98b951989689
2025-02-20 10:16:56 -08:00
Adnan Begovic
a610285dfa Launcher3: Introduce lint checks for Launcher3.
As part of the initial check in, add a test to ensure
  that custom Dialogs are not utilized inside of the codebase.

Bug: 389709580
Test: DialogDetectorTest
Flag: NONE Lint checks
Change-Id: I7e3f98c729cdbf4d062419c53a209d12a23b1806
2025-01-29 13:54:27 -08:00
Mady Mellor
7d97e96550 Update code guarded by bubble anything flag to use the helper method
Also adds a dependency on shared shell lib so launcher can use this.

Flag: com.android.wm.shell.enable_create_any_bubble
Test: manual - enable the create flag and check that bubble anything still
               works; same with bubble anything flag
Bug: 389737359
Change-Id: I18322512c9d9883ee5cf473b72df565adea85879
2025-01-15 17:04:10 -08:00
Sam Cackett
6593622db5 Disable "MissingClass" lint check in QuickstepResLib
QuickstepResLib just contains resources. The code implementation for custom views is in NexusLauncher, so the linter doesn't know about this and falsely thinks a custom view resource is added without a corresponding class.

Change-Id: Icfe57c82af679c22428319e20d4c0e29b5c374fe
Fix: 383318069
Bug: 376817827
Flag: EXEMPT trivial build config change
Test: Add a custom view resource to QuickstepResLib, add code for custom view to NexusLauncher, run presubmits, check lint warning isn't there
2024-12-10 16:40:19 +00:00
Pechetty Sravani (xWF)
41743bd0c7 Revert "Listen to LauncherUserInfo config changes and hide/unhid..."
Revert submission 29352757-update-usericoninfo

Reason for revert: <DroidMonitor created revert due to b/379000263. Will be verified through ABTD for standard investigation.>

Reverted changes: /q/submissionid:29352757-update-usericoninfo

Change-Id: I751536274ec9dcc4047bf9c76b3a5cab258da6e4
2024-11-14 06:11:15 +00:00
Olivier Nshimiye
39dee43e12 Listen to LauncherUserInfo config changes and hide/unhide private space
entrypoint accordingly

Flag: android.multiuser.add_launcher_user_config

Bug: 346553745
Test: Manual - verified on device
Test: atest LauncherAppsTests

Change-Id: I202c4c76af4f96d5b3226daffcfebc2f9b9703b1
2024-11-13 21:35:05 +00:00
Juan Sebastian Martinez
9c774c4cf0 Introducing the MSDLPlayer in Launcher via a wrapper singleton.
The player is the main API to the MSDL library (also used in SysUI) that
implements the Multi-sensory Design Language in the system UI. This CL
also includes an example of the API usage, when the user swipes up to
reveal AllApps, or taps on QSB.

Test: manual. Verified that the MSDL haptics play when swiping to reveal
  AllApps and tapping on QSB.
Flag: com.android.launcher3.msdl_feedback
Bug: 371322466
Bug: 371250001
Change-Id: Ie13fd5494efc9fc80cdb94a7bdd6e20b2e4633a8
2024-11-08 14:24:36 -08:00
Cole Faust
cfa4fe7e2b Remove dependencies on the 1-variant fallback
When adding a dependencies, if the variants don't match, but the
dependency only has 1 variant anyways, soong will always use that
variant. This makes it hard to add new variants to soong, because the
1-variant fallback stops being used and you start getting missing
variant errors. Make changes to bp files such that all dependencies
correctly specify the variant to use.

Bug: 372091092
Flag: EXEMPT refactor
Test: m nothing
Change-Id: Ifa43c0488e4cd40d6195fe2af3de5faa4f5996ea
2024-10-28 12:20:53 -07:00
Schneider Victor-Tulias
00b6996e6d Add protolog support to Quickstep
Flag: EXEMPT changes cannot be flagged
Bug: 293182501
Test: launcher builds
Doc: go/launcher-protolog-support
Change-Id: I302b442b99165c9591b9349ea200285a5b9c074c
2024-09-24 17:07:53 +00:00
Sunny Goyal
621918feda Changing min-sdk version of Launcher to 31
Bug: 368071216
Flag: EXEMPT refactor -> dead code removal
Test: Presubmit
Change-Id: I1f0113c56de56f12f3a174eb31c3f8e8a09407e6
2024-09-20 06:00:10 +00:00
George Lin
de4d7457a8 Send message to launcher renderer to update grid (3/3)
This CL supports external surface view callbacks to send messages to
update the launcher's preview grid.

Bug: 348664593
Test: Manually tested. See bug.
Flag: com.android.systemui.shared.new_customization_picker_ui
Change-Id: I8108ae2c49af6b4fc1a207c6ece23e82616baa61
2024-09-05 16:49:15 +00:00
Treehugger Robot
648320044e Merge "Dagger codeswap setup between Quickstep and NexusLauncher (2/n)" into main 2024-09-04 05:08:10 +00:00
Jihoon Kang
a2dc65a2a1 Merge "Make java_sdk_library dependencies explicit" into main am: 10f0f9a93b am: 612b153591
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/3250185

Change-Id: I37d8a779985f820befa52be51df8101f53ed12bd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-30 20:41:29 +00:00
Jihoon Kang
612b153591 Merge "Make java_sdk_library dependencies explicit" into main am: 10f0f9a93b
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/3250185

Change-Id: Ic156ed0a774b6d6a40af20a1852846503e229b77
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-30 20:11:39 +00:00
Jihoon Kang
9f8e4b6b62 Make java_sdk_library dependencies explicit
modules should specify the submodule of java_sdk_library that the module
actually depends on

Test: CI
Bug: 358613520
Change-Id: If1b96a7ffa7ddde50c44817e0d96257ae2967a0e
2024-08-30 00:29:41 +00:00
Anushree Ganjam
14721d1e3a Dagger codeswap setup between Quickstep and NexusLauncher (2/n)
Bug: 361850561
Test: Manual
Flag: NONE Dagger Integration
Change-Id: Ic552091d91b991b2fdaf5c3eaa73f394328889e3
2024-08-29 10:05:12 -07:00
Anushree Ganjam
bd8633133f Setup Dagger for Launcher (1/n)
Bug: 361850561
Test: Manual
Flag: NONE Dagger Integration
Change-Id: Idbe19f1aa747f519417e21fe8a23a41c52ececc1
2024-08-28 12:11:47 -07:00
helencheuk
39a6093369 [Contextual Edu] Enable updating Edu data in Launcher
- Added ContextualEduStatsManager (in Launcher3) and SystemContextualEduStatsManager(in Quickstep) to enable classes in Launcher3 and quickstep to update contextual edu data
- Implemented new updateContextualEduData method in SystemUiProxy file, so the EduStatsManager could use it for update
- AbsSwipeUpHandler handles the logic to go home/overview when in app. Added code to update contextual edu data when these action is triggered.

Test: LauncherSwipeHandlerV2Test
Bug: 357542123
Flag: com.android.systemui.keyboard_touchpad_contextual_education
Change-Id: I6fc5a285ba1a1d770c54cc7af444ff8b3051bd00
2024-08-09 13:38:21 +01:00
Jordan Silva
4afa195b5b Add Jetpack Compose for Launcher3 and Quickstep behind a build flag (2/3)
This CL adds a Soong build flag in Android.bp files to enable Compose code when building Launcher.
The flag is disabled by default, and it will be enabled once agreed with the System Health team. More details in go/launcher-enabling-compose-next-steps.

To turn this flag on, one simply has to `build-flag set RELEASE_ENABLE_COMPOSE_IN_LAUNCHER true` before compiling.

- When the flag is enabled, Launcher3 will use a ComposeFacade object that provides features implemented using Compose. This Facade also provides a function to check whether Compose is enabled or not.
- When the flag is disabled, Launcher3 will implement a ComposeFacade object that throws an exception if a feature using Compose is requested. Thus, it is important to always check isComposableAvailable function before requesting a Compose feature.

Bug: 346288480
Test: Builds
Flag: EXEMPT Build flag: RELEASE_ENABLE_COMPOSE_IN_LAUNCHER
Change-Id: I5f2703f74960aeb104d0386ed3ef49784ed85234
2024-08-06 18:47:22 +01:00
Treehugger Robot
11a4756728 Merge "Resolve aconfig flag deps for Launcher" into main 2024-07-12 20:53:05 +00:00
Jared Duke
1222dd753c Resolve aconfig flag deps for Launcher
Only link in framework-declarared aconfig flags for targets that *don't*
reference platform APIs. Targets that do reference platform APIs will
inherit the framework-defined implementation, avoiding runtime classpath
collisions.

Bug: 352519114
Test: m + presubmit
Flag: EXEMPT refactor
Change-Id: I297a3c7929f41b065cc8b9c00d39dfd6ab831c96
2024-07-12 00:05:47 +00:00
Jordan Silva
6a8d81a2fa Optimize build for Launcher3Quickstep, Launcher3Go and Launcher3QuickstepGo
This CL adds optimizations for Launcher3Quickstep builds by shrinking
unused resources.
- Enabled proguard for Launcher3QuickStep
- Launcher3Quickstep APK size reduced by -61%, 18.9Mb.
- Launcher3QuickstepGo and Launcher3Go APK size reduced by 6.5%, 872kb.

Fix: 346288630
Flag: EXEMPT Updating bp files to optimize the build
Test: Presubmit and Postsubmit builds
Change-Id: I6f8bdee7febbc125e14df3afe7bbd36ba57623f0
2024-07-10 15:14:09 +00:00
Hyunyoung Song
5d095ecda2 Include FW flag to launcher3 dependency
Bug: 333390600
Test: m Launcher3 / Static import of the android.os.Flag method
Flag: NA

Change-Id: I1085f68092768a59c7aa70c9d8b9e229e51f023f
2024-04-16 07:57:08 +00:00
Sunny Goyal
3b452f5e90 Fixing Launcher3QuickStepGo targets
When res directory is not specified in the app target, it automatically
uses the default res directory, which in this case overrides the
quickstep resources.
Explicitely specifying the res directory to prevent override

Bug: 333207609
Test: Verified apk
Flag: None
Change-Id: I749ad895f42ac40a462993ed5290da52a838c1ec
2024-04-12 19:19:59 +00:00
Peter Kalauskas
9bdb1daa4d Add soong namespace to sysui libs
Test: m checkbuild
Flag: NONE
Bug: 214238812
Change-Id: I6f0dd217c03da8ad38ee61cf89587dede9660590
2024-04-02 17:03:56 -07:00
Uwais Ashraf
6e9927e61f Add test and android lifecycle coroutine libs
Fix: 330128421
Bug: 330127493
Test: Presubmit build passes
Flag: NA
Change-Id: I87cf3b5faaee6bcdb99c5afbe1999a11d031d98e
2024-03-27 10:23:36 +00:00
Sunny Goyal
77954bae4e Cleaning up some build configurations
> Removing Launcher3Go-without-quickstep
> Removing src_ui_overrides to src_no_quickstep
> Removing unnecessary code swpa for GO builds

Bug: 330920490
Flag: None
Test: Presubmit, everything builds
Change-Id: I5746dbc7c5a37c1d99d78b55bf2a6adce1a711c9
2024-03-26 17:16:52 +00:00
Sunny Goyal
9d2ece156d Removing ext_test directory
Except for a few methods, most of the testing code was already in the main
codebase. Maintaining the additional source directory adds unnecessary overhead

Bug: 330920490
Test: Presubmit
Flag: None
Change-Id: I56c43ab7a4869b26858d622d0b8b14f286d50e90
2024-03-22 15:45:32 -07:00
Uwais Ashraf
e2625dce7b Adding coroutines library
Fix: 329045417
Test: Presubmit builds passing
Flag: NA
Change-Id: Ifd7f4892f68f99d700d586e78ddd102aa28ff7a0
2024-03-18 08:59:31 +00:00
Uwais Ashraf
9c2f5a4c62 Remove classes related to E2E testing from deviceless test classpath
Fix: 327187136
Flag: NA
Test: gradlew :NexusLauncher:testGoogleWithQuickstepDebugUnitTest
Test: atest Launcher3RoboTests
Test: presubmits passing
Change-Id: I4f05524bdc55d8473f3b5115cc239eb8cc48a856
2024-03-04 13:45:32 +00:00
Eghosa Ewansiha-Vlachavas
80232ea229 [2/n] Replace read-only desktop windowing flag with runtime flag
Replace use of `enable_desktop_windowing` flag with
`enable_desktop_windowing_mode` flag

Flag: NONE
Bug: 304778354
Fixes: 326060018
Test: build & `adb shell device_config put lse_desktop_experience
com.android.window.flags.enable_desktop_windowing_mode true && adb
reboot` desktop windowing mode should be enabled.

Change-Id: Idc44e2b7a8b738f15f8d3812a0c4fc1a4b4861c1
2024-02-22 17:02:45 +00:00
Willie Koomson
fda1b4b0d0 Merge "Use generated RemoteViews preview for widget picker if available" into main 2024-02-13 21:18:45 +00:00
Willie Koomson
fedc18e9a8 Use generated RemoteViews preview for widget picker if available
WidgetCell will use the generated RemoteViews preview to display
previews in the widget picker. It will fallback to current preview
methods if not available.

Introduces WidgetManagerHelper.loadGeneratedPreviews as a utility
function. WidgetManagerHelper is passed into the constructor of
WidgetItem to avoid calling
context.getSystemService(AppWidgetManager.class) for each widget.

Bug: 308041327
Test: atest Launcher3Tests:GeneratedPreviewTest
Flag: ACONFIG com.android.launcher3.enable_generated_previews DEVELOPMENT
Change-Id: I37429057cda83a5321884ace2537038e050b9a58
2024-02-13 18:49:44 +00:00
Jordan Silva
ebd71c6cc9 Refactoring TAPL functions for OverviewTask
This CL refactors some methods in OverviewTask to rely on OverviewSplitTask. It also changes the BaseOverview getTasks function to retrieve the parent task and support cases where only the bottomright_snapshot is available in the recent tasks.

Bug: 320633351
Test: TaplTestsSplitscreen
Flag: N/A
Change-Id: I226f895810ce3b46cc107f76cd85e2918abf7088
2024-02-05 13:50:23 +00:00
Colin Cross
f156b6bc7c Set use_resource_processor: false
These modules fail to compile when use_resource_processor is enabled
by default, disable them explicitly for now.

Bug: 319712088
Test: m javac-check
Flag: NA
Change-Id: I0f7ee108aab802ee1882f8017ea4b47346e38683
2024-01-24 15:52:06 -08:00
Sebastián Franco
82d88d3fdc Merge "Updating launcher settings so that they become split-screen" into main 2024-01-22 04:58:09 +00:00
Sebastian Franco
9ae403298d Updating launcher settings so that they become split-screen
Following this guide:
https://developer.android.com/guide/topics/large-screens/activity-embedding#extract_an_activity_from_a_split_to_full_window

Bug: 204463748
Test: Open the settings app and open multiple settings, for now
only the options inside of the launcher3 package work
Flag: ACONFIG com.android.launcher3.Flags.enableTwoPaneLauncherSettings DEVELOPMENT

Change-Id: Ie6a9eb3760171da92d94cf06376127b02afff8df
2024-01-19 22:33:20 +00:00
Uwais Ashraf
77b97c0729 Replace existing Robolectric test task with functioning one.
This CL does the following:
- Creates a dir for multivalentTests
- Creates symlinks for the dir to keep Android Studio happy
- Moves many files to the multivalentTests dir
- Adjusts gradle and soong build files to use the new dir as part of
their source sets.

Test: ./gradlew :NexusLauncher:testGoogleWithQuickstepDebugUnitTest
Test: atest Launcher3RoboTests
Fix: 316553886
Bug: 316553889
Flag: NA
Change-Id: Iae28fd0c0191b3ecf9bd2950800875950cca2622
2024-01-19 21:39:23 +00:00
Cole Faust
c778a67f8b Baseline NewApi issues
NewApi is a lint check that you don't call framework methods that were
introduced in versions later than your min_sdk_version. We want to
make this an error, so we're baselineing all existing issues.

This cl was generated automatically, by taking all the NewApi issues
from the reference baselines, and all the non-NewApi issues from the
existing checked in baselines.

Bug: 268261262
Test: Presubmits
Change-Id: Ibfbf5af12819d43dabd4b6c0eb12a4d0e8258f30
2024-01-10 12:30:39 -08:00
Cole Faust
bad33e6f85 List baseline_filename on modules that are implititly using it
lintable modules currently pick up files named "lint-baseline.xml" to use as the
lint baseline implicitly. This is confusing because you could end up using the
baseline files in more modules than intended. Lint also has a feature where it
requests you remove unnecessary findings from the baseline file, so something
could be necessary for one module, but unnecessary for another that accidentally
picked up the baseline.

We're removing the implicit detection of the baseline file, which requires
all modules using it to list the baseline file explicitly.

Flag: None
Bug: 272769514
Test: Presubmits
Change-Id: Idcd6b8c8868b05a34fe621c5c05aa21cc1f149ea
2023-12-20 16:46:26 -08:00
Anna Zhuravleva
9c20381231 Add user_type field and log it in Launcher
Add new field user_type to decouple
work_profile and private_space users.
Deprecate is_work boolean field.

Bug: 312200869
Test: statsd_testdrive 19, output: https://paste.googleplex.com/5912695996416000
Flag: NA
Change-Id: Idc25f341b4353a85b8a93eab97c88195895baedc
2023-11-29 10:26:53 +00:00
Jagrut Desai
fae321cf0a Add "SettingsLibSettingsTheme" to "QuickstepResLib" static libs
Test: Presubmit
Bug: 308638354
Flag: LEGACY ENABLE_TASKBAR_PINNING DISABLED

Change-Id: I713a6555c256478972da02956c423b3f267daa71
2023-10-31 18:17:31 +00:00
Jeremy Sim
9e44e378bb Set up to use aconfig flags from WM Shell
This CL allows Launcher and Launcher test files to use aconfig flags from WM Shell.

Bug: 304597782
Test: N/A
Change-Id: I291b744207ec07d5955814879987c15f4aa13140
2023-10-10 15:16:53 -07:00
Anushree Ganjam
2a14b978c6 Remove the test aconfig lib.
zhidou@ from ACE team is working on AConfigFakelib which will be useful
to set fake flag values in both unit tests and UI automator tests.
Meanwhile, we will mock the flag values for unit tests and UI automator
tests will have all flags values defaulted to false.

testAConfigLib with "test:true" doesn't generate fake flags values and
forces us to set the flag values using "SetFlagsRule". "SetFlagsRule"
doesn't work with Out Of Proc tests and hence doesn't serve the purpose
for us. AConfigFakelib and FakeFlagTargetPreparer should use for Out Of
Proc tests.

testAConfigLib with "test:true" is suitable for java host tests where
there is no device involved. Launcher tests are instrumentation tests and tests run on actual
devices. So we can use the production version of the AConfig lib and device
config flag values will be fetched for UI Automator tests.

Also migrating "enable_twoline_allapps" to trunk stable. Unit tests is
using mockito to mock the flag value as false. The owner of
"enable_twoline_allapps" can mock the value to true in unit tests as
next step.

Bug: 294913042
Test: Local studio build and soong build
Flag: enable_twoline_allapps

Change-Id: Iea42bf18197832a9ecbddc1c3aaa8c9e36169131
2023-08-30 15:20:51 -07:00