Merge "Allow passing in acceptUnvalidated without explicitlySelected" into qt-dev

am: 56b7edcae2

Change-Id: Ifd9dbc9c83e426e66417247cbf1fa594193e000f
This commit is contained in:
Lorenzo Colitti
2019-06-04 18:29:51 -07:00
committed by android-build-merger
2 changed files with 23 additions and 6 deletions

View File

@@ -433,7 +433,24 @@ public abstract class NetworkAgent extends Handler {
* {@link #saveAcceptUnvalidated} to respect the user's choice. * {@link #saveAcceptUnvalidated} to respect the user's choice.
*/ */
public void explicitlySelected(boolean acceptUnvalidated) { public void explicitlySelected(boolean acceptUnvalidated) {
queueOrSendMessage(EVENT_SET_EXPLICITLY_SELECTED, acceptUnvalidated ? 1 : 0, 0); explicitlySelected(true /* explicitlySelected */, acceptUnvalidated);
}
/**
* Called by the bearer to indicate this network was manually selected by the user.
* This should be called before the NetworkInfo is marked CONNECTED so that this
* Network can be given special treatment at that time. If {@code acceptUnvalidated} is
* {@code true}, then the system will switch to this network. If it is {@code false} and the
* network cannot be validated, the system will ask the user whether to switch to this network.
* If the user confirms and selects "don't ask again", then the system will call
* {@link #saveAcceptUnvalidated} to persist the user's choice. Thus, if the transport ever
* calls this method with {@code acceptUnvalidated} set to {@code false}, it must also implement
* {@link #saveAcceptUnvalidated} to respect the user's choice.
*/
public void explicitlySelected(boolean explicitlySelected, boolean acceptUnvalidated) {
queueOrSendMessage(EVENT_SET_EXPLICITLY_SELECTED,
explicitlySelected ? 1 : 0,
acceptUnvalidated ? 1 : 0);
} }
/** /**

View File

@@ -2575,11 +2575,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
break; break;
} }
case NetworkAgent.EVENT_SET_EXPLICITLY_SELECTED: { case NetworkAgent.EVENT_SET_EXPLICITLY_SELECTED: {
if (nai.everConnected && !nai.networkMisc.explicitlySelected) { if (nai.everConnected) {
loge("ERROR: already-connected network explicitly selected."); loge("ERROR: cannot call explicitlySelected on already-connected network");
} }
nai.networkMisc.explicitlySelected = true; nai.networkMisc.explicitlySelected = (msg.arg1 == 1);
nai.networkMisc.acceptUnvalidated = msg.arg1 == 1; nai.networkMisc.acceptUnvalidated = (msg.arg1 == 1) && (msg.arg2 == 1);
// Mark the network as temporarily accepting partial connectivity so that it // Mark the network as temporarily accepting partial connectivity so that it
// will be validated (and possibly become default) even if it only provides // will be validated (and possibly become default) even if it only provides
// partial internet access. Note that if user connects to partial connectivity // partial internet access. Note that if user connects to partial connectivity
@@ -2587,7 +2587,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
// out of wifi coverage) and if the same wifi is available again, the device // out of wifi coverage) and if the same wifi is available again, the device
// will auto connect to this wifi even though the wifi has "no internet". // will auto connect to this wifi even though the wifi has "no internet".
// TODO: Evaluate using a separate setting in IpMemoryStore. // TODO: Evaluate using a separate setting in IpMemoryStore.
nai.networkMisc.acceptPartialConnectivity = msg.arg1 == 1; nai.networkMisc.acceptPartialConnectivity = (msg.arg2 == 1);
break; break;
} }
case NetworkAgent.EVENT_SOCKET_KEEPALIVE: { case NetworkAgent.EVENT_SOCKET_KEEPALIVE: {