(IMS Threading refactoring) Telephony IMS classes to schedule IMS callback on the main thread am: add3b8d76e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1964909 Change-Id: I190e6198ed622c36773226b713abc5149f7ed276
This commit is contained in:
committed by
Automerger Merge Worker
commit
62a61e86a2
@@ -107,6 +107,25 @@ public final class TelephonyUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method for running the provided action in the provided
|
||||
* executor enclosed in
|
||||
* {@link Binder#clearCallingIdentity}/{@link Binder#restoreCallingIdentity}
|
||||
*
|
||||
* Any exception thrown by the given action will need to be handled by caller.
|
||||
*
|
||||
*/
|
||||
public static void runWithCleanCallingIdentity(
|
||||
@NonNull Runnable action, @NonNull Executor executor) {
|
||||
if (action != null) {
|
||||
if (executor != null) {
|
||||
executor.execute(() -> runWithCleanCallingIdentity(action));
|
||||
} else {
|
||||
runWithCleanCallingIdentity(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convenience method for running the provided action enclosed in
|
||||
|
||||
@@ -27,10 +27,12 @@ import android.util.Log;
|
||||
|
||||
import com.android.ims.internal.IImsCallSession;
|
||||
import com.android.ims.internal.IImsVideoCallProvider;
|
||||
import com.android.internal.telephony.util.TelephonyUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/**
|
||||
* Provides the call initiation/termination, and media exchange between two IMS endpoints.
|
||||
@@ -522,6 +524,7 @@ public class ImsCallSession {
|
||||
private final IImsCallSession miSession;
|
||||
private boolean mClosed = false;
|
||||
private Listener mListener;
|
||||
private Executor mListenerExecutor = Runnable::run;
|
||||
|
||||
/** @hide */
|
||||
public ImsCallSession(IImsCallSession iSession) {
|
||||
@@ -538,9 +541,9 @@ public class ImsCallSession {
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public ImsCallSession(IImsCallSession iSession, Listener listener) {
|
||||
public ImsCallSession(IImsCallSession iSession, Listener listener, Executor executor) {
|
||||
this(iSession);
|
||||
setListener(listener);
|
||||
setListener(listener, executor);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -738,10 +741,14 @@ public class ImsCallSession {
|
||||
* override the previous listener.
|
||||
*
|
||||
* @param listener to listen to the session events of this object
|
||||
* @param executor an Executor that will execute callbacks
|
||||
* @hide
|
||||
*/
|
||||
public void setListener(Listener listener) {
|
||||
public void setListener(Listener listener, Executor executor) {
|
||||
mListener = listener;
|
||||
if (executor != null) {
|
||||
mListenerExecutor = executor;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1206,42 +1213,48 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionInitiating(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionInitiating(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionInitiating(
|
||||
ImsCallSession.this, profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionProgressing(ImsStreamMediaProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionProgressing(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionProgressing(
|
||||
ImsCallSession.this, profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionInitiated(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionStarted(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStarted(
|
||||
ImsCallSession.this, profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionInitiatingFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStartFailed(
|
||||
ImsCallSession.this, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionStartFailed(
|
||||
ImsCallSession.this, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionTerminated(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionTerminated(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionTerminated(
|
||||
ImsCallSession.this, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1251,42 +1264,49 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionHeld(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionHeld(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHeld(
|
||||
ImsCallSession.this, profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionHoldFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionHoldFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHoldFailed(
|
||||
ImsCallSession.this, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionHoldReceived(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionHoldReceived(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionHoldReceived(
|
||||
ImsCallSession.this, profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionResumed(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionResumed(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionResumed(
|
||||
ImsCallSession.this, profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionResumeFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionResumeFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionResumeFailed(
|
||||
ImsCallSession.this, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionResumeReceived(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionResumeReceived(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionResumeReceived(ImsCallSession.this, profile),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1311,13 +1331,15 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionMergeComplete(IImsCallSession newSession) {
|
||||
if (mListener != null) {
|
||||
if (newSession != null) {
|
||||
// New session created after conference
|
||||
mListener.callSessionMergeComplete(new ImsCallSession(newSession));
|
||||
} else {
|
||||
// Session already exists. Hence no need to pass
|
||||
mListener.callSessionMergeComplete(null);
|
||||
}
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> {
|
||||
if (newSession != null) {
|
||||
// New session created after conference
|
||||
mListener.callSessionMergeComplete(new ImsCallSession(newSession));
|
||||
} else {
|
||||
// Session already exists. Hence no need to pass
|
||||
mListener.callSessionMergeComplete(null);
|
||||
}
|
||||
}, mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1329,7 +1351,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionMergeFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionMergeFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionMergeFailed(ImsCallSession.this, reasonInfo),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1339,21 +1363,27 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionUpdated(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionUpdated(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionUpdated(ImsCallSession.this, profile),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionUpdateFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionUpdateFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionUpdateFailed(ImsCallSession.this, reasonInfo),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionUpdateReceived(ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionUpdateReceived(ImsCallSession.this, profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionUpdateReceived(ImsCallSession.this, profile),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1364,15 +1394,18 @@ public class ImsCallSession {
|
||||
public void callSessionConferenceExtended(IImsCallSession newSession,
|
||||
ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionConferenceExtended(ImsCallSession.this,
|
||||
new ImsCallSession(newSession), profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionConferenceExtended(ImsCallSession.this,
|
||||
new ImsCallSession(newSession), profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionConferenceExtendFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionConferenceExtendFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionConferenceExtendFailed(
|
||||
ImsCallSession.this, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1380,8 +1413,9 @@ public class ImsCallSession {
|
||||
public void callSessionConferenceExtendReceived(IImsCallSession newSession,
|
||||
ImsCallProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionConferenceExtendReceived(ImsCallSession.this,
|
||||
new ImsCallSession(newSession), profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionConferenceExtendReceived(ImsCallSession.this,
|
||||
new ImsCallSession(newSession), profile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1392,30 +1426,36 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionInviteParticipantsRequestDelivered() {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionInviteParticipantsRequestDelivered(ImsCallSession.this);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionInviteParticipantsRequestDelivered(
|
||||
ImsCallSession.this), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionInviteParticipantsRequestFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionInviteParticipantsRequestFailed(ImsCallSession.this,
|
||||
reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionInviteParticipantsRequestFailed(ImsCallSession.this,
|
||||
reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionRemoveParticipantsRequestDelivered() {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRemoveParticipantsRequestDelivered(ImsCallSession.this);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRemoveParticipantsRequestDelivered(
|
||||
ImsCallSession.this), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionRemoveParticipantsRequestFailed(ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRemoveParticipantsRequestFailed(ImsCallSession.this,
|
||||
reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRemoveParticipantsRequestFailed(ImsCallSession.this,
|
||||
reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1425,7 +1465,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionConferenceStateUpdated(ImsConferenceState state) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionConferenceStateUpdated(ImsCallSession.this, state);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionConferenceStateUpdated(ImsCallSession.this, state),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1435,7 +1477,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionUssdMessageReceived(int mode, String ussdMessage) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionUssdMessageReceived(ImsCallSession.this, mode, ussdMessage);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionUssdMessageReceived(ImsCallSession.this, mode,
|
||||
ussdMessage), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1453,8 +1497,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionMayHandover(int srcNetworkType, int targetNetworkType) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionMayHandover(ImsCallSession.this, srcNetworkType,
|
||||
targetNetworkType);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionMayHandover(ImsCallSession.this, srcNetworkType,
|
||||
targetNetworkType), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1465,8 +1510,9 @@ public class ImsCallSession {
|
||||
public void callSessionHandover(int srcNetworkType, int targetNetworkType,
|
||||
ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionHandover(ImsCallSession.this, srcNetworkType,
|
||||
targetNetworkType, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionHandover(ImsCallSession.this, srcNetworkType,
|
||||
targetNetworkType, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1477,8 +1523,9 @@ public class ImsCallSession {
|
||||
public void callSessionHandoverFailed(int srcNetworkType, int targetNetworkType,
|
||||
ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionHandoverFailed(ImsCallSession.this, srcNetworkType,
|
||||
targetNetworkType, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionHandoverFailed(ImsCallSession.this, srcNetworkType,
|
||||
targetNetworkType, reasonInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1488,7 +1535,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionTtyModeReceived(int mode) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionTtyModeReceived(ImsCallSession.this, mode);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionTtyModeReceived(ImsCallSession.this, mode),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1500,14 +1549,18 @@ public class ImsCallSession {
|
||||
*/
|
||||
public void callSessionMultipartyStateChanged(boolean isMultiParty) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionMultipartyStateChanged(ImsCallSession.this, isMultiParty);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionMultipartyStateChanged(ImsCallSession.this,
|
||||
isMultiParty), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionSuppServiceReceived(ImsSuppServiceNotification suppServiceInfo ) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionSuppServiceReceived(ImsCallSession.this, suppServiceInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionSuppServiceReceived(ImsCallSession.this,
|
||||
suppServiceInfo), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1517,7 +1570,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionRttModifyRequestReceived(ImsCallProfile callProfile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRttModifyRequestReceived(ImsCallSession.this, callProfile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRttModifyRequestReceived(ImsCallSession.this,
|
||||
callProfile), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1527,7 +1582,9 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionRttModifyResponseReceived(int status) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRttModifyResponseReceived(status);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRttModifyResponseReceived(status),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1537,7 +1594,8 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionRttMessageReceived(String rttMessage) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRttMessageReceived(rttMessage);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRttMessageReceived(rttMessage), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1547,21 +1605,26 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRttAudioIndicatorChanged(profile);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRttAudioIndicatorChanged(profile),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionTransferred() {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionTransferred(ImsCallSession.this);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionTransferred(ImsCallSession.this), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callSessionTransferFailed(@Nullable ImsReasonInfo reasonInfo) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionTransferFailed(ImsCallSession.this, reasonInfo);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionTransferFailed(ImsCallSession.this, reasonInfo),
|
||||
mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1572,7 +1635,8 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callSessionDtmfReceived(char dtmf) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionDtmfReceived(dtmf);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callSessionDtmfReceived(
|
||||
dtmf), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1582,7 +1646,8 @@ public class ImsCallSession {
|
||||
@Override
|
||||
public void callQualityChanged(CallQuality callQuality) {
|
||||
if (mListener != null) {
|
||||
mListener.callQualityChanged(callQuality);
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()-> mListener.callQualityChanged(
|
||||
callQuality), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1594,8 +1659,9 @@ public class ImsCallSession {
|
||||
public void callSessionRtpHeaderExtensionsReceived(
|
||||
@NonNull List<RtpHeaderExtension> extensions) {
|
||||
if (mListener != null) {
|
||||
mListener.callSessionRtpHeaderExtensionsReceived(
|
||||
new ArraySet<RtpHeaderExtension>(extensions));
|
||||
TelephonyUtils.runWithCleanCallingIdentity(()->
|
||||
mListener.callSessionRtpHeaderExtensionsReceived(
|
||||
new ArraySet<RtpHeaderExtension>(extensions)), mListenerExecutor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user