diff options
42 files changed, 562 insertions, 626 deletions
diff --git a/Android.bp b/Android.bp index 0277af05d1f3..34b21d663dd6 100644 --- a/Android.bp +++ b/Android.bp @@ -408,11 +408,9 @@ java_library { srcs: [ "core/java/android/content/pm/BaseParceledListSlice.java", "core/java/android/content/pm/ParceledListSlice.java", - "core/java/android/os/HandlerExecutor.java", "core/java/com/android/internal/util/AsyncChannel.java", "core/java/com/android/internal/util/AsyncService.java", "core/java/com/android/internal/util/Protocol.java", - "core/java/com/android/internal/util/Preconditions.java", "telephony/java/android/telephony/Annotation.java", ":net-utils-framework-wifi-common-srcs", ], diff --git a/api/Android.bp b/api/Android.bp index fbfbc7cdef79..8dff60af8bbd 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -62,7 +62,7 @@ python_test_host { metalava_cmd = "$(location metalava)" // Silence reflection warnings. See b/168689341 metalava_cmd += " -J--add-opens=java.base/java.util=ALL-UNNAMED " -metalava_cmd += " --no-banner --format=v2 " +metalava_cmd += " --quiet --no-banner --format=v2 " genrule { name: "current-api-xml", @@ -118,13 +118,13 @@ genrule { ":android-incompatibilities.api.public.latest", ":frameworks-base-api-current.txt", ], - out: ["stdout.txt"], + out: ["updated-baseline.txt"], tools: ["metalava"], cmd: metalava_cmd + "--check-compatibility:api:released $(location :android.api.public.latest) " + "--baseline:compatibility:released $(location :android-incompatibilities.api.public.latest) " + - "$(location :frameworks-base-api-current.txt) " + - "> $(genDir)/stdout.txt", + "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " + + "$(location :frameworks-base-api-current.txt)", } genrule { @@ -231,14 +231,14 @@ genrule { ":frameworks-base-api-current.txt", ":frameworks-base-api-system-current.txt", ], - out: ["stdout.txt"], + out: ["updated-baseline.txt"], tools: ["metalava"], cmd: metalava_cmd + "--check-compatibility:api:released $(location :android.api.system.latest) " + "--check-compatibility:base $(location :frameworks-base-api-current.txt) " + "--baseline:compatibility:released $(location :android-incompatibilities.api.system.latest) " + - "$(location :frameworks-base-api-system-current.txt) " + - "> $(genDir)/stdout.txt", + "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " + + "$(location :frameworks-base-api-system-current.txt)", } genrule { @@ -320,7 +320,7 @@ genrule { ":frameworks-base-api-current.txt", ":frameworks-base-api-module-lib-current.txt", ], - out: ["stdout.txt"], + out: ["updated-baseline.txt"], tools: ["metalava"], cmd: metalava_cmd + "--check-compatibility:api:released $(location :android.api.module-lib.latest) " + @@ -329,8 +329,8 @@ genrule { // MODULE_LIBS -> public. "--check-compatibility:base $(location :frameworks-base-api-current.txt) " + "--baseline:compatibility:released $(location :android-incompatibilities.api.module-lib.latest) " + - "$(location :frameworks-base-api-module-lib-current.txt) " + - "> $(genDir)/stdout.txt", + "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " + + "$(location :frameworks-base-api-module-lib-current.txt)", } genrule { diff --git a/core/api/current.txt b/core/api/current.txt index a42fb7933a2f..e4e7d4eec77d 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -8712,6 +8712,7 @@ package android.bluetooth { field public static final String EXTRA_BOND_STATE = "android.bluetooth.device.extra.BOND_STATE"; field public static final String EXTRA_CLASS = "android.bluetooth.device.extra.CLASS"; field public static final String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE"; + field public static final String EXTRA_IS_COORDINATED_SET_MEMBER = "android.bluetooth.extra.IS_COORDINATED_SET_MEMBER"; field public static final String EXTRA_NAME = "android.bluetooth.device.extra.NAME"; field public static final String EXTRA_PAIRING_KEY = "android.bluetooth.device.extra.PAIRING_KEY"; field public static final String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT"; diff --git a/core/api/system-current.txt b/core/api/system-current.txt index af103ab460cf..e6015835c636 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1524,6 +1524,7 @@ package android.bluetooth { public final class BluetoothDevice implements android.os.Parcelable { method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess(); + method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean createBond(int); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean fetchUuidsWithSdp(int); method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int); diff --git a/core/java/Android.bp b/core/java/Android.bp index 675cea827216..949ba6ac419a 100644 --- a/core/java/Android.bp +++ b/core/java/Android.bp @@ -386,10 +386,7 @@ filegroup { "android/util/Rational.java", "com/android/internal/util/FastXmlSerializer.java", "com/android/internal/util/HexDump.java", - "com/android/internal/util/IState.java", "com/android/internal/util/MessageUtils.java", - "com/android/internal/util/State.java", - "com/android/internal/util/StateMachine.java", "com/android/internal/util/WakeupMessage.java", ], visibility: [ diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index 38fb90d9c4a7..1054b4cd49ac 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -106,7 +106,7 @@ public final class BluetoothDevice implements Parcelable { * <p>Sent when a remote device is found during discovery. * <p>Always contains the extra fields {@link #EXTRA_DEVICE} and {@link * #EXTRA_CLASS}. Can contain the extra fields {@link #EXTRA_NAME} and/or - * {@link #EXTRA_RSSI} if they are available. + * {@link #EXTRA_RSSI} and/or {@link #EXTRA_IS_COORDINATED_SET_MEMBER} if they are available. * <p>Requires {@link android.Manifest.permission#BLUETOOTH} and * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} to receive. */ @@ -257,6 +257,15 @@ public final class BluetoothDevice implements Parcelable { public static final String EXTRA_RSSI = "android.bluetooth.device.extra.RSSI"; /** + * Used as an bool extra field in {@link #ACTION_FOUND} intents. + * It contains the information if device is discovered as member of a coordinated set or not. + * Pairing with device that belongs to a set would trigger pairing with the rest of set members. + * See Bluetooth CSIP specification for more details. + */ + public static final String EXTRA_IS_COORDINATED_SET_MEMBER = + "android.bluetooth.extra.IS_COORDINATED_SET_MEMBER"; + + /** * Used as a Parcelable {@link BluetoothClass} extra field in {@link * #ACTION_FOUND} and {@link #ACTION_CLASS_CHANGED} intents. */ @@ -1326,7 +1335,7 @@ public final class BluetoothDevice implements Parcelable { * @throws IllegalArgumentException if an invalid transport was specified * @hide */ - @UnsupportedAppUsage + @SystemApi @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) public boolean createBond(int transport) { return createBondInternal(transport, null, null); diff --git a/core/java/android/bluetooth/OWNERS b/core/java/android/bluetooth/OWNERS index 2239100a5523..fbee57773173 100644 --- a/core/java/android/bluetooth/OWNERS +++ b/core/java/android/bluetooth/OWNERS @@ -1,5 +1,6 @@ # Bug component: 27441 -zachoverflow@google.com -siyuanh@google.com rahulsabnis@google.com +sattiraju@google.com +siyuanh@google.com +zachoverflow@google.com diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 515c08d8517e..288327ef61ba 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -1129,14 +1129,14 @@ static void isolateAppDataPerPackage(int userId, std::string_view package_name, } // Relabel directory -static void relabelDir(const char* path, security_context_t context, fail_fn_t fail_fn) { +static void relabelDir(const char* path, const char* context, fail_fn_t fail_fn) { if (setfilecon(path, context) != 0) { fail_fn(CREATE_ERROR("Failed to setfilecon %s %s", path, strerror(errno))); } } // Relabel all directories under a path non-recursively. -static void relabelAllDirs(const char* path, security_context_t context, fail_fn_t fail_fn) { +static void relabelAllDirs(const char* path, const char* context, fail_fn_t fail_fn) { DIR* dir = opendir(path); if (dir == nullptr) { fail_fn(CREATE_ERROR("Failed to opendir %s", path)); @@ -1211,7 +1211,7 @@ static void isolateAppData(JNIEnv* env, const std::vector<std::string>& merged_d snprintf(internalDePath, PATH_MAX, "/data/user_de"); snprintf(externalPrivateMountPath, PATH_MAX, "/mnt/expand"); - security_context_t dataDataContext = nullptr; + char* dataDataContext = nullptr; if (getfilecon(internalDePath, &dataDataContext) < 0) { fail_fn(CREATE_ERROR("Unable to getfilecon on %s %s", internalDePath, strerror(errno))); diff --git a/core/tests/hosttests/Android.mk b/core/tests/hosttests/Android.mk deleted file mode 100644 index f26d401bea1a..000000000000 --- a/core/tests/hosttests/Android.mk +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (C) 2010 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. - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -# Build the test APKs using their own makefiles -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/core/tests/hosttests/test-apps/Android.mk b/core/tests/hosttests/test-apps/Android.mk deleted file mode 100644 index e25764ff0ad2..000000000000 --- a/core/tests/hosttests/test-apps/Android.mk +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) 2010 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. - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -# Build the test APKs using their own makefiles -include $(call all-makefiles-under,$(LOCAL_PATH)) - diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.bp b/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.bp new file mode 100644 index 000000000000..d439124c72cb --- /dev/null +++ b/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.bp @@ -0,0 +1,38 @@ +// Copyright (C) 2010 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: ["frameworks_base_license"], +} + +android_test { + name: "DownloadManagerTestApp", + + srcs: ["src/**/*.java"], + + static_libs: [ + "android-common", + "mockwebserver", + "junit", + ], + libs: [ + "android.test.runner", + "android.test.base", + ], + + platform_apis: true, + + // Need to run as system app to get access to Settings. This test won't work for user builds. + certificate: "platform", +} diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk b/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk deleted file mode 100644 index d9e61512115d..000000000000 --- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2010 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_STATIC_JAVA_LIBRARIES := android-common mockwebserver junit -LOCAL_JAVA_LIBRARIES := android.test.runner android.test.base - -LOCAL_PACKAGE_NAME := DownloadManagerTestApp -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE -LOCAL_PRIVATE_PLATFORM_APIS := true - -ifneq ($(TARGET_BUILD_VARIANT),user) -# Need to run as system app to get access to Settings. This test won't work for user builds. -LOCAL_CERTIFICATE := platform -endif - -include $(BUILD_PACKAGE) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.bp new file mode 100644 index 000000000000..d0645b0d8b12 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.bp @@ -0,0 +1,47 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +// The application with a minimal main dex +android_test_helper_app { + name: "MultiDexLegacyAndException", + + static_libs: [ + "android-support-multidex", + "android-support-multidex-instrumentation", + "androidx.test.rules", + ], + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + javacflags: ["-nowarn"], + + main_dex_rules: [":mainDexClassesRules"], + dxflags: [ + // --debug triggers the old --minimal-main-dex behavior + "--debug", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, + + min_sdk_version: "16", +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk deleted file mode 100644 index 2d8556f2a3c7..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - - -## The application with a minimal main dex -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex android-support-multidex-instrumentation androidx.test.rules -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 8 - -LOCAL_PACKAGE_NAME := MultiDexLegacyAndException -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_DEX_PREOPT := false - -LOCAL_JAVACFLAGS := -nowarn - -mainDexList:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex - -LOCAL_MIN_SDK_VERSION := 8 - -include $(BUILD_PACKAGE) - -$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - echo "com/android/multidexlegacyandexception/Test.class" >> $@ - -$(built_dex_intermediate): $(mainDexList) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.bp new file mode 100644 index 000000000000..c0c8aba2d2f0 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.bp @@ -0,0 +1,70 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +// The application with a minimal main dex +android_test_helper_app { + name: "MultiDexLegacyTestApp", + + static_libs: ["android-support-multidex"], + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + main_dex_rules: [ + ":mainDexClassesRules", + "mainDexClasses.rules", + ], + dxflags: [ + // --debug triggers the old --minimal-main-dex behavior + "--debug", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, + + min_sdk_version: "16", +} + +android_test_helper_app { + name: "MultiDexLegacyTestApp2", + + static_libs: ["android-support-multidex"], + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + main_dex_rules: [ + ":mainDexClassesRules", + "mainDexClasses.rules", + ], + dxflags: [ + // --release disables the old --minimal-main-dex behavior + "--release", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, + + min_sdk_version: "16", +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk deleted file mode 100644 index d7af2d9c3cfe..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - - -## The application with a minimal main dex -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 8 - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestApp -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_DEX_PREOPT := false - -LOCAL_EMMA_INSTRUMENT := false - -mainDexList:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex - -LOCAL_MIN_SDK_VERSION := 8 - -include $(BUILD_PACKAGE) - -$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - echo "com/android/multidexlegacytestapp/Test.class" >> $@ - -$(built_dex_intermediate): $(mainDexList) - -## The application with a full main dex -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 8 - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestApp2 -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_DEX_PREOPT := false - -LOCAL_EMMA_INSTRUMENT := false - -mainDexList2:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList2) - -LOCAL_MIN_SDK_VERSION := 8 - -include $(BUILD_PACKAGE) - -$(mainDexList2): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - echo "com/android/multidexlegacytestapp/Test.class" >> $@ - -$(built_dex_intermediate): $(mainDexList2) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/mainDexClasses.rules b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/mainDexClasses.rules new file mode 100644 index 000000000000..91e6ddbb74c7 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/mainDexClasses.rules @@ -0,0 +1 @@ +-keep class com.android.multidexlegacytestapp.Test diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests/Android.bp new file mode 100644 index 000000000000..fe294168586d --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests/Android.bp @@ -0,0 +1,34 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +// The application with a minimal main dex +android_test { + name: "MultiDexLegacyTestAppTests", + + static_libs: ["android-support-multidex-instrumentation"], + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + javacflags: ["-nowarn"], + + min_sdk_version: "16", + + instrumentation_for: "MultiDexLegacyTestApp", +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests/Android.mk deleted file mode 100644 index 236c7403aa8c..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests/Android.mk +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - - -## The application with a minimal main dex -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex-instrumentation -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 8 - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestAppTests -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_DEX_PREOPT := false - -LOCAL_JAVACFLAGS := -nowarn - -LOCAL_MIN_SDK_VERSION := 8 - -LOCAL_INSTRUMENTATION_FOR := MultiDexLegacyTestApp - -LOCAL_JACK_FLAGS := -D jack.dex.output.policy=minimal-multidex -D jack.dex.output.multidex.legacy=true - -include $(BUILD_PACKAGE) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests2/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests2/Android.bp new file mode 100644 index 000000000000..c558153c6a4e --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests2/Android.bp @@ -0,0 +1,57 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +// The tests with only one dex +android_test { + name: "MultiDexLegacyTestAppTests2", + + static_libs: [ + "android-support-multidex-instrumentation", + "androidx.test.rules", + ], + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + javacflags: ["-nowarn"], + + min_sdk_version: "16", + + instrumentation_for: "MultiDexLegacyTestApp", +} + +// The tests with a minimal main dex +android_test { + name: "MultiDexLegacyTestAppTests2-multidex", + + static_libs: [ + "android-support-multidex-instrumentation", + "androidx.test.rules", + ], + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + javacflags: ["-nowarn"], + + min_sdk_version: "16", + + instrumentation_for: "MultiDexLegacyTestApp", +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests2/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests2/Android.mk deleted file mode 100644 index 6f6ccfe8dee7..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppTests2/Android.mk +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - - -## The tests with only one dex -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex-instrumentation androidx.test.rules -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := current - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestAppTests2 -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_DEX_PREOPT := false - -LOCAL_JAVACFLAGS := -nowarn - -LOCAL_MIN_SDK_VERSION := 8 - -LOCAL_INSTRUMENTATION_FOR := MultiDexLegacyTestApp - -include $(BUILD_PACKAGE) - - -## The tests with a minimal main dex -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex-instrumentation androidx.test.rules -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 8 - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestAppTests2-multidex -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_DEX_PREOPT := false - -LOCAL_JAVACFLAGS := -nowarn - -LOCAL_MIN_SDK_VERSION := 8 - -LOCAL_INSTRUMENTATION_FOR := MultiDexLegacyTestApp - -LOCAL_JACK_FLAGS := -D jack.dex.output.policy=minimal-multidex -D jack.dex.output.multidex.legacy=true - -include $(BUILD_PACKAGE) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppWithCorruptedDex/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppWithCorruptedDex/Android.bp new file mode 100644 index 000000000000..15bc4efbd480 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppWithCorruptedDex/Android.bp @@ -0,0 +1,48 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +android_test_helper_app { + name: "MultiDexLegacyTestApp_without_corrupted", + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + static_libs: ["android-support-multidex"], +} + +java_genrule { + name: "MultiDexLegacyTestApp_genrule", + srcs: [ + ":MultiDexLegacyTestApp_without_corrupted", + ], + tools: [ + "soong_zip", + "merge_zips", + ], + out: ["MultiDexLegacyTestApp_with_corrupted.apk"], + cmd: "touch $(genDir)/classes2.dex &&" + + " $(location soong_zip) -o $(genDir)/corrupted.zip -j -f $(genDir)/classes2.dex &&" + + " $(location merge_zips) $(out) $(location :MultiDexLegacyTestApp_without_corrupted) $(genDir)/corrupted.zip", +} + +android_test_import { + name: "MultiDexLegacyTestApp_corrupted", + apk: ":MultiDexLegacyTestApp_genrule", + default_dev_cert: true, +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppWithCorruptedDex/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestAppWithCorruptedDex/Android.mk deleted file mode 100644 index 33a46ea980c1..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestAppWithCorruptedDex/Android.mk +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 18 - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestApp_corrupted -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex - -LOCAL_DEX_PREOPT := false - -include $(BUILD_PACKAGE) - -corrupted_classes2_dex := $(dir $(built_dex))/classes2.dex - -$(corrupted_classes2_dex): $(built_dex) - $(hide) touch $@ - -$(LOCAL_BUILT_MODULE): $(corrupted_classes2_dex) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.bp new file mode 100644 index 000000000000..de0657fc3957 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.bp @@ -0,0 +1,38 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +android_test { + name: "MultiDexLegacyTestServices", + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + static_libs: ["android-support-multidex"], + + main_dex_rules: [":mainDexClassesRules"], + dxflags: [ + // --debug triggers the old --minimal-main-dex behavior + "--debug", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk deleted file mode 100644 index efc06886bee4..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 9 - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestServices -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex - -mainDexList:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex - -LOCAL_DEX_PREOPT := false - -LOCAL_EMMA_INSTRUMENT := false - -include $(BUILD_PACKAGE) - -$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - -$(built_dex_intermediate): $(mainDexList) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.bp index 56f10fe075ed..b62b25c080fb 100644 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.bp +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.bp @@ -24,7 +24,7 @@ package { android_test { name: "MultiDexLegacyTestServicesTests", srcs: ["src/**/*.java"], - sdk_version: "9", + sdk_version: "16", dex_preopt: { enabled: false, }, diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests2/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests2/Android.bp new file mode 100644 index 000000000000..75c753cef0fd --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests2/Android.bp @@ -0,0 +1,28 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +android_test { + name: "MultiDexLegacyTestServicesTests2", + + srcs: ["src/**/*.java"], + + libs: ["android-support-multidex"], + static_libs: ["androidx.test.rules"], + + sdk_version: "16", +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests2/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests2/Android.mk deleted file mode 100644 index 3920fd64b03e..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests2/Android.mk +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_PACKAGE_NAME := MultiDexLegacyTestServicesTests2 -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_JAVA_LIBRARIES := android-support-multidex -LOCAL_STATIC_JAVA_LIBRARIES := androidx.test.rules - -LOCAL_SDK_VERSION := 9 - -LOCAL_DEX_PREOPT := false - -include $(BUILD_PACKAGE) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.bp new file mode 100644 index 000000000000..23c62dc352c5 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.bp @@ -0,0 +1,41 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +android_test_helper_app { + name: "MultiDexLegacyVersionedTestApp_v1", + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + static_libs: ["android-support-multidex"], + + main_dex_rules: [ + ":mainDexClassesRules", + "mainDexClasses.rules", + ], + dxflags: [ + // --debug triggers the old --minimal-main-dex behavior + "--debug", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk deleted file mode 100644 index 2323ad98ac3d..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 9 - -LOCAL_PACKAGE_NAME := MultiDexLegacyVersionedTestApp_v1 -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex - -LOCAL_DEX_PREOPT := false - -LOCAL_EMMA_INSTRUMENT := false - -mainDexList:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex - -include $(BUILD_PACKAGE) - -$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - echo "com/android/framework/multidexlegacyversionedtestapp/MultiDexUpdateTest.class" >> $@ - -$(built_dex_intermediate): $(mainDexList) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/mainDexClasses.rules b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/mainDexClasses.rules new file mode 100644 index 000000000000..1cdf3af798d3 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/mainDexClasses.rules @@ -0,0 +1 @@ +-keep class com.android.framework.multidexlegacyversionedtestapp.MultiDexUpdateTest diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.bp new file mode 100644 index 000000000000..6cd3df71ddf4 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.bp @@ -0,0 +1,41 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +android_test_helper_app { + name: "MultiDexLegacyVersionedTestApp_v2", + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + static_libs: ["android-support-multidex"], + + main_dex_rules: [ + ":mainDexClassesRules", + "mainDexClasses.rules", + ], + dxflags: [ + // --debug triggers the old --minimal-main-dex behavior + "--debug", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk deleted file mode 100644 index 79a59063f702..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 9 - -LOCAL_PACKAGE_NAME := MultiDexLegacyVersionedTestApp_v2 -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex - -LOCAL_DEX_PREOPT := false - -LOCAL_EMMA_INSTRUMENT := false - -mainDexList:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex - -include $(BUILD_PACKAGE) - -$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - echo "com/android/framework/multidexlegacyversionedtestapp/MultiDexUpdateTest.class" >> $@ - -$(built_dex_intermediate): $(mainDexList) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/mainDexClasses.rules b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/mainDexClasses.rules new file mode 100644 index 000000000000..1cdf3af798d3 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/mainDexClasses.rules @@ -0,0 +1 @@ +-keep class com.android.framework.multidexlegacyversionedtestapp.MultiDexUpdateTest diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.bp b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.bp new file mode 100644 index 000000000000..34dba4013aa3 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.bp @@ -0,0 +1,41 @@ +// Copyright (C) 2014 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: ["frameworks_base_license"], +} + +android_test_helper_app { + name: "MultiDexLegacyVersionedTestApp_v3", + + srcs: ["src/**/*.java"], + + sdk_version: "16", + + static_libs: ["android-support-multidex"], + + main_dex_rules: [ + ":mainDexClassesRules", + "mainDexClasses.rules", + ], + dxflags: [ + // --debug triggers the old --minimal-main-dex behavior + "--debug", + ], + optimize: { + // disable optimization to force D8 instead of R8, as R8 doesn't support + // --main-dex-rules. + enabled: false, + }, +} diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk deleted file mode 100644 index 521bad058693..000000000000 --- a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2014 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. - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := tests - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_SDK_VERSION := 9 - -LOCAL_PACKAGE_NAME := MultiDexLegacyVersionedTestApp_v3 -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../../../../NOTICE - -LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex - -mainDexList:= \ - $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list - -LOCAL_DEX_PREOPT := false - -LOCAL_EMMA_INSTRUMENT := false - -LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex - -include $(BUILD_PACKAGE) - -$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS) - $(hide) mkdir -p $(dir $@) - PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@ - echo "com/android/framework/multidexlegacyversionedtestapp/MultiDexUpdateTest.class" >> $@ - -$(built_dex_intermediate): $(mainDexList) diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/mainDexClasses.rules b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/mainDexClasses.rules new file mode 100644 index 000000000000..1cdf3af798d3 --- /dev/null +++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/mainDexClasses.rules @@ -0,0 +1 @@ +-keep class com.android.framework.multidexlegacyversionedtestapp.MultiDexUpdateTest diff --git a/libs/hwui/jni/PaintFilter.cpp b/libs/hwui/jni/PaintFilter.cpp index ec115b4e141c..86d4742b949e 100644 --- a/libs/hwui/jni/PaintFilter.cpp +++ b/libs/hwui/jni/PaintFilter.cpp @@ -74,7 +74,7 @@ int register_android_graphics_DrawFilter(JNIEnv* env) { result |= RegisterMethodsOrDie(env, "android/graphics/PaintFlagsDrawFilter", paintflags_methods, NELEM(paintflags_methods)); - return 0; + return result; } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java index 59d8acb82196..a0869189a5bd 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java @@ -293,6 +293,8 @@ public class BluetoothEventManager { BluetoothDevice device) { short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE); String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME); + final boolean isCoordinatedSetMember = + intent.getBooleanExtra(BluetoothDevice.EXTRA_IS_COORDINATED_SET_MEMBER, false); // TODO Pick up UUID. They should be available for 2.1 devices. // Skip for now, there's a bluez problem and we are not getting uuids even for 2.1. CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device); @@ -307,6 +309,7 @@ public class BluetoothEventManager { } cachedDevice.setRssi(rssi); cachedDevice.setJustDiscovered(true); + cachedDevice.setIsCoordinatedSetMember(isCoordinatedSetMember); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index 4c80b91f300d..6a590c2ff382 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -80,6 +80,8 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> boolean mJustDiscovered; + boolean mIsCoordinatedSetMember = false; + private final Collection<Callback> mCallbacks = new CopyOnWriteArrayList<>(); /** @@ -297,6 +299,24 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> return mHiSyncId != BluetoothHearingAid.HI_SYNC_ID_INVALID; } + /** + * Mark the discovered device as member of coordinated set. + * + * @param isCoordinatedSetMember {@code true}, if the device is a member of a coordinated set. + */ + public void setIsCoordinatedSetMember(boolean isCoordinatedSetMember) { + mIsCoordinatedSetMember = isCoordinatedSetMember; + } + + /** + * Check if the device is a CSIP member device. + * + * @return {@code true}, if this device supports CSIP, otherwise returns {@code false}. + */ + public boolean isCoordinatedSetMemberDevice() { + return mIsCoordinatedSetMember; + } + void onBondingDockConnect() { // Attempt to connect if UUIDs are available. Otherwise, // we will connect when the ACTION_UUID intent arrives. diff --git a/services/OWNERS b/services/OWNERS index b7128a32fcee..a08331996556 100644 --- a/services/OWNERS +++ b/services/OWNERS @@ -4,3 +4,4 @@ per-file Android.bp = file:platform/build/soong:/OWNERS per-file art-profile* = calin@google.com, ngeoffray@google.com, vmarko@google.com per-file java/com/android/server/* = toddke@google.com,patb@google.com +per-file tests/servicestests/src/com/android/server/systemconfig/* = patb@google.com diff --git a/telephony/java/android/telephony/SignalStrengthUpdateRequest.java b/telephony/java/android/telephony/SignalStrengthUpdateRequest.java index fe7e5976b132..41e24ddb3fa6 100644 --- a/telephony/java/android/telephony/SignalStrengthUpdateRequest.java +++ b/telephony/java/android/telephony/SignalStrengthUpdateRequest.java @@ -26,8 +26,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; @@ -101,9 +103,11 @@ public final class SignalStrengthUpdateRequest implements Parcelable { } mSignalThresholdInfos = new ArrayList<>(signalThresholdInfos); - // Sort the collection with RAN ascending order, make the ordering not matter for equals + // Sort the collection with RAN and then SignalMeasurementType ascending order, make the + // ordering not matter for equals mSignalThresholdInfos.sort( - Comparator.comparingInt(SignalThresholdInfo::getRadioAccessNetworkType)); + Comparator.comparingInt(SignalThresholdInfo::getRadioAccessNetworkType) + .thenComparing(SignalThresholdInfo::getSignalMeasurementType)); return this; } @@ -144,7 +148,7 @@ public final class SignalStrengthUpdateRequest implements Parcelable { * @return the SignalStrengthUpdateRequest object * * @throws IllegalArgumentException if the SignalThresholdInfo collection is empty size, the - * radio access network type in the collection is not unique + * signal measurement type for the same RAN in the collection is not unique */ public @NonNull SignalStrengthUpdateRequest build() { return new SignalStrengthUpdateRequest(mSignalThresholdInfos, @@ -258,14 +262,23 @@ public final class SignalStrengthUpdateRequest implements Parcelable { } /** - * Throw IAE when the RAN in the collection is not unique. + * Throw IAE if SignalThresholdInfo collection is null or empty, + * or the SignalMeasurementType for the same RAN in the collection is not unique. */ private static void validate(Collection<SignalThresholdInfo> infos) { - Set<Integer> uniqueRan = new HashSet<>(infos.size()); + if (infos == null || infos.isEmpty()) { + throw new IllegalArgumentException("SignalThresholdInfo collection is null or empty"); + } + + // Map from RAN to set of SignalMeasurementTypes + Map<Integer, Set<Integer>> ranToTypes = new HashMap<>(infos.size()); for (SignalThresholdInfo info : infos) { final int ran = info.getRadioAccessNetworkType(); - if (!uniqueRan.add(ran)) { - throw new IllegalArgumentException("RAN: " + ran + " is not unique"); + final int type = info.getSignalMeasurementType(); + ranToTypes.putIfAbsent(ran, new HashSet<>()); + if (!ranToTypes.get(ran).add(type)) { + throw new IllegalArgumentException( + "SignalMeasurementType " + type + " for RAN " + ran + " is not unique"); } } } |