Build android.test.* with java_sdk_library

android.test.* are built with java_sdk_library and api files are added
by running "make update-api".

android.test.base_static is created for allowing to use
android.test.base as a static library.

Bug:77577799
Test: make -j
Test: make checkapi
Test: make checkapi fails with a random change in the txt file
Test: adb shell cmd package list libraries |\
      grep android.test.*
      And check the android.test.* libraries

Change-Id: Ia27612657532e50b077a9c55dbef59ee3ec04b8a
diff --git a/test-mock/Android.bp b/test-mock/Android.bp
index 8d3faae..5eba017 100644
--- a/test-mock/Android.bp
+++ b/test-mock/Android.bp
@@ -16,95 +16,15 @@
 
 // Build the android.test.mock library
 // ===================================
-java_library {
+java_sdk_library {
     name: "android.test.mock",
-    installable: true,
 
-    java_version: "1.8",
     srcs: ["src/**/*.java"],
 
-    no_framework_libs: true,
-    libs: [
-        "framework",
+    api_packages: [
+        "android.test.mock",
     ],
-}
 
-doc_defaults {
-    name:"android.test.mock.docs-defaults",
-    srcs: ["src/android/test/mock/**/*.java"],
-
-    // Includes the main framework source to ensure that doclava has access to the
-    // visibility information for the base classes of the mock classes. Without it
-    // otherwise hidden methods could be visible.
-    srcs_lib: "framework",
-    srcs_lib_whitelist_dirs: ["core/java"],
     srcs_lib_whitelist_pkgs: ["android"],
-    libs: [
-        "core-oj",
-        "core-libart",
-        "framework",
-        "conscrypt",
-        "okhttp",
-        "bouncycastle",
-        "ext",
-    ],
-    local_sourcepaths: ["src/android/test/mock"],
-    custom_template: "droiddoc-templates-sdk",
-    installable: false,
-}
-
-android_test_mock_docs_args =
-    "-hide 110 -hide 111 -hide 113 -hide 121 -hide 125 -hide 126 -hide 127 -hide 128 " +
-    "-stubpackages android.test.mock " +
-    "-nodocs "
-
-droiddoc {
-    name: "android.test.mock.docs",
-    defaults: ["android.test.mock.docs-defaults"],
-
-    api_tag_name: "ANDROID_TEST_MOCK",
-    api_filename: "api/android-test-mock-current.txt",
-    removed_api_filename: "api/android-test-mock-removed.txt",
-
-    args: android_test_mock_docs_args,
-}
-
-droiddoc {
-    name: "android.test.mock.docs-system",
-    defaults: ["android.test.mock.docs-defaults"],
-
-    api_tag_name: "ANDROID_TEST_MOCK_SYSTEM",
-    api_filename: "api/android-test-mock-system-current.txt",
-    removed_api_filename: "api/android-test-mock-system-removed.txt",
-
-    args: android_test_mock_docs_args +
-        "-showAnnotation android.annotation.SystemApi ",
-}
-
-java_library_static {
-    name: "android.test.mock.stubs",
-    srcs: [":android.test.mock.docs"],
-    sdk_version: "current",
-    product_variables: {
-        unbundled_build: {
-            // Unbundled apps will use the prebuilt one
-            // prebuilts/sdk/current
-            enabled: false,
-        },
-    },
-    compile_dex: true,
-}
-
-java_library_static {
-    name: "android.test.mock.stubs-system",
-    srcs: [":android.test.mock.docs-system"],
-    sdk_version: "system_current",
-    product_variables: {
-        unbundled_build: {
-            // Unbundled apps will use the prebuilt one
-            // prebuilts/sdk/system_current
-            enabled: false,
-        },
-    },
     compile_dex: true,
 }
diff --git a/test-mock/Android.mk b/test-mock/Android.mk
deleted file mode 100644
index 73a7340..0000000
--- a/test-mock/Android.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# Copyright (C) 2008 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)
-
-# Archive a copy of the classes.jar in SDK build.
-full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.mock.stubs,,COMMON)/classes.jar
-$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs.jar)
-
-# Check that the android.test.mock.stubs library has not changed
-# ==============================================================
-ANDROID_TEST_MOCK_API_FILE := $(LOCAL_PATH)/api/android-test-mock-current.txt
-ANDROID_TEST_MOCK_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-removed.txt
-
-# Check that the API we're building hasn't changed from the not-yet-released
-# SDK version.
-$(eval $(call check-api, \
-    check-android-test-mock-api-current, \
-    $(ANDROID_TEST_MOCK_API_FILE), \
-    $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE), \
-    $(ANDROID_TEST_MOCK_REMOVED_API_FILE), \
-    $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_REMOVED_API_FILE), \
-    -error 2 -error 3 -error 4 -error 5 -error 6 \
-    -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
-    -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
-    -error 25 -error 26 -error 27, \
-    cat $(LOCAL_PATH)/api/apicheck_msg_android_test_mock.txt, \
-    check-android-test-mock-api, \
-    $(OUT_DOCS)/android.test.mock.docs-stubs.srcjar \
-    ))
-
-.PHONY: check-android-test-mock-api
-checkapi: check-android-test-mock-api
-
-.PHONY: update-android-test-mock-api
-update-api: update-android-test-mock-api
-
-update-android-test-mock-api: $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE) | $(ACP)
-	@echo Copying current.txt
-	$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE) $(ANDROID_TEST_MOCK_API_FILE)
-	@echo Copying removed.txt
-	$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_REMOVED_API_FILE)
-
-# Archive a copy of the classes.jar in SDK build.
-full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.mock.stubs-system,,COMMON)/classes.jar
-$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs_system.jar)
-
-# Check that the android.test.mock.stubs-system library has not changed
-# =====================================================================
-ANDROID_TEST_MOCK_SYSTEM_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-current.txt
-ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-removed.txt
-
-# Check that the API we're building hasn't changed from the not-yet-released
-# SDK version.
-$(eval $(call check-api, \
-    check-android-test-mock-system-api-current, \
-    $(ANDROID_TEST_MOCK_SYSTEM_API_FILE), \
-    $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE), \
-    $(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE), \
-    $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE), \
-    -error 2 -error 3 -error 4 -error 5 -error 6 \
-    -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
-    -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
-    -error 25 -error 26 -error 27, \
-    cat $(LOCAL_PATH)/api/apicheck_msg_android_test_mock-system.txt, \
-    check-android-test-mock-system-api, \
-    $(OUT_DOCS)/android.test.mock.docs-system-stubs.srcjar \
-    ))
-
-.PHONY: check-android-test-mock-system-api
-checkapi: check-android-test-mock-system-api
-
-.PHONY: update-android-test-mock-system-api
-update-api: update-android-test-mock-system-api
-
-update-android-test-mock-system-api: $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE) | $(ACP)
-	@echo Copying current.txt
-	$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_API_FILE)
-	@echo Copying removed.txt
-	$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE)
diff --git a/test-mock/api/apicheck_msg_android_test_mock-system.txt b/test-mock/api/apicheck_msg_android_test_mock-system.txt
deleted file mode 100644
index 3a97117..0000000
--- a/test-mock/api/apicheck_msg_android_test_mock-system.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-
-******************************
-You have tried to change the API from what has been previously approved.
-
-To make these errors go away, you have two choices:
-   1) You can add "@hide" javadoc comments to the methods, etc. listed in the
-      errors above.
-
-   2) You can update android-test-mock-current.txt by executing the following command:
-         make update-android-test-mock-system-api
-
-      To submit the revised android-test-mock-system-current.txt to the main Android repository,
-      you will need approval.
-******************************
-
-
-
diff --git a/test-mock/api/apicheck_msg_android_test_mock.txt b/test-mock/api/apicheck_msg_android_test_mock.txt
deleted file mode 100644
index e388935..0000000
--- a/test-mock/api/apicheck_msg_android_test_mock.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-
-******************************
-You have tried to change the API from what has been previously approved.
-
-To make these errors go away, you have two choices:
-   1) You can add "@hide" javadoc comments to the methods, etc. listed in the
-      errors above.
-
-   2) You can update android-test-mock-current.txt by executing the following command:
-         make update-android-test-mock-api
-
-      To submit the revised android-test-mock-current.txt to the main Android repository,
-      you will need approval.
-******************************
-
-
-
diff --git a/test-mock/api/android-test-mock-current.txt b/test-mock/api/current.txt
similarity index 100%
rename from test-mock/api/android-test-mock-current.txt
rename to test-mock/api/current.txt
diff --git a/test-mock/api/android-test-mock-removed.txt b/test-mock/api/removed.txt
similarity index 100%
rename from test-mock/api/android-test-mock-removed.txt
rename to test-mock/api/removed.txt
diff --git a/test-mock/api/android-test-mock-system-current.txt b/test-mock/api/system-current.txt
similarity index 100%
rename from test-mock/api/android-test-mock-system-current.txt
rename to test-mock/api/system-current.txt
diff --git a/test-mock/api/android-test-mock-system-removed.txt b/test-mock/api/system-removed.txt
similarity index 100%
rename from test-mock/api/android-test-mock-system-removed.txt
rename to test-mock/api/system-removed.txt
diff --git a/test-mock/api/test-current.txt b/test-mock/api/test-current.txt
new file mode 100644
index 0000000..f1ec000
--- /dev/null
+++ b/test-mock/api/test-current.txt
@@ -0,0 +1,22 @@
+package android.test.mock {
+
+  public class MockContext extends android.content.Context {
+    method public java.lang.String getOpPackageName();
+  }
+
+  public deprecated class MockPackageManager extends android.content.pm.PackageManager {
+    method public boolean arePermissionsIndividuallyControlled();
+    method public java.lang.String getDefaultBrowserPackageNameAsUser(int);
+    method public int getInstallReason(java.lang.String, android.os.UserHandle);
+    method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
+    method public java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
+    method public java.lang.String[] getNamesForUids(int[]);
+    method public java.lang.String getPermissionControllerPackageName();
+    method public java.lang.String getServicesSystemSharedLibraryPackageName();
+    method public java.lang.String getSharedSystemSharedLibraryPackageName();
+    method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+    method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+  }
+
+}
+
diff --git a/test-mock/api/android-test-mock-system-removed.txt b/test-mock/api/test-removed.txt
similarity index 100%
copy from test-mock/api/android-test-mock-system-removed.txt
copy to test-mock/api/test-removed.txt