aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSewook Seo <sewookseo@google.com>2022-11-08 04:59:31 +0000
committerSewook Seo <sewookseo@google.com>2022-12-10 19:16:51 +0000
commit70d82344eb703f146c14e99346b915a7cddfb3e2 (patch)
treed5ca2ea9c61e471c0b6e001da9d647c992a9341a /src
parent63d65dd9ef6f89242f9d67b3c1ac71f5e778a88a (diff)
downloadims-70d82344eb703f146c14e99346b915a7cddfb3e2.tar.gz
Media quality CB: Telephony FWK implementation
ImsManager & MmTelFeatureConnection modification to pass IImsMediaQaulityStatusCallback & MediaThreshold to register callback to ImsService with regarding Threshold values. Bug: 242934908 Test: system build, device test b/259482963 Change-Id: I7ccfec15a878223238fa33f8add8b1103236e91a
Diffstat (limited to 'src')
-rw-r--r--src/java/com/android/ims/ImsManager.java23
-rw-r--r--src/java/com/android/ims/MmTelFeatureConnection.java23
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 15f34d8e..637e1ac1 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;
@@ -2788,6 +2790,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 3fc3e4f6..7fc3d76c 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;
@@ -39,6 +42,7 @@ import android.telephony.ims.feature.MmTelFeature;
import android.telephony.ims.stub.ImsEcbmImplBase;
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;
@@ -46,7 +50,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;
/**
@@ -101,7 +105,6 @@ public class MmTelFeatureConnection extends FeatureConnection {
}
private class CapabilityCallbackManager extends ImsCallbackAdapterManager<IImsCapabilityCallback> {
-
public CapabilityCallbackManager(Context context, Object lock) {
super(context, lock, mSlotId, mSubId);
}
@@ -377,6 +380,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) {