Pārlūkot izejas kodu

save cursor position

Signed-off-by: Julius Linus <julius.linus@nextcloud.com>
Julius Linus 1 gadu atpakaļ
vecāks
revīzija
30c6ad5ab6

+ 5 - 0
app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

@@ -525,7 +525,9 @@ class ChatActivity :
         active = true
         active = true
         context.getSharedPreferences(localClassName, MODE_PRIVATE).apply {
         context.getSharedPreferences(localClassName, MODE_PRIVATE).apply {
             val text = getString(roomToken, "")
             val text = getString(roomToken, "")
+            val cursor = getInt(roomToken + CURSOR_KEY, 0)
             binding.messageInputView.messageInput.setText(text)
             binding.messageInputView.messageInput.setText(text)
+            binding.messageInputView.messageInput.setSelection(cursor)
         }
         }
         this.lifecycle.addObserver(AudioUtils)
         this.lifecycle.addObserver(AudioUtils)
     }
     }
@@ -544,10 +546,12 @@ class ChatActivity :
             stopMediaPlayer(currentlyPlayedVoiceMessage!!)
             stopMediaPlayer(currentlyPlayedVoiceMessage!!)
         }
         }
         val text = binding.messageInputView.messageInput.text.toString()
         val text = binding.messageInputView.messageInput.text.toString()
+        val cursor = binding.messageInputView.messageInput.selectionStart
         val previous = context.getSharedPreferences(localClassName, MODE_PRIVATE).getString(roomToken, "null")
         val previous = context.getSharedPreferences(localClassName, MODE_PRIVATE).getString(roomToken, "null")
         if (text != previous) {
         if (text != previous) {
             context.getSharedPreferences(localClassName, MODE_PRIVATE).edit().apply {
             context.getSharedPreferences(localClassName, MODE_PRIVATE).edit().apply {
                 putString(roomToken, text)
                 putString(roomToken, text)
+                putInt(roomToken + CURSOR_KEY, cursor)
                 apply()
                 apply()
             }
             }
         }
         }
@@ -4603,5 +4607,6 @@ class ChatActivity :
         private const val CALL_STARTED_ID = -2
         private const val CALL_STARTED_ID = -2
         private const val MILISEC_15: Long = 15
         private const val MILISEC_15: Long = 15
         private const val LINEBREAK = "\n"
         private const val LINEBREAK = "\n"
+        private const val CURSOR_KEY = "_cursor"
     }
     }
 }
 }