Prevent avatar from showing a start of outgoing video call.
This commit is contained in:
parent
2ecdf803c0
commit
941ab5a98f
3 changed files with 16 additions and 5 deletions
|
@ -528,9 +528,11 @@ public class WebRtcCallActivity extends AppCompatActivity {
|
||||||
callScreen.setLocalRenderer(event.getLocalRenderer());
|
callScreen.setLocalRenderer(event.getLocalRenderer());
|
||||||
callScreen.setRemoteRenderer(event.getRemoteRenderer());
|
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;
|
enableVideoIfAvailable = false;
|
||||||
handleSetMuteVideo(false);
|
handleSetMuteVideo(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ public class WebRtcCallViewModel extends ViewModel {
|
||||||
|
|
||||||
private boolean canDisplayTooltipIfNeeded = true;
|
private boolean canDisplayTooltipIfNeeded = true;
|
||||||
private boolean hasEnabledLocalVideo = false;
|
private boolean hasEnabledLocalVideo = false;
|
||||||
|
private boolean showVideoForOutgoing = false;
|
||||||
private long callConnectedTime = -1;
|
private long callConnectedTime = -1;
|
||||||
private Handler ellapsedTimeHandler = new Handler(Looper.getMainLooper());
|
private Handler ellapsedTimeHandler = new Handler(Looper.getMainLooper());
|
||||||
private boolean answerWithVideoAvailable = false;
|
private boolean answerWithVideoAvailable = false;
|
||||||
|
@ -97,7 +98,7 @@ public class WebRtcCallViewModel extends ViewModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@MainThread
|
@MainThread
|
||||||
public void updateFromWebRtcViewModel(@NonNull WebRtcViewModel webRtcViewModel) {
|
public void updateFromWebRtcViewModel(@NonNull WebRtcViewModel webRtcViewModel, boolean enableVideo) {
|
||||||
remoteVideoEnabled.setValue(webRtcViewModel.isRemoteVideoEnabled());
|
remoteVideoEnabled.setValue(webRtcViewModel.isRemoteVideoEnabled());
|
||||||
microphoneEnabled.setValue(webRtcViewModel.isMicrophoneEnabled());
|
microphoneEnabled.setValue(webRtcViewModel.isMicrophoneEnabled());
|
||||||
|
|
||||||
|
@ -106,6 +107,13 @@ public class WebRtcCallViewModel extends ViewModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
localVideoEnabled.setValue(webRtcViewModel.getLocalCameraState().isEnabled());
|
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());
|
updateLocalRenderState(webRtcViewModel.getState());
|
||||||
updateWebRtcControls(webRtcViewModel.getState(),
|
updateWebRtcControls(webRtcViewModel.getState(),
|
||||||
webRtcViewModel.getLocalCameraState().isEnabled(),
|
webRtcViewModel.getLocalCameraState().isEnabled(),
|
||||||
|
@ -177,7 +185,7 @@ public class WebRtcCallViewModel extends ViewModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private @NonNull WebRtcLocalRenderState getRealLocalRenderState(boolean shouldDisplayLocalVideo, @NonNull WebRtcLocalRenderState state) {
|
private @NonNull WebRtcLocalRenderState getRealLocalRenderState(boolean shouldDisplayLocalVideo, @NonNull WebRtcLocalRenderState state) {
|
||||||
if (shouldDisplayLocalVideo) return state;
|
if (shouldDisplayLocalVideo || showVideoForOutgoing) return state;
|
||||||
else return WebRtcLocalRenderState.GONE;
|
else return WebRtcLocalRenderState.GONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
android:id="@+id/call_screen_large_local_renderer_holder"
|
android:id="@+id/call_screen_large_local_renderer_holder"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/black"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|
Loading…
Add table
Reference in a new issue