[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 Merged-In: Ie6ae5b5914322644f2655e585b03a6b685bbc84a Change-Id: I5306b3a80220c02d2de1b25f20e8ef7f845e9a09
This commit is contained in:
@@ -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;
|
||||
@@ -44,7 +43,6 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
||||
Enhanced4gLtePreferenceController.On4gLteUpdateListener {
|
||||
|
||||
private Preference mPreference;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
@VisibleForTesting
|
||||
ImsManager mImsManager;
|
||||
@@ -57,7 +55,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
||||
super(context, key);
|
||||
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
|
||||
mDataContentObserver = new MobileDataEnabledListener(context, this);
|
||||
mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
|
||||
mPhoneStateListener = new PhoneCallStateListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,7 +74,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
mPhoneStateListener.register(mSubId);
|
||||
mPhoneStateListener.register(mContext, mSubId);
|
||||
mDataContentObserver.start(mSubId);
|
||||
}
|
||||
|
||||
@@ -117,9 +115,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
||||
|
||||
public VideoCallingPreferenceController init(int subId) {
|
||||
mSubId = subId;
|
||||
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
|
||||
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
|
||||
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
|
||||
}
|
||||
|
||||
@@ -156,18 +152,23 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
||||
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
@@ -67,7 +67,7 @@ public class Enhanced4gLtePreferenceControllerTest {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
|
||||
doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
|
||||
doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
|
||||
doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
|
||||
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
|
||||
|
@@ -76,10 +76,6 @@ public class WifiCallingPreferenceControllerTest {
|
||||
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
|
||||
mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
|
||||
mQueryImsState.setIsEnabledByUser(true);
|
||||
mQueryImsState.setIsProvisionedOnDevice(true);
|
||||
|
||||
mPreference = new Preference(mContext);
|
||||
mController = spy(new WifiCallingPreferenceController(mContext, "wifi_calling") {
|
||||
@Override
|
||||
@@ -89,8 +85,8 @@ public class WifiCallingPreferenceControllerTest {
|
||||
});
|
||||
mController.mCarrierConfigManager = mCarrierConfigManager;
|
||||
mController.init(SUB_ID);
|
||||
mController.mImsManager = mImsManager;
|
||||
mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
|
||||
doReturn(mQueryImsState).when(mController).queryImsState(anyInt());
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
|
||||
when(mController.getTelephonyManager(mContext, SUB_ID)).thenReturn(mTelephonyManager);
|
||||
|
Reference in New Issue
Block a user