aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/android/ims/internal
diff options
context:
space:
mode:
authorAnju Mathapati <anjucm@codeaurora.org>2015-07-17 14:54:10 -0700
committerAnthony Lee <anthonylee@google.com>2015-07-22 12:00:01 -0700
commitd9ed874439293ed6c34ce27a3689711c986f977b (patch)
tree3cdbce43fd2979178c82ba3dbdd12dc124be8a1e /src/java/com/android/ims/internal
parent6c0b0d0e83b8d06f40ec814573adc69f362704a9 (diff)
downloadims-d9ed874439293ed6c34ce27a3689711c986f977b.tar.gz
Handle hangup for 4 way conference scenario
Pass the session only during 3-way conference scenario. For all other cases pass it as null, so as to avoid the listenerproxy getting over-written Bug: 22173672 Change-Id: I10a223aaabe731a3a7d3c24da123dae660ed5bb3
Diffstat (limited to 'src/java/com/android/ims/internal')
-rw-r--r--src/java/com/android/ims/internal/ImsCallSession.java27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/java/com/android/ims/internal/ImsCallSession.java b/src/java/com/android/ims/internal/ImsCallSession.java
index d7b0392f..b89323d6 100644
--- a/src/java/com/android/ims/internal/ImsCallSession.java
+++ b/src/java/com/android/ims/internal/ImsCallSession.java
@@ -1034,10 +1034,9 @@ public class ImsCallSession {
@Override
public void callSessionMergeStarted(IImsCallSession session,
IImsCallSession newSession, ImsCallProfile profile) {
- if (mListener != null) {
- mListener.callSessionMergeStarted(ImsCallSession.this,
- new ImsCallSession(newSession), profile);
- }
+ // This callback can be used for future use to add additional
+ // functionality that may be needed between conference start and complete
+ Log.d(TAG, "callSessionMergeStarted");
}
/**
@@ -1046,21 +1045,25 @@ public class ImsCallSession {
* @param session The call session.
*/
@Override
- public void callSessionMergeComplete(IImsCallSession activeCallSession) {
+ public void callSessionMergeComplete(IImsCallSession newSession) {
if (mListener != null) {
- // Check if the active session is the same session that was
- // active before the merge request was sent.
- ImsCallSession validActiveSession = ImsCallSession.this;
+ if (newSession != null) {
+ // Check if the active session is the same session that was
+ // active before the merge request was sent.
+ ImsCallSession validActiveSession = ImsCallSession.this;
try {
- if (!Objects.equals(miSession.getCallId(), activeCallSession.getCallId())) {
+ if (!Objects.equals(miSession.getCallId(), newSession.getCallId())) {
// New session created after conference
- validActiveSession = new ImsCallSession(activeCallSession);
+ validActiveSession = new ImsCallSession(newSession);
}
} catch (RemoteException rex) {
Log.e(TAG, "callSessionMergeComplete: exception for getCallId!");
}
-
- mListener.callSessionMergeComplete(validActiveSession);
+ mListener.callSessionMergeComplete(validActiveSession);
+ } else {
+ // Session already exists. Hence no need to pass
+ mListener.callSessionMergeComplete(null);
+ }
}
}