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

Commit f468d78f authored by Chalard Jean's avatar Chalard Jean Committed by Automerger Merge Worker
Browse files

Merge changes I335e82e2,I84ba363d,I8f18083b,I854a952d,I00e23441 am: 3ee9b7f2

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1622621

Change-Id: I641df2f25ba989af597952a03488c817c82323c2
parents a8781112 3ee9b7f2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -18,6 +18,6 @@
package android.net;

/** @hide */
oneway interface IOnSetOemNetworkPreferenceListener {
oneway interface IOnCompleteListener {
    void onComplete();
}
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ package android.net {
    method @NonNull public static String getPrivateDnsMode(@NonNull android.content.ContentResolver);
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
    method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void setProfileNetworkPreference(@NonNull android.os.UserHandle, int, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
    method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_TEST_NETWORKS, android.Manifest.permission.NETWORK_STACK}) public void simulateDataStall(int, long, @NonNull android.net.Network, @NonNull android.os.PersistableBundle);
    field public static final String PRIVATE_DNS_MODE_OFF = "off";
    field public static final String PRIVATE_DNS_MODE_OPPORTUNISTIC = "opportunistic";
+3 −5
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ package android.net {
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
    method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void requestNetwork(@NonNull android.net.NetworkRequest, int, int, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_AIRPLANE_MODE, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void setAirplaneMode(boolean);
    method @RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE) public void setOemNetworkPreference(@NonNull android.net.OemNetworkPreferences, @Nullable java.util.concurrent.Executor, @Nullable android.net.ConnectivityManager.OnSetOemNetworkPreferenceListener);
    method @RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE) public void setOemNetworkPreference(@NonNull android.net.OemNetworkPreferences, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public boolean shouldAvoidBadWifi();
    method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void startCaptivePortalApp(@NonNull android.net.Network, @NonNull android.os.Bundle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
@@ -67,6 +67,8 @@ package android.net {
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void unregisterTetheringEventCallback(@NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
    field public static final String EXTRA_CAPTIVE_PORTAL_PROBE_SPEC = "android.net.extra.CAPTIVE_PORTAL_PROBE_SPEC";
    field public static final String EXTRA_CAPTIVE_PORTAL_USER_AGENT = "android.net.extra.CAPTIVE_PORTAL_USER_AGENT";
    field public static final int PROFILE_NETWORK_PREFERENCE_DEFAULT = 0; // 0x0
    field public static final int PROFILE_NETWORK_PREFERENCE_ENTERPRISE = 1; // 0x1
    field public static final int TETHERING_BLUETOOTH = 2; // 0x2
    field public static final int TETHERING_USB = 1; // 0x1
    field public static final int TETHERING_WIFI = 0; // 0x0
@@ -78,10 +80,6 @@ package android.net {
    field @Deprecated public static final int TYPE_WIFI_P2P = 13; // 0xd
  }

  public static interface ConnectivityManager.OnSetOemNetworkPreferenceListener {
    method public void onComplete();
  }

  @Deprecated public abstract static class ConnectivityManager.OnStartTetheringCallback {
    ctor @Deprecated public ConnectivityManager.OnStartTetheringCallback();
    method @Deprecated public void onTetheringFailed();
+78 −17
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ServiceManager;
import android.os.ServiceSpecificException;
import android.os.UserHandle;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -970,6 +971,33 @@ public class ConnectivityManager {
        }
    }

    /**
     * Preference for {@link #setNetworkPreferenceForUser(UserHandle, int, Executor, Runnable)}.
     * Specify that the traffic for this user should by follow the default rules.
     * @hide
     */
    @SystemApi
    public static final int PROFILE_NETWORK_PREFERENCE_DEFAULT = 0;

    /**
     * Preference for {@link #setNetworkPreferenceForUser(UserHandle, int, Executor, Runnable)}.
     * Specify that the traffic for this user should by default go on a network with
     * {@link NetworkCapabilities#NET_CAPABILITY_ENTERPRISE}, and on the system default network
     * if no such network is available.
     * @hide
     */
    @SystemApi
    public static final int PROFILE_NETWORK_PREFERENCE_ENTERPRISE = 1;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(value = {
            PROFILE_NETWORK_PREFERENCE_DEFAULT,
            PROFILE_NETWORK_PREFERENCE_ENTERPRISE
    })
    public @interface ProfileNetworkPreference {
    }

    /**
     * Specifies the preferred network type.  When the device has more
     * than one type available the preferred network type will be used.
@@ -5066,19 +5094,6 @@ public class ConnectivityManager {
                TYPE_NONE, new CallbackHandler(handler));
    }

    /**
     * Listener for {@link #setOemNetworkPreference(OemNetworkPreferences, Executor,
     * OnSetOemNetworkPreferenceListener)}.
     * @hide
     */
    @SystemApi
    public interface OnSetOemNetworkPreferenceListener {
        /**
         * Called when setOemNetworkPreference() successfully completes.
         */
        void onComplete();
    }

    /**
     * Used by automotive devices to set the network preferences used to direct traffic at an
     * application level as per the given OemNetworkPreferences. An example use-case would be an
@@ -5101,16 +5116,16 @@ public class ConnectivityManager {
    @RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
    public void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
            @Nullable @CallbackExecutor final Executor executor,
            @Nullable final OnSetOemNetworkPreferenceListener listener) {
            @Nullable final Runnable listener) {
        Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
        if (null != listener) {
            Objects.requireNonNull(executor, "Executor must be non-null");
        }
        final IOnSetOemNetworkPreferenceListener listenerInternal = listener == null ? null :
                new IOnSetOemNetworkPreferenceListener.Stub() {
        final IOnCompleteListener listenerInternal = listener == null ? null :
                new IOnCompleteListener.Stub() {
                    @Override
                    public void onComplete() {
                        executor.execute(listener::onComplete);
                        executor.execute(listener::run);
                    }
        };

@@ -5122,6 +5137,52 @@ public class ConnectivityManager {
        }
    }

    /**
     * Request that a user profile is put by default on a network matching a given preference.
     *
     * See the documentation for the individual preferences for a description of the supported
     * behaviors.
     *
     * @param profile the profile concerned.
     * @param preference the preference for this profile.
     * @param executor an executor to execute the listener on. Optional if listener is null.
     * @param listener an optional listener to listen for completion of the operation.
     * @throws IllegalArgumentException if {@code profile} is not a valid user profile.
     * @throws SecurityException if missing the appropriate permissions.
     * @hide
     */
    // This function is for establishing per-profile default networking and can only be called by
    // the device policy manager, running as the system server. It would make no sense to call it
    // on a context for a user because it does not establish a setting on behalf of a user, rather
    // it establishes a setting for a user on behalf of the DPM.
    @SuppressLint({"UserHandle"})
    @SystemApi(client = MODULE_LIBRARIES)
    @RequiresPermission(android.Manifest.permission.NETWORK_STACK)
    public void setProfileNetworkPreference(@NonNull final UserHandle profile,
            @ProfileNetworkPreference final int preference,
            @Nullable @CallbackExecutor final Executor executor,
            @Nullable final Runnable listener) {
        if (null != listener) {
            Objects.requireNonNull(executor, "Pass a non-null executor, or a null listener");
        }
        final IOnCompleteListener proxy;
        if (null == listener) {
            proxy = null;
        } else {
            proxy = new IOnCompleteListener.Stub() {
                @Override
                public void onComplete() {
                    executor.execute(listener::run);
                }
            };
        }
        try {
            mService.setProfileNetworkPreference(profile, preference, proxy);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    // The first network ID of IPSec tunnel interface.
    private static final int TUN_INTF_NETID_START = 0xFC00; // 0xFC00 = 64512
    // The network ID range of IPSec tunnel interface.
+6 −2
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ import android.app.PendingIntent;
import android.net.ConnectionInfo;
import android.net.ConnectivityDiagnosticsManager;
import android.net.IConnectivityDiagnosticsCallback;
import android.net.IOnSetOemNetworkPreferenceListener;
import android.net.IOnCompleteListener;
import android.net.INetworkActivityListener;
import android.net.IQosCallback;
import android.net.ISocketKeepaliveCallback;
@@ -43,6 +43,7 @@ import android.os.Messenger;
import android.os.ParcelFileDescriptor;
import android.os.PersistableBundle;
import android.os.ResultReceiver;
import android.os.UserHandle;

import com.android.connectivity.aidl.INetworkAgent;

@@ -215,5 +216,8 @@ interface IConnectivityManager
    void unregisterQosCallback(in IQosCallback callback);

    void setOemNetworkPreference(in OemNetworkPreferences preference,
            in IOnSetOemNetworkPreferenceListener listener);
            in IOnCompleteListener listener);

    void setProfileNetworkPreference(in UserHandle profile, int preference,
            in IOnCompleteListener listener);
}
Loading