瀏覽代碼

send call reactions

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 1 年之前
父節點
當前提交
cafb8b649a

+ 12 - 2
app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

@@ -513,6 +513,16 @@ public class CallActivity extends CallBaseActivity {
         reactionAnimator = new ReactionAnimator(context, binding.reactionAnimationWrapper, viewThemeUtils);
     }
 
+    public void sendReaction(String emoji) {
+        addReactionForAnimation(emoji, conversationUser.getDisplayName());
+
+        if (isConnectionEstablished() && peerConnectionWrapperList != null) {
+            for (PeerConnectionWrapper peerConnectionWrapper : peerConnectionWrapperList) {
+                peerConnectionWrapper.sendReaction(emoji);
+            }
+        }
+    }
+
     @Override
     public void onStart() {
         super.onStart();
@@ -2730,7 +2740,7 @@ public class CallActivity extends CallBaseActivity {
         }
     }
 
-    public void addCallReaction(String emoji, String displayName) {
+    public void addReactionForAnimation(String emoji, String displayName) {
         reactionAnimator.addReaction(emoji, displayName);
     }
 
@@ -2910,7 +2920,7 @@ public class CallActivity extends CallBaseActivity {
 
         @Override
         public void onReaction(String reaction) {
-            addCallReaction(reaction, callParticipantModel.getNick());
+            addReactionForAnimation(reaction, callParticipantModel.getNick());
         }
     }
 

+ 1 - 5
app/src/main/java/com/nextcloud/talk/ui/dialog/MoreCallActionsDialog.kt

@@ -122,11 +122,7 @@ class MoreCallActionsDialog(private val callActivity: CallActivity) : BottomShee
                 emojiView.layoutParams = param
 
                 emojiView.setOnClickListener { view ->
-                    // TODO: send signaling messages instead to directly show reaction on own device
-                    callActivity.addCallReaction(
-                        (view as EmojiTextView).text.toString(),
-                        callActivity.conversationUser.displayName
-                    )
+                    callActivity.sendReaction((view as EmojiTextView).text.toString())
                     dismiss()
                 }
                 binding.callEmojiBar.addView(emojiView)

+ 14 - 0
app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java

@@ -204,6 +204,20 @@ public class PeerConnectionWrapper {
         signalingMessageSender.send(ncSignalingMessage);
     }
 
+    public void sendReaction(String emoji) {
+        NCMessagePayload ncMessagePayload = new NCMessagePayload();
+        ncMessagePayload.setReaction(emoji);
+        ncMessagePayload.setTimestamp(System.currentTimeMillis());
+
+        NCSignalingMessage ncSignalingMessage = new NCSignalingMessage();
+        ncSignalingMessage.setTo(sessionId);
+        ncSignalingMessage.setType("reaction");
+        ncSignalingMessage.setPayload(ncMessagePayload);
+        ncSignalingMessage.setRoomType(videoStreamType);
+
+        signalingMessageSender.send(ncSignalingMessage);
+    }
+
     /**
      * Adds a listener for data channel messages.
      *