Migrate PlatformLibrary to Soong

Had to make additional changes to fix break from previous version of change.
This includes generating content for api/*.txt files for backwards
compatibility using m upgrade-api as described in an error message.

Fixes: 203691604
Test: jar comparison -- identical
Test: Build sample_addon-eng (which broke before)
Change-Id: Ic054989dfe64019b9b05ee61f0c82e0a0d4aaa3f
diff --git a/frameworks/Android.mk b/frameworks/Android.mk
deleted file mode 100644
index 5053e7d..0000000
--- a/frameworks/Android.mk
+++ /dev/null
@@ -1 +0,0 @@
-include $(call all-subdir-makefiles)
diff --git a/frameworks/PlatformLibrary/Android.bp b/frameworks/PlatformLibrary/Android.bp
index 7b3ec73..e3e929b 100644
--- a/frameworks/PlatformLibrary/Android.bp
+++ b/frameworks/PlatformLibrary/Android.bp
@@ -28,3 +28,19 @@
     ],
     java_version: "1.8",
 }
+
+java_sdk_library {
+    name: "com.example.android.platform_library",
+
+    // Users of this sample will likely want to leave out this flag and
+    // instead follow the instructions here
+    // https://source.android.com/devices/architecture/java-library#maintaining-backward-compatibility
+    unsafe_ignore_missing_latest_api: true,
+
+    api_packages: ["com.example.android.platform_library"],
+
+    srcs: ["**/*.java"],
+
+    dist_group: "samples",
+    sdk_version: "current",
+}
diff --git a/frameworks/PlatformLibrary/Android.mk b/frameworks/PlatformLibrary/Android.mk
deleted file mode 100644
index db4c97c..0000000
--- a/frameworks/PlatformLibrary/Android.mk
+++ /dev/null
@@ -1,50 +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.
-#
-
-ifneq ($(TARGET_BUILD_JAVA_SUPPORT_LEVEL),)
-
-# This makefile shows how to build your own shared library that can be
-# shipped on the system of a phone, and included additional examples of
-# including JNI code with the library and writing client applications against it.
-
-LOCAL_PATH := $(call my-dir)
-
-# the library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-            $(call all-subdir-java-files)
-
-LOCAL_MODULE_TAGS := optional
-
-# This is the target being built.
-LOCAL_MODULE:= com.example.android.platform_library
-LOCAL_LICENSE_KINDS:= SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS:= notice
-LOCAL_SDK_VERSION := current
-
-include $(BUILD_JAVA_LIBRARY)
-
-# The JNI component
-# ============================================================
-# Also build all of the sub-targets under this one: the library's
-# associated JNI code, and a sample client of the library.
-include $(CLEAR_VARS)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
-
-endif # JAVA_SUPPORT
diff --git a/frameworks/PlatformLibrary/api/current.txt b/frameworks/PlatformLibrary/api/current.txt
new file mode 100644
index 0000000..4290e15
--- /dev/null
+++ b/frameworks/PlatformLibrary/api/current.txt
@@ -0,0 +1,10 @@
+// Signature format: 2.0
+package com.example.android.platform_library {
+
+  public final class PlatformLibrary {
+    ctor public PlatformLibrary();
+    method public int getInt(boolean);
+  }
+
+}
+
diff --git a/frameworks/PlatformLibrary/api/removed.txt b/frameworks/PlatformLibrary/api/removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/frameworks/PlatformLibrary/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/frameworks/PlatformLibrary/api/system-current.txt b/frameworks/PlatformLibrary/api/system-current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/frameworks/PlatformLibrary/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/frameworks/PlatformLibrary/api/system-removed.txt b/frameworks/PlatformLibrary/api/system-removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/frameworks/PlatformLibrary/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/frameworks/PlatformLibrary/api/test-current.txt b/frameworks/PlatformLibrary/api/test-current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/frameworks/PlatformLibrary/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/frameworks/PlatformLibrary/api/test-removed.txt b/frameworks/PlatformLibrary/api/test-removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/frameworks/PlatformLibrary/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/products/sample_addon.mk b/products/sample_addon.mk
index f0abf2f..cf6a3c6 100644
--- a/products/sample_addon.mk
+++ b/products/sample_addon.mk
@@ -4,10 +4,6 @@
 	com.example.android.platform_library \
 	libplatform_library_jni
 
-# Manually copy the optional library XML files in the system image.
-PRODUCT_COPY_FILES := \
-    device/sample/frameworks/PlatformLibrary/com.example.android.platform_library.xml:system/etc/permissions/com.example.android.platform_library.xml
-
 # name of the add-on
 PRODUCT_SDK_ADDON_NAME := platform_library