From a2f7b1868035c9e4d6615caf02582a523fc0882d Mon Sep 17 00:00:00 2001
From: Remi NGUYEN VAN <reminv@google.com>
Date: Fri, 7 Jan 2022 13:18:54 +0900
Subject: [PATCH] Link empty nearby library into tethering apex

Nearby will be merged together with the tethering/connectivity APEX, so
that module maintenance efforts can be reduced, and the two codebases
can evolve the interfaces that they expose to each other over time.

This is a cherry-pick from downstream branches, with some differences:
 - nearby/Android.bp is added with empty libraries
 - There is no API change, as no API classes are added
 - proguard is not applied, so no proguard rules change
 - HalfSheetUX APK is not added to the APEX

Bug: 189355156
Test: m
Merged-In: If4b40689a257d2806f895cd2dded97fc699adc5f
Change-Id: I2eb965a0965ffce08388278945160e57e8094339
---
 framework-t/Android.bp       | 11 ++++++++++
 framework-t/jarjar-rules.txt |  1 +
 nearby/Android.bp            | 39 ++++++++++++++++++++++++++++++++++++
 service/Android.bp           |  1 +
 4 files changed, 52 insertions(+)
 create mode 100644 framework-t/jarjar-rules.txt
 create mode 100644 nearby/Android.bp

diff --git a/framework-t/Android.bp b/framework-t/Android.bp
index abcfbeb34f..8d621af30f 100644
--- a/framework-t/Android.bp
+++ b/framework-t/Android.bp
@@ -31,20 +31,29 @@ java_sdk_library {
     name: "framework-connectivity-tiramisu",
     sdk_version: "module_current",
     min_sdk_version: "Tiramisu",
+    jarjar_rules: "jarjar-rules.txt",
     defaults: [
         "framework-module-defaults",
         "enable-framework-connectivity-t-targets",
     ],
     srcs: [
         ":framework-connectivity-tiramisu-updatable-sources",
+        ":framework-nearby-java-sources",
+    ],
+    static_libs: [
+        "modules-utils-preconditions",
     ],
     libs: [
         "unsupportedappusage",
         "app-compat-annotations",
+        "framework-bluetooth",
     ],
     permitted_packages: [
         "android.net",
         "android.net.nsd",
+        "android.nearby",
+        "com.android.connectivity",
+        "com.android.nearby",
     ],
     apex_available: [
         "com.android.tethering",
@@ -54,6 +63,7 @@ java_sdk_library {
         // In preparation for future move
         "//packages/modules/Connectivity/apex",
         "//packages/modules/Connectivity/service-t",
+        "//packages/modules/Nearby/service",
         "//frameworks/base",
 
         // Tests using hidden APIs
@@ -66,6 +76,7 @@ java_sdk_library {
         "//packages/modules/Connectivity/Tethering/tests:__subpackages__",
         "//packages/modules/Connectivity/tests:__subpackages__",
         "//packages/modules/NetworkStack/tests:__subpackages__",
+        "//packages/modules/Nearby/tests:__subpackages__",
         "//packages/modules/Wifi/service/tests/wifitests",
     ],
 }
diff --git a/framework-t/jarjar-rules.txt b/framework-t/jarjar-rules.txt
new file mode 100644
index 0000000000..0b3621578d
--- /dev/null
+++ b/framework-t/jarjar-rules.txt
@@ -0,0 +1 @@
+rule com.android.internal.util.** com.android.connectivity.tiramisu.@0
diff --git a/nearby/Android.bp b/nearby/Android.bp
new file mode 100644
index 0000000000..baa0740c72
--- /dev/null
+++ b/nearby/Android.bp
@@ -0,0 +1,39 @@
+//
+// Copyright (C) 2022 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 {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+// Empty sources and libraries to avoid merge conflicts with downstream
+// branches
+// TODO: remove once the Nearby sources are available in this branch
+filegroup {
+    name: "framework-nearby-java-sources",
+    srcs: [],
+    visibility: ["//packages/modules/Connectivity:__subpackages__"],
+}
+
+
+java_library {
+    name: "service-nearby",
+    srcs: [],
+    sdk_version: "module_current",
+    min_sdk_version: "30",
+    apex_available: ["com.android.tethering"],
+    visibility: ["//packages/modules/Connectivity:__subpackages__"],
+}
diff --git a/service/Android.bp b/service/Android.bp
index 1e66c11b79..ef969ac747 100644
--- a/service/Android.bp
+++ b/service/Android.bp
@@ -157,6 +157,7 @@ java_library {
     static_libs: [
         "service-connectivity-pre-jarjar",
         "service-connectivity-tiramisu-pre-jarjar",
+        "service-nearby",
     ],
     jarjar_rules: "jarjar-rules.txt",
     apex_available: [
-- 
GitLab