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

Commit bbe9c536 authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

Merge "Refactor to use new ImsManager API where possible"

parents f9c9e1ff 70080bce
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