ignore race condition when toggling fixes #3822
This commit is contained in:
parent
9ab0fbe48c
commit
6a6c9fb3bf
|
@ -910,15 +910,17 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
|||
}
|
||||
|
||||
private void disableMicrophone(View view) {
|
||||
JingleRtpConnection rtpConnection = requireRtpConnection();
|
||||
rtpConnection.setMicrophoneEnabled(false);
|
||||
updateInCallButtonConfiguration();
|
||||
final JingleRtpConnection rtpConnection = requireRtpConnection();
|
||||
if (rtpConnection.setMicrophoneEnabled(false)) {
|
||||
updateInCallButtonConfiguration();
|
||||
}
|
||||
}
|
||||
|
||||
private void enableMicrophone(View view) {
|
||||
JingleRtpConnection rtpConnection = requireRtpConnection();
|
||||
rtpConnection.setMicrophoneEnabled(true);
|
||||
updateInCallButtonConfiguration();
|
||||
final JingleRtpConnection rtpConnection = requireRtpConnection();
|
||||
if (rtpConnection.setMicrophoneEnabled(true)) {
|
||||
updateInCallButtonConfiguration();
|
||||
}
|
||||
}
|
||||
|
||||
private void switchToEarpiece(View view) {
|
||||
|
|
|
@ -1085,8 +1085,8 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
|
|||
return webRTCWrapper.isMicrophoneEnabled();
|
||||
}
|
||||
|
||||
public void setMicrophoneEnabled(final boolean enabled) {
|
||||
webRTCWrapper.setMicrophoneEnabled(enabled);
|
||||
public boolean setMicrophoneEnabled(final boolean enabled) {
|
||||
return webRTCWrapper.setMicrophoneEnabled(enabled);
|
||||
}
|
||||
|
||||
public boolean isVideoEnabled() {
|
||||
|
|
|
@ -370,12 +370,19 @@ public class WebRTCWrapper {
|
|||
}
|
||||
}
|
||||
|
||||
void setMicrophoneEnabled(final boolean enabled) {
|
||||
boolean setMicrophoneEnabled(final boolean enabled) {
|
||||
final AudioTrack audioTrack = this.localAudioTrack;
|
||||
if (audioTrack == null) {
|
||||
throw new IllegalStateException("Local audio track does not exist (yet)");
|
||||
}
|
||||
audioTrack.setEnabled(enabled);
|
||||
try {
|
||||
audioTrack.setEnabled(enabled);
|
||||
return true;
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(Config.LOGTAG, "unable to toggle microphone", e);
|
||||
//ignoring race condition in case MediaStreamTrack has been disposed
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
boolean isVideoEnabled() {
|
||||
|
|
Loading…
Reference in a new issue