Revert "Revert "Change network management listener to outcome re..."
Revert submission 2030087-revert-2028203-ethernet-outcomereceiver-WFKWDORBPY Reason for revert: Reinstate changes Reverted Changes: Ibd1d70ac3:Revert "Change Ethernet API to use OutcomeReceiver... I45af594f7:Revert "Change Ethernet API to use OutcomeReceiver... I45ba68452:Revert "Change network management listener to outc... Merged-In: Id8fadfed9fcfd22f04f6d7c3460b5956e571e01f Change-Id: If3854c1c3a39aa6de84807c6bde267cf88f3d277
This commit is contained in:
@@ -24,8 +24,8 @@ import android.net.ConnectivityManager;
|
||||
import android.net.ConnectivityResources;
|
||||
import android.net.EthernetManager;
|
||||
import android.net.EthernetNetworkSpecifier;
|
||||
import android.net.IEthernetNetworkManagementListener;
|
||||
import android.net.EthernetNetworkManagementException;
|
||||
import android.net.INetworkInterfaceOutcomeReceiver;
|
||||
import android.net.IpConfiguration;
|
||||
import android.net.IpConfiguration.IpAssignment;
|
||||
import android.net.IpConfiguration.ProxySettings;
|
||||
@@ -239,14 +239,14 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
* {@code null} is passed, then the network's current
|
||||
* {@link NetworkCapabilities} will be used in support of existing APIs as
|
||||
* the public API does not allow this.
|
||||
* @param listener an optional {@link IEthernetNetworkManagementListener} to notify callers of
|
||||
* @param listener an optional {@link INetworkInterfaceOutcomeReceiver} to notify callers of
|
||||
* completion.
|
||||
*/
|
||||
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
|
||||
protected void updateInterface(@NonNull final String ifaceName,
|
||||
@Nullable final IpConfiguration ipConfig,
|
||||
@Nullable final NetworkCapabilities capabilities,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (!hasInterface(ifaceName)) {
|
||||
maybeSendNetworkManagementCallbackForUntracked(ifaceName, listener);
|
||||
return;
|
||||
@@ -295,7 +295,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
/** Returns true if state has been modified */
|
||||
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
|
||||
protected boolean updateInterfaceLinkState(@NonNull final String ifaceName, final boolean up,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (!hasInterface(ifaceName)) {
|
||||
maybeSendNetworkManagementCallbackForUntracked(ifaceName, listener);
|
||||
return false;
|
||||
@@ -310,7 +310,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
}
|
||||
|
||||
private void maybeSendNetworkManagementCallbackForUntracked(
|
||||
String ifaceName, IEthernetNetworkManagementListener listener) {
|
||||
String ifaceName, INetworkInterfaceOutcomeReceiver listener) {
|
||||
maybeSendNetworkManagementCallback(listener, null,
|
||||
new EthernetNetworkManagementException(
|
||||
ifaceName + " can't be updated as it is not available."));
|
||||
@@ -353,15 +353,19 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
}
|
||||
|
||||
private static void maybeSendNetworkManagementCallback(
|
||||
@Nullable final IEthernetNetworkManagementListener listener,
|
||||
@Nullable final Network network,
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener,
|
||||
@Nullable final String iface,
|
||||
@Nullable final EthernetNetworkManagementException e) {
|
||||
if (null == listener) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
listener.onComplete(network, e);
|
||||
if (iface != null) {
|
||||
listener.onResult(iface);
|
||||
} else {
|
||||
listener.onError(e);
|
||||
}
|
||||
} catch (RemoteException re) {
|
||||
Log.e(TAG, "Can't send onComplete for network management callback", re);
|
||||
}
|
||||
@@ -415,9 +419,9 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
private class EthernetIpClientCallback extends IpClientCallbacks {
|
||||
private final ConditionVariable mIpClientStartCv = new ConditionVariable(false);
|
||||
private final ConditionVariable mIpClientShutdownCv = new ConditionVariable(false);
|
||||
@Nullable IEthernetNetworkManagementListener mNetworkManagementListener;
|
||||
@Nullable INetworkInterfaceOutcomeReceiver mNetworkManagementListener;
|
||||
|
||||
EthernetIpClientCallback(@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
EthernetIpClientCallback(@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
mNetworkManagementListener = listener;
|
||||
}
|
||||
|
||||
@@ -502,7 +506,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
|
||||
void updateInterface(@Nullable final IpConfiguration ipConfig,
|
||||
@Nullable final NetworkCapabilities capabilities,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (DBG) {
|
||||
Log.d(TAG, "updateInterface, iface: " + name
|
||||
+ ", ipConfig: " + ipConfig + ", old ipConfig: " + mIpConfig
|
||||
@@ -533,7 +537,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
start(null);
|
||||
}
|
||||
|
||||
private void start(@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
private void start(@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (mIpClient != null) {
|
||||
if (DBG) Log.d(TAG, "IpClient already started");
|
||||
return;
|
||||
@@ -553,7 +557,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
}
|
||||
|
||||
void onIpLayerStarted(@NonNull final LinkProperties linkProperties,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if(mIpClient == null) {
|
||||
// This call comes from a message posted on the handler thread, but the IpClient has
|
||||
// since been stopped such as may be the case if updateInterfaceLinkState() is
|
||||
@@ -593,10 +597,10 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
});
|
||||
mNetworkAgent.register();
|
||||
mNetworkAgent.markConnected();
|
||||
realizeNetworkManagementCallback(mNetworkAgent.getNetwork(), null);
|
||||
realizeNetworkManagementCallback(name, null);
|
||||
}
|
||||
|
||||
void onIpLayerStopped(@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
void onIpLayerStopped(@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
// This cannot happen due to provisioning timeout, because our timeout is 0. It can
|
||||
// happen due to errors while provisioning or on provisioning loss.
|
||||
if(mIpClient == null) {
|
||||
@@ -622,7 +626,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
}
|
||||
|
||||
// Must be called on the handler thread
|
||||
private void realizeNetworkManagementCallback(@Nullable final Network network,
|
||||
private void realizeNetworkManagementCallback(@Nullable final String iface,
|
||||
@Nullable final EthernetNetworkManagementException e) {
|
||||
ensureRunningOnEthernetHandlerThread();
|
||||
if (null == mIpClientCallback) {
|
||||
@@ -630,7 +634,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
}
|
||||
|
||||
EthernetNetworkFactory.maybeSendNetworkManagementCallback(
|
||||
mIpClientCallback.mNetworkManagementListener, network, e);
|
||||
mIpClientCallback.mNetworkManagementListener, iface, e);
|
||||
// Only send a single callback per listener.
|
||||
mIpClientCallback.mNetworkManagementListener = null;
|
||||
}
|
||||
@@ -671,7 +675,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
|
||||
/** Returns true if state has been modified */
|
||||
boolean updateLinkState(final boolean up,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (mLinkUp == up) {
|
||||
EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, null,
|
||||
new EthernetNetworkManagementException(
|
||||
@@ -681,13 +685,11 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
mLinkUp = up;
|
||||
|
||||
if (!up) { // was up, goes down
|
||||
// Save an instance of the current network to use with the callback before stop().
|
||||
final Network network = mNetworkAgent != null ? mNetworkAgent.getNetwork() : null;
|
||||
// Send an abort on a provisioning request callback if necessary before stopping.
|
||||
maybeSendNetworkManagementCallbackForAbort();
|
||||
stop();
|
||||
// If only setting the interface down, send a callback to signal completion.
|
||||
EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, network, null);
|
||||
EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, name, null);
|
||||
} else { // was down, goes up
|
||||
stop();
|
||||
start(listener);
|
||||
@@ -742,7 +744,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
restart(null);
|
||||
}
|
||||
|
||||
void restart(@Nullable final IEthernetNetworkManagementListener listener){
|
||||
void restart(@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (DBG) Log.d(TAG, "reconnecting Ethernet");
|
||||
stop();
|
||||
start(listener);
|
||||
|
||||
@@ -24,7 +24,7 @@ import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.IEthernetManager;
|
||||
import android.net.IEthernetServiceListener;
|
||||
import android.net.IEthernetNetworkManagementListener;
|
||||
import android.net.INetworkInterfaceOutcomeReceiver;
|
||||
import android.net.ITetheredInterfaceCallback;
|
||||
import android.net.EthernetNetworkUpdateRequest;
|
||||
import android.net.IpConfiguration;
|
||||
@@ -243,7 +243,7 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
|
||||
@Override
|
||||
public void updateConfiguration(@NonNull final String iface,
|
||||
@NonNull final EthernetNetworkUpdateRequest request,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
Objects.requireNonNull(iface);
|
||||
Objects.requireNonNull(request);
|
||||
throwIfEthernetNotStarted();
|
||||
@@ -260,7 +260,7 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
|
||||
|
||||
@Override
|
||||
public void connectNetwork(@NonNull final String iface,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
Log.i(TAG, "connectNetwork called with: iface=" + iface + ", listener=" + listener);
|
||||
Objects.requireNonNull(iface);
|
||||
throwIfEthernetNotStarted();
|
||||
@@ -272,7 +272,7 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
|
||||
|
||||
@Override
|
||||
public void disconnectNetwork(@NonNull final String iface,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
Log.i(TAG, "disconnectNetwork called with: iface=" + iface + ", listener=" + listener);
|
||||
Objects.requireNonNull(iface);
|
||||
throwIfEthernetNotStarted();
|
||||
|
||||
@@ -27,7 +27,7 @@ import android.content.res.Resources;
|
||||
import android.net.ConnectivityResources;
|
||||
import android.net.EthernetManager;
|
||||
import android.net.IEthernetServiceListener;
|
||||
import android.net.IEthernetNetworkManagementListener;
|
||||
import android.net.INetworkInterfaceOutcomeReceiver;
|
||||
import android.net.INetd;
|
||||
import android.net.ITetheredInterfaceCallback;
|
||||
import android.net.InterfaceConfigurationParcel;
|
||||
@@ -291,7 +291,7 @@ public class EthernetTracker {
|
||||
protected void updateConfiguration(@NonNull final String iface,
|
||||
@Nullable final IpConfiguration ipConfig,
|
||||
@Nullable final NetworkCapabilities capabilities,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
if (DBG) {
|
||||
Log.i(TAG, "updateConfiguration, iface: " + iface + ", capabilities: " + capabilities
|
||||
+ ", ipConfig: " + ipConfig);
|
||||
@@ -314,13 +314,13 @@ public class EthernetTracker {
|
||||
|
||||
@VisibleForTesting(visibility = PACKAGE)
|
||||
protected void connectNetwork(@NonNull final String iface,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
mHandler.post(() -> updateInterfaceState(iface, true, listener));
|
||||
}
|
||||
|
||||
@VisibleForTesting(visibility = PACKAGE)
|
||||
protected void disconnectNetwork(@NonNull final String iface,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
mHandler.post(() -> updateInterfaceState(iface, false, listener));
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@ public class EthernetTracker {
|
||||
}
|
||||
|
||||
private void updateInterfaceState(@NonNull final String iface, final boolean up,
|
||||
@Nullable final IEthernetNetworkManagementListener listener) {
|
||||
@Nullable final INetworkInterfaceOutcomeReceiver listener) {
|
||||
final int mode = getInterfaceMode(iface);
|
||||
final boolean factoryLinkStateUpdated = (mode == INTERFACE_MODE_CLIENT)
|
||||
&& mFactory.updateInterfaceLinkState(iface, up, listener);
|
||||
|
||||
Reference in New Issue
Block a user