Merge "Trigger reevaluation of all requests when mobile data state changes"

This commit is contained in:
Treehugger Robot
2021-05-01 01:14:33 +00:00
committed by Gerrit Code Review
2 changed files with 17 additions and 1 deletions

View File

@@ -396,6 +396,15 @@ public class Vcn extends Handler {
continue;
}
// This should never happen, by virtue of checking for the above check for
// pre-existing VcnGatewayConnections that satisfy a given request, but if state
// that affects the satsifying of requests changes, this is theoretically possible.
if (mVcnGatewayConnections.containsKey(gatewayConnectionConfig)) {
Slog.wtf(getLogTag(), "Attempted to bring up VcnGatewayConnection for config "
+ "with existing VcnGatewayConnection");
return;
}
final VcnGatewayConnection vcnGatewayConnection =
mDeps.newVcnGatewayConnection(
mVcnContext,
@@ -467,6 +476,9 @@ public class Vcn extends Handler {
}
}
}
// Trigger re-evaluation of all requests; mobile data state impacts supported caps.
mVcnContext.getVcnNetworkProvider().resendAllRequests(mRequestListener);
}
}

View File

@@ -388,8 +388,9 @@ public class VcnTest {
final ContentObserver contentObserver = captor.getValue();
// Start VcnGatewayConnections
final NetworkRequestListener requestListener = verifyAndGetRequestListener();
mVcn.setMobileDataEnabled(startingToggleState);
triggerVcnRequestListeners(verifyAndGetRequestListener());
triggerVcnRequestListeners(requestListener);
final Map<VcnGatewayConnectionConfig, VcnGatewayConnection> gateways =
mVcn.getVcnGatewayConnectionConfigMap();
@@ -411,6 +412,9 @@ public class VcnTest {
}
}
if (startingToggleState != endingToggleState) {
verify(mVcnNetworkProvider).resendAllRequests(requestListener);
}
assertEquals(endingToggleState, mVcn.isMobileDataEnabled());
}