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

Commit b1257760 authored by Cody Kesting's avatar Cody Kesting
Browse files

Add ConnectivityDiagnosticsManager to System Server.

ConnectivityDiagnosticsManager should be accessed through
Context#getService. In order for this to be possible, it needs to be
defined as a service inside SystemServiceRegistry.

Bug: 146444622
Test: compiles.
Test: CTS testing in aosp/1211164
Change-Id: I6fe29441ecc9967a04ceb394b3bbe54830bef079
parent fc199ca7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9824,6 +9824,7 @@ package android.content {
    field public static final String CARRIER_CONFIG_SERVICE = "carrier_config";
    field public static final String CLIPBOARD_SERVICE = "clipboard";
    field public static final String COMPANION_DEVICE_SERVICE = "companiondevice";
    field public static final String CONNECTIVITY_DIAGNOSTICS_SERVICE = "connectivity_diagnostics";
    field public static final String CONNECTIVITY_SERVICE = "connectivity";
    field public static final String CONSUMER_IR_SERVICE = "consumer_ir";
    field public static final int CONTEXT_IGNORE_SECURITY = 2; // 0x2
+13 −0
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ import android.media.session.MediaSessionManager;
import android.media.soundtrigger.SoundTriggerManager;
import android.media.tv.ITvInputManager;
import android.media.tv.TvInputManager;
import android.net.ConnectivityDiagnosticsManager;
import android.net.ConnectivityManager;
import android.net.ConnectivityThread;
import android.net.EthernetManager;
@@ -369,6 +370,18 @@ final class SystemServiceRegistry {
                return new IpSecManager(ctx, service);
            }});

        registerService(Context.CONNECTIVITY_DIAGNOSTICS_SERVICE,
                ConnectivityDiagnosticsManager.class,
                new CachedServiceFetcher<ConnectivityDiagnosticsManager>() {
            @Override
            public ConnectivityDiagnosticsManager createService(ContextImpl ctx)
                    throws ServiceNotFoundException {
                // ConnectivityDiagnosticsManager is backed by ConnectivityService
                IBinder b = ServiceManager.getServiceOrThrow(Context.CONNECTIVITY_SERVICE);
                IConnectivityManager service = IConnectivityManager.Stub.asInterface(b);
                return new ConnectivityDiagnosticsManager(ctx, service);
            }});

        registerService(
                Context.TEST_NETWORK_SERVICE,
                TestNetworkManager.class,
+10 −0
Original line number Diff line number Diff line
@@ -3879,6 +3879,16 @@ public abstract class Context {
     */
    public static final String IPSEC_SERVICE = "ipsec";

    /**
     * Use with {@link #getSystemService(String)} to retrieve a {@link
     * android.net.ConnectivityDiagnosticsManager} for performing network connectivity diagnostics
     * as well as receiving network connectivity information from the system.
     *
     * @see #getSystemService(String)
     * @see android.net.ConnectivityDiagnosticsManager
     */
    public static final String CONNECTIVITY_DIAGNOSTICS_SERVICE = "connectivity_diagnostics";

    /**
     * Use with {@link #getSystemService(String)} to retrieve a {@link
     * android.net.TestNetworkManager} for building TUNs and limited-use Networks
+9 −1
Original line number Diff line number Diff line
@@ -19,11 +19,13 @@ package android.net;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.Preconditions;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -53,8 +55,14 @@ import java.util.concurrent.Executor;
 * </ul>
 */
public class ConnectivityDiagnosticsManager {
    private final Context mContext;
    private final IConnectivityManager mService;

    /** @hide */
    public ConnectivityDiagnosticsManager() {}
    public ConnectivityDiagnosticsManager(Context context, IConnectivityManager service) {
        mContext = Preconditions.checkNotNull(context, "missing context");
        mService = Preconditions.checkNotNull(service, "missing IConnectivityManager");
    }

    /** @hide */
    @VisibleForTesting