Merge "wifi: Fix unnecessary notification after restoring config from cloud." into tm-dev

This commit is contained in:
Les Lee 2022-05-12 02:19:42 +00:00 committed by Android (Google) Code Review
commit f2bd49af42

View File

@ -1074,13 +1074,63 @@ public class SettingsBackupAgent extends BackupAgentHelper {
if (DEBUG) Log.d(TAG, "Successfully unMarshaled SoftApConfiguration ");
// Depending on device hardware, we may need to notify the user of a setting change
SoftApConfiguration storedConfig = mWifiManager.getSoftApConfiguration();
if (!storedConfig.equals(configInCloud)) {
if (isNeedToNotifyUserConfigurationHasChanged(configInCloud, storedConfig)) {
Log.d(TAG, "restored ap configuration requires a conversion, notify the user");
WifiSoftApConfigChangedNotifier.notifyUserOfConfigConversion(this);
}
}
}
private boolean isNeedToNotifyUserConfigurationHasChanged(SoftApConfiguration configInCloud,
SoftApConfiguration storedConfig) {
// Check if the cloud configuration was modified when restored to the device.
// All elements of the configuration are compared except:
// 1. Persistent randomized MAC address (which is per device)
// 2. The flag indicating whether the configuration is "user modified"
return !(Objects.equals(configInCloud.getWifiSsid(), storedConfig.getWifiSsid())
&& Objects.equals(configInCloud.getBssid(), storedConfig.getBssid())
&& Objects.equals(configInCloud.getPassphrase(), storedConfig.getPassphrase())
&& configInCloud.isHiddenSsid() == storedConfig.isHiddenSsid()
&& configInCloud.getChannels().toString().equals(
storedConfig.getChannels().toString())
&& configInCloud.getSecurityType() == storedConfig.getSecurityType()
&& configInCloud.getMaxNumberOfClients() == storedConfig.getMaxNumberOfClients()
&& configInCloud.isAutoShutdownEnabled() == storedConfig.isAutoShutdownEnabled()
&& configInCloud.getShutdownTimeoutMillis()
== storedConfig.getShutdownTimeoutMillis()
&& configInCloud.isClientControlByUserEnabled()
== storedConfig.isClientControlByUserEnabled()
&& Objects.equals(configInCloud.getBlockedClientList(),
storedConfig.getBlockedClientList())
&& Objects.equals(configInCloud.getAllowedClientList(),
storedConfig.getAllowedClientList())
&& configInCloud.getMacRandomizationSetting()
== storedConfig.getMacRandomizationSetting()
&& configInCloud.isBridgedModeOpportunisticShutdownEnabled()
== storedConfig.isBridgedModeOpportunisticShutdownEnabled()
&& configInCloud.isIeee80211axEnabled() == storedConfig.isIeee80211axEnabled()
&& configInCloud.isIeee80211beEnabled() == storedConfig.isIeee80211beEnabled()
&& configInCloud.getBridgedModeOpportunisticShutdownTimeoutMillis()
== storedConfig.getBridgedModeOpportunisticShutdownTimeoutMillis()
&& Objects.equals(configInCloud.getVendorElements(),
storedConfig.getVendorElements())
&& (configInCloud.getPersistentRandomizedMacAddress() != null
? Objects.equals(configInCloud.getPersistentRandomizedMacAddress(),
storedConfig.getPersistentRandomizedMacAddress()) : true)
&& Arrays.equals(configInCloud.getAllowedAcsChannels(
SoftApConfiguration.BAND_2GHZ),
storedConfig.getAllowedAcsChannels(SoftApConfiguration.BAND_2GHZ))
&& Arrays.equals(configInCloud.getAllowedAcsChannels(
SoftApConfiguration.BAND_5GHZ),
storedConfig.getAllowedAcsChannels(SoftApConfiguration.BAND_5GHZ))
&& Arrays.equals(configInCloud.getAllowedAcsChannels(
SoftApConfiguration.BAND_6GHZ),
storedConfig.getAllowedAcsChannels(SoftApConfiguration.BAND_6GHZ))
&& configInCloud.getMaxChannelBandwidth() == storedConfig.getMaxChannelBandwidth()
);
}
private byte[] getNetworkPolicies() {
NetworkPolicyManager networkPolicyManager =
(NetworkPolicyManager) getSystemService(NETWORK_POLICY_SERVICE);