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

Commit 6a8b9f39 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Register NSD service from ConnectivityFrameworkInitializerTiramisu"

parents 40eb4030 474a8aaf
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -190,6 +190,10 @@ package android.media.session {

package android.net {

  public final class ConnectivityFrameworkInitializerTiramisu {
    method public static void registerServiceWrappers();
  }

  public final class EthernetNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {
    ctor public EthernetNetworkSpecifier(@NonNull String);
    method public int describeContents();
+2 −11
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ import android.media.tv.TvInputManager;
import android.media.tv.tunerresourcemanager.ITunerResourceManager;
import android.media.tv.tunerresourcemanager.TunerResourceManager;
import android.net.ConnectivityFrameworkInitializer;
import android.net.ConnectivityFrameworkInitializerTiramisu;
import android.net.EthernetManager;
import android.net.IEthernetManager;
import android.net.IIpSecService;
@@ -140,8 +141,6 @@ import android.net.TetheringManager;
import android.net.VpnManager;
import android.net.lowpan.ILowpanManager;
import android.net.lowpan.LowpanManager;
import android.net.nsd.INsdManager;
import android.net.nsd.NsdManager;
import android.net.vcn.IVcnManagementService;
import android.net.vcn.VcnManager;
import android.net.wifi.WifiFrameworkInitializer;
@@ -566,15 +565,6 @@ public final class SystemServiceRegistry {
                    ctx.mMainThread.getHandler());
            }});

        registerService(Context.NSD_SERVICE, NsdManager.class,
                new CachedServiceFetcher<NsdManager>() {
            @Override
            public NsdManager createService(ContextImpl ctx) throws ServiceNotFoundException {
                IBinder b = ServiceManager.getServiceOrThrow(Context.NSD_SERVICE);
                INsdManager service = INsdManager.Stub.asInterface(b);
                return new NsdManager(ctx.getOuterContext(), service);
            }});

        registerService(Context.PEOPLE_SERVICE, PeopleManager.class,
                new CachedServiceFetcher<PeopleManager>() {
            @Override
@@ -1486,6 +1476,7 @@ public final class SystemServiceRegistry {
            MediaFrameworkInitializer.registerServiceWrappers();
            RoleFrameworkInitializer.registerServiceWrappers();
            SchedulingFrameworkInitializer.registerServiceWrappers();
            ConnectivityFrameworkInitializerTiramisu.registerServiceWrappers();
        } finally {
            // If any of the above code throws, we're in a pretty bad shape and the process
            // will likely crash, but we'll reset it just in case there's an exception handler...
+13 −1
Original line number Diff line number Diff line
@@ -102,11 +102,23 @@ filegroup {

// Connectivity-T common libraries.

filegroup {
    name: "framework-connectivity-tiramisu-internal-sources",
    srcs: [
        "src/android/net/ConnectivityFrameworkInitializerTiramisu.java",
    ],
    path: "src",
    visibility: [
        "//visibility:private",
    ],
}

filegroup {
    name: "framework-connectivity-tiramisu-sources",
    srcs: [
        ":framework-connectivity-netstats-sources",
        ":framework-connectivity-nsd-sources",
        ":framework-connectivity-tiramisu-internal-sources",
    ],
    visibility: [
        "//frameworks/base",
+52 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 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 android.net;

import android.annotation.SystemApi;
import android.app.SystemServiceRegistry;
import android.content.Context;
import android.net.nsd.INsdManager;
import android.net.nsd.NsdManager;

/**
 * Class for performing registration for Connectivity services which are exposed via updatable APIs
 * since Android T.
 *
 * @hide
 */
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class ConnectivityFrameworkInitializerTiramisu {
    private ConnectivityFrameworkInitializerTiramisu() {}

    /**
     * Called by {@link SystemServiceRegistry}'s static initializer and registers nsd services to
     * {@link Context}, so that {@link Context#getSystemService} can return them.
     *
     * @throws IllegalStateException if this is called anywhere besides
     * {@link SystemServiceRegistry}.
     */
    public static void registerServiceWrappers() {
        SystemServiceRegistry.registerContextAwareService(
                Context.NSD_SERVICE,
                NsdManager.class,
                (context, serviceBinder) -> {
                    INsdManager service = INsdManager.Stub.asInterface(serviceBinder);
                    return new NsdManager(context, service);
                }
        );
    }
}