diff options
author | Sewook Seo <sewookseo@google.com> | 2022-12-20 06:44:35 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-12-20 06:44:35 +0000 |
commit | 47a86324a9370f1f58300053c9c3192fd7939e78 (patch) | |
tree | db810cc00010938d0b7c90db60bd5ba84e93d704 /src | |
parent | 5e7548580a0c10cd66adbb8a821937a8fc4e3b74 (diff) | |
parent | 70d82344eb703f146c14e99346b915a7cddfb3e2 (diff) | |
download | ims-47a86324a9370f1f58300053c9c3192fd7939e78.tar.gz |
Merge "Media quality CB: Telephony FWK implementation"
Diffstat (limited to 'src')
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 23 | ||||
-rw-r--r-- | src/java/com/android/ims/MmTelFeatureConnection.java | 23 |
2 files changed, 44 insertions, 2 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index f1ae8b51..b1d2ebcc 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -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); diff --git a/src/java/com/android/ims/MmTelFeatureConnection.java b/src/java/com/android/ims/MmTelFeatureConnection.java index 43c19d78..c09fd94f 100644 --- a/src/java/com/android/ims/MmTelFeatureConnection.java +++ b/src/java/com/android/ims/MmTelFeatureConnection.java @@ -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) { |