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

Commit eacf3895 authored by Daniel Bright's avatar Daniel Bright Committed by Gerrit Code Review
Browse files

Merge "Repoint Ims.IsAvailability from tele-cache to ImsService"

parents 0d58d7f5 029253fa
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ import android.util.SparseArray;

import com.android.ims.ImsCall;
import com.android.ims.ImsConfig;
import com.android.ims.ImsException;
import com.android.ims.ImsManager;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
@@ -3686,7 +3687,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return true if the IMS capability for the registration technology specified is available,
     * false otherwise.
     */
    public boolean isImsCapabilityAvailable(int capability, int regTech) {
    public boolean isImsCapabilityAvailable(int capability, int regTech) throws ImsException {
        Phone imsPhone = mImsPhone;
        boolean isAvailable = false;
        if (imsPhone != null) {
+1 −1
Original line number Diff line number Diff line
@@ -1813,7 +1813,7 @@ public class ImsPhone extends ImsPhoneBase {
    }

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

+13 −4
Original line number Diff line number Diff line
@@ -4185,20 +4185,25 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
    }

    /**
     * Contacts the ImsService directly for capability information.  May be slow.
     * @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 isImsCapabilityAvailable(int capability, int regTech) throws ImsException {
        if (mImsManager != null) {
            return mImsManager.queryMmTelCapabilityStatus(capability, regTech);
        } else {
            return false;
        }
    }

    public boolean isVolteEnabled() {
        return isImsCapabilityAvailable(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
        return isImsCapabilityInCacheAvailable(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
    }

    public boolean isVowifiEnabled() {
        return isImsCapabilityAvailable(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
        return isImsCapabilityInCacheAvailable(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
                ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN);
    }

@@ -4207,6 +4212,10 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        return mMmTelCapabilities.isCapable(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO);
    }

    private boolean isImsCapabilityInCacheAvailable(int capability, int regTech) {
        return (getImsRegistrationTech() == regTech) && mMmTelCapabilities.isCapable(capability);
    }

    @Override
    public PhoneConstants.State getState() {
        return mState;