diff options
author | Christopher Tate <ctate@google.com> | 2013-06-10 16:55:02 -0700 |
---|---|---|
committer | The Android Automerger <android-build@android.com> | 2013-06-11 17:53:08 -0700 |
commit | 00416842550ea5f2c6a5bc0e4c82a3b4fe27ad9a (patch) | |
tree | 5c74634af29f5f9882d8fca5efeaea828e3f271d | |
parent | d61650a0add958b27d6117eb1853b9fff47df524 (diff) | |
download | base-00416842550ea5f2c6a5bc0e4c82a3b4fe27ad9a.tar.gz |
Need to explicitly disable scan-always when turning off wifi
... when you want wifi to be really most sincerely off, because
settings restore is about to rewrite the conf file.
Bug 9032154
Change-Id: I6a3a34ac3f14ec43aa9d9cc0159fca6168ccd0a2
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index 0b85e70201be..3f044708d5a0 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -20,6 +20,7 @@ import android.app.backup.BackupAgentHelper; import android.app.backup.BackupDataInput; import android.app.backup.BackupDataOutput; import android.app.backup.FullBackupDataOutput; +import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; @@ -330,7 +331,16 @@ public class SettingsBackupAgent extends BackupAgentHelper { if (DEBUG_BACKUP) { Log.v(TAG, "Starting deferred restore of wifi data"); } + final ContentResolver cr = getContentResolver(); + final int scanAlways = Settings.Global.getInt(cr, + Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); final int retainedWifiState = enableWifi(false); + if (scanAlways != 0) { + Settings.Global.putInt(cr, + Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); + // !!! Give the wifi stack a moment to quiesce + try { Thread.sleep(1000); } catch (InterruptedException e) {} + } if (restoredSupplicantData != null) { restoreWifiSupplicant(FILE_WIFI_SUPPLICANT, restoredSupplicantData, restoredSupplicantData.length); @@ -344,6 +354,10 @@ public class SettingsBackupAgent extends BackupAgentHelper { restoredWifiConfigFile, restoredWifiConfigFile.length); } // restore the previous WIFI state. + if (scanAlways != 0) { + Settings.Global.putInt(cr, + Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, scanAlways); + } enableWifi(retainedWifiState == WifiManager.WIFI_STATE_ENABLED || retainedWifiState == WifiManager.WIFI_STATE_ENABLING); } |