Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f73ff252 authored by Yan Yan's avatar Yan Yan Committed by Gerrit Code Review
Browse files

Merge "Prevent VCN service from being registered twice" into main

parents cdcb8e53 052dcaf2
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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"
+19 −1
Original line number Diff line number Diff line
@@ -38,9 +38,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);

        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