Do not change NFC on/off preference while executing SE reset.

Bug: 4967769
Change-Id: I7a72cbe831d4b3f44bed7feeea8abaf468cdc19b
Signed-off-by: Nick Pelly <npelly@google.com>
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
index 0095761..283d72d 100755
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -338,7 +338,7 @@
             public void run() {
                 boolean nfc_on = mPrefs.getBoolean(PREF_NFC_ON, NFC_ON_DEFAULT);
                 if (nfc_on) {
-                    _enable(false);
+                    _enable(false, true);
                 }
                 resetSeOnFirstBoot();
             }
@@ -365,7 +365,7 @@
             boolean previouslyEnabled = isEnabled();
             if (!previouslyEnabled) {
                 reset();
-                isSuccess = _enable(previouslyEnabled);
+                isSuccess = _enable(previouslyEnabled, true);
             }
             return isSuccess;
         }
@@ -378,7 +378,7 @@
             if (DBG) Log.d(TAG, "Disabling NFC.  previous=" + previouslyEnabled);
 
             if (previouslyEnabled) {
-                isSuccess = _disable(previouslyEnabled);
+                isSuccess = _disable(previouslyEnabled, true);
             }
             return isSuccess;
         }
@@ -1918,7 +1918,7 @@
         }
     }
 
-    private boolean _enable(boolean oldEnabledState) {
+    private boolean _enable(boolean oldEnabledState, boolean savePref) {
         applyProperties();
 
         boolean isSuccess = mManager.initialize();
@@ -1937,12 +1937,14 @@
             mIsNfcEnabled = false;
         }
 
-        updateNfcOnSetting(oldEnabledState);
+        if (savePref) {
+            updateNfcOnSetting(oldEnabledState);
+        }
 
         return isSuccess;
     }
 
-    private boolean _disable(boolean oldEnabledState) {
+    private boolean _disable(boolean oldEnabledState, boolean savePref) {
         /* sometimes mManager.deinitialize() hangs, watch-dog it */
         WatchDogThread watchDog = new WatchDogThread();
         watchDog.start();
@@ -1972,7 +1974,9 @@
             mNdefPushClient.setForegroundMessage(null);
         }
 
-        updateNfcOnSetting(oldEnabledState);
+        if (savePref) {
+            updateNfcOnSetting(oldEnabledState);
+        }
 
         watchDog.cancel();
         return isSuccess;
@@ -2087,7 +2091,7 @@
 
         boolean tempEnable = !mIsNfcEnabled;
         if (tempEnable) {
-            if (!_enable(false)) {
+            if (!_enable(false, false)) {
                 Log.w(TAG, "Could not enable NFC to reset EE!");
                 return;
             }
@@ -2098,7 +2102,7 @@
         if (handle == 0) {
             Log.e(TAG, "Could not open the secure element!");
             if (tempEnable) {
-                _disable(true);
+                _disable(true, false);
             }
             return;
         }
@@ -2114,7 +2118,7 @@
         mSecureElement.doDisconnect(handle);
 
         if (tempEnable) {
-            _disable(true);
+            _disable(true, false);
         }
     }