summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/src/android/telephony/imsmedia/AudioSessionCallback.java12
-rw-r--r--framework/src/android/telephony/imsmedia/IImsAudioSessionCallback.aidl1
-rw-r--r--framework/src/android/telephony/imsmedia/IImsTextSessionCallback.aidl1
-rw-r--r--framework/src/android/telephony/imsmedia/IImsVideoSessionCallback.aidl1
-rw-r--r--framework/src/android/telephony/imsmedia/ImsMediaManager.java7
-rw-r--r--framework/src/android/telephony/imsmedia/TextSessionCallback.java12
-rw-r--r--framework/src/android/telephony/imsmedia/VideoSessionCallback.java12
7 files changed, 46 insertions, 0 deletions
diff --git a/framework/src/android/telephony/imsmedia/AudioSessionCallback.java b/framework/src/android/telephony/imsmedia/AudioSessionCallback.java
index 29b989fc..fa9d0b8d 100644
--- a/framework/src/android/telephony/imsmedia/AudioSessionCallback.java
+++ b/framework/src/android/telephony/imsmedia/AudioSessionCallback.java
@@ -81,6 +81,18 @@ public class AudioSessionCallback extends ImsMediaManager.SessionCallback {
}
@Override
+ public void onSessionClosed() {
+ if (mLocalCallback == null) return;
+
+ final long callingIdentity = Binder.clearCallingIdentity();
+ try {
+ mExecutor.execute(() -> mLocalCallback.onSessionClosed());
+ } finally {
+ restoreCallingIdentity(callingIdentity);
+ }
+ }
+
+ @Override
public void onSessionChanged(final @ImsMediaSession.SessionState int state) {
if (mLocalCallback == null) return;
diff --git a/framework/src/android/telephony/imsmedia/IImsAudioSessionCallback.aidl b/framework/src/android/telephony/imsmedia/IImsAudioSessionCallback.aidl
index 25c5e01f..db75c849 100644
--- a/framework/src/android/telephony/imsmedia/IImsAudioSessionCallback.aidl
+++ b/framework/src/android/telephony/imsmedia/IImsAudioSessionCallback.aidl
@@ -29,6 +29,7 @@ import android.telephony.imsmedia.IImsAudioSession;
oneway interface IImsAudioSessionCallback {
void onOpenSessionSuccess(IImsAudioSession session);
void onOpenSessionFailure(int error);
+ void onSessionClosed();
void onSessionChanged(int state);
void onModifySessionResponse(in AudioConfig config, int result);
void onAddConfigResponse(in AudioConfig config, int result);
diff --git a/framework/src/android/telephony/imsmedia/IImsTextSessionCallback.aidl b/framework/src/android/telephony/imsmedia/IImsTextSessionCallback.aidl
index b7cdee2c..afc6eca6 100644
--- a/framework/src/android/telephony/imsmedia/IImsTextSessionCallback.aidl
+++ b/framework/src/android/telephony/imsmedia/IImsTextSessionCallback.aidl
@@ -27,6 +27,7 @@ import android.telephony.imsmedia.IImsTextSession;
oneway interface IImsTextSessionCallback {
void onOpenSessionSuccess(IImsTextSession session);
void onOpenSessionFailure(int error);
+ void onSessionClosed();
void onSessionChanged(int state);
void onModifySessionResponse(in TextConfig config, int result);
void onRttReceived(in String text);
diff --git a/framework/src/android/telephony/imsmedia/IImsVideoSessionCallback.aidl b/framework/src/android/telephony/imsmedia/IImsVideoSessionCallback.aidl
index 609e8078..ae93a187 100644
--- a/framework/src/android/telephony/imsmedia/IImsVideoSessionCallback.aidl
+++ b/framework/src/android/telephony/imsmedia/IImsVideoSessionCallback.aidl
@@ -29,6 +29,7 @@ import android.telephony.imsmedia.IImsVideoSession;
oneway interface IImsVideoSessionCallback {
void onOpenSessionSuccess(IImsVideoSession session);
void onOpenSessionFailure(int error);
+ void onSessionClosed();
void onSessionChanged(int state);
void onModifySessionResponse(in VideoConfig config, int result);
void onFirstMediaPacketReceived(in VideoConfig config);
diff --git a/framework/src/android/telephony/imsmedia/ImsMediaManager.java b/framework/src/android/telephony/imsmedia/ImsMediaManager.java
index b35cdc8f..be0013fe 100644
--- a/framework/src/android/telephony/imsmedia/ImsMediaManager.java
+++ b/framework/src/android/telephony/imsmedia/ImsMediaManager.java
@@ -234,6 +234,13 @@ public class ImsMediaManager {
}
/**
+ * Called when the session is closed.
+ */
+ public void onSessionClosed() {
+ // Base Implementation
+ }
+
+ /**
* Called when any change occurs to the RTP session.
*
* @param state session state
diff --git a/framework/src/android/telephony/imsmedia/TextSessionCallback.java b/framework/src/android/telephony/imsmedia/TextSessionCallback.java
index bf658b15..ca3f1f6a 100644
--- a/framework/src/android/telephony/imsmedia/TextSessionCallback.java
+++ b/framework/src/android/telephony/imsmedia/TextSessionCallback.java
@@ -76,6 +76,18 @@ public class TextSessionCallback extends ImsMediaManager.SessionCallback {
}
@Override
+ public void onSessionClosed() {
+ if (mLocalCallback == null) return;
+
+ final long callingIdentity = Binder.clearCallingIdentity();
+ try {
+ mExecutor.execute(() -> mLocalCallback.onSessionClosed());
+ } finally {
+ restoreCallingIdentity(callingIdentity);
+ }
+ }
+
+ @Override
public void onSessionChanged(final @ImsMediaSession.SessionState int state) {
if (mLocalCallback == null) return;
diff --git a/framework/src/android/telephony/imsmedia/VideoSessionCallback.java b/framework/src/android/telephony/imsmedia/VideoSessionCallback.java
index ad4b63b6..2103dd7e 100644
--- a/framework/src/android/telephony/imsmedia/VideoSessionCallback.java
+++ b/framework/src/android/telephony/imsmedia/VideoSessionCallback.java
@@ -78,6 +78,18 @@ public class VideoSessionCallback extends ImsMediaManager.SessionCallback {
}
@Override
+ public void onSessionClosed() {
+ if (mLocalCallback == null) return;
+
+ final long callingIdentity = Binder.clearCallingIdentity();
+ try {
+ mExecutor.execute(() -> mLocalCallback.onSessionClosed());
+ } finally {
+ restoreCallingIdentity(callingIdentity);
+ }
+ }
+
+ @Override
public void onSessionChanged(final @ImsMediaSession.SessionState int state) {
if (mLocalCallback == null) return;