From 4f63f29799249aeab75d85d091e3ae8aa35ea373 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 1 Dec 2023 13:08:12 +0200 Subject: [PATCH] Change bold delimiter and mention symbol insert --- .../org/futo/circles/view/PreviewPostView.kt | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/futo/circles/view/PreviewPostView.kt b/app/src/main/java/org/futo/circles/view/PreviewPostView.kt index f18fd33c2..f46cff0cf 100644 --- a/app/src/main/java/org/futo/circles/view/PreviewPostView.kt +++ b/app/src/main/java/org/futo/circles/view/PreviewPostView.kt @@ -6,6 +6,7 @@ import android.graphics.drawable.ColorDrawable import android.net.Uri import android.text.Editable import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.inputmethod.InputMethodManager import android.widget.LinearLayout @@ -17,8 +18,6 @@ import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import androidx.core.widget.doAfterTextChanged import io.element.android.wysiwyg.EditorEditText -import io.element.android.wysiwyg.display.LinkDisplayHandler -import io.element.android.wysiwyg.display.TextDisplay import io.element.android.wysiwyg.view.models.InlineFormat import org.futo.circles.R import org.futo.circles.core.extensions.loadEncryptedThumbOrFullIntoWithAspect @@ -30,7 +29,6 @@ import org.futo.circles.core.feature.autocomplete.AutocompleteCallback import org.futo.circles.core.feature.autocomplete.CharPolicy import org.futo.circles.core.feature.markdown.mentions.MentionsLinkDisplayHandler import org.futo.circles.core.feature.markdown.mentions.MentionsPresenter -import org.futo.circles.core.feature.markdown.span.MentionSpan import org.futo.circles.core.model.MediaContent import org.futo.circles.core.model.MediaType import org.futo.circles.core.model.UserListItem @@ -46,7 +44,6 @@ import org.futo.circles.feature.timeline.post.create.PreviewPostListener import org.futo.circles.model.CreatePostContent import org.futo.circles.model.MediaPostContent import org.futo.circles.model.TextPostContent -import org.matrix.android.sdk.api.MatrixPatterns import org.matrix.android.sdk.api.session.getUser import org.matrix.android.sdk.api.session.permalinks.PermalinkService.Companion.MATRIX_TO_URL_BASE import org.matrix.android.sdk.api.session.user.model.User @@ -130,6 +127,14 @@ class PreviewPostView( binding.etTextPost.append(unicode) } + private fun insertMentionMark() { + with(binding.etTextPost) { + val previousChar = text?.getOrNull(selectionStart - 1) + val noNeedToAddSpace = previousChar?.isWhitespace() == true || previousChar == null + append(if (noNeedToAddSpace) "@" else " @") + } + } + fun insertLink(title: String?, link: String) { binding.etTextPost.insertLink(link, title ?: link) } @@ -272,7 +277,7 @@ class PreviewPostView( listener?.onEmojiClicked() } addMenuItem(binding.lMainMenu, org.futo.circles.core.R.drawable.ic_mention) { - binding.etTextPost.append("@") + insertMentionMark() } addMenuItem(binding.lMainMenu, R.drawable.ic_link) { listener?.onAddLinkClicked() @@ -367,12 +372,20 @@ class PreviewPostView( } } - private fun EditorEditText.getFormattedMarkdown(): String = getMarkdown() - .replace("<br><br>", "") - .replace("\\", "") + private fun EditorEditText.getFormattedMarkdown(): String { + val a = getMarkdown() + .replace("<br><br>", "") + .replace("\\", "") + .replace("__", "**") + Log.d("MyLog", "get $a") + return a + } private fun EditorEditText.setFormattedMarkdown(message: String) { - val formattedMessage = message.replace("\\r\\r|\\n\\n".toRegex(), "<br><br>") + val formattedMessage = message + .replace("\\r\\r|\\n\\n".toRegex(), "<br><br>") + .replace("__", "**") + Log.d("MyLog", "set $formattedMessage") setMarkdown(formattedMessage) } -- GitLab