Don't notify on network switch if source network is validated.
Sometimes we switch away from a network to another (e.g., wifi to cell data) not because the old network is unvalidated, but because the score is lowered by a low signal strength. In this case, don't notify the user of a network switch. Bug: 31132499 Change-Id: I996a6e00096f8cb864fa9b00b36921725a4edb53
This commit is contained in:
@@ -4699,9 +4699,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
if (VDBG) log(" accepting network in place of " + currentNetwork.name());
|
||||
currentNetwork.removeRequest(nri.request.requestId);
|
||||
currentNetwork.lingerRequest(nri.request, now, mLingerDelayMs);
|
||||
if (isDefaultRequest(nri)) {
|
||||
mLingerMonitor.noteLingerDefaultNetwork(currentNetwork, newNetwork);
|
||||
}
|
||||
affectedNetworks.add(currentNetwork);
|
||||
} else {
|
||||
if (VDBG) log(" accepting network in place of null");
|
||||
@@ -4722,6 +4719,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
if (isDefaultRequest(nri)) {
|
||||
isNewDefault = true;
|
||||
oldDefaultNetwork = currentNetwork;
|
||||
if (currentNetwork != null) {
|
||||
mLingerMonitor.noteLingerDefaultNetwork(currentNetwork, newNetwork);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (newNetwork.isSatisfyingRequest(nri.request.requestId)) {
|
||||
|
||||
@@ -242,6 +242,12 @@ public class LingerMonitor {
|
||||
return;
|
||||
}
|
||||
|
||||
// Only show the notification if we switched away because a network became unvalidated, not
|
||||
// because its score changed.
|
||||
// TODO: instead of just skipping notification, keep a note of it, and show it if it becomes
|
||||
// unvalidated.
|
||||
if (fromNai.lastValidated) return;
|
||||
|
||||
if (isNotificationEnabled(fromNai, toNai)) {
|
||||
notify(fromNai, toNai, forceToast);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user