Merge "Fix bug of phoneListener always listens to default subId in WFC."

This commit is contained in:
Xiangyu/Malcolm Chen
2018-07-13 00:09:12 +00:00
committed by Android (Google) Code Review

View File

@@ -89,6 +89,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private ImsManager mImsManager; private ImsManager mImsManager;
private TelephonyManager mTelephonyManager;
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() { private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
/* /*
@@ -238,6 +239,9 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
mImsManager = ImsManager.getInstance( mImsManager = ImsManager.getInstance(
getActivity(), SubscriptionManager.getPhoneId(mSubId)); getActivity(), SubscriptionManager.getPhoneId(mSubId));
mTelephonyManager = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId);
mButtonWfcMode = (ListPreference) findPreference(BUTTON_WFC_MODE); mButtonWfcMode = (ListPreference) findPreference(BUTTON_WFC_MODE);
mButtonWfcMode.setOnPreferenceChangeListener(this); mButtonWfcMode.setOnPreferenceChangeListener(this);
@@ -319,9 +323,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
updateBody(); updateBody();
if (mImsManager.isWfcEnabledByPlatform()) { if (mImsManager.isWfcEnabledByPlatform()) {
TelephonyManager tm = mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
mSwitchBar.addOnSwitchChangeListener(this); mSwitchBar.addOnSwitchChangeListener(this);