Merge "Send offload status changed callback"
This commit is contained in:
@@ -35,4 +35,5 @@ oneway interface ITetheringEventCallback
|
||||
void onConfigurationChanged(in TetheringConfigurationParcel config);
|
||||
void onTetherStatesChanged(in TetherStatesParcel states);
|
||||
void onTetherClientsChanged(in List<TetheredClient> clients);
|
||||
void onOffloadStatusChanged(int status);
|
||||
}
|
||||
|
||||
@@ -31,4 +31,5 @@ parcelable TetheringCallbackStartedParcel {
|
||||
TetheringConfigurationParcel config;
|
||||
TetherStatesParcel states;
|
||||
List<TetheredClient> tetheredClients;
|
||||
}
|
||||
int offloadStatus;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.net;
|
||||
import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresPermission;
|
||||
@@ -34,6 +35,8 @@ import android.util.Log;
|
||||
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -172,6 +175,23 @@ public class TetheringManager {
|
||||
public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14;
|
||||
public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15;
|
||||
|
||||
/** @hide */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef(flag = false, value = {
|
||||
TETHER_HARDWARE_OFFLOAD_STOPPED,
|
||||
TETHER_HARDWARE_OFFLOAD_STARTED,
|
||||
TETHER_HARDWARE_OFFLOAD_FAILED,
|
||||
})
|
||||
public @interface TetherOffloadStatus {
|
||||
}
|
||||
|
||||
/** Tethering offload status is stopped. */
|
||||
public static final int TETHER_HARDWARE_OFFLOAD_STOPPED = 0;
|
||||
/** Tethering offload status is started. */
|
||||
public static final int TETHER_HARDWARE_OFFLOAD_STARTED = 1;
|
||||
/** Fail to start tethering offload. */
|
||||
public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2;
|
||||
|
||||
/**
|
||||
* Create a TetheringManager object for interacting with the tethering service.
|
||||
*
|
||||
@@ -378,6 +398,9 @@ public class TetheringManager {
|
||||
@Override
|
||||
public void onTetherClientsChanged(List<TetheredClient> clients) { }
|
||||
|
||||
@Override
|
||||
public void onOffloadStatusChanged(int status) { }
|
||||
|
||||
public void waitForStarted() {
|
||||
mWaitForCallback.block(DEFAULT_TIMEOUT_MS);
|
||||
throwIfPermissionFailure(mError);
|
||||
@@ -802,6 +825,14 @@ public class TetheringManager {
|
||||
* @param clients The new set of tethered clients; the collection is not ordered.
|
||||
*/
|
||||
public void onClientsChanged(@NonNull Collection<TetheredClient> clients) {}
|
||||
|
||||
/**
|
||||
* Called when tethering offload status changes.
|
||||
*
|
||||
* <p>This will be called immediately after the callback is registered.
|
||||
* @param status The offload status.
|
||||
*/
|
||||
public void onOffloadStatusChanged(@TetherOffloadStatus int status) {}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -925,6 +956,7 @@ public class TetheringManager {
|
||||
maybeSendTetherableIfacesChangedCallback(parcel.states);
|
||||
maybeSendTetheredIfacesChangedCallback(parcel.states);
|
||||
callback.onClientsChanged(parcel.tetheredClients);
|
||||
callback.onOffloadStatusChanged(parcel.offloadStatus);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -960,6 +992,11 @@ public class TetheringManager {
|
||||
public void onTetherClientsChanged(final List<TetheredClient> clients) {
|
||||
executor.execute(() -> callback.onClientsChanged(clients));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffloadStatusChanged(final int status) {
|
||||
executor.execute(() -> callback.onOffloadStatusChanged(status));
|
||||
}
|
||||
};
|
||||
getConnector(c -> c.registerTetheringEventCallback(remoteCallback, callerPkg));
|
||||
mTetheringEventCallbacks.put(callback, remoteCallback);
|
||||
|
||||
Reference in New Issue
Block a user