Add IpManager#shutdown() to terminate the state machine.
Additionally, remove IpManager.Callback#usingIpReachabilityMonitor()
now that this is now longer used.
Bug: 26991160
Change-Id: I9a17497c82238a9fb37a20d01aeca7bc4913ae2c
diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java
index 25cb793..d9d9829 100644
--- a/services/net/java/android/net/ip/IpManager.java
+++ b/services/net/java/android/net/ip/IpManager.java
@@ -65,34 +65,15 @@
private static final boolean VDBG = false;
/**
- * Callbacks for both configuration of IpManager and for handling
- * events as desired.
+ * Callbacks for handling IpManager events.
*/
public static class Callback {
- /**
- * Configuration callbacks.
- *
- * Override methods as desired in order to control which features
- * IpManager will use at run time.
- */
-
- // An IpReachabilityMonitor will always be started, if only for logging.
- // This method is checked before probing neighbors and before calling
- // onProvisioningLost() (see below).
- public boolean usingIpReachabilityMonitor() {
- return false;
- }
-
- /**
- * Event callbacks.
- *
- * Override methods as desired in order to handle event callbacks
- * as IpManager invokes them.
- */
-
- // Implementations must call IpManager#completedPreDhcpAction().
- // TODO: Remove this requirement, perhaps via some
- // registerForPreDhcpAction()-style mechanism.
+ // In order to receive onPreDhcpAction(), call #withPreDhcpAction()
+ // when constructing a ProvisioningConfiguration.
+ //
+ // Implementations of onPreDhcpAction() must call
+ // IpManager#completedPreDhcpAction() to indicate that DHCP is clear
+ // to proceed.
public void onPreDhcpAction() {}
public void onPostDhcpAction() {}
@@ -113,6 +94,9 @@
// Called when the internal IpReachabilityMonitor (if enabled) has
// detected the loss of a critical number of required neighbors.
public void onReachabilityLost(String logMsg) {}
+
+ // Called when the IpManager state machine terminates.
+ public void onQuit() {}
}
/**
@@ -269,6 +253,17 @@
mNetlinkTracker = null;
}
+ @Override
+ protected void onQuitting() {
+ mCallback.onQuit();
+ }
+
+ // Shut down this IpManager instance altogether.
+ public void shutdown() {
+ stop();
+ quit();
+ }
+
public static ProvisioningConfiguration.Builder buildProvisioningConfiguration() {
return new ProvisioningConfiguration.Builder();
}