mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
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
688 lines
18 KiB
Plaintext
688 lines
18 KiB
Plaintext
// Copyright (C) 2018 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package {
|
|
// See: http://go/android-license-faq
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
min_launcher3_sdk_version = "31"
|
|
|
|
// Targets that don't inherit framework aconfig libs (i.e., those that don't set
|
|
// `platform_apis: true`) must manually link them.
|
|
java_defaults {
|
|
name: "launcher-non-platform-apis-defaults",
|
|
static_libs: [
|
|
"android.os.flags-aconfig-java",
|
|
"android.multiuser.flags-aconfig-java",
|
|
"android.appwidget.flags-aconfig-java",
|
|
"com.android.window.flags.window-aconfig-java",
|
|
],
|
|
}
|
|
|
|
// Common source files used to build launcher (java and kotlin)
|
|
// All sources are split so they can be reused in many other libraries/apps in other folders
|
|
|
|
// Main Launcher source, excluding the build config
|
|
filegroup {
|
|
name: "launcher-src",
|
|
srcs: [
|
|
"src/**/*.java",
|
|
"src/**/*.kt",
|
|
],
|
|
}
|
|
|
|
// Main Launcher source for compose, excluding the build config
|
|
filegroup {
|
|
name: "launcher-compose-enabled-src",
|
|
srcs: [
|
|
"compose/facade/enabled/*.kt",
|
|
"compose/facade/core/*.kt",
|
|
"compose/features/**/*.kt",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "launcher-compose-disabled-src",
|
|
srcs: [
|
|
"compose/facade/core/*.kt",
|
|
"compose/facade/disabled/*.kt",
|
|
],
|
|
}
|
|
|
|
// Source code for quickstep build, on top of launcher-src
|
|
filegroup {
|
|
name: "launcher-quickstep-src",
|
|
srcs: [
|
|
"quickstep/src/**/*.kt",
|
|
"quickstep/src/**/*.java",
|
|
],
|
|
device_common_srcs: [
|
|
":launcher-quickstep-processed-protolog-src",
|
|
],
|
|
}
|
|
|
|
// Launcher ProtoLog support
|
|
filegroup {
|
|
name: "launcher-quickstep-unprocessed-protolog-src",
|
|
srcs: [
|
|
"quickstep/src_protolog/**/*.java",
|
|
],
|
|
}
|
|
|
|
java_library {
|
|
name: "launcher-quickstep_protolog-groups",
|
|
srcs: [
|
|
"quickstep/src_protolog/**/*.java",
|
|
],
|
|
static_libs: [
|
|
"protolog-group",
|
|
"androidx.annotation_annotation",
|
|
"com_android_launcher3_flags_lib",
|
|
],
|
|
}
|
|
|
|
java_genrule {
|
|
name: "launcher-quickstep-processed-protolog-src",
|
|
srcs: [
|
|
":protolog-impl",
|
|
":launcher-quickstep-unprocessed-protolog-src",
|
|
":launcher-quickstep_protolog-groups",
|
|
],
|
|
tools: ["protologtool"],
|
|
cmd: "$(location protologtool) transform-protolog-calls " +
|
|
"--protolog-class com.android.internal.protolog.common.ProtoLog " +
|
|
"--loggroups-class com.android.quickstep.util.QuickstepProtoLogGroup " +
|
|
"--loggroups-jar $(location :launcher-quickstep_protolog-groups) " +
|
|
"--viewer-config-file-path /system_ext/etc/launcher.quickstep.protolog.pb " +
|
|
"--output-srcjar $(out) " +
|
|
"$(locations :launcher-quickstep-unprocessed-protolog-src)",
|
|
out: ["launcher.quickstep.protolog.srcjar"],
|
|
}
|
|
|
|
java_genrule {
|
|
name: "gen-launcher.quickstep.protolog.pb",
|
|
srcs: [
|
|
":launcher-quickstep-unprocessed-protolog-src",
|
|
":launcher-quickstep_protolog-groups",
|
|
],
|
|
tools: ["protologtool"],
|
|
cmd: "$(location protologtool) generate-viewer-config " +
|
|
"--protolog-class com.android.internal.protolog.common.ProtoLog " +
|
|
"--loggroups-class com.android.quickstep.util.QuickstepProtoLogGroup " +
|
|
"--loggroups-jar $(location :launcher-quickstep_protolog-groups) " +
|
|
"--viewer-config-type proto " +
|
|
"--viewer-config $(out) " +
|
|
"$(locations :launcher-quickstep-unprocessed-protolog-src)",
|
|
out: ["launcher.quickstep.protolog.pb"],
|
|
}
|
|
|
|
prebuilt_etc {
|
|
name: "launcher.quickstep.protolog.pb",
|
|
system_ext_specific: true,
|
|
src: ":gen-launcher.quickstep.protolog.pb",
|
|
filename_from_src: true,
|
|
}
|
|
|
|
// Source code for quickstep dagger
|
|
filegroup {
|
|
name: "launcher-quickstep-dagger",
|
|
srcs: [
|
|
"quickstep/dagger/**/*.java",
|
|
"quickstep/dagger/**/*.kt",
|
|
],
|
|
}
|
|
|
|
// Source code for quickstep build with compose enabled, on top of launcher-src
|
|
filegroup {
|
|
name: "launcher-quickstep-compose-enabled-src",
|
|
srcs: [
|
|
"quickstep/compose/facade/core/*.kt",
|
|
"quickstep/compose/facade/enabled/*.kt",
|
|
"quickstep/compose/features/**/*.kt",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "launcher-quickstep-compose-disabled-src",
|
|
srcs: [
|
|
"quickstep/compose/facade/core/*.kt",
|
|
"quickstep/compose/facade/disabled/*.kt",
|
|
],
|
|
}
|
|
|
|
// Alternate source when quickstep is not included
|
|
filegroup {
|
|
name: "launcher-src_no_quickstep",
|
|
srcs: [
|
|
"src_no_quickstep/**/*.java",
|
|
"src_no_quickstep/**/*.kt",
|
|
],
|
|
}
|
|
|
|
// Default build config for Launcher3
|
|
filegroup {
|
|
name: "launcher-build-config",
|
|
srcs: [
|
|
"src_build_config/**/*.java",
|
|
],
|
|
}
|
|
|
|
// Proguard files for Launcher3
|
|
filegroup {
|
|
name: "launcher-proguard-rules",
|
|
srcs: ["proguard.flags"],
|
|
}
|
|
|
|
// Opt-in configuration for Launcher3 code depending on Jetpack Compose.
|
|
soong_config_module_type {
|
|
name: "launcher_compose_java_defaults",
|
|
module_type: "java_defaults",
|
|
config_namespace: "ANDROID",
|
|
bool_variables: ["release_enable_compose_in_launcher"],
|
|
properties: [
|
|
"srcs",
|
|
"static_libs",
|
|
],
|
|
}
|
|
|
|
// Opt-in configuration for Launcher Quickstep code depending on Jetpack Compose.
|
|
soong_config_bool_variable {
|
|
name: "release_enable_compose_in_launcher",
|
|
}
|
|
|
|
soong_config_module_type {
|
|
name: "quickstep_compose_java_defaults",
|
|
module_type: "java_defaults",
|
|
config_namespace: "ANDROID",
|
|
bool_variables: ["release_enable_compose_in_launcher"],
|
|
properties: [
|
|
"srcs",
|
|
"static_libs",
|
|
],
|
|
}
|
|
|
|
soong_config_module_type {
|
|
name: "launcher_compose_tests_java_defaults",
|
|
module_type: "java_defaults",
|
|
config_namespace: "ANDROID",
|
|
bool_variables: ["release_enable_compose_in_launcher"],
|
|
properties: [
|
|
"static_libs",
|
|
],
|
|
}
|
|
|
|
launcher_compose_java_defaults {
|
|
name: "launcher_compose_defaults",
|
|
soong_config_variables: {
|
|
release_enable_compose_in_launcher: {
|
|
srcs: [
|
|
":launcher-compose-enabled-src",
|
|
],
|
|
|
|
// Compose dependencies
|
|
static_libs: [
|
|
"androidx.compose.runtime_runtime",
|
|
"androidx.compose.material3_material3",
|
|
],
|
|
|
|
// By default, Compose is disabled and we compile the ComposeFacade
|
|
// in compose/launcher3/facade/disabled/.
|
|
conditions_default: {
|
|
srcs: [
|
|
":launcher-compose-disabled-src",
|
|
],
|
|
static_libs: [],
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
quickstep_compose_java_defaults {
|
|
name: "quickstep_compose_defaults",
|
|
soong_config_variables: {
|
|
release_enable_compose_in_launcher: {
|
|
srcs: [
|
|
":launcher-quickstep-compose-enabled-src",
|
|
],
|
|
|
|
// Compose dependencies
|
|
static_libs: [
|
|
"androidx.compose.runtime_runtime",
|
|
"androidx.compose.material3_material3",
|
|
],
|
|
|
|
// By default, Compose is disabled and we compile the ComposeFacade
|
|
// in compose/quickstep/facade/disabled/.
|
|
conditions_default: {
|
|
srcs: [
|
|
":launcher-quickstep-compose-disabled-src",
|
|
],
|
|
static_libs: [],
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
launcher_compose_tests_java_defaults {
|
|
name: "launcher_compose_tests_defaults",
|
|
soong_config_variables: {
|
|
release_enable_compose_in_launcher: {
|
|
// Compose dependencies
|
|
static_libs: [
|
|
"androidx.compose.runtime_runtime",
|
|
"androidx.compose.ui_ui-test-junit4",
|
|
"androidx.compose.ui_ui-test-manifest",
|
|
],
|
|
|
|
conditions_default: {
|
|
static_libs: [],
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
android_library {
|
|
name: "launcher-aosp-tapl",
|
|
libs: [
|
|
"framework-statsd.stubs.module_lib",
|
|
],
|
|
static_libs: [
|
|
"androidx.annotation_annotation",
|
|
"androidx.test.runner",
|
|
"androidx.test.rules",
|
|
"androidx.test.uiautomator_uiautomator",
|
|
"androidx.preference_preference",
|
|
"SystemUISharedLib",
|
|
"//frameworks/libs/systemui:animationlib",
|
|
"//frameworks/libs/systemui:contextualeducationlib",
|
|
"launcher-testing-shared",
|
|
],
|
|
srcs: [
|
|
"tests/tapl/**/*.java",
|
|
"tests/tapl/**/*.kt",
|
|
],
|
|
resource_dirs: [],
|
|
manifest: "tests/tapl/AndroidManifest.xml",
|
|
platform_apis: true,
|
|
}
|
|
|
|
java_library_static {
|
|
name: "launcher_log_protos_lite",
|
|
srcs: [
|
|
"protos/*.proto",
|
|
"protos_overrides/*.proto",
|
|
],
|
|
sdk_version: "current",
|
|
proto: {
|
|
type: "lite",
|
|
local_include_dirs: [
|
|
"protos",
|
|
"protos_overrides",
|
|
],
|
|
},
|
|
static_libs: ["libprotobuf-java-lite"],
|
|
}
|
|
|
|
java_library_static {
|
|
name: "launcher_quickstep_log_protos_lite",
|
|
srcs: [
|
|
"quickstep/protos_overrides/*.proto",
|
|
],
|
|
sdk_version: "current",
|
|
proto: {
|
|
type: "lite",
|
|
local_include_dirs: [
|
|
"quickstep/protos_overrides",
|
|
],
|
|
},
|
|
static_libs: [
|
|
"libprotobuf-java-lite",
|
|
"launcher_log_protos_lite",
|
|
],
|
|
}
|
|
|
|
java_library {
|
|
name: "LauncherPluginLib",
|
|
|
|
static_libs: ["PluginCoreLib"],
|
|
|
|
srcs: ["src_plugins/**/*.java"],
|
|
|
|
sdk_version: "current",
|
|
min_sdk_version: min_launcher3_sdk_version,
|
|
}
|
|
|
|
// Library with all the dependencies for building Launcher3
|
|
android_library {
|
|
name: "Launcher3ResLib",
|
|
defaults: [
|
|
"launcher_compose_defaults",
|
|
],
|
|
srcs: [],
|
|
resource_dirs: ["res"],
|
|
static_libs: [
|
|
"LauncherPluginLib",
|
|
"launcher_quickstep_log_protos_lite",
|
|
"androidx-constraintlayout_constraintlayout",
|
|
"androidx.recyclerview_recyclerview",
|
|
"androidx.dynamicanimation_dynamicanimation",
|
|
"androidx.fragment_fragment",
|
|
"androidx.preference_preference",
|
|
"androidx.slice_slice-view",
|
|
"androidx.cardview_cardview",
|
|
"androidx.window_window",
|
|
"com.google.android.material_material",
|
|
"//frameworks/libs/systemui:iconloader_base",
|
|
"//frameworks/libs/systemui:view_capture",
|
|
"//frameworks/libs/systemui:animationlib",
|
|
"//frameworks/libs/systemui:contextualeducationlib",
|
|
"//frameworks/libs/systemui:msdl",
|
|
"SystemUI-statsd",
|
|
"WindowManager-Shell-shared-AOSP",
|
|
"launcher-testing-shared",
|
|
"androidx.lifecycle_lifecycle-common-java8",
|
|
"androidx.lifecycle_lifecycle-extensions",
|
|
"androidx.lifecycle_lifecycle-runtime-ktx",
|
|
"kotlinx_coroutines_android",
|
|
"kotlinx_coroutines",
|
|
"com_android_launcher3_flags_lib",
|
|
"com_android_wm_shell_flags_lib",
|
|
"dagger2",
|
|
"jsr330",
|
|
"com_android_systemui_shared_flags_lib",
|
|
"launcher-dagger-qualifiers",
|
|
],
|
|
manifest: "AndroidManifest-common.xml",
|
|
sdk_version: "current",
|
|
min_sdk_version: min_launcher3_sdk_version,
|
|
lint: {
|
|
baseline_filename: "lint-baseline.xml",
|
|
},
|
|
flags_packages: [
|
|
"com_android_launcher3_flags",
|
|
],
|
|
}
|
|
|
|
//
|
|
// Build rule for Launcher3 app.
|
|
//
|
|
android_app {
|
|
name: "Launcher3",
|
|
defaults: ["launcher-non-platform-apis-defaults"],
|
|
|
|
static_libs: [
|
|
"Launcher3ResLib",
|
|
],
|
|
srcs: [
|
|
":launcher-src",
|
|
":launcher-src_no_quickstep",
|
|
":launcher-build-config",
|
|
],
|
|
|
|
optimize: {
|
|
proguard_flags_files: [":launcher-proguard-rules"],
|
|
// Proguard is disable for testing. Derivarive prjects to keep proguard enabled
|
|
enabled: false,
|
|
},
|
|
|
|
sdk_version: "current",
|
|
min_sdk_version: min_launcher3_sdk_version,
|
|
target_sdk_version: "current",
|
|
plugins: ["dagger2-compiler"],
|
|
privileged: true,
|
|
system_ext_specific: true,
|
|
|
|
overrides: [
|
|
"Home",
|
|
"Launcher2",
|
|
],
|
|
required: ["privapp_whitelist_com.android.launcher3"],
|
|
|
|
jacoco: {
|
|
include_filter: ["com.android.launcher3.**"],
|
|
},
|
|
additional_manifests: [
|
|
"AndroidManifest-common.xml",
|
|
],
|
|
lint: {
|
|
extra_check_modules: ["Launcher3LintChecker"],
|
|
baseline_filename: "lint-baseline.xml",
|
|
},
|
|
kotlincflags: [
|
|
"-Xjvm-default=all",
|
|
],
|
|
}
|
|
|
|
// Library with all the dependencies for building quickstep
|
|
android_library {
|
|
name: "QuickstepResLib",
|
|
srcs: [],
|
|
resource_dirs: [
|
|
"quickstep/res",
|
|
],
|
|
libs: [
|
|
"framework-statsd.stubs.module_lib",
|
|
],
|
|
static_libs: [
|
|
"Launcher3ResLib",
|
|
"lottie",
|
|
"SystemUISharedLib",
|
|
"SettingsLibSettingsTheme",
|
|
"dagger2",
|
|
"protolog-group",
|
|
"displaylib",
|
|
],
|
|
manifest: "quickstep/AndroidManifest.xml",
|
|
min_sdk_version: "current",
|
|
lint: {
|
|
disabled_checks: ["MissingClass"],
|
|
},
|
|
}
|
|
|
|
// Library with all the source code and dependencies for building Launcher Go
|
|
android_library {
|
|
name: "Launcher3GoLib",
|
|
defaults: [
|
|
"launcher_compose_defaults",
|
|
"quickstep_compose_defaults",
|
|
],
|
|
srcs: [
|
|
":launcher-src",
|
|
":launcher-quickstep-src",
|
|
":launcher-quickstep-dagger",
|
|
"go/quickstep/src/**/*.java",
|
|
"go/quickstep/src/**/*.kt",
|
|
],
|
|
resource_dirs: [
|
|
"go/quickstep/res",
|
|
],
|
|
// Note the ordering here is important when it comes to resource
|
|
// overriding. We want the most specific resource overrides defined
|
|
// in QuickstepResLib to take precendece, so it should be the final
|
|
// dependency. See b/205278434 for how this can go wrong.
|
|
static_libs: [
|
|
"QuickstepResLib",
|
|
"androidx.room_room-runtime",
|
|
],
|
|
plugins: [
|
|
"androidx.room_room-compiler-plugin",
|
|
"dagger2-compiler",
|
|
],
|
|
manifest: "quickstep/AndroidManifest.xml",
|
|
additional_manifests: [
|
|
"go/AndroidManifest.xml",
|
|
"AndroidManifest-common.xml",
|
|
],
|
|
min_sdk_version: "current",
|
|
// TODO(b/319712088): re-enable use_resource_processor
|
|
use_resource_processor: false,
|
|
kotlincflags: [
|
|
"-Xjvm-default=all",
|
|
],
|
|
}
|
|
|
|
// Library with all the source code and dependencies for building Quickstep
|
|
android_library {
|
|
name: "Launcher3QuickStepLib",
|
|
defaults: [
|
|
"launcher_compose_defaults",
|
|
"quickstep_compose_defaults",
|
|
],
|
|
srcs: [
|
|
":launcher-src",
|
|
":launcher-quickstep-src",
|
|
":launcher-quickstep-dagger",
|
|
":launcher-build-config",
|
|
],
|
|
resource_dirs: [],
|
|
libs: [
|
|
"framework-statsd.stubs.module_lib",
|
|
],
|
|
// Note the ordering here is important when it comes to resource
|
|
// overriding. We want the most specific resource overrides defined
|
|
// in QuickstepResLib to take precendece, so it should be the final
|
|
// dependency. See b/208647810 for how this can go wrong.
|
|
static_libs: [
|
|
"SystemUI-statsd",
|
|
"QuickstepResLib",
|
|
],
|
|
manifest: "quickstep/AndroidManifest.xml",
|
|
platform_apis: true,
|
|
plugins: ["dagger2-compiler"],
|
|
min_sdk_version: "current",
|
|
// TODO(b/319712088): re-enable use_resource_processor
|
|
use_resource_processor: false,
|
|
kotlincflags: [
|
|
"-Xjvm-default=all",
|
|
],
|
|
}
|
|
|
|
// Build rule for Quickstep app.
|
|
android_app {
|
|
name: "Launcher3QuickStep",
|
|
static_libs: ["Launcher3QuickStepLib"],
|
|
optimize: {
|
|
proguard_flags_files: [":launcher-proguard-rules"],
|
|
enabled: true,
|
|
shrink_resources: true,
|
|
},
|
|
|
|
platform_apis: true,
|
|
min_sdk_version: "current",
|
|
target_sdk_version: "current",
|
|
|
|
privileged: true,
|
|
system_ext_specific: true,
|
|
overrides: [
|
|
"Home",
|
|
"Launcher2",
|
|
"Launcher3",
|
|
],
|
|
required: [
|
|
"privapp_whitelist_com.android.launcher3",
|
|
"launcher.quickstep.protolog.pb",
|
|
],
|
|
|
|
resource_dirs: ["quickstep/res"],
|
|
|
|
additional_manifests: [
|
|
"quickstep/AndroidManifest-launcher.xml",
|
|
"AndroidManifest-common.xml",
|
|
],
|
|
|
|
manifest: "quickstep/AndroidManifest.xml",
|
|
jacoco: {
|
|
include_filter: ["com.android.launcher3.*"],
|
|
},
|
|
|
|
}
|
|
|
|
// Build rule for Launcher3 Go app with quickstep for Android Go devices.
|
|
// Note that the following two rules are exactly same, and should
|
|
// eventually be merged into a single target
|
|
android_app {
|
|
name: "Launcher3Go",
|
|
static_libs: ["Launcher3GoLib"],
|
|
resource_dirs: [],
|
|
|
|
platform_apis: true,
|
|
min_sdk_version: "current",
|
|
target_sdk_version: "current",
|
|
|
|
optimize: {
|
|
proguard_flags_files: ["proguard.flags"],
|
|
enabled: true,
|
|
shrink_resources: true,
|
|
},
|
|
|
|
privileged: true,
|
|
system_ext_specific: true,
|
|
overrides: [
|
|
"Home",
|
|
"Launcher2",
|
|
"Launcher3",
|
|
"Launcher3QuickStep",
|
|
],
|
|
required: ["privapp_whitelist_com.android.launcher3"],
|
|
|
|
additional_manifests: [
|
|
"go/AndroidManifest.xml",
|
|
"go/AndroidManifest-launcher.xml",
|
|
"AndroidManifest-common.xml",
|
|
],
|
|
|
|
manifest: "quickstep/AndroidManifest.xml",
|
|
jacoco: {
|
|
include_filter: ["com.android.launcher3.*"],
|
|
},
|
|
}
|
|
|
|
android_app {
|
|
name: "Launcher3QuickStepGo",
|
|
static_libs: ["Launcher3GoLib"],
|
|
resource_dirs: [],
|
|
|
|
platform_apis: true,
|
|
min_sdk_version: "current",
|
|
target_sdk_version: "current",
|
|
|
|
optimize: {
|
|
proguard_flags_files: ["proguard.flags"],
|
|
enabled: true,
|
|
shrink_resources: true,
|
|
},
|
|
|
|
privileged: true,
|
|
system_ext_specific: true,
|
|
overrides: [
|
|
"Home",
|
|
"Launcher2",
|
|
"Launcher3",
|
|
"Launcher3QuickStep",
|
|
],
|
|
required: ["privapp_whitelist_com.android.launcher3"],
|
|
|
|
additional_manifests: [
|
|
"go/AndroidManifest.xml",
|
|
"go/AndroidManifest-launcher.xml",
|
|
"AndroidManifest-common.xml",
|
|
],
|
|
|
|
manifest: "quickstep/AndroidManifest.xml",
|
|
jacoco: {
|
|
include_filter: ["com.android.launcher3.*"],
|
|
},
|
|
}
|