Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bce8d161 authored by Parvathy Shanmugam's avatar Parvathy Shanmugam Committed by Android (Google) Code Review
Browse files

Merge "Fix for crash while merging 2 audio calls for initiating conference call"

parents 490527a9 380f9be2
Loading
Loading
Loading
Loading
+218 −189
Original line number Diff line number Diff line
@@ -1212,50 +1212,56 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionInitiating(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionInitiating(
                        ImsCallSession.this, profile), mListenerExecutor);
                    mListener.callSessionInitiating(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionProgressing(ImsStreamMediaProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionProgressing(
                        ImsCallSession.this, profile), mListenerExecutor);
                    mListener.callSessionProgressing(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionInitiated(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStarted(
                        ImsCallSession.this, profile), mListenerExecutor);
                    mListener.callSessionStarted(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionInitiatingFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStartFailed(
                        ImsCallSession.this, reasonInfo), mListenerExecutor);
                    mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStartFailed(
                        ImsCallSession.this, reasonInfo), mListenerExecutor);
                    mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionTerminated(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionTerminated(
                        ImsCallSession.this, reasonInfo), mListenerExecutor);
                    mListener.callSessionTerminated(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1263,51 +1269,56 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionHeld(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHeld(
                        ImsCallSession.this, profile), mListenerExecutor);
                    mListener.callSessionHeld(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionHoldFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHoldFailed(
                        ImsCallSession.this, reasonInfo), mListenerExecutor);
                    mListener.callSessionHoldFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionHoldReceived(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHoldReceived(
                        ImsCallSession.this, profile), mListenerExecutor);
                    mListener.callSessionHoldReceived(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionResumed(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionResumed(
                        ImsCallSession.this, profile), mListenerExecutor);
                    mListener.callSessionResumed(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionResumeFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionResumeFailed(
                        ImsCallSession.this, reasonInfo), mListenerExecutor);
                    mListener.callSessionResumeFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionResumeReceived(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionResumeReceived(ImsCallSession.this, profile),
                        mListenerExecutor);
                    mListener.callSessionResumeReceived(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1330,8 +1341,8 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionMergeComplete(IImsCallSession newSession) {
            if (mListener != null) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                    if (newSession != null) {
                        // New session created after conference
                        mListener.callSessionMergeComplete(new ImsCallSession(newSession));
@@ -1339,8 +1350,8 @@ public class ImsCallSession {
                        // Session already exists. Hence no need to pass
                        mListener.callSessionMergeComplete(null);
                    }
                }, mListenerExecutor);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1350,11 +1361,11 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionMergeFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionMergeFailed(ImsCallSession.this, reasonInfo),
                        mListenerExecutor);
                    mListener.callSessionMergeFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1362,29 +1373,29 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionUpdated(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionUpdated(ImsCallSession.this, profile),
                        mListenerExecutor);
                    mListener.callSessionUpdated(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionUpdateFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionUpdateFailed(ImsCallSession.this, reasonInfo),
                        mListenerExecutor);
                    mListener.callSessionUpdateFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionUpdateReceived(ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionUpdateReceived(ImsCallSession.this, profile),
                        mListenerExecutor);
                    mListener.callSessionUpdateReceived(ImsCallSession.this, profile);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1393,30 +1404,33 @@ public class ImsCallSession {
        @Override
        public void callSessionConferenceExtended(IImsCallSession newSession,
                ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionConferenceExtended(ImsCallSession.this,
                        new ImsCallSession(newSession), profile), mListenerExecutor);
                            new ImsCallSession(newSession), profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionConferenceExtendFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionConferenceExtendFailed(
                        ImsCallSession.this, reasonInfo), mListenerExecutor);
                            ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionConferenceExtendReceived(IImsCallSession newSession,
                ImsCallProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionConferenceExtendReceived(ImsCallSession.this,
                        new ImsCallSession(newSession), profile), mListenerExecutor);
                            new ImsCallSession(newSession), profile);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1425,38 +1439,41 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionInviteParticipantsRequestDelivered() {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionInviteParticipantsRequestDelivered(
                        ImsCallSession.this), mListenerExecutor);
                            ImsCallSession.this);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionInviteParticipantsRequestFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionInviteParticipantsRequestFailed(ImsCallSession.this,
                        reasonInfo), mListenerExecutor);
                            reasonInfo);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionRemoveParticipantsRequestDelivered() {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionRemoveParticipantsRequestDelivered(
                        ImsCallSession.this), mListenerExecutor);
                    mListener.callSessionRemoveParticipantsRequestDelivered(ImsCallSession.this);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionRemoveParticipantsRequestFailed(ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionRemoveParticipantsRequestFailed(ImsCallSession.this,
                        reasonInfo), mListenerExecutor);
                            reasonInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1464,11 +1481,11 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionConferenceStateUpdated(ImsConferenceState state) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionConferenceStateUpdated(ImsCallSession.this, state),
                        mListenerExecutor);
                    mListener.callSessionConferenceStateUpdated(ImsCallSession.this, state);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1476,11 +1493,12 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionUssdMessageReceived(int mode, String ussdMessage) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionUssdMessageReceived(ImsCallSession.this, mode,
                        ussdMessage), mListenerExecutor);
                            ussdMessage);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1496,11 +1514,12 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionMayHandover(int srcNetworkType, int targetNetworkType) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionMayHandover(ImsCallSession.this, srcNetworkType,
                        targetNetworkType), mListenerExecutor);
                            targetNetworkType);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1509,11 +1528,12 @@ public class ImsCallSession {
        @Override
        public void callSessionHandover(int srcNetworkType, int targetNetworkType,
                ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionHandover(ImsCallSession.this, srcNetworkType,
                        targetNetworkType, reasonInfo), mListenerExecutor);
                            targetNetworkType, reasonInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1522,11 +1542,12 @@ public class ImsCallSession {
        @Override
        public void callSessionHandoverFailed(int srcNetworkType, int targetNetworkType,
                ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionHandoverFailed(ImsCallSession.this, srcNetworkType,
                        targetNetworkType, reasonInfo), mListenerExecutor);
                            targetNetworkType, reasonInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1534,11 +1555,11 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionTtyModeReceived(int mode) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionTtyModeReceived(ImsCallSession.this, mode),
                        mListenerExecutor);
                    mListener.callSessionTtyModeReceived(ImsCallSession.this, mode);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1548,20 +1569,22 @@ public class ImsCallSession {
         *      otherwise.
         */
        public void callSessionMultipartyStateChanged(boolean isMultiParty) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionMultipartyStateChanged(ImsCallSession.this,
                        isMultiParty), mListenerExecutor);
                            isMultiParty);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionSuppServiceReceived(ImsSuppServiceNotification suppServiceInfo ) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionSuppServiceReceived(ImsCallSession.this,
                        suppServiceInfo), mListenerExecutor);
                            suppServiceInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1569,11 +1592,12 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionRttModifyRequestReceived(ImsCallProfile callProfile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionRttModifyRequestReceived(ImsCallSession.this,
                        callProfile), mListenerExecutor);
                            callProfile);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1581,11 +1605,11 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionRttModifyResponseReceived(int status) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionRttModifyResponseReceived(status),
                        mListenerExecutor);
                    mListener.callSessionRttModifyResponseReceived(status);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1593,10 +1617,11 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionRttMessageReceived(String rttMessage) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionRttMessageReceived(rttMessage), mListenerExecutor);
                    mListener.callSessionRttMessageReceived(rttMessage);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1604,28 +1629,29 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionRttAudioIndicatorChanged(profile),
                        mListenerExecutor);
                    mListener.callSessionRttAudioIndicatorChanged(profile);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionTransferred() {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionTransferred(ImsCallSession.this), mListenerExecutor);
                    mListener.callSessionTransferred(ImsCallSession.this);
                }
            }, mListenerExecutor);
        }

        @Override
        public void callSessionTransferFailed(@Nullable ImsReasonInfo reasonInfo) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                        mListener.callSessionTransferFailed(ImsCallSession.this, reasonInfo),
                        mListenerExecutor);
                    mListener.callSessionTransferFailed(ImsCallSession.this, reasonInfo);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1634,10 +1660,11 @@ public class ImsCallSession {
         */
        @Override
        public void callSessionDtmfReceived(char dtmf) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionDtmfReceived(
                        dtmf), mListenerExecutor);
                    mListener.callSessionDtmfReceived(dtmf);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1645,10 +1672,11 @@ public class ImsCallSession {
         */
        @Override
        public void callQualityChanged(CallQuality callQuality) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callQualityChanged(
                        callQuality), mListenerExecutor);
                    mListener.callQualityChanged(callQuality);
                }
            }, mListenerExecutor);
        }

        /**
@@ -1658,11 +1686,12 @@ public class ImsCallSession {
        @Override
        public void callSessionRtpHeaderExtensionsReceived(
                @NonNull List<RtpHeaderExtension> extensions) {
            TelephonyUtils.runWithCleanCallingIdentity(()-> {
                if (mListener != null) {
                TelephonyUtils.runWithCleanCallingIdentity(()->
                    mListener.callSessionRtpHeaderExtensionsReceived(
                        new ArraySet<RtpHeaderExtension>(extensions)), mListenerExecutor);
                            new ArraySet<RtpHeaderExtension>(extensions));
                }
            }, mListenerExecutor);
        }
    }