aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSewook Seo <sewookseo@google.com>2022-12-20 06:44:35 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-12-20 06:44:35 +0000
commit47a86324a9370f1f58300053c9c3192fd7939e78 (patch)
treedb810cc00010938d0b7c90db60bd5ba84e93d704 /src
parent5e7548580a0c10cd66adbb8a821937a8fc4e3b74 (diff)
parent70d82344eb703f146c14e99346b915a7cddfb3e2 (diff)
downloadims-47a86324a9370f1f58300053c9c3192fd7939e78.tar.gz
Merge "Media quality CB: Telephony FWK implementation"
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 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) {