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

Commit 47a86324 authored by Sewook Seo's avatar Sewook Seo Committed by Android (Google) Code Review
Browse files

Merge "Media quality CB: Telephony FWK implementation"

parents 5e754858 70d82344
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -49,6 +49,8 @@ import android.telephony.ims.ImsCallSession;
import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsService;
import android.telephony.ims.MediaQualityStatus;
import android.telephony.ims.MediaThreshold;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.RegistrationManager;
import android.telephony.ims.RtpHeaderExtensionType;
@@ -2803,6 +2805,27 @@ public class ImsManager implements FeatureUpdates {
        return c.getFeatureState();
    }

    public void setMediaThreshold(@MediaQualityStatus.MediaSessionType int sessionType,
            MediaThreshold threshold) throws ImsException {
        MmTelFeatureConnection c = getOrThrowExceptionIfServiceUnavailable();
        try {
            c.setMediaThreshold(sessionType, threshold);
        } catch (RemoteException e) {
            loge("setMediaThreshold Failed.");
        }
    }

    public MediaQualityStatus queryMediaQualityStatus (
            @MediaQualityStatus.MediaSessionType int sessionType) throws ImsException {
        MmTelFeatureConnection c = getOrThrowExceptionIfServiceUnavailable();
        try {
            return c.queryMediaQualityStatus(sessionType);
        } catch (RemoteException e) {
            loge("queryMediaQualityStatus Failed.");
            return null;
        }
    }

    @Override
    public void updateFeatureState(int state) {
        mMmTelConnectionRef.get().updateFeatureState(state);
+21 −2
Original line number Diff line number Diff line
@@ -22,8 +22,11 @@ import android.os.IBinder;
import android.os.IInterface;
import android.os.Message;
import android.os.RemoteException;
import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsService;
import android.telephony.ims.MediaQualityStatus;
import android.telephony.ims.MediaThreshold;
import android.telephony.ims.RtpHeaderExtensionType;
import android.telephony.ims.aidl.IImsCapabilityCallback;
import android.telephony.ims.aidl.IImsConfig;
@@ -40,6 +43,7 @@ import android.telephony.ims.stub.ImsEcbmImplBase;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.telephony.ims.stub.ImsSmsImplBase;
import android.util.Log;
import android.util.SparseArray;

import com.android.ims.internal.IImsCallSession;
import com.android.ims.internal.IImsEcbm;
@@ -47,7 +51,7 @@ import com.android.ims.internal.IImsMultiEndpoint;
import com.android.ims.internal.IImsUt;

import java.util.ArrayList;
import java.util.Optional;
import java.util.HashMap;
import java.util.Set;

/**
@@ -102,7 +106,6 @@ public class MmTelFeatureConnection extends FeatureConnection {
    }

    private class CapabilityCallbackManager extends ImsCallbackAdapterManager<IImsCapabilityCallback> {

        public CapabilityCallbackManager(Context context, Object lock) {
            super(context, lock, mSlotId, mSubId);
        }
@@ -378,6 +381,22 @@ public class MmTelFeatureConnection extends FeatureConnection {
        mProvisioningCallbackManager.removeCallback(callback);
    }

    public void setMediaThreshold(@MediaQualityStatus.MediaSessionType int sessionType,
            MediaThreshold threshold) throws RemoteException {
        synchronized (mLock) {
            checkServiceIsReady();
            getServiceInterface(mBinder).setMediaQualityThreshold(sessionType, threshold);
        }
    }

    public MediaQualityStatus queryMediaQualityStatus(
            @MediaQualityStatus.MediaSessionType int sessionType) throws RemoteException {
        synchronized (mLock) {
            checkServiceIsReady();
            return getServiceInterface(mBinder).queryMediaQualityStatus(sessionType);
        }
    }

    public void changeEnabledCapabilities(CapabilityChangeRequest request,
            IImsCapabilityCallback callback) throws RemoteException {
        synchronized (mLock) {