DeserializeData for new device without userDataStore

Even new device without userDataStore, still do the deserialize to make
the mUserDataLoaded flag to TRUE.

Bug: 167647087
Test: atest com.android.server.wifi
Merged-In: I16be0a27e2b3d7128dce64ce09c9143bd605f991
Change-Id: I16be0a27e2b3d7128dce64ce09c9143bd605f991
(cherry picked from commit 7a098b760707a5c55675e597d4bb4349e8511df5)
diff --git a/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java b/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java
index 98664d0..a9c99ae 100644
--- a/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java
+++ b/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java
@@ -28,6 +28,7 @@
 import org.xmlpull.v1.XmlSerializer;
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -92,6 +93,7 @@
             throws XmlPullParserException, IOException {
         // Ignore empty reads.
         if (in == null) {
+            mDataSource.fromDeserialized(Collections.emptyMap());
             return;
         }
 
diff --git a/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java
index ec2142d..77d5c19 100644
--- a/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java
@@ -17,6 +17,7 @@
 package com.android.server.wifi;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -102,6 +103,17 @@
         assertSerializeDeserialize(imsiPrivacyProtectionExemptionMap);
     }
 
+    @Test
+    public void testDeserializeOnNewDeviceOrNewUser() throws Exception {
+        ArgumentCaptor<Map> deserializedNetworkSuggestionsMap =
+                ArgumentCaptor.forClass(Map.class);
+        mImsiPrivacyProtectionExemptionStoreData.deserializeData(null, 0,
+                WifiConfigStore.ENCRYPT_CREDENTIALS_CONFIG_STORE_DATA_VERSION, null);
+        verify(mDataSource).fromDeserialized(deserializedNetworkSuggestionsMap.capture());
+        assertTrue(deserializedNetworkSuggestionsMap.getValue().isEmpty());
+    }
+
+
     private Map<Integer, Boolean> assertSerializeDeserialize(
             Map<Integer, Boolean> mImsiPrivacyProtectionExemptionMap) throws Exception {
         // Setup the data to serialize.