diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-03-10 22:09:38 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-03-10 22:09:38 +0000 |
commit | 44bfb918c928204c905492b53b41e65e77b99857 (patch) | |
tree | 575e965c4960fb3ffadee62af052b81aa7bf0721 | |
parent | a893f5bca631a76172a49257b3553f0f8c1d9d03 (diff) | |
parent | 317b1960e10f3462f54b0a895b06b7dad1081634 (diff) | |
download | common-44bfb918c928204c905492b53b41e65e77b99857.tar.gz |
Snap for 7198837 from 317b1960e10f3462f54b0a895b06b7dad1081634 to mainline-permission-release
Change-Id: I6a9c18a31232e604d8b9ab00b1c47d218d5a0a39
-rw-r--r-- | MODULES_OWNERS | 9 | ||||
-rw-r--r-- | PREUPLOAD.cfg | 2 | ||||
-rw-r--r-- | java/com/android/modules/annotation/Android.bp | 32 | ||||
-rw-r--r-- | java/com/android/modules/annotation/MinSdk.java | 57 | ||||
-rw-r--r-- | sdk/Android.bp | 3 |
5 files changed, 103 insertions, 0 deletions
diff --git a/MODULES_OWNERS b/MODULES_OWNERS new file mode 100644 index 00000000..95e3fc8a --- /dev/null +++ b/MODULES_OWNERS @@ -0,0 +1,9 @@ +# This file is intended to be included in the OWNERS file for mainline modules. +# The goal is to allow the mainline modularization team to approve certain +# classes of change within mainline modules and their build rules. +# +# It should be included in a module OWNERS file via: +# include packages/modules/common:/MODULES_OWNERS + +mathewi@google.com +hansson@google.com diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg new file mode 100644 index 00000000..ce751504 --- /dev/null +++ b/PREUPLOAD.cfg @@ -0,0 +1,2 @@ +[Hook Scripts] +do_not_use_DO_NOT_MERGE = ${REPO_ROOT}/build/soong/scripts/check_do_not_merge.sh ${PREUPLOAD_COMMIT} diff --git a/java/com/android/modules/annotation/Android.bp b/java/com/android/modules/annotation/Android.bp new file mode 100644 index 00000000..1e6f2283 --- /dev/null +++ b/java/com/android/modules/annotation/Android.bp @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 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 { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +java_library { + name: "modules-annotation-minsdk", + host_supported: true, + srcs: [ + "MinSdk.java", + ], + sdk_version: "29", + visibility: ["//visibility:public"], + apex_available: [ + "//apex_available:anyapex", + ], +} diff --git a/java/com/android/modules/annotation/MinSdk.java b/java/com/android/modules/annotation/MinSdk.java new file mode 100644 index 00000000..38221951 --- /dev/null +++ b/java/com/android/modules/annotation/MinSdk.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 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 com.android.modules.annotation; + +import static java.lang.annotation.ElementType.CONSTRUCTOR; +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.CLASS; + +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Indicates than an API is only supported on platform versions of at least the given value and + * later. + * + * Currently, this annotations is purely informational. The exact meaning of this annotation depends + * on it's context: + * <ul> + * <li>On a public SDK method, it means that the member should only be included in the SDK of + * the given version or later</li> + * <li>On a module API, it will mean that it should only be called when running on a device with + * the given SDK or later</li> + * </ul> + * + * In future, the annotation will acquire further semantics: + * <ul> + * <li>Classes annotated with this will only be classloaded on devices running the given SDK + * version or later.</li> + * <li>It will be used to ensure API safety at build time in the context of a codebase with + * different parts having different min SDK versions.</li> + * </ul> + * + * This annotation should only be used on code that exports an API (either public SDK or + * {@code @SystemApi}. For code that just calls APIs that only exist on newer platform versions + * use {@code androidx.annotation.RequiresApi} instead. + */ +@Retention(CLASS) +@Target({CONSTRUCTOR, METHOD, FIELD, TYPE}) +public @interface MinSdk { + int value(); +}
\ No newline at end of file diff --git a/sdk/Android.bp b/sdk/Android.bp index 0a7ae58b..bbdc599e 100644 --- a/sdk/Android.bp +++ b/sdk/Android.bp @@ -14,6 +14,7 @@ package { default_visibility: [":__subpackages__"], + default_applicable_licenses: ["Android-Apache-2.0"], } mainline_stubs_args = @@ -148,6 +149,8 @@ java_defaults { ":__subpackages__", "//frameworks/base/apex:__subpackages__", "//frameworks/base/libs/hwui", + // TODO: remove after moving connectivity to packages/modules + "//frameworks/base/packages/Connectivity:__subpackages__", "//frameworks/base/wifi", "//packages/modules:__subpackages__", "//packages/providers/MediaProvider:__subpackages__", |