Minor Fixes for RadioInfo Test Menu

-Fix a race condition in re-creating activity
-Ensure cell info is disabled when Menu is paused
-Fix issue with focus on creating view

Change-Id: Icfb7667fe6e47ab6dc950918447bbe892e0681ad
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index 4a1c887..031a1ae 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -302,7 +302,7 @@
                 case EVENT_SET_PREFERRED_TYPE_DONE:
                     ar= (AsyncResult) msg.obj;
                     if (ar.exception != null) {
-                        log("Set preferred network type success.");
+                        log("Set preferred network type failed.");
                     }
                     break;
                 case EVENT_QUERY_SMSC_DONE:
@@ -404,7 +404,7 @@
             oemInfoButton.setEnabled(false);
         }
 
-        mCellInfoRefreshRateIndex = CELL_INFO_LIST_RATE_DISABLED;
+        mCellInfoRefreshRateIndex = 0; //disabled
         mPreferredNetworkTypeResult = mPreferredNetworkLabels.length - 1; //Unknown
 
         //FIXME: Replace with TelephonyManager call
@@ -438,9 +438,14 @@
         mPingHostnameV6.setText(mPingHostnameResultV6);
         mHttpClientTest.setText(mHttpClientTestResult);
 
-        //move these here so that the initial updates in create don't cause values to reset
         cellInfoRefreshRateSpinner.setOnItemSelectedListener(mCellInfoRefreshRateHandler);
+        //set selection after registering listener to force update
+        cellInfoRefreshRateSpinner.setSelection(mCellInfoRefreshRateIndex);
+
+        //set selection before registering to prevent update
+        preferredNetworkType.setSelection(mPreferredNetworkTypeResult, true);
         preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler);
+
         radioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
         imsVoLteProvisionedSwitch.setOnCheckedChangeListener(mImsVoLteCheckedChangeListener);
 
@@ -457,6 +462,8 @@
                 | PhoneStateListener.LISTEN_SERVICE_STATE
                 | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
                 | PhoneStateListener.LISTEN_DATA_CONNECTION_REAL_TIME_INFO);
+
+        smsc.clearFocus();
     }
 
     @Override
@@ -466,6 +473,7 @@
         log("onPause: unregister phone & data intents");
 
         mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        phone.setCellInfoListRate(CELL_INFO_LIST_RATE_DISABLED);
     }
 
     private void restoreFromBundle(Bundle b) {
@@ -485,8 +493,6 @@
                                                mPreferredNetworkLabels.length - 1);
 
         mCellInfoRefreshRateIndex = b.getInt("mCellInfoRefreshRateIndex", 0);
-
-        cellInfoRefreshRateSpinner.setSelection(mCellInfoRefreshRateIndex);
     }
 
     @Override
@@ -496,7 +502,6 @@
         outState.putString("mHttpClientTestResult", mHttpClientTestResult);
 
         outState.putInt("mPreferredNetworkTypeResult", mPreferredNetworkTypeResult);
-
         outState.putInt("mCellInfoRefreshRateIndex", mCellInfoRefreshRateIndex);
 
     }