Merge "Add TetheredInterface{Request, Callback} interface"

This commit is contained in:
Treehugger Robot
2021-11-08 09:54:54 +00:00
committed by Gerrit Code Review
2 changed files with 48 additions and 0 deletions

View File

@@ -27,6 +27,15 @@ package android.net {
method @Deprecated public int untether(@NonNull String);
}
public static interface TetheringManager.TetheredInterfaceCallback {
method public void onAvailable(@NonNull String);
method public void onUnavailable();
}
public static interface TetheringManager.TetheredInterfaceRequest {
method public void release();
}
public static interface TetheringManager.TetheringEventCallback {
method @Deprecated public default void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
}

View File

@@ -22,6 +22,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.content.Context;
import android.os.Bundle;
@@ -444,6 +445,44 @@ public class TetheringManager {
}
}
/**
* A request for a tethered interface.
*
* There are two reasons why this doesn't implement CLoseable:
* 1. To consistency with the existing EthernetManager.TetheredInterfaceRequest, which is
* already released.
* 2. This is not synchronous, so it's not useful to use try-with-resources.
*
* {@hide}
*/
@SystemApi(client = MODULE_LIBRARIES)
@SuppressLint("NotCloseable")
public interface TetheredInterfaceRequest {
/**
* Release the request to tear down tethered interface.
*/
void release();
}
/**
* Callback for requestTetheredInterface.
*
* {@hide}
*/
@SystemApi(client = MODULE_LIBRARIES)
public interface TetheredInterfaceCallback {
/**
* Called when the tethered interface is available.
* @param iface The name of the interface.
*/
void onAvailable(@NonNull String iface);
/**
* Called when the tethered interface is now unavailable.
*/
void onUnavailable();
}
private static class TetheringCallbackInternal extends ITetheringEventCallback.Stub {
private volatile int mError = TETHER_ERROR_NO_ERROR;
private final ConditionVariable mWaitForCallback = new ConditionVariable();