diff options
author | 2025-03-03 13:58:22 -0800 | |
---|---|---|
committer | 2025-03-03 13:58:22 -0800 | |
commit | 2890d4790c2f0c1c358205529811e57229294c0a (patch) | |
tree | 0eee889993e21b0fc2b205a2aea9aa0af3810971 | |
parent | 7f2e1955203a0af58e51f01acb171365c5277a62 (diff) | |
parent | f2d52f56ab87270f7b3e44fab8c7bfb5c3637551 (diff) |
Merge "Prevent VCN service from being registered twice" into main am: f73ff252a8 am: f2d52f56ab
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3511351
Change-Id: I39ac77c2b34f465aecdf461db96c239fa4aa415b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | packages/Vcn/service-b/Android.bp | 5 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/ConnectivityServiceInitializerB.java | 20 |
2 files changed, 23 insertions, 2 deletions
diff --git a/packages/Vcn/service-b/Android.bp b/packages/Vcn/service-b/Android.bp index 97574e6e35e3..aad534c3289c 100644 --- a/packages/Vcn/service-b/Android.bp +++ b/packages/Vcn/service-b/Android.bp @@ -29,7 +29,10 @@ filegroup { "vcn-location-flag/platform/com/android/server/vcn/VcnLocation.java", ], }), - visibility: ["//frameworks/base/services/core"], + visibility: [ + "//frameworks/base/services/core", + "//packages/modules/Connectivity/service-t", + ], } // TODO: b/374174952 This library is only used in "service-connectivity-b-platform" diff --git a/packages/Vcn/service-b/src/com/android/server/ConnectivityServiceInitializerB.java b/packages/Vcn/service-b/src/com/android/server/ConnectivityServiceInitializerB.java index b9dcc6160d68..aac217b3cc7a 100644 --- a/packages/Vcn/service-b/src/com/android/server/ConnectivityServiceInitializerB.java +++ b/packages/Vcn/service-b/src/com/android/server/ConnectivityServiceInitializerB.java @@ -37,9 +37,27 @@ public final class ConnectivityServiceInitializerB extends SystemService { private static final String TAG = ConnectivityServiceInitializerB.class.getSimpleName(); private final VcnManagementService mVcnManagementService; + // STOPSHIP: b/385203616 This static flag is for handling a temporary case when the mainline + // module prebuilt has updated to register the VCN but the platform change to remove + // registration is not merged. After mainline prebuilt is updated, we should merge the platform + // ASAP and remove this static check. This check is safe because both mainline and platform + // registration are triggered from the same method on the same thread. + private static boolean sIsRegistered = false; + public ConnectivityServiceInitializerB(Context context) { super(context); - mVcnManagementService = VcnManagementService.create(context); + + if (!sIsRegistered) { + mVcnManagementService = VcnManagementService.create(context); + sIsRegistered = true; + } else { + mVcnManagementService = null; + Log.e( + TAG, + "Ignore this registration since VCN is already registered. It will happen when" + + " the mainline module prebuilt has updated to register the VCN but the" + + " platform change to remove registration is not merged."); + } } @Override |