Merge "[Settings] Refactor PhoneStateListener" am: 7903cf872e

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1398391

Change-Id: Icf8d0db6ffb41041652ae27f0573da2f118465c3
This commit is contained in:
Bonian Chen
2020-08-13 08:55:56 +00:00
committed by Automerger Merge Worker
3 changed files with 13 additions and 16 deletions

View File

@@ -17,7 +17,6 @@
package com.android.settings.network.telephony; package com.android.settings.network.telephony;
import android.content.Context; import android.content.Context;
import android.os.Looper;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager;
import android.telephony.PhoneStateListener; import android.telephony.PhoneStateListener;
@@ -44,7 +43,6 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
Enhanced4gLtePreferenceController.On4gLteUpdateListener { Enhanced4gLtePreferenceController.On4gLteUpdateListener {
private Preference mPreference; private Preference mPreference;
private TelephonyManager mTelephonyManager;
private CarrierConfigManager mCarrierConfigManager; private CarrierConfigManager mCarrierConfigManager;
@VisibleForTesting @VisibleForTesting
ImsManager mImsManager; ImsManager mImsManager;
@@ -57,7 +55,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
super(context, key); super(context, key);
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
mDataContentObserver = new MobileDataEnabledListener(context, this); mDataContentObserver = new MobileDataEnabledListener(context, this);
mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper()); mPhoneStateListener = new PhoneCallStateListener();
} }
@Override @Override
@@ -76,7 +74,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
@Override @Override
public void onStart() { public void onStart() {
mPhoneStateListener.register(mSubId); mPhoneStateListener.register(mContext, mSubId);
mDataContentObserver.start(mSubId); mDataContentObserver.start(mSubId);
} }
@@ -117,9 +115,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
public VideoCallingPreferenceController init(int subId) { public VideoCallingPreferenceController init(int subId) {
mSubId = subId; mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId)); mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
} }
@@ -156,18 +152,23 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
private class PhoneCallStateListener extends PhoneStateListener { private class PhoneCallStateListener extends PhoneStateListener {
public PhoneCallStateListener(Looper looper) { PhoneCallStateListener() {
super(looper); super();
} }
private TelephonyManager mTelephonyManager;
@Override @Override
public void onCallStateChanged(int state, String incomingNumber) { public void onCallStateChanged(int state, String incomingNumber) {
mCallState = state; mCallState = state;
updateState(mPreference); updateState(mPreference);
} }
public void register(int subId) { public void register(Context context, int subId) {
mSubId = subId; mTelephonyManager = context.getSystemService(TelephonyManager.class);
if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
}
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE); mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
} }

View File

@@ -67,7 +67,7 @@ public class Enhanced4gLtePreferenceControllerTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application); 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(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class); doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);

View File

@@ -76,10 +76,6 @@ public class WifiCallingPreferenceControllerTest {
mContext = spy(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application);
mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
mQueryImsState.setIsEnabledByUser(true);
mQueryImsState.setIsProvisionedOnDevice(true);
mPreference = new Preference(mContext); mPreference = new Preference(mContext);
mController = spy(new WifiCallingPreferenceController(mContext, "wifi_calling") { mController = spy(new WifiCallingPreferenceController(mContext, "wifi_calling") {
@Override @Override
@@ -89,8 +85,8 @@ public class WifiCallingPreferenceControllerTest {
}); });
mController.mCarrierConfigManager = mCarrierConfigManager; mController.mCarrierConfigManager = mCarrierConfigManager;
mController.init(SUB_ID); mController.init(SUB_ID);
mController.mImsManager = mImsManager;
mController.mCallState = TelephonyManager.CALL_STATE_IDLE; mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
doReturn(mQueryImsState).when(mController).queryImsState(anyInt());
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
when(mController.getTelephonyManager(mContext, SUB_ID)).thenReturn(mTelephonyManager); when(mController.getTelephonyManager(mContext, SUB_ID)).thenReturn(mTelephonyManager);