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

Commit 70080bce authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Refactor to use new ImsManager API where possible

Test: atest FrameworksTelephonyTests
Merged-In: I62fba51067e00513d29dfdb85f725e18bc3bacfd
Change-Id: I62fba51067e00513d29dfdb85f725e18bc3bacfd
parent f9c9e1ff
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.aidl.IImsSmsListener;
import android.telephony.ims.feature.ImsFeature;
import android.telephony.ims.feature.MmTelFeature;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.telephony.ims.stub.ImsSmsImplBase;
@@ -66,8 +65,8 @@ public class ImsSmsDispatcher extends SMSDispatcher {
     * Listen to the IMS service state change
     *
     */
    private ImsRegistrationImplBase.Callback mRegistrationCallback =
            new ImsRegistrationImplBase.Callback() {
    private android.telephony.ims.ImsMmTelManager.RegistrationCallback mRegistrationCallback =
            new android.telephony.ims.ImsMmTelManager.RegistrationCallback() {
                @Override
                public void onRegistered(
                        @ImsRegistrationImplBase.ImsRegistrationTech int imsRadioTech) {
@@ -95,12 +94,13 @@ public class ImsSmsDispatcher extends SMSDispatcher {
                }
            };

    private ImsFeature.CapabilityCallback mCapabilityCallback =
            new ImsFeature.CapabilityCallback() {
    private android.telephony.ims.ImsMmTelManager.CapabilityCallback mCapabilityCallback =
            new android.telephony.ims.ImsMmTelManager.CapabilityCallback() {
                @Override
                public void onCapabilitiesStatusChanged(ImsFeature.Capabilities config) {
                public void onCapabilitiesStatusChanged(
                        MmTelFeature.MmTelCapabilities capabilities) {
                    synchronized (mLock) {
                        mIsSmsCapable = config.isCapable(
                        mIsSmsCapable = capabilities.isCapable(
                                MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS);
                    }
                }
+14 −0
Original line number Diff line number Diff line
@@ -3277,6 +3277,20 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        return isWifiCallingEnabled;
    }

    /**
     * @return true if the IMS capability for the registration technology specified is available,
     * false otherwise.
     */
    public boolean isImsCapabilityAvailable(int capability, int regTech) {
        Phone imsPhone = mImsPhone;
        boolean isAvailable = false;
        if (imsPhone != null) {
            isAvailable = imsPhone.isImsCapabilityAvailable(capability, regTech);
        }
        Rlog.d(LOG_TAG, "isImsRegistered =" + isAvailable);
        return isAvailable;
    }

    /**
     * Get Volte Feature Availability
     */
+5 −0
Original line number Diff line number Diff line
@@ -1619,6 +1619,11 @@ public class ImsPhone extends ImsPhoneBase {
        mDefaultPhone.getServiceStateTracker().onImsCapabilityChanged();
    }

    @Override
    public boolean isImsCapabilityAvailable(int capability, int regTech) {
        return mCT.isImsCapabilityAvailable(capability, regTech);
    }

    @Override
    public boolean isVolteEnabled() {
        return mCT.isVolteEnabled();
+17 −7
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsStreamMediaProfile;
import android.telephony.ims.ImsSuppServiceNotification;
@@ -3012,8 +3013,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        }
    };

    private final ImsRegistrationImplBase.Callback mImsRegistrationCallback =
            new ImsRegistrationImplBase.Callback() {
    private final ImsMmTelManager.RegistrationCallback mImsRegistrationCallback =
            new ImsMmTelManager.RegistrationCallback() {

                @Override
                public void onRegistered(
@@ -3052,13 +3053,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
                }
            };

    private final ImsFeature.CapabilityCallback mImsCapabilityCallback =
            new ImsFeature.CapabilityCallback() {
    private final ImsMmTelManager.CapabilityCallback mImsCapabilityCallback =
            new ImsMmTelManager.CapabilityCallback() {
                @Override
                public void onCapabilitiesStatusChanged(ImsFeature.Capabilities config) {
                    if (DBG) log("onCapabilitiesStatusChanged: " + config);
                public void onCapabilitiesStatusChanged(
                        MmTelFeature.MmTelCapabilities capabilities) {
                    if (DBG) log("onCapabilitiesStatusChanged: " + capabilities);
                    SomeArgs args = SomeArgs.obtain();
                    args.arg1 = config;
                    args.arg1 = capabilities;
                    // Remove any pending updates; they're already stale, so no need to process
                    // them.
                    removeMessages(EVENT_ON_FEATURE_CAPABILITY_CHANGED);
@@ -3541,6 +3543,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        return mIsInEmergencyCall;
    }

    /**
     * @return true if the IMS capability for the specified registration technology is currently
     * available.
     */
    public boolean isImsCapabilityAvailable(int capability, int regTech) {
        return (getImsRegistrationTech() == regTech) && mMmTelCapabilities.isCapable(capability);
    }

    public boolean isVolteEnabled() {
        boolean isRadioTechLte = getImsRegistrationTech()
                == ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
+26 −3
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@ import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;

import android.os.Parcel;
import android.os.RemoteException;
import android.support.test.runner.AndroidJUnit4;
import android.telephony.ims.aidl.IImsCapabilityCallback;
import android.telephony.ims.feature.CapabilityChangeRequest;
import android.telephony.ims.feature.ImsFeature;
import android.telephony.ims.feature.MmTelFeature;
@@ -42,9 +44,29 @@ import org.mockito.MockitoAnnotations;

@RunWith(AndroidJUnit4.class)
public class ImsFeatureTest {
    // Public for Mockito testing
    public class CapabilityCallback extends IImsCapabilityCallback.Stub {

        @Override
        public void onQueryCapabilityConfiguration(int capability, int radioTech, boolean enabled)
                throws RemoteException {

        }

        @Override
        public void onChangeCapabilityConfigurationError(int capability, int radioTech, int reason)
                throws RemoteException {

        }

        @Override
        public void onCapabilitiesStatusChanged(int config) throws RemoteException {

        }
    }

    private TestImsFeature mTestImsFeature;
    private ImsFeature.CapabilityCallback mCapabilityCallback;
    private CapabilityCallback mCapabilityCallback;

    @Mock
    private IImsFeatureStatusCallback mTestStatusCallback;
@@ -55,7 +77,7 @@ public class ImsFeatureTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mTestImsFeature = new TestImsFeature();
        mCapabilityCallback = Mockito.spy(new ImsFeature.CapabilityCallback());
        mCapabilityCallback = Mockito.spy(new CapabilityCallback());
        mTestImsFeature.addCapabilityCallback(mCapabilityCallback);
    }

@@ -183,7 +205,8 @@ public class ImsFeatureTest {
        mTestImsFeature.capabilitiesStatusChanged(status);

        assertEquals(status.getMask(), mTestImsFeature.queryCapabilityStatus().getMask());
        verify(mCapabilityCallback).onCapabilitiesStatusChanged(eq(status));
        verify(mCapabilityCallback).onCapabilitiesStatusChanged(
                eq(TestImsFeature.CAPABILITY_TEST_1 | TestImsFeature.CAPABILITY_TEST_2));
    }

    @SmallTest
Loading