Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2fe4b3cb authored by Pavel Zhamaitsiak's avatar Pavel Zhamaitsiak
Browse files

Ensure that listener is removed only if it was added

Bug: 23016088
Change-Id: Ia6f17739ffc841ce8483e9c6c8132a94ecd62200
parent 7930f872
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
    private ListPreference mButtonWfcMode;
    private TextView mEmptyView;

    private boolean mValidListener = false;

    private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
        /*
         * Enable/disable controls when in/out of a call and depending on
@@ -172,6 +174,8 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
            tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);

            mSwitchBar.addOnSwitchChangeListener(this);

            mValidListener = true;
        }

        // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
@@ -196,7 +200,9 @@ public class WifiCallingSettings extends SettingsPreferenceFragment

        final Context context = getActivity();

        if (ImsManager.isWfcEnabledByPlatform(getActivity())) {
        if (mValidListener) {
            mValidListener = false;

            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);