Parcourir la source

Merge pull request #4041 from nextcloud/issue-4040

Typing Indicator fix after recent refactoring
Sowjanya Kota il y a 10 mois
Parent
commit
8e8066d83d

+ 9 - 18
app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

@@ -1297,25 +1297,14 @@ class ChatActivity :
             binding.typingIndicator.text = typingString
 
             if (participantNames.size > 0) {
+                binding.typingIndicatorWrapper.visibility = View.VISIBLE
                 binding.typingIndicatorWrapper.animate()
-                    .translationY(binding.fragmentContainerActivityChat.y - DisplayUtils.convertDpToPixel(18f, context))
+                    .translationYBy(DisplayUtils.convertDpToPixel(-18f, context))
                     .setInterpolator(AccelerateDecelerateInterpolator())
                     .duration = TYPING_INDICATOR_ANIMATION_DURATION
             } else {
-                if (binding.typingIndicator.lineCount == 1) {
-                    binding.typingIndicatorWrapper.animate()
-                        .translationY(binding.fragmentContainerActivityChat.y)
-                        .setInterpolator(AccelerateDecelerateInterpolator())
-                        .duration = TYPING_INDICATOR_ANIMATION_DURATION
-                } else if (binding.typingIndicator.lineCount == 2) {
-                    binding.typingIndicatorWrapper.animate()
-                        .translationY(
-                            binding.fragmentContainerActivityChat.y +
-                                DisplayUtils.convertDpToPixel(15f, context)
-                        )
-                        .setInterpolator(AccelerateDecelerateInterpolator())
-                        .duration = TYPING_INDICATOR_ANIMATION_DURATION
-                }
+                binding.typingIndicatorWrapper.visibility = View.GONE
+                binding.typingIndicatorWrapper.y += DisplayUtils.convertDpToPixel(18f, context)
             }
         }
     }
@@ -3384,10 +3373,12 @@ class ChatActivity :
         val messageTemp = message as ChatMessage
         messageTemp.lastEditTimestamp = message.lastEditTimestamp
 
-        val index = adapter?.getMessagePositionById(messageTemp.id) ?: 0
-        val adapterMsg = adapter?.items?.get(index)?.item as ChatMessage
+        val index = adapter?.getMessagePositionById(messageTemp.id)!!
+        if (index > 0) {
+            val adapterMsg = adapter?.items?.get(index)?.item as ChatMessage
+            messageTemp.parentMessage = adapterMsg.parentMessage
+        }
 
-        messageTemp.parentMessage = adapterMsg.parentMessage
         messageTemp.isOneToOneConversation =
             currentConversation?.type == ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL
         messageTemp.activeUser = conversationUser

+ 2 - 2
app/src/main/res/layout/activity_chat.xml

@@ -226,8 +226,8 @@
                 android:id="@+id/typing_indicator"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginStart="@dimen/side_margin"
-                android:layout_marginEnd="@dimen/side_margin"
+                android:paddingStart="@dimen/side_margin"
+                android:paddingEnd="@dimen/side_margin"
                 android:background="@color/bg_default"
                 android:ellipsize="end"
                 android:maxLines="2"