Prevent avatar from showing a start of outgoing video call.

This commit is contained in:
Cody Henthorne 2020-06-12 09:38:26 -04:00 committed by Greyson Parrelli
parent 2ecdf803c0
commit 941ab5a98f
3 changed files with 16 additions and 5 deletions

View file

@ -528,9 +528,11 @@ public class WebRtcCallActivity extends AppCompatActivity {
callScreen.setLocalRenderer(event.getLocalRenderer());
callScreen.setRemoteRenderer(event.getRemoteRenderer());
viewModel.updateFromWebRtcViewModel(event);
boolean enableVideo = event.getLocalCameraState().getCameraCount() > 0 && enableVideoIfAvailable;
if (event.getLocalCameraState().getCameraCount() > 0 && enableVideoIfAvailable) {
viewModel.updateFromWebRtcViewModel(event, enableVideo);
if (enableVideo) {
enableVideoIfAvailable = false;
handleSetMuteVideo(false);
}

View file

@ -35,6 +35,7 @@ public class WebRtcCallViewModel extends ViewModel {
private boolean canDisplayTooltipIfNeeded = true;
private boolean hasEnabledLocalVideo = false;
private boolean showVideoForOutgoing = false;
private long callConnectedTime = -1;
private Handler ellapsedTimeHandler = new Handler(Looper.getMainLooper());
private boolean answerWithVideoAvailable = false;
@ -97,7 +98,7 @@ public class WebRtcCallViewModel extends ViewModel {
}
@MainThread
public void updateFromWebRtcViewModel(@NonNull WebRtcViewModel webRtcViewModel) {
public void updateFromWebRtcViewModel(@NonNull WebRtcViewModel webRtcViewModel, boolean enableVideo) {
remoteVideoEnabled.setValue(webRtcViewModel.isRemoteVideoEnabled());
microphoneEnabled.setValue(webRtcViewModel.isMicrophoneEnabled());
@ -106,6 +107,13 @@ public class WebRtcCallViewModel extends ViewModel {
}
localVideoEnabled.setValue(webRtcViewModel.getLocalCameraState().isEnabled());
if (enableVideo) {
showVideoForOutgoing = webRtcViewModel.getState() == WebRtcViewModel.State.CALL_OUTGOING;
} else if (webRtcViewModel.getState() != WebRtcViewModel.State.CALL_OUTGOING) {
showVideoForOutgoing = false;
}
updateLocalRenderState(webRtcViewModel.getState());
updateWebRtcControls(webRtcViewModel.getState(),
webRtcViewModel.getLocalCameraState().isEnabled(),
@ -177,7 +185,7 @@ public class WebRtcCallViewModel extends ViewModel {
}
private @NonNull WebRtcLocalRenderState getRealLocalRenderState(boolean shouldDisplayLocalVideo, @NonNull WebRtcLocalRenderState state) {
if (shouldDisplayLocalVideo) return state;
if (shouldDisplayLocalVideo || showVideoForOutgoing) return state;
else return WebRtcLocalRenderState.GONE;
}

View file

@ -37,6 +37,7 @@
android:id="@+id/call_screen_large_local_renderer_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"