diff options
Diffstat (limited to 'framework')
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; |