diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 9ed5fa5aa..17b359e5a 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -416,27 +416,20 @@ public class CallActivity extends CallBaseActivity { raiseHandViewModel.setData(roomToken, isBreakoutRoom); raiseHandViewModel.getViewState().observe(this, viewState -> { + boolean raised = false; if (viewState instanceof RaiseHandViewModel.RaisedHandState) { binding.lowerHandButton.setVisibility(View.VISIBLE); + raised = true; } else if (viewState instanceof RaiseHandViewModel.LoweredHandState) { binding.lowerHandButton.setVisibility(View.GONE); + raised = false; } - // TODO: build&send raiseHand message (if not possible in RaiseHandViewModel, just do it here..) -// if (isConnectionEstablished() && peerConnectionWrapperList != null) { -// if (!hasMCU) { -// for (PeerConnectionWrapper peerConnectionWrapper : peerConnectionWrapperList) { -// peerConnectionWrapper.raiseHand(...); -// } -// } else { -// for (PeerConnectionWrapper peerConnectionWrapper : peerConnectionWrapperList) { -// if (peerConnectionWrapper.getSessionId().equals(webSocketClient.getSessionId())) { -// peerConnectionWrapper.raiseHand(...); -// break; -// } -// } -// } -// } + if (isConnectionEstablished() && peerConnectionWrapperList != null) { + for (PeerConnectionWrapper peerConnectionWrapper : peerConnectionWrapperList) { + peerConnectionWrapper.raiseHand(raised); + } + } }); callRecordingViewModel = new ViewModelProvider(this, viewModelFactory).get((CallRecordingViewModel.class)); diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java index 13f26a83c..6b93ffc03 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java @@ -191,21 +191,17 @@ public class PeerConnectionWrapper { } public void raiseHand(Boolean raise) { - // TODO: build&send raiseHand message (either here or via RaiseHandViewModel) -// NCMessagePayload ncMessagePayload = new NCMessagePayload(); -// ncMessagePayload.setState(raise); -// ncMessagePayload.setTimestamp(System.currentTimeMillis()); -// -// -// NCSignalingMessage ncSignalingMessage = new NCSignalingMessage(); -//// ncSignalingMessage.setFrom(); -// ncSignalingMessage.setTo(sessionId); -//// ncSignalingMessage.setSid(); -// ncSignalingMessage.setType("raiseHand"); -// ncSignalingMessage.setPayload(ncMessagePayload); -// ncSignalingMessage.setRoomType(videoStreamType); -// -// signalingMessageSender.send(ncSignalingMessage); + NCMessagePayload ncMessagePayload = new NCMessagePayload(); + ncMessagePayload.setState(raise); + ncMessagePayload.setTimestamp(System.currentTimeMillis()); + + NCSignalingMessage ncSignalingMessage = new NCSignalingMessage(); + ncSignalingMessage.setTo(sessionId); + ncSignalingMessage.setType("raiseHand"); + ncSignalingMessage.setPayload(ncMessagePayload); + ncSignalingMessage.setRoomType(videoStreamType); + + signalingMessageSender.send(ncSignalingMessage); } /**