Browse Source

fix position and animation of typing indicator

Without this fix, typing indicator moves up and wont go down

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 9 months ago
parent
commit
94d62a943f
1 changed files with 10 additions and 8 deletions
  1. 10 8
      app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

+ 10 - 8
app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

@@ -1307,16 +1307,16 @@ class ChatActivity :
         runOnUiThread {
         runOnUiThread {
             binding.typingIndicator.text = typingString
             binding.typingIndicator.text = typingString
 
 
-            if (participantNames.size > 0) {
-                binding.typingIndicatorWrapper.visibility = View.VISIBLE
-                binding.typingIndicatorWrapper.animate()
-                    .translationYBy(DisplayUtils.convertDpToPixel(-18f, context))
-                    .setInterpolator(AccelerateDecelerateInterpolator())
-                    .duration = TYPING_INDICATOR_ANIMATION_DURATION
+            val typingIndicatorPositionY = if (participantNames.size > 0) {
+                TYPING_INDICATOR_POSITION_VISIBLE
             } else {
             } else {
-                binding.typingIndicatorWrapper.visibility = View.INVISIBLE
-                binding.typingIndicatorWrapper.y += DisplayUtils.convertDpToPixel(18f, context)
+                TYPING_INDICATOR_POSITION_HIDDEN
             }
             }
+
+            binding.typingIndicatorWrapper.animate()
+                .translationY(DisplayUtils.convertDpToPixel(typingIndicatorPositionY, context))
+                .setInterpolator(AccelerateDecelerateInterpolator())
+                .duration = TYPING_INDICATOR_ANIMATION_DURATION
         }
         }
     }
     }
 
 
@@ -3696,6 +3696,8 @@ class ChatActivity :
         private const val COMMA = ", "
         private const val COMMA = ", "
         private const val TYPING_INDICATOR_ANIMATION_DURATION = 200L
         private const val TYPING_INDICATOR_ANIMATION_DURATION = 200L
         private const val TYPING_INDICATOR_MAX_NAME_LENGTH = 14
         private const val TYPING_INDICATOR_MAX_NAME_LENGTH = 14
+        private const val TYPING_INDICATOR_POSITION_VISIBLE = -18f
+        private const val TYPING_INDICATOR_POSITION_HIDDEN = -1f
         private const val TYPING_DURATION_TO_SEND_NEXT_TYPING_MESSAGE = 10000L
         private const val TYPING_DURATION_TO_SEND_NEXT_TYPING_MESSAGE = 10000L
         private const val TYPING_INTERVAL_TO_SEND_NEXT_TYPING_MESSAGE = 1000L
         private const val TYPING_INTERVAL_TO_SEND_NEXT_TYPING_MESSAGE = 1000L
         private const val TYPING_STARTED_SIGNALING_MESSAGE_TYPE = "startedTyping"
         private const val TYPING_STARTED_SIGNALING_MESSAGE_TYPE = "startedTyping"