Winson Chung 94132e14a9 1/ Initial preparation for separate shell main thread
- Add @BinderThread/@ShellMainThread/@SysUIMainThread annotations
  for some common shell classes and callbacks
- Add mechanism to inject shell-anim/shell-main/sysui-main/etc
  executors (removed AnimationThread static instance)
(Note: The shell main thread will still be the sysui main thread)

Bug: 161979899
Test: atest WMShellUnitTests

Change-Id: I4adfeaebe5b79fab7c9451eef7b54fcdf4d8d40a
2020-12-03 10:42:48 -08:00

136 lines
4.0 KiB
Plaintext

// Copyright (C) 2019 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.
// Begin ProtoLog
java_library {
name: "wm_shell_protolog-groups",
srcs: [
"src/com/android/wm/shell/protolog/ShellProtoLogGroup.java",
":protolog-common-src",
],
}
filegroup {
name: "wm_shell-sources",
srcs: [
"src/**/*.java",
],
path: "src",
}
// TODO(b/168581922) protologtool do not support kotlin(*.kt)
filegroup {
name: "wm_shell-sources-kt",
srcs: [
"src/**/*.kt",
],
path: "src",
}
genrule {
name: "wm_shell_protolog_src",
srcs: [
":wm_shell_protolog-groups",
":wm_shell-sources",
],
tools: ["protologtool"],
cmd: "$(location protologtool) transform-protolog-calls " +
"--protolog-class com.android.internal.protolog.common.ProtoLog " +
"--protolog-impl-class com.android.wm.shell.protolog.ShellProtoLogImpl " +
"--protolog-cache-class com.android.wm.shell.protolog.ShellProtoLogCache " +
"--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
"--loggroups-jar $(location :wm_shell_protolog-groups) " +
"--output-srcjar $(out) " +
"$(locations :wm_shell-sources)",
out: ["wm_shell_protolog.srcjar"],
}
genrule {
name: "generate-wm_shell_protolog.json",
srcs: [
":wm_shell_protolog-groups",
":wm_shell-sources",
],
tools: ["protologtool"],
cmd: "$(location protologtool) generate-viewer-config " +
"--protolog-class com.android.internal.protolog.common.ProtoLog " +
"--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
"--loggroups-jar $(location :wm_shell_protolog-groups) " +
"--viewer-conf $(out) " +
"$(locations :wm_shell-sources)",
out: ["wm_shell_protolog.json"],
}
filegroup {
name: "wm_shell_protolog.json",
srcs: ["res/raw/wm_shell_protolog.json"],
}
genrule {
name: "checked-wm_shell_protolog.json",
srcs: [
":generate-wm_shell_protolog.json",
":wm_shell_protolog.json",
],
cmd: "cp $(location :generate-wm_shell_protolog.json) $(out) && " +
"{ ! (diff $(out) $(location :wm_shell_protolog.json) | grep -q '^<') || " +
"{ echo -e '\\n\\n################################################################\\n#\\n" +
"# ERROR: ProtoLog viewer config is stale. To update it, run:\\n#\\n" +
"# cp $(location :generate-wm_shell_protolog.json) " +
"$(location :wm_shell_protolog.json)\\n#\\n" +
"################################################################\\n\\n' >&2 && false; } }",
out: ["wm_shell_protolog.json"],
}
// End ProtoLog
java_library {
name: "WindowManager-Shell-proto",
srcs: ["proto/*.proto"],
proto: {
type: "nano",
},
}
android_library {
name: "WindowManager-Shell",
srcs: [
":wm_shell_protolog_src",
// TODO(b/168581922) protologtool do not support kotlin(*.kt)
":wm_shell-sources-kt",
"src/**/I*.aidl",
],
resource_dirs: [
"res",
],
static_libs: [
"androidx.appcompat_appcompat",
"androidx.arch.core_core-runtime",
"androidx.dynamicanimation_dynamicanimation",
"kotlinx-coroutines-android",
"kotlinx-coroutines-core",
"iconloader_base",
"jsr330",
"protolog-lib",
"SettingsLib",
"WindowManager-Shell-proto",
"jsr330"
],
kotlincflags: ["-Xjvm-default=enable"],
manifest: "AndroidManifest.xml",
min_sdk_version: "26",
}