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

Null pointer exception occured while calling callsessionupdated on listener object.
Listener turned null at the time of executor method is on run. Null check is present before setting the call to executor.
Modified the null checks to be inside of the executor.

Test: Conference call in oriole userdebug
Bug: 210701681
Change-Id: Iffeedb669b4abb9b4f32f015aaea4ba3b99c00f5
This commit is contained in:
Parvathy Shanmugam
2022-01-12 04:43:58 +00:00
parent f4d2b4d416
commit 380f9be2ee

View File

@@ -1212,50 +1212,56 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionInitiating(ImsCallProfile profile) { public void callSessionInitiating(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionInitiating( if (mListener != null) {
ImsCallSession.this, profile), mListenerExecutor); mListener.callSessionInitiating(ImsCallSession.this, profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionProgressing(ImsStreamMediaProfile profile) { public void callSessionProgressing(ImsStreamMediaProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionProgressing( if (mListener != null) {
ImsCallSession.this, profile), mListenerExecutor); mListener.callSessionProgressing(ImsCallSession.this, profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionInitiated(ImsCallProfile profile) { public void callSessionInitiated(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStarted( if (mListener != null) {
ImsCallSession.this, profile), mListenerExecutor); mListener.callSessionStarted(ImsCallSession.this, profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionInitiatingFailed(ImsReasonInfo reasonInfo) { public void callSessionInitiatingFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStartFailed( if (mListener != null) {
ImsCallSession.this, reasonInfo), mListenerExecutor); mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) { public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStartFailed( if (mListener != null) {
ImsCallSession.this, reasonInfo), mListenerExecutor); mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionTerminated(ImsReasonInfo reasonInfo) { public void callSessionTerminated(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionTerminated( if (mListener != null) {
ImsCallSession.this, reasonInfo), mListenerExecutor); mListener.callSessionTerminated(ImsCallSession.this, reasonInfo);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1263,51 +1269,56 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionHeld(ImsCallProfile profile) { public void callSessionHeld(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHeld( if (mListener != null) {
ImsCallSession.this, profile), mListenerExecutor); mListener.callSessionHeld(ImsCallSession.this, profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionHoldFailed(ImsReasonInfo reasonInfo) { public void callSessionHoldFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHoldFailed( if (mListener != null) {
ImsCallSession.this, reasonInfo), mListenerExecutor); mListener.callSessionHoldFailed(ImsCallSession.this, reasonInfo);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionHoldReceived(ImsCallProfile profile) { public void callSessionHoldReceived(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHoldReceived( if (mListener != null) {
ImsCallSession.this, profile), mListenerExecutor); mListener.callSessionHoldReceived(ImsCallSession.this, profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionResumed(ImsCallProfile profile) { public void callSessionResumed(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionResumed( if (mListener != null) {
ImsCallSession.this, profile), mListenerExecutor); mListener.callSessionResumed(ImsCallSession.this, profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionResumeFailed(ImsReasonInfo reasonInfo) { public void callSessionResumeFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionResumeFailed( if (mListener != null) {
ImsCallSession.this, reasonInfo), mListenerExecutor); mListener.callSessionResumeFailed(ImsCallSession.this, reasonInfo);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionResumeReceived(ImsCallProfile profile) { public void callSessionResumeReceived(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionResumeReceived(ImsCallSession.this, profile), mListener.callSessionResumeReceived(ImsCallSession.this, profile);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1330,8 +1341,8 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionMergeComplete(IImsCallSession newSession) { public void callSessionMergeComplete(IImsCallSession newSession) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> { if (mListener != null) {
if (newSession != null) { if (newSession != null) {
// New session created after conference // New session created after conference
mListener.callSessionMergeComplete(new ImsCallSession(newSession)); mListener.callSessionMergeComplete(new ImsCallSession(newSession));
@@ -1339,8 +1350,8 @@ public class ImsCallSession {
// Session already exists. Hence no need to pass // Session already exists. Hence no need to pass
mListener.callSessionMergeComplete(null); mListener.callSessionMergeComplete(null);
} }
}, mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1350,11 +1361,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionMergeFailed(ImsReasonInfo reasonInfo) { public void callSessionMergeFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionMergeFailed(ImsCallSession.this, reasonInfo), mListener.callSessionMergeFailed(ImsCallSession.this, reasonInfo);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1362,29 +1373,29 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionUpdated(ImsCallProfile profile) { public void callSessionUpdated(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionUpdated(ImsCallSession.this, profile), mListener.callSessionUpdated(ImsCallSession.this, profile);
mListenerExecutor); }
} }, mListenerExecutor);
} }
@Override @Override
public void callSessionUpdateFailed(ImsReasonInfo reasonInfo) { public void callSessionUpdateFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionUpdateFailed(ImsCallSession.this, reasonInfo), mListener.callSessionUpdateFailed(ImsCallSession.this, reasonInfo);
mListenerExecutor); }
} }, mListenerExecutor);
} }
@Override @Override
public void callSessionUpdateReceived(ImsCallProfile profile) { public void callSessionUpdateReceived(ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionUpdateReceived(ImsCallSession.this, profile), mListener.callSessionUpdateReceived(ImsCallSession.this, profile);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1393,30 +1404,33 @@ public class ImsCallSession {
@Override @Override
public void callSessionConferenceExtended(IImsCallSession newSession, public void callSessionConferenceExtended(IImsCallSession newSession,
ImsCallProfile profile) { ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionConferenceExtended(ImsCallSession.this, mListener.callSessionConferenceExtended(ImsCallSession.this,
new ImsCallSession(newSession), profile), mListenerExecutor); new ImsCallSession(newSession), profile);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionConferenceExtendFailed(ImsReasonInfo reasonInfo) { public void callSessionConferenceExtendFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionConferenceExtendFailed( mListener.callSessionConferenceExtendFailed(
ImsCallSession.this, reasonInfo), mListenerExecutor); ImsCallSession.this, reasonInfo);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionConferenceExtendReceived(IImsCallSession newSession, public void callSessionConferenceExtendReceived(IImsCallSession newSession,
ImsCallProfile profile) { ImsCallProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionConferenceExtendReceived(ImsCallSession.this, mListener.callSessionConferenceExtendReceived(ImsCallSession.this,
new ImsCallSession(newSession), profile), mListenerExecutor); new ImsCallSession(newSession), profile);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1425,38 +1439,41 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionInviteParticipantsRequestDelivered() { public void callSessionInviteParticipantsRequestDelivered() {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionInviteParticipantsRequestDelivered( mListener.callSessionInviteParticipantsRequestDelivered(
ImsCallSession.this), mListenerExecutor); ImsCallSession.this);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionInviteParticipantsRequestFailed(ImsReasonInfo reasonInfo) { public void callSessionInviteParticipantsRequestFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionInviteParticipantsRequestFailed(ImsCallSession.this, mListener.callSessionInviteParticipantsRequestFailed(ImsCallSession.this,
reasonInfo), mListenerExecutor); reasonInfo);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionRemoveParticipantsRequestDelivered() { public void callSessionRemoveParticipantsRequestDelivered() {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRemoveParticipantsRequestDelivered( mListener.callSessionRemoveParticipantsRequestDelivered(ImsCallSession.this);
ImsCallSession.this), mListenerExecutor); }
} }, mListenerExecutor);
} }
@Override @Override
public void callSessionRemoveParticipantsRequestFailed(ImsReasonInfo reasonInfo) { public void callSessionRemoveParticipantsRequestFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRemoveParticipantsRequestFailed(ImsCallSession.this, mListener.callSessionRemoveParticipantsRequestFailed(ImsCallSession.this,
reasonInfo), mListenerExecutor); reasonInfo);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1464,11 +1481,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionConferenceStateUpdated(ImsConferenceState state) { public void callSessionConferenceStateUpdated(ImsConferenceState state) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionConferenceStateUpdated(ImsCallSession.this, state), mListener.callSessionConferenceStateUpdated(ImsCallSession.this, state);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1476,11 +1493,12 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionUssdMessageReceived(int mode, String ussdMessage) { public void callSessionUssdMessageReceived(int mode, String ussdMessage) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionUssdMessageReceived(ImsCallSession.this, mode, mListener.callSessionUssdMessageReceived(ImsCallSession.this, mode,
ussdMessage), mListenerExecutor); ussdMessage);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1496,11 +1514,12 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionMayHandover(int srcNetworkType, int targetNetworkType) { public void callSessionMayHandover(int srcNetworkType, int targetNetworkType) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionMayHandover(ImsCallSession.this, srcNetworkType, mListener.callSessionMayHandover(ImsCallSession.this, srcNetworkType,
targetNetworkType), mListenerExecutor); targetNetworkType);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1509,11 +1528,12 @@ public class ImsCallSession {
@Override @Override
public void callSessionHandover(int srcNetworkType, int targetNetworkType, public void callSessionHandover(int srcNetworkType, int targetNetworkType,
ImsReasonInfo reasonInfo) { ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionHandover(ImsCallSession.this, srcNetworkType, mListener.callSessionHandover(ImsCallSession.this, srcNetworkType,
targetNetworkType, reasonInfo), mListenerExecutor); targetNetworkType, reasonInfo);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1522,11 +1542,12 @@ public class ImsCallSession {
@Override @Override
public void callSessionHandoverFailed(int srcNetworkType, int targetNetworkType, public void callSessionHandoverFailed(int srcNetworkType, int targetNetworkType,
ImsReasonInfo reasonInfo) { ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionHandoverFailed(ImsCallSession.this, srcNetworkType, mListener.callSessionHandoverFailed(ImsCallSession.this, srcNetworkType,
targetNetworkType, reasonInfo), mListenerExecutor); targetNetworkType, reasonInfo);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1534,11 +1555,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionTtyModeReceived(int mode) { public void callSessionTtyModeReceived(int mode) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionTtyModeReceived(ImsCallSession.this, mode), mListener.callSessionTtyModeReceived(ImsCallSession.this, mode);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1548,20 +1569,22 @@ public class ImsCallSession {
* otherwise. * otherwise.
*/ */
public void callSessionMultipartyStateChanged(boolean isMultiParty) { public void callSessionMultipartyStateChanged(boolean isMultiParty) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionMultipartyStateChanged(ImsCallSession.this, mListener.callSessionMultipartyStateChanged(ImsCallSession.this,
isMultiParty), mListenerExecutor); isMultiParty);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionSuppServiceReceived(ImsSuppServiceNotification suppServiceInfo ) { public void callSessionSuppServiceReceived(ImsSuppServiceNotification suppServiceInfo ) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionSuppServiceReceived(ImsCallSession.this, mListener.callSessionSuppServiceReceived(ImsCallSession.this,
suppServiceInfo), mListenerExecutor); suppServiceInfo);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1569,11 +1592,12 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionRttModifyRequestReceived(ImsCallProfile callProfile) { public void callSessionRttModifyRequestReceived(ImsCallProfile callProfile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRttModifyRequestReceived(ImsCallSession.this, mListener.callSessionRttModifyRequestReceived(ImsCallSession.this,
callProfile), mListenerExecutor); callProfile);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1581,11 +1605,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionRttModifyResponseReceived(int status) { public void callSessionRttModifyResponseReceived(int status) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRttModifyResponseReceived(status), mListener.callSessionRttModifyResponseReceived(status);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1593,10 +1617,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionRttMessageReceived(String rttMessage) { public void callSessionRttMessageReceived(String rttMessage) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRttMessageReceived(rttMessage), mListenerExecutor); mListener.callSessionRttMessageReceived(rttMessage);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1604,28 +1629,29 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) { public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRttAudioIndicatorChanged(profile), mListener.callSessionRttAudioIndicatorChanged(profile);
mListenerExecutor); }
} }, mListenerExecutor);
} }
@Override @Override
public void callSessionTransferred() { public void callSessionTransferred() {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionTransferred(ImsCallSession.this), mListenerExecutor); mListener.callSessionTransferred(ImsCallSession.this);
} }
}, mListenerExecutor);
} }
@Override @Override
public void callSessionTransferFailed(@Nullable ImsReasonInfo reasonInfo) { public void callSessionTransferFailed(@Nullable ImsReasonInfo reasonInfo) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionTransferFailed(ImsCallSession.this, reasonInfo), mListener.callSessionTransferFailed(ImsCallSession.this, reasonInfo);
mListenerExecutor); }
} }, mListenerExecutor);
} }
/** /**
@@ -1634,10 +1660,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callSessionDtmfReceived(char dtmf) { public void callSessionDtmfReceived(char dtmf) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionDtmfReceived( if (mListener != null) {
dtmf), mListenerExecutor); mListener.callSessionDtmfReceived(dtmf);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1645,10 +1672,11 @@ public class ImsCallSession {
*/ */
@Override @Override
public void callQualityChanged(CallQuality callQuality) { public void callQualityChanged(CallQuality callQuality) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callQualityChanged( if (mListener != null) {
callQuality), mListenerExecutor); mListener.callQualityChanged(callQuality);
} }
}, mListenerExecutor);
} }
/** /**
@@ -1658,11 +1686,12 @@ public class ImsCallSession {
@Override @Override
public void callSessionRtpHeaderExtensionsReceived( public void callSessionRtpHeaderExtensionsReceived(
@NonNull List<RtpHeaderExtension> extensions) { @NonNull List<RtpHeaderExtension> extensions) {
if (mListener != null) { TelephonyUtils.runWithCleanCallingIdentity(()-> {
TelephonyUtils.runWithCleanCallingIdentity(()-> if (mListener != null) {
mListener.callSessionRtpHeaderExtensionsReceived( mListener.callSessionRtpHeaderExtensionsReceived(
new ArraySet<RtpHeaderExtension>(extensions)), mListenerExecutor); new ArraySet<RtpHeaderExtension>(extensions));
} }
}, mListenerExecutor);
} }
} }