If in a mobile captive portal is detected enable fail fast.

When captive portal checking completes pass back the result.
This is used to enable/disable failing fast for mobile. When
failing fast is enabled we don't check for data stalls and thus
won't be continually trying to do recovery operations, such as
restarting the radio.

Bug: 9462512
Change-Id: I0dea0eee519f8ee7f94e79d40e82c18f30d7fe2e
This commit is contained in:
Wink Saville
2013-08-07 16:22:47 -07:00
parent 368095f658
commit 674777e622
3 changed files with 32 additions and 0 deletions

View File

@@ -1282,6 +1282,25 @@ public class ConnectivityManager {
} }
} }
/**
* Signal that the captive portal check on the indicated network
* is complete and whether its a captive portal or not.
*
* @param info the {@link NetworkInfo} object for the networkType
* in question.
* @param isCaptivePortal true/false.
*
* <p>This method requires the call to hold the permission
* {@link android.Manifest.permission#CONNECTIVITY_INTERNAL}.
* {@hide}
*/
public void captivePortalCheckCompleted(NetworkInfo info, boolean isCaptivePortal) {
try {
mService.captivePortalCheckCompleted(info, isCaptivePortal);
} catch (RemoteException e) {
}
}
/** /**
* Supply the backend messenger for a network tracker * Supply the backend messenger for a network tracker
* *

View File

@@ -129,6 +129,8 @@ interface IConnectivityManager
void captivePortalCheckComplete(in NetworkInfo info); void captivePortalCheckComplete(in NetworkInfo info);
void captivePortalCheckCompleted(in NetworkInfo info, boolean isCaptivePortal);
void supplyMessenger(int networkType, in Messenger messenger); void supplyMessenger(int networkType, in Messenger messenger);
int findConnectionTypeForIface(in String iface); int findConnectionTypeForIface(in String iface);

View File

@@ -2169,15 +2169,26 @@ public class ConnectivityService extends IConnectivityManager.Stub {
} }
} }
if (DBG) log("handleCaptivePortalTrackerCheck: call captivePortalCheckComplete ni=" + info);
thisNet.captivePortalCheckComplete(); thisNet.captivePortalCheckComplete();
} }
/** @hide */ /** @hide */
@Override
public void captivePortalCheckComplete(NetworkInfo info) { public void captivePortalCheckComplete(NetworkInfo info) {
enforceConnectivityInternalPermission(); enforceConnectivityInternalPermission();
if (DBG) log("captivePortalCheckComplete: ni=" + info);
mNetTrackers[info.getType()].captivePortalCheckComplete(); mNetTrackers[info.getType()].captivePortalCheckComplete();
} }
/** @hide */
@Override
public void captivePortalCheckCompleted(NetworkInfo info, boolean isCaptivePortal) {
enforceConnectivityInternalPermission();
if (DBG) log("captivePortalCheckCompleted: ni=" + info + " captive=" + isCaptivePortal);
mNetTrackers[info.getType()].captivePortalCheckCompleted(isCaptivePortal);
}
/** /**
* Setup data activity tracking for the given network interface. * Setup data activity tracking for the given network interface.
* *