/**@class android.net.ConnectivityManager.NetworkCallback
@extends java.lang.Object

 Base class for {@code NetworkRequest} callbacks. Used for notifications about network
 changes. Should be extended by applications wanting notifications.

 A {@code NetworkCallback} is registered by calling
 {@link #requestandroid.net.Network(android.net.NetworkRequest, android.net.NetworkCallback)},
 {@link #registerandroid.net.NetworkCallback(android.net.NetworkRequest, android.net.NetworkCallback)},
 or {@link #registerDefaultNetworkCallback}(NetworkCallback). A {@code NetworkCallback} is
 unregistered by calling {@link #unregisterNetworkCallback}(NetworkCallback).
 A {@code NetworkCallback} should be registered at most once at any time.
 A {@code NetworkCallback} that has been unregistered can be registered again.
*/
var NetworkCallback = {

/**Called when the framework connects to a new network to evaluate whether it satisfies this
 request. If evaluation succeeds, this callback may be followed by an {@link #onAvailable}
 callback. There is no guarantee that this new network will satisfy any requests, or that
 the network will stay connected for longer than the time necessary to evaluate it.
 <p>
 Most applications <b>should not</b> act on this callback, and should instead use
 {@link #onAvailable}. This callback is intended for use by applications that can assist
 the framework in properly evaluating the network &mdash; for example, an application that
 can automatically log in to a captive portal without user intervention.
@param {Object {Network}} network The {@link Network} of the network that is being evaluated.
@hide 
*/
onPreCheck : function(  ) {},

/**Called when the framework connects and has declared a new network ready for use.
 This callback may be called more than once if the {@link android.net.Network} that is
 satisfying the request changes.
@param {Object {Network}} network The {@link Network} of the satisfying network.
@param {Object {NetworkCapabilities}} networkCapabilities The {@link NetworkCapabilities} of the satisfying network.
@param {Object {LinkProperties}} linkProperties The {@link LinkProperties} of the satisfying network.
@param {Boolean} blocked Whether access to the {@link Network} is blocked due to system policy.
@hide 
*/
onAvailable : function(  ) {},

/**Called when the framework connects and has declared a new network ready for use.
 This callback may be called more than once if the {@link android.net.Network} that is
 satisfying the request changes. This will always immediately be followed by a
 call to {@link #onCapabilitiesChanged(android.net.Network, android.net.NetworkCapabilities)} then by a
 call to {@link #onandroid.net.LinkPropertiesChanged(Network, android.net.LinkProperties)}, and a call to
 {@link #onBlockedStatusChanged(Network, boolean)}.
@param {Object {Network}} network The {@link Network} of the satisfying network.
*/
onAvailable : function(  ) {},

/**Called when the network is about to be disconnected.  Often paired with an
 {@link android.net.NetworkCallback#onAvailable} call with the new replacement network
 for graceful handover.  This may not be called if we have a hard loss
 (loss without warning).  This may be followed by either a
 {@link android.net.NetworkCallback#onLost} call or a
 {@link android.net.NetworkCallback#onAvailable} call for this network depending
 on whether we lose or regain it.
@param {Object {Network}} network The {@link Network} that is about to be disconnected.
@param {Number} maxMsToLive The time in ms the framework will attempt to keep the
                     network connected.  Note that the network may suffer a
                     hard loss at any time.
*/
onLosing : function(  ) {},

/**Called when the framework has a hard loss of the network or when the
 graceful failure ends.
@param {Object {Network}} network The {@link Network} lost.
*/
onLost : function(  ) {},

/**Called if no network is found in the timeout time specified in
 {@link #requestandroid.net.Network(android.net.NetworkRequest, android.net.NetworkCallback, int)} call or if the
 requested network request cannot be fulfilled (whether or not a timeout was
 specified). When this callback is invoked the associated
 {@link android.net.NetworkRequest} will have already been removed and released, as if
 {@link #unregisterNetworkCallback}(NetworkCallback) had been called.
*/
onUnavailable : function(  ) {},

/**Called when the network the framework connected to for this request
 changes capabilities but still satisfies the stated need.
@param {Object {Network}} network The {@link Network} whose capabilities have changed.
@param {Object {NetworkCapabilities}} networkCapabilities The new {@link android.net.NetworkCapabilities} for this
                            network.
*/
onCapabilitiesChanged : function(  ) {},

/**Called when the network the framework connected to for this request
 changes {@link android.net.LinkProperties}.
@param {Object {Network}} network The {@link Network} whose link properties have changed.
@param {Object {LinkProperties}} linkProperties The new {@link LinkProperties} for this network.
*/
onLinkPropertiesChanged : function(  ) {},

/**Called when the network the framework connected to for this request
 goes into {@link android.net.NetworkInfo.State#SUSPENDED}.
 This generally means that while the TCP connections are still live,
 temporarily network data fails to transfer.  Specifically this is used
 on cellular networks to mask temporary outages when driving through
 a tunnel, etc.
@hide 
*/
onNetworkSuspended : function(  ) {},

/**Called when the network the framework connected to for this request
 returns from a {@link android.net.NetworkInfo.State#SUSPENDED} state. This should always be
 preceded by a matching {@link android.net.NetworkCallback#onandroid.net.NetworkSuspended} call.
@hide 
*/
onNetworkResumed : function(  ) {},

/**Called when access to the specified network is blocked or unblocked.
@param {Object {Network}} network The {@link Network} whose blocked status has changed.
@param {Boolean} blocked The blocked status of this {@link Network}.
*/
onBlockedStatusChanged : function(  ) {},


};