Merge "Always prompt for limited connectivity."
This commit is contained in:
@@ -3631,20 +3631,37 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mNotifier.showNotification(nai.network.netId, type, nai, null, pendingIntent, true);
|
mNotifier.showNotification(nai.network.netId, type, nai, null, pendingIntent, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean shouldPromptUnvalidated(NetworkAgentInfo nai) {
|
||||||
|
// Don't prompt if the network is validated, and don't prompt on captive portals
|
||||||
|
// because we're already prompting the user to sign in.
|
||||||
|
if (nai.everValidated || nai.everCaptivePortalDetected) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a network has partial connectivity, always prompt unless the user has already accepted
|
||||||
|
// partial connectivity and selected don't ask again. This ensures that if the device
|
||||||
|
// automatically connects to a network that has partial Internet access, the user will
|
||||||
|
// always be able to use it, either because they've already chosen "don't ask again" or
|
||||||
|
// because we have prompt them.
|
||||||
|
if (nai.partialConnectivity && !nai.networkMisc.acceptPartialConnectivity) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a network has no Internet access, only prompt if the network was explicitly selected
|
||||||
|
// and if the user has not already told us to use the network regardless of whether it
|
||||||
|
// validated or not.
|
||||||
|
if (nai.networkMisc.explicitlySelected && !nai.networkMisc.acceptUnvalidated) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private void handlePromptUnvalidated(Network network) {
|
private void handlePromptUnvalidated(Network network) {
|
||||||
if (VDBG || DDBG) log("handlePromptUnvalidated " + network);
|
if (VDBG || DDBG) log("handlePromptUnvalidated " + network);
|
||||||
NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
|
NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
|
||||||
|
|
||||||
// Only prompt if the network is unvalidated or network has partial internet connectivity
|
if (nai == null || !shouldPromptUnvalidated(nai)) {
|
||||||
// and was explicitly selected by the user, and if we haven't already been told to switch
|
|
||||||
// to it regardless of whether it validated or not. Also don't prompt on captive portals
|
|
||||||
// because we're already prompting the user to sign in.
|
|
||||||
if (nai == null || nai.everValidated || nai.everCaptivePortalDetected
|
|
||||||
|| !nai.networkMisc.explicitlySelected || nai.networkMisc.acceptUnvalidated
|
|
||||||
// TODO: Once the value of acceptPartialConnectivity is moved to IpMemoryStore,
|
|
||||||
// we should reevaluate how to handle acceptPartialConnectivity when network just
|
|
||||||
// connected.
|
|
||||||
|| nai.networkMisc.acceptPartialConnectivity) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// TODO: Evaluate if it's needed to wait 8 seconds for triggering notification when
|
// TODO: Evaluate if it's needed to wait 8 seconds for triggering notification when
|
||||||
|
|||||||
Reference in New Issue
Block a user