summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiConfigManager.java
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2018-10-19 08:29:52 -0700
committerRoshan Pius <rpius@google.com>2018-11-01 07:00:38 -0700
commit697799b05b333bab62965d29f7b4fcb91b14fed9 (patch)
treef505f035b05ddf009850f9f74447bcae8500bfa6 /service/java/com/android/server/wifi/WifiConfigManager.java
parent0b86079855b2bc120a6c7790c53c927d95485b62 (diff)
downloadandroid_frameworks_opt_net_wifi-697799b05b333bab62965d29f7b4fcb91b14fed9.tar.gz
android_frameworks_opt_net_wifi-697799b05b333bab62965d29f7b4fcb91b14fed9.tar.bz2
android_frameworks_opt_net_wifi-697799b05b333bab62965d29f7b4fcb91b14fed9.zip
WifiConfigStore Refactor (2/2)
Change all the WifiConfigStore clients to use the new architecture: a) Any clients (StoreData) that was previously writing data to both the user & shared store files needs to split into 2 separate |StoreData| instances. b) All clients (StoreData) currently always ask for data to persisted. This can potentially be improved in the future (only set the flag when it has new data), but it preserves current state for both the general shared & user store files. Bug: 117599800 Test: Unit tests Test: Verified upgrading device with some store data to the new architecture and ensured that we don't lose any data. Test: Will send for integration tests. Change-Id: Ibc07a7adba855fa858ddcf27c8a787677fcb3d3d
Diffstat (limited to 'service/java/com/android/server/wifi/WifiConfigManager.java')
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 5de7e99d2..4b622bf31 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -328,7 +328,8 @@ public class WifiConfigManager {
// Store data for network list and deleted ephemeral SSID list. Used for serializing
// parsing data to/from the config store.
- private final NetworkListStoreData mNetworkListStoreData;
+ private final NetworkListSharedStoreData mNetworkListSharedStoreData;
+ private final NetworkListUserStoreData mNetworkListUserStoreData;
private final DeletedEphemeralSsidsStoreData mDeletedEphemeralSsidsStoreData;
// Store the saved network update listener.
@@ -343,7 +344,8 @@ public class WifiConfigManager {
WifiConfigStore wifiConfigStore, WifiConfigStoreLegacy wifiConfigStoreLegacy,
WifiPermissionsUtil wifiPermissionsUtil,
WifiPermissionsWrapper wifiPermissionsWrapper,
- NetworkListStoreData networkListStoreData,
+ NetworkListSharedStoreData networkListSharedStoreData,
+ NetworkListUserStoreData networkListUserStoreData,
DeletedEphemeralSsidsStoreData deletedEphemeralSsidsStoreData) {
mContext = context;
mClock = clock;
@@ -361,9 +363,11 @@ public class WifiConfigManager {
mDeletedEphemeralSSIDs = new HashSet<>();
// Register store data for network list and deleted ephemeral SSIDs.
- mNetworkListStoreData = networkListStoreData;
+ mNetworkListSharedStoreData = networkListSharedStoreData;
+ mNetworkListUserStoreData = networkListUserStoreData;
mDeletedEphemeralSsidsStoreData = deletedEphemeralSsidsStoreData;
- mWifiConfigStore.registerStoreData(mNetworkListStoreData);
+ mWifiConfigStore.registerStoreData(mNetworkListSharedStoreData);
+ mWifiConfigStore.registerStoreData(mNetworkListUserStoreData);
mWifiConfigStore.registerStoreData(mDeletedEphemeralSsidsStoreData);
mOnlyLinkSameCredentialConfigurations = mContext.getResources().getBoolean(
@@ -2754,7 +2758,7 @@ public class WifiConfigManager {
// Setup user store for the current user in case it have not setup yet, so that data
// owned by the current user will be backed to the user store.
if (mDeferredUserUnlockRead) {
- mWifiConfigStore.setUserStore(WifiConfigStore.createUserFile(mCurrentUserId));
+ mWifiConfigStore.setUserStores(WifiConfigStore.createUserFiles(mCurrentUserId));
mDeferredUserUnlockRead = false;
}
@@ -2783,7 +2787,7 @@ public class WifiConfigManager {
// configurations for the current user will also being loaded.
if (mDeferredUserUnlockRead) {
Log.i(TAG, "Handling user unlock before loading from store.");
- mWifiConfigStore.setUserStore(WifiConfigStore.createUserFile(mCurrentUserId));
+ mWifiConfigStore.setUserStores(WifiConfigStore.createUserFiles(mCurrentUserId));
mDeferredUserUnlockRead = false;
}
if (!mWifiConfigStore.areStoresPresent()) {
@@ -2803,8 +2807,8 @@ public class WifiConfigManager {
Log.wtf(TAG, "XML deserialization of store failed. All saved networks are lost!", e);
return false;
}
- loadInternalData(mNetworkListStoreData.getSharedConfigurations(),
- mNetworkListStoreData.getUserConfigurations(),
+ loadInternalData(mNetworkListSharedStoreData.getConfigurations(),
+ mNetworkListUserStoreData.getConfigurations(),
mDeletedEphemeralSsidsStoreData.getSsidList());
return true;
}
@@ -2823,7 +2827,7 @@ public class WifiConfigManager {
*/
public boolean loadFromUserStoreAfterUnlockOrSwitch(int userId) {
try {
- mWifiConfigStore.switchUserStoreAndRead(WifiConfigStore.createUserFile(userId));
+ mWifiConfigStore.switchUserStoresAndRead(WifiConfigStore.createUserFiles(userId));
} catch (IOException e) {
Log.wtf(TAG, "Reading from new store failed. All saved private networks are lost!", e);
return false;
@@ -2832,7 +2836,7 @@ public class WifiConfigManager {
"lost!", e);
return false;
}
- loadInternalDataFromUserStore(mNetworkListStoreData.getUserConfigurations(),
+ loadInternalDataFromUserStore(mNetworkListUserStoreData.getConfigurations(),
mDeletedEphemeralSsidsStoreData.getSsidList());
return true;
}
@@ -2892,8 +2896,8 @@ public class WifiConfigManager {
}
// Setup store data for write.
- mNetworkListStoreData.setSharedConfigurations(sharedConfigurations);
- mNetworkListStoreData.setUserConfigurations(userConfigurations);
+ mNetworkListSharedStoreData.setConfigurations(sharedConfigurations);
+ mNetworkListUserStoreData.setConfigurations(userConfigurations);
mDeletedEphemeralSsidsStoreData.setSsidList(mDeletedEphemeralSSIDs);
try {
@@ -2932,6 +2936,7 @@ public class WifiConfigManager {
pw.println("WifiConfigManager - Configured networks End ----");
pw.println("WifiConfigManager - Next network ID to be allocated " + mNextNetworkId);
pw.println("WifiConfigManager - Last selected network ID " + mLastSelectedNetworkId);
+ mWifiConfigStore.dump(fd, pw, args);
}
/**