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

Commit 5f19eb15 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Android (Google) Code Review
Browse files

Merge "Allows the caller to specify configuration by TetheringRequest"

parents 8ee04e66 e8b9d755
Loading
Loading
Loading
Loading
+30 −11
Original line number Diff line number Diff line
@@ -6095,8 +6095,8 @@ package android.net {
    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(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 @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void stopTethering(int);
    method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void unregisterNetworkProvider(@NonNull android.net.NetworkProvider);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void unregisterTetheringEventCallback(@NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
@@ -6112,10 +6112,10 @@ package android.net {
    field @Deprecated public static final int TYPE_WIFI_P2P = 13; // 0xd
  }
  public abstract static class ConnectivityManager.OnStartTetheringCallback {
    ctor public ConnectivityManager.OnStartTetheringCallback();
    method public void onTetheringFailed();
    method public void onTetheringStarted();
  @Deprecated public abstract static class ConnectivityManager.OnStartTetheringCallback {
    ctor @Deprecated public ConnectivityManager.OnStartTetheringCallback();
    method @Deprecated public void onTetheringFailed();
    method @Deprecated public void onTetheringStarted();
  }
  @Deprecated public static interface ConnectivityManager.OnTetheringEntitlementResultListener {
@@ -6523,11 +6523,13 @@ package android.net {
  }
  public class TetheringManager {
    method public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
    method public void stopAllTethering();
    method public void stopTethering(int);
    method public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
    field public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
    field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
    field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
@@ -6560,6 +6562,12 @@ package android.net {
    method public void onTetheringEntitlementResult(int);
  }
  public abstract static class TetheringManager.StartTetheringCallback {
    ctor public TetheringManager.StartTetheringCallback();
    method public void onTetheringFailed(int);
    method public void onTetheringStarted();
  }
  public abstract static class TetheringManager.TetheringEventCallback {
    ctor public TetheringManager.TetheringEventCallback();
    method public void onError(@NonNull String, int);
@@ -6577,6 +6585,17 @@ package android.net {
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
  }
  public static class TetheringManager.TetheringRequest {
  }
  public static class TetheringManager.TetheringRequest.Builder {
    ctor public TetheringManager.TetheringRequest.Builder(int);
    method @NonNull public android.net.TetheringManager.TetheringRequest build();
    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
  }
  public class TrafficStats {
    method public static void setThreadStatsTagApp();
    method public static void setThreadStatsTagBackup();
+24 −5
Original line number Diff line number Diff line
@@ -1727,11 +1727,13 @@ package android.net {
  }

  public class TetheringManager {
    method public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission("android.permission.TETHER_PRIVILEGED") public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
    method public void stopAllTethering();
    method public void stopTethering(int);
    method public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
    field public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
    field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
    field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
@@ -1764,6 +1766,12 @@ package android.net {
    method public void onTetheringEntitlementResult(int);
  }

  public abstract static class TetheringManager.StartTetheringCallback {
    ctor public TetheringManager.StartTetheringCallback();
    method public void onTetheringFailed(int);
    method public void onTetheringStarted();
  }

  public abstract static class TetheringManager.TetheringEventCallback {
    ctor public TetheringManager.TetheringEventCallback();
    method public void onError(@NonNull String, int);
@@ -1781,6 +1789,17 @@ package android.net {
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
  }

  public static class TetheringManager.TetheringRequest {
  }

  public static class TetheringManager.TetheringRequest.Builder {
    ctor public TetheringManager.TetheringRequest.Builder(int);
    method @NonNull public android.net.TetheringManager.TetheringRequest build();
    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
  }

  public class TrafficStats {
    method public static long getLoopbackRxBytes();
    method public static long getLoopbackRxPackets();
+36 −6
Original line number Diff line number Diff line
@@ -33,7 +33,9 @@ import android.content.Context;
import android.content.Intent;
import android.net.IpSecManager.UdpEncapsulationSocket;
import android.net.SocketKeepalive.Callback;
import android.net.TetheringManager.StartTetheringCallback;
import android.net.TetheringManager.TetheringEventCallback;
import android.net.TetheringManager.TetheringRequest;
import android.os.Binder;
import android.os.Build;
import android.os.Build.VERSION_CODES;
@@ -2452,10 +2454,12 @@ public class ConnectivityManager {
     *
     * @param iface the interface name to tether.
     * @return error a {@code TETHER_ERROR} value indicating success or failure type
     * @deprecated Use {@link TetheringManager#startTethering} instead
     *
     * {@hide}
     */
    @UnsupportedAppUsage
    @Deprecated
    public int tether(String iface) {
        return getTetheringManager().tether(iface);
    }
@@ -2512,9 +2516,12 @@ public class ConnectivityManager {

    /**
     * Callback for use with {@link #startTethering} to find out whether tethering succeeded.
     *
     * @deprecated Use {@link TetheringManager.StartTetheringCallback} instead.
     * @hide
     */
    @SystemApi
    @Deprecated
    public static abstract class OnStartTetheringCallback {
        /**
         * Called when tethering has been successfully started.
@@ -2531,9 +2538,12 @@ public class ConnectivityManager {
     * Convenient overload for
     * {@link #startTethering(int, boolean, OnStartTetheringCallback, Handler)} which passes a null
     * handler to run on the current thread's {@link Looper}.
     *
     * @deprecated Use {@link TetheringManager#startTethering} instead.
     * @hide
     */
    @SystemApi
    @Deprecated
    @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED)
    public void startTethering(int type, boolean showProvisioningUi,
            final OnStartTetheringCallback callback) {
@@ -2557,26 +2567,44 @@ public class ConnectivityManager {
     * @param callback an {@link OnStartTetheringCallback} which will be called to notify the caller
     *         of the result of trying to tether.
     * @param handler {@link Handler} to specify the thread upon which the callback will be invoked.
     *
     * @deprecated Use {@link TetheringManager#startTethering} instead.
     * @hide
     */
    @SystemApi
    @Deprecated
    @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED)
    public void startTethering(int type, boolean showProvisioningUi,
            final OnStartTetheringCallback callback, Handler handler) {
        Preconditions.checkNotNull(callback, "OnStartTetheringCallback cannot be null.");

        ResultReceiver wrappedCallback = new ResultReceiver(handler) {
        final Executor executor = new Executor() {
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                if (resultCode == TETHER_ERROR_NO_ERROR) {
                    callback.onTetheringStarted();
            public void execute(Runnable command) {
                if (handler == null) {
                    command.run();
                } else {
                    callback.onTetheringFailed();
                    handler.post(command);
                }
            }
        };

        getTetheringManager().startTethering(type, wrappedCallback, showProvisioningUi);
        final StartTetheringCallback tetheringCallback = new StartTetheringCallback() {
            @Override
            public void onTetheringStarted() {
                callback.onTetheringStarted();
            }

            @Override
            public void onTetheringFailed(final int resultCode) {
                callback.onTetheringFailed();
            }
        };

        final TetheringRequest request = new TetheringRequest.Builder(type)
                .setSilentProvisioning(!showProvisioningUi).build();

        getTetheringManager().startTethering(request, executor, tetheringCallback);
    }

    /**
@@ -2749,10 +2777,12 @@ public class ConnectivityManager {
     *
     * @param enable a boolean - {@code true} to enable tethering
     * @return error a {@code TETHER_ERROR} value indicating success or failure type
     * @deprecated Use {@link TetheringManager#startTethering} instead
     *
     * {@hide}
     */
    @UnsupportedAppUsage
    @Deprecated
    public int setUsbTethering(boolean enable) {
        return getTetheringManager().setUsbTethering(enable);
    }
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ filegroup {
        "src/android/net/ITetheringConnector.aidl",
        "src/android/net/TetheringCallbackStartedParcel.aidl",
        "src/android/net/TetheringConfigurationParcel.aidl",
        "src/android/net/TetheringRequestParcel.aidl",
        "src/android/net/TetherStatesParcel.aidl",
    ],
    path: "src"
+3 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package android.net;

import android.net.IIntResultListener;
import android.net.ITetheringEventCallback;
import android.net.TetheringRequestParcel;
import android.os.ResultReceiver;

/** @hide */
@@ -27,8 +28,8 @@ oneway interface ITetheringConnector {

    void setUsbTethering(boolean enable, String callerPkg, IIntResultListener receiver);

    void startTethering(int type, in ResultReceiver receiver, boolean showProvisioningUi,
            String callerPkg);
    void startTethering(in TetheringRequestParcel request, String callerPkg,
            IIntResultListener receiver);

    void stopTethering(int type, String callerPkg, IIntResultListener receiver);

Loading