Merge cherrypicks of [5656146, 5653357, 5656373, 5656227, 5656421, 5654207, 5654208, 5654209, 5654210, 5656164, 5656412, 5656413, 5656355, 5656356, 5656357, 5655631, 5655632, 5656165, 5656166, 5656167, 5656168, 5656376, 5656422, 5656147, 5656148, 5656149] into pi-qpr2-release

Change-Id: I89f6cee57bc5ea5dd27616f3cdca27e7b215bd4c
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 0b70dbf..7dc938b 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -2470,13 +2470,23 @@
                     currentIdentity = TelephonyUtil.getSimIdentity(mTelephonyManager,
                         new TelephonyUtil(), config);
                 }
+                if (mVerboseLoggingEnabled) {
+                    Log.d(TAG, "New identity for config " + config + ": " + currentIdentity);
+                }
+
                 // Update the loaded config
                 if (currentIdentity == null) {
-                    Log.d(TAG, "Identity is null");
-                    return;
+                    Log.d(TAG, "Identity is null for config:" + config);
+                    break;
                 }
-                config.enterpriseConfig.setIdentity(currentIdentity.first);
-                if (config.enterpriseConfig.getEapMethod() != WifiEnterpriseConfig.Eap.PEAP) {
+
+                if (config.enterpriseConfig.getEapMethod() == WifiEnterpriseConfig.Eap.PEAP) {
+                    config.enterpriseConfig.setIdentity(currentIdentity.first);
+                    // do not reset anonymous identity since it may be dependent on user-entry
+                    // (i.e. cannot re-request on every reboot/SIM re-entry)
+                } else {
+                    // reset identity as well: supplicant will ask us for it
+                    config.enterpriseConfig.setIdentity("");
                     config.enterpriseConfig.setAnonymousIdentity("");
                 }
             }