Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2bd49af authored by Les Lee's avatar Les Lee Committed by Android (Google) Code Review
Browse files

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

parents 77ef5a4e bcbd0955
Loading
Loading
Loading
Loading
+51 −1
Original line number Diff line number Diff line
@@ -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);