diff options
| author | 2018-09-29 19:08:37 +0900 | |
|---|---|---|
| committer | 2018-11-12 23:18:25 +0000 | |
| commit | 4e7bbd8a642fd0d8a15f5bbd3bc8526818c5a8e1 (patch) | |
| tree | c7eeead57a6c8ddc90c529446cf1509357979589 | |
| parent | 67dd91e6a301c9dd15f4f95ac715064534296a53 (diff) | |
Handle hiddenSSID as one of soft ap config for backup & restore
In addition to the change to persist hiddenSSID, this CL takes care of
backup and restore use case for hiddenSSID as one of soft ap config.
cherry-picked from aog/773385
Bug: 117052143
Test: Unit tests
Change-Id: I4af897f466c5d8fea66aec93e39faf3f13bd23fb
| -rw-r--r-- | wifi/java/android/net/wifi/WifiConfiguration.java | 6 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/WifiConfigurationTest.java | 30 |
2 files changed, 35 insertions, 1 deletions
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java index 05747163550e..6d86fa5afc11 100644 --- a/wifi/java/android/net/wifi/WifiConfiguration.java +++ b/wifi/java/android/net/wifi/WifiConfiguration.java @@ -57,7 +57,7 @@ public class WifiConfiguration implements Parcelable { /** * Current Version of the Backup Serializer. */ - private static final int BACKUP_VERSION = 2; + private static final int BACKUP_VERSION = 3; /** {@hide} */ public static final String ssidVarName = "ssid"; /** {@hide} */ @@ -2286,6 +2286,7 @@ public class WifiConfiguration implements Parcelable { out.writeInt(apChannel); BackupUtils.writeString(out, preSharedKey); out.writeInt(getAuthType()); + out.writeBoolean(hiddenSSID); return baos.toByteArray(); } @@ -2308,6 +2309,9 @@ public class WifiConfiguration implements Parcelable { config.apChannel = in.readInt(); config.preSharedKey = BackupUtils.readString(in); config.allowedKeyManagement.set(in.readInt()); + if (version >= 3) { + config.hiddenSSID = in.readBoolean(); + } return config; } } diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java index 3b9f93e503be..73fe75687c87 100644 --- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java +++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import android.net.MacAddress; +import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WifiConfiguration.NetworkSelectionStatus; import android.os.Parcel; import android.support.test.filters.SmallTest; @@ -30,6 +31,9 @@ import android.support.test.filters.SmallTest; import org.junit.Before; import org.junit.Test; +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; + /** * Unit tests for {@link android.net.wifi.WifiConfiguration}. */ @@ -239,4 +243,30 @@ public class WifiConfigurationTest { config.setRandomizedMacAddress(null); assertEquals(defaultMac, config.getRandomizedMacAddress()); } + + /** + * Verifies that the serialization/de-serialization for softap config works. + */ + @Test + public void testSoftApConfigBackupAndRestore() throws Exception { + WifiConfiguration config = new WifiConfiguration(); + config.SSID = "TestAP"; + config.apBand = WifiConfiguration.AP_BAND_5GHZ; + config.apChannel = 40; + config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK); + config.preSharedKey = "TestPsk"; + config.hiddenSSID = true; + + byte[] data = config.getBytesForBackup(); + ByteArrayInputStream bais = new ByteArrayInputStream(data); + DataInputStream in = new DataInputStream(bais); + WifiConfiguration restoredConfig = WifiConfiguration.getWifiConfigFromBackup(in); + + assertEquals(config.SSID, restoredConfig.SSID); + assertEquals(config.preSharedKey, restoredConfig.preSharedKey); + assertEquals(config.getAuthType(), restoredConfig.getAuthType()); + assertEquals(config.apBand, restoredConfig.apBand); + assertEquals(config.apChannel, restoredConfig.apChannel); + assertEquals(config.hiddenSSID, restoredConfig.hiddenSSID); + } } |