[Settings] Refactor PhoneStateListener

Remove Looper and update of mSubId

Bug: 144542981
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=Enhanced4gBasePreferenceControllerTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=VideoCallingPreferenceControllerTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingPreferenceControllerTest

Change-Id: Ie6ae5b5914322644f2655e585b03a6b685bbc84a
This commit is contained in:
Bonian Chen
2019-11-15 14:43:29 +08:00
parent 7d0e3a4929
commit 21361e1f84
5 changed files with 59 additions and 42 deletions

View File

@@ -17,7 +17,6 @@
package com.android.settings.network.telephony;
import android.content.Context;
import android.os.Looper;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneStateListener;
@@ -47,7 +46,6 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
implements LifecycleObserver, OnStart, OnStop {
private Preference mPreference;
private TelephonyManager mTelephonyManager;
private CarrierConfigManager mCarrierConfigManager;
private PersistableBundle mCarrierConfig;
@VisibleForTesting
@@ -67,7 +65,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
super(context, key);
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
m4gLteListeners = new ArrayList<>();
mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
mPhoneStateListener = new PhoneCallStateListener();
}
public Enhanced4gBasePreferenceController init(int subId) {
@@ -75,8 +73,6 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
return this;
}
mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId);
mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
@@ -123,7 +119,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
@Override
public void onStart() {
mPhoneStateListener.register(mSubId);
mPhoneStateListener.register(mContext, mSubId);
}
@Override
@@ -192,18 +188,23 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
private class PhoneCallStateListener extends PhoneStateListener {
public PhoneCallStateListener(Looper looper) {
super(looper);
PhoneCallStateListener() {
super();
}
private TelephonyManager mTelephonyManager;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
mCallState = state;
updateState(mPreference);
}
public void register(int subId) {
Enhanced4gBasePreferenceController.this.mSubId = subId;
public void register(Context context, int subId) {
mTelephonyManager = context.getSystemService(TelephonyManager.class);
if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
}
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
}