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

Commit 4fc5e348 authored by Bonian Chen's avatar Bonian Chen Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: Icf8d0db6ffb41041652ae27f0573da2f118465c3
parents 5c213960 7903cf87
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -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);
        }

+1 −1
Original line number Diff line number Diff line
@@ -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);
+1 −5
Original line number Diff line number Diff line
@@ -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);