Browse Source

emoji bar for chat message bottomsheet

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 3 years ago
parent
commit
b06927726c

+ 25 - 0
app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt

@@ -50,6 +50,7 @@ class MessageActionsDialog(
         setContentView(dialogMessageActionsBinding.root)
         window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 
+        initEmojiBar()
         initMenuItemCopy(!message.isDeleted)
         initMenuReplyToMessage(message.replyable)
         initMenuReplyPrivately(
@@ -69,6 +70,30 @@ class MessageActionsDialog(
         )
     }
 
+    private fun initEmojiBar() {
+        dialogMessageActionsBinding.emojiThumbsUp.setOnClickListener{
+            dismiss()
+        }
+        dialogMessageActionsBinding.emojiThumbsDown.setOnClickListener{
+            dismiss()
+        }
+        dialogMessageActionsBinding.emojiLaugh.setOnClickListener{
+            dismiss()
+        }
+        dialogMessageActionsBinding.emojiHeart.setOnClickListener{
+            dismiss()
+        }
+        dialogMessageActionsBinding.emojiConfused.setOnClickListener{
+            dismiss()
+        }
+        dialogMessageActionsBinding.emojiSad.setOnClickListener{
+            dismiss()
+        }
+        dialogMessageActionsBinding.emojiMore.setOnClickListener{
+            dismiss()
+        }
+    }
+
     private fun initMenuMarkAsUnread(visible: Boolean) {
         if (visible) {
             dialogMessageActionsBinding.menuMarkAsUnread.setOnClickListener {

+ 25 - 0
app/src/main/res/drawable/ic_dots_horizontal.xml

@@ -0,0 +1,25 @@
+<!--
+    @author Google LLC
+    Copyright (C) 2021 Google LLC
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="#000"
+        android:pathData="M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z" />
+</vector>

+ 81 - 0
app/src/main/res/layout/dialog_message_actions.xml

@@ -29,6 +29,87 @@
     android:paddingEnd="@dimen/standard_padding"
     android:paddingBottom="@dimen/standard_half_padding">
 
+    <LinearLayout
+        android:id="@+id/emojiBar"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/bottom_sheet_item_height"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+        <com.vanniktech.emoji.EmojiEditText
+            android:id="@+id/emojiThumbsUp"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:cursorVisible="false"
+            android:gravity="center"
+            android:text="@string/emoji_thumbsUp"
+            android:textSize="24sp" />
+
+        <com.vanniktech.emoji.EmojiEditText
+            android:id="@+id/emojiThumbsDown"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:cursorVisible="false"
+            android:gravity="center"
+            android:text="@string/emoji_thumbsDown"
+            android:textSize="24sp" />
+
+        <com.vanniktech.emoji.EmojiEditText
+            android:id="@+id/emojiHeart"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:cursorVisible="false"
+            android:gravity="center"
+            android:text="@string/default_emoji"
+            android:textSize="24sp" />
+
+        <com.vanniktech.emoji.EmojiEditText
+            android:id="@+id/emojiLaugh"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:cursorVisible="false"
+            android:gravity="center"
+            android:text="@string/emoji_heart"
+            android:textSize="24sp" />
+
+        <com.vanniktech.emoji.EmojiEditText
+            android:id="@+id/emojiConfused"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:cursorVisible="false"
+            android:gravity="center"
+            android:text="@string/emoji_confused"
+            android:textSize="24sp" />
+
+        <com.vanniktech.emoji.EmojiEditText
+            android:id="@+id/emojiSad"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:cursorVisible="false"
+            android:gravity="center"
+            android:text="@string/emoji_sad"
+            android:textSize="24sp" />
+
+        <com.google.android.material.button.MaterialButton
+            android:id="@+id/emojiMore"
+            style="@style/Widget.AppTheme.Button.IconButton"
+            android:layout_width="@dimen/activity_row_layout_height"
+            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_weight="1"
+            android:contentDescription="@string/emoji_more"
+            app:elevation="0dp"
+            app:icon="@drawable/ic_dots_horizontal"
+            app:iconGravity="textStart"
+            app:iconSize="24dp"
+            app:iconTint="@color/high_emphasis_text" />
+    </LinearLayout>
+
     <LinearLayout
         android:id="@+id/menu_copy_message"
         android:layout_width="match_parent"

+ 6 - 0
app/src/main/res/values/strings.xml

@@ -279,6 +279,12 @@
     <string name="invisible">Invisible</string>
     <string translatable="false" name="divider">—</string>
     <string translatable="false" name="default_emoji">😃</string>
+    <string translatable="false" name="emoji_thumbsUp">👍</string>
+    <string translatable="false" name="emoji_thumbsDown">👎</string>
+    <string translatable="false" name="emoji_heart">❤️</string>
+    <string translatable="false" name="emoji_confused">😯</string>
+    <string translatable="false" name="emoji_sad">😢</string>
+    <string translatable="false" name="emoji_more">More emojis</string>
     <string name="dontClear">Don\'t clear</string>
     <string name="today">Today</string>
     <string name="thirtyMinutes">30 minutes</string>