OSDN Git Service

WiFiCallingSettings: don't start carrier app in onResume
authorMeng Wang <mewan@google.com>
Thu, 23 Feb 2017 22:33:49 +0000 (14:33 -0800)
committerMeng Wang <mewan@google.com>
Sat, 25 Feb 2017 18:23:23 +0000 (10:23 -0800)
onResume initialize UI before registering switch change listener.
So that listener is not invoked in UI initialization, but only real
switch change by user.

Bug: 33680334
Test: make
Test: manual - carrier app is not invoked in onResume
Change-Id: I7ca1eb1eab214b50c8de72946590c1ecb676d4df

src/com/android/settings/WifiCallingSettings.java

index 3e9da17..5f117f6 100644 (file)
@@ -253,15 +253,6 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
 
         final Context context = getActivity();
 
-        if (ImsManager.isWfcEnabledByPlatform(context)) {
-            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
-            tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
-
-            mSwitchBar.addOnSwitchChangeListener(this);
-
-            mValidListener = true;
-        }
-
         // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
         boolean wfcEnabled = ImsManager.isWfcEnabledByUser(context)
                 && ImsManager.isNonTtyOrTtyOnVolteEnabled(context);
@@ -272,6 +263,15 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
         mButtonWfcRoamingMode.setValue(Integer.toString(wfcRoamingMode));
         updateButtonWfcMode(context, wfcEnabled, wfcMode, wfcRoamingMode);
 
+        if (ImsManager.isWfcEnabledByPlatform(context)) {
+            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+            tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
+
+            mSwitchBar.addOnSwitchChangeListener(this);
+
+            mValidListener = true;
+        }
+
         context.registerReceiver(mIntentReceiver, mIntentFilter);
 
         Intent intent = getActivity().getIntent();