From 0b5055895113e6ae663c03a0ee3c30cbeaee516e Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Tue, 28 Nov 2023 16:10:55 +0200 Subject: [PATCH] Change composer menu --- .../java/org/futo/circles/view/Callback.kt | 11 --- .../futo/circles/view/MessageComposerMode.kt | 28 ------ .../futo/circles/view/MessageComposerView.kt | 34 ------- .../circles/view/RichTextComposerLayout.kt | 96 ++++--------------- app/src/main/res/drawable/bg_code_block.xml | 24 +---- .../res/drawable/bg_rich_text_menu_button.xml | 18 +--- .../res/drawable/ic_composer_code_block.xml | 3 +- .../main/res/drawable/ic_composer_indent.xml | 1 + .../main/res/drawable/ic_composer_quote.xml | 17 ++-- .../res/drawable/ic_composer_underlined.xml | 5 +- .../res/drawable/ic_composer_unindent.xml | 5 +- .../res/layout/composer_rich_text_layout.xml | 9 +- app/src/main/res/layout/view_preview_post.xml | 20 ---- .../res/layout/view_rich_text_menu_button.xml | 30 ++++-- 14 files changed, 71 insertions(+), 230 deletions(-) delete mode 100644 app/src/main/java/org/futo/circles/view/Callback.kt delete mode 100644 app/src/main/java/org/futo/circles/view/MessageComposerMode.kt delete mode 100644 app/src/main/java/org/futo/circles/view/MessageComposerView.kt diff --git a/app/src/main/java/org/futo/circles/view/Callback.kt b/app/src/main/java/org/futo/circles/view/Callback.kt deleted file mode 100644 index 28f3adb08..000000000 --- a/app/src/main/java/org/futo/circles/view/Callback.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.futo.circles.view - - -interface Callback : ComposerEditText.Callback { - fun onCloseRelatedMessage() - fun onSendMessage(text: CharSequence) - fun onAddAttachment() - fun onExpandOrCompactChange() - fun onFullScreenModeChanged() - fun onSetLink(isTextSupported: Boolean, initialLink: String?) -} \ No newline at end of file diff --git a/app/src/main/java/org/futo/circles/view/MessageComposerMode.kt b/app/src/main/java/org/futo/circles/view/MessageComposerMode.kt deleted file mode 100644 index c9ebbf983..000000000 --- a/app/src/main/java/org/futo/circles/view/MessageComposerMode.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * 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. - */ -package org.futo.circles.view - - -import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent - -sealed interface MessageComposerMode { - data class Normal(val content: CharSequence?) : MessageComposerMode - - sealed class Special(open val event: TimelineEvent, open val defaultContent: CharSequence) : MessageComposerMode - data class Edit(override val event: TimelineEvent, override val defaultContent: CharSequence) : Special(event, defaultContent) - data class Quote(override val event: TimelineEvent, override val defaultContent: CharSequence) : Special(event, defaultContent) - data class Reply(override val event: TimelineEvent, override val defaultContent: CharSequence) : Special(event, defaultContent) -} diff --git a/app/src/main/java/org/futo/circles/view/MessageComposerView.kt b/app/src/main/java/org/futo/circles/view/MessageComposerView.kt deleted file mode 100644 index 70c6a953e..000000000 --- a/app/src/main/java/org/futo/circles/view/MessageComposerView.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * 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. - */ - -package org.futo.circles.view - -import android.text.Editable -import android.widget.EditText -import android.widget.ImageButton - -interface MessageComposerView { - - val text: Editable? - val formattedText: String? - val editText: EditText - val emojiButton: ImageButton? - - var callback: Callback? - - fun setTextIfDifferent(text: CharSequence?): Boolean -} - diff --git a/app/src/main/java/org/futo/circles/view/RichTextComposerLayout.kt b/app/src/main/java/org/futo/circles/view/RichTextComposerLayout.kt index a630af30e..4076c2ec5 100644 --- a/app/src/main/java/org/futo/circles/view/RichTextComposerLayout.kt +++ b/app/src/main/java/org/futo/circles/view/RichTextComposerLayout.kt @@ -9,18 +9,15 @@ import android.view.LayoutInflater import android.view.MotionEvent import android.view.View import android.widget.EditText -import android.widget.ImageButton import android.widget.LinearLayout import androidx.annotation.DrawableRes import androidx.annotation.StringRes +import androidx.cardview.widget.CardView import androidx.core.view.isVisible -import androidx.core.widget.doOnTextChanged import io.element.android.wysiwyg.EditorEditText -import io.element.android.wysiwyg.display.KeywordDisplayHandler import io.element.android.wysiwyg.display.LinkDisplayHandler import io.element.android.wysiwyg.display.TextDisplay import io.element.android.wysiwyg.view.models.InlineFormat -import io.element.android.wysiwyg.view.models.LinkAction import org.futo.circles.R import org.futo.circles.databinding.ComposerRichTextLayoutBinding import org.futo.circles.databinding.ViewRichTextMenuButtonBinding @@ -32,66 +29,46 @@ internal class RichTextComposerLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr), MessageComposerView { +) : LinearLayout(context, attrs, defStyleAttr) { private val views: ComposerRichTextLayoutBinding - override var callback: Callback? = null - - override val text: Editable? + private val text: Editable? get() = editText.text - override val formattedText: String? - get() = (editText as? EditorEditText)?.getContentAsMessageHtml() - override val editText: EditText + + private val editText: EditText get() = views.richTextComposerEditText - override val emojiButton: ImageButton? - get() = null - var pillDisplayHandler: PillDisplayHandler? = null + private var pillDisplayHandler: PillDisplayHandler? = null init { inflate(context, R.layout.composer_rich_text_layout, this) views = ComposerRichTextLayoutBinding.bind(this) - // Workaround to avoid cut-off text caused by padding in scrolled TextView (there is no clipToPadding). - // In TextView, clipTop = padding, but also clipTop -= shadowRadius. So if we set the shadowRadius to padding, they cancel each other views.richTextComposerEditText.setShadowLayer( - views.richTextComposerEditText.paddingBottom.toFloat(), - 0f, - 0f, - 0 + views.richTextComposerEditText.paddingBottom.toFloat(), 0f, 0f, 0 ) - views.richTextComposerEditText.doOnTextChanged { s, _, _, _ -> - callback?.onTextChanged(s ?: "") - } - disallowParentInterceptTouchEvent(views.richTextComposerEditText) setupRichTextMenu() + views.richTextComposerEditText.linkDisplayHandler = LinkDisplayHandler { text, url -> pillDisplayHandler?.resolveLinkDisplay(text, url) ?: TextDisplay.Plain } - views.richTextComposerEditText.keywordDisplayHandler = object : KeywordDisplayHandler { - override val keywords: List<String> - get() = pillDisplayHandler?.keywords.orEmpty() - - override fun resolveKeywordDisplay(text: String): TextDisplay = - pillDisplayHandler?.resolveKeywordDisplay(text) ?: TextDisplay.Plain - } } private fun setupRichTextMenu() { addRichTextMenuItem( - R.drawable.ic_composer_bold, + R.drawable.ic_bold, R.string.rich_text_editor_format_bold, ComposerAction.BOLD ) { views.richTextComposerEditText.toggleInlineFormat(InlineFormat.Bold) } addRichTextMenuItem( - R.drawable.ic_composer_italic, + R.drawable.ic_italic, R.string.rich_text_editor_format_italic, ComposerAction.ITALIC ) { @@ -105,21 +82,21 @@ internal class RichTextComposerLayout @JvmOverloads constructor( views.richTextComposerEditText.toggleInlineFormat(InlineFormat.Underline) } addRichTextMenuItem( - R.drawable.ic_composer_strikethrough, + R.drawable.ic_strikethrough, R.string.rich_text_editor_format_strikethrough, ComposerAction.STRIKE_THROUGH ) { views.richTextComposerEditText.toggleInlineFormat(InlineFormat.StrikeThrough) } addRichTextMenuItem( - R.drawable.ic_composer_bullet_list, + R.drawable.ic_bullet_list, R.string.rich_text_editor_bullet_list, ComposerAction.UNORDERED_LIST ) { views.richTextComposerEditText.toggleList(ordered = false) } addRichTextMenuItem( - R.drawable.ic_composer_numbered_list, + R.drawable.ic_number_list, R.string.rich_text_editor_numbered_list, ComposerAction.ORDERED_LIST ) { @@ -146,13 +123,6 @@ internal class RichTextComposerLayout @JvmOverloads constructor( ) { views.richTextComposerEditText.toggleQuote() } - addRichTextMenuItem( - R.drawable.ic_composer_inline_code, - R.string.rich_text_editor_inline_code, - ComposerAction.INLINE_CODE - ) { - views.richTextComposerEditText.toggleInlineFormat(InlineFormat.InlineCode) - } addRichTextMenuItem( R.drawable.ic_composer_code_block, R.string.rich_text_editor_code_block, @@ -160,25 +130,6 @@ internal class RichTextComposerLayout @JvmOverloads constructor( ) { views.richTextComposerEditText.toggleCodeBlock() } - addRichTextMenuItem( - R.drawable.ic_composer_link, - R.string.rich_text_editor_link, - ComposerAction.LINK - ) { - views.richTextComposerEditText.getLinkAction()?.let { - when (it) { - LinkAction.InsertLink -> callback?.onSetLink( - isTextSupported = true, - initialLink = null - ) - - is LinkAction.SetLink -> callback?.onSetLink( - isTextSupported = false, - initialLink = it.currentUrl - ) - } - } - } } fun setLink(link: String?) = @@ -210,12 +161,9 @@ internal class RichTextComposerLayout @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() - views.richTextComposerEditText.actionStatesChangedListener = EditorEditText.OnActionStatesChangedListener { state -> - for (action in state.keys) { - updateMenuStateFor(action, state) - } + for (action in state.keys) { updateMenuStateFor(action, state) } } } @@ -227,14 +175,12 @@ internal class RichTextComposerLayout @JvmOverloads constructor( onClick: () -> Unit ) { val inflater = LayoutInflater.from(context) - val button = ViewRichTextMenuButtonBinding.inflate(inflater, views.richTextMenu, true) - button.root.tag = action - with(button.root) { + val item = ViewRichTextMenuButtonBinding.inflate(inflater, views.richTextMenu, true) + item.root.tag = action + with(item.root) { contentDescription = resources.getString(description) - setImageResource(iconId) - setOnClickListener { - onClick() - } + item.ivIcon.setImageResource(iconId) + setOnClickListener { onClick() } } } @@ -242,7 +188,7 @@ internal class RichTextComposerLayout @JvmOverloads constructor( action: ComposerAction, menuState: Map<ComposerAction, ActionState> ) { - val button = findViewWithTag<ImageButton>(action) ?: return + val button = findViewWithTag<CardView>(action) ?: return val stateForAction = menuState[action] button.isEnabled = stateForAction != ActionState.DISABLED button.isSelected = stateForAction == ActionState.REVERSED @@ -255,7 +201,7 @@ internal class RichTextComposerLayout @JvmOverloads constructor( } } - override fun setTextIfDifferent(text: CharSequence?): Boolean { + private fun setTextIfDifferent(text: CharSequence?): Boolean { return editText.setTextIfDifferent(text) } diff --git a/app/src/main/res/drawable/bg_code_block.xml b/app/src/main/res/drawable/bg_code_block.xml index e171c7d90..ef7227f68 100644 --- a/app/src/main/res/drawable/bg_code_block.xml +++ b/app/src/main/res/drawable/bg_code_block.xml @@ -1,22 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- - ~ Copyright 2018 The Android Open Source Project - ~ Modifications Copyright 2022 New Vector Ltd - ~ - ~ 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. - --> <shape xmlns:android="http://schemas.android.com/apk/res/android"> - <solid android:color="@color/blue"/> - <stroke android:width="@dimen/code_block_border_width" android:color="@color/blue"/> - <corners android:radius="@dimen/code_block_border_radius"/> + <solid android:color="#F4F6FA" /> + <stroke + android:width="@dimen/code_block_border_width" + android:color="#E3E8F0" /> + <corners android:radius="@dimen/code_block_border_radius" /> </shape> diff --git a/app/src/main/res/drawable/bg_rich_text_menu_button.xml b/app/src/main/res/drawable/bg_rich_text_menu_button.xml index 7b436920f..03af9b25b 100644 --- a/app/src/main/res/drawable/bg_rich_text_menu_button.xml +++ b/app/src/main/res/drawable/bg_rich_text_menu_button.xml @@ -1,18 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_hovered="true"> - <shape android:shape="rectangle"> - <corners android:radius="8dp" /> - <solid android:color="@color/blue" /> - </shape> - </item> - <item android:state_selected="true"> - <shape android:shape="rectangle"> - <corners android:radius="8dp" /> - <solid android:color="@color/blue" /> - </shape> - </item> - <item> - <ripple android:color="@color/blue" /> - </item> + <item android:color="@color/blue" android:state_selected="true" /> + <item android:color="@color/red" android:state_enabled="false" /> + <item android:color="@color/post_card_background_color" /> </selector> diff --git a/app/src/main/res/drawable/ic_composer_code_block.xml b/app/src/main/res/drawable/ic_composer_code_block.xml index 25155167b..aaa3dbe78 100644 --- a/app/src/main/res/drawable/ic_composer_code_block.xml +++ b/app/src/main/res/drawable/ic_composer_code_block.xml @@ -1,9 +1,10 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="44dp" android:height="44dp" + android:tint="@color/menu_icon_color" android:viewportWidth="44" android:viewportHeight="44"> <path - android:fillColor="@color/blue" + android:fillColor="@color/white" android:pathData="m18,22c0.7,-0.72 1.4,-1.4 2.1,-2.1 0.68,-0.98 -0.93,-1.9 -1.5,-0.96 -0.87,0.88 -1.8,1.7 -2.6,2.6 -0.45,0.67 0.27,1.2 0.7,1.6 0.75,0.74 1.5,1.5 2.2,2.2 0.98,0.68 1.9,-0.93 0.96,-1.5l-1.9,-1.9zM26.6,22c-0.71,0.72 -1.5,1.4 -2.1,2.2 -0.68,0.98 0.93,1.9 1.5,0.96 0.88,-0.89 1.8,-1.8 2.6,-2.7 0.45,-0.67 -0.27,-1.2 -0.7,-1.6 -0.75,-0.74 -1.5,-1.5 -2.2,-2.2 -0.99,-0.66 -2,0.94 -0.96,1.5l1.9,1.9zM13.6,32c-1.1,0.021 -1.9,-1 -1.7,-2.1 0.005,-5.7 -0.011,-11 0.008,-17 0.088,-1 1.1,-1.7 2.1,-1.5 5.6,0.005 11,-0.011 17,0.008 1,0.088 1.7,1.1 1.5,2.1 -0.005,5.6 0.011,11 -0.008,17 -0.088,1 -1.1,1.7 -2.1,1.5h-17zM13.6,30.3h17v-17h-17v17z" /> </vector> diff --git a/app/src/main/res/drawable/ic_composer_indent.xml b/app/src/main/res/drawable/ic_composer_indent.xml index 775d434e3..cbef73665 100644 --- a/app/src/main/res/drawable/ic_composer_indent.xml +++ b/app/src/main/res/drawable/ic_composer_indent.xml @@ -1,6 +1,7 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="44dp" android:height="44dp" + android:tint="@color/menu_icon_color" android:viewportWidth="44" android:viewportHeight="44"> <group> diff --git a/app/src/main/res/drawable/ic_composer_quote.xml b/app/src/main/res/drawable/ic_composer_quote.xml index 78603bf36..f0b222fac 100644 --- a/app/src/main/res/drawable/ic_composer_quote.xml +++ b/app/src/main/res/drawable/ic_composer_quote.xml @@ -1,18 +1,19 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="36dp" android:height="44dp" + android:tint="@color/menu_icon_color" android:viewportWidth="36" android:viewportHeight="44"> <path - android:pathData="M14.719,14.34C14.813,13.698 14.353,13.104 13.691,13.012C13.028,12.92 12.415,13.366 12.32,14.008L11.512,19.486C11.418,20.128 11.878,20.723 12.54,20.814C13.203,20.906 13.816,20.46 13.911,19.818L14.719,14.34Z" - android:fillColor="@color/blue" /> + android:fillColor="@color/blue" + android:pathData="M14.719,14.34C14.813,13.698 14.353,13.104 13.691,13.012C13.028,12.92 12.415,13.366 12.32,14.008L11.512,19.486C11.418,20.128 11.878,20.723 12.54,20.814C13.203,20.906 13.816,20.46 13.911,19.818L14.719,14.34Z" /> <path - android:pathData="M26.834,24.514C26.928,23.872 26.468,23.277 25.806,23.186C25.143,23.094 24.53,23.54 24.435,24.182L23.628,29.66C23.533,30.302 23.993,30.896 24.656,30.988C25.318,31.08 25.932,30.634 26.026,29.992L26.834,24.514Z" - android:fillColor="@color/blue" /> + android:fillColor="@color/blue" + android:pathData="M26.834,24.514C26.928,23.872 26.468,23.277 25.806,23.186C25.143,23.094 24.53,23.54 24.435,24.182L23.628,29.66C23.533,30.302 23.993,30.896 24.656,30.988C25.318,31.08 25.932,30.634 26.026,29.992L26.834,24.514Z" /> <path - android:pathData="M19.318,13.009C19.983,13.086 20.456,13.671 20.376,14.315L20.354,14.49C20.34,14.602 20.319,14.763 20.293,14.961C20.242,15.358 20.17,15.902 20.088,16.496C19.927,17.667 19.72,19.075 19.553,19.882C19.422,20.518 18.784,20.931 18.128,20.803C17.472,20.676 17.046,20.058 17.177,19.422C17.326,18.701 17.523,17.37 17.687,16.185C17.767,15.599 17.838,15.061 17.889,14.669C17.915,14.473 17.935,14.314 17.949,14.204L17.97,14.034C18.051,13.39 18.654,12.931 19.318,13.009Z" - android:fillColor="@color/blue" /> + android:fillColor="@color/blue" + android:pathData="M19.318,13.009C19.983,13.086 20.456,13.671 20.376,14.315L20.354,14.49C20.34,14.602 20.319,14.763 20.293,14.961C20.242,15.358 20.17,15.902 20.088,16.496C19.927,17.667 19.72,19.075 19.553,19.882C19.422,20.518 18.784,20.931 18.128,20.803C17.472,20.676 17.046,20.058 17.177,19.422C17.326,18.701 17.523,17.37 17.687,16.185C17.767,15.599 17.838,15.061 17.889,14.669C17.915,14.473 17.935,14.314 17.949,14.204L17.97,14.034C18.051,13.39 18.654,12.931 19.318,13.009Z" /> <path - android:pathData="M32.488,24.514C32.582,23.872 32.122,23.277 31.46,23.186C30.797,23.094 30.184,23.54 30.089,24.182L29.281,29.66C29.187,30.302 29.647,30.896 30.309,30.988C30.972,31.08 31.585,30.634 31.68,29.992L32.488,24.514Z" - android:fillColor="@color/blue" /> + android:fillColor="@color/blue" + android:pathData="M32.488,24.514C32.582,23.872 32.122,23.277 31.46,23.186C30.797,23.094 30.184,23.54 30.089,24.182L29.281,29.66C29.187,30.302 29.647,30.896 30.309,30.988C30.972,31.08 31.585,30.634 31.68,29.992L32.488,24.514Z" /> </vector> diff --git a/app/src/main/res/drawable/ic_composer_underlined.xml b/app/src/main/res/drawable/ic_composer_underlined.xml index 2e3d997d7..c0b515adf 100644 --- a/app/src/main/res/drawable/ic_composer_underlined.xml +++ b/app/src/main/res/drawable/ic_composer_underlined.xml @@ -1,12 +1,13 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="44dp" android:height="44dp" + android:tint="@color/menu_icon_color" android:viewportWidth="44" android:viewportHeight="44"> <group> <clip-path android:pathData="M10,10h24v24h-24z" /> <path - android:pathData="M22.79,26.95C25.82,26.56 28,23.84 28,20.79V14.25C28,13.56 27.44,13 26.75,13C26.06,13 25.5,13.56 25.5,14.25V20.9C25.5,22.57 24.37,24.09 22.73,24.42C20.48,24.89 18.5,23.17 18.5,21V14.25C18.5,13.56 17.94,13 17.25,13C16.56,13 16,13.56 16,14.25V21C16,24.57 19.13,27.42 22.79,26.95ZM15,30C15,30.55 15.45,31 16,31H28C28.55,31 29,30.55 29,30C29,29.45 28.55,29 28,29H16C15.45,29 15,29.45 15,30Z" - android:fillColor="@color/blue" /> + android:fillColor="@color/blue" + android:pathData="M22.79,26.95C25.82,26.56 28,23.84 28,20.79V14.25C28,13.56 27.44,13 26.75,13C26.06,13 25.5,13.56 25.5,14.25V20.9C25.5,22.57 24.37,24.09 22.73,24.42C20.48,24.89 18.5,23.17 18.5,21V14.25C18.5,13.56 17.94,13 17.25,13C16.56,13 16,13.56 16,14.25V21C16,24.57 19.13,27.42 22.79,26.95ZM15,30C15,30.55 15.45,31 16,31H28C28.55,31 29,30.55 29,30C29,29.45 28.55,29 28,29H16C15.45,29 15,29.45 15,30Z" /> </group> </vector> diff --git a/app/src/main/res/drawable/ic_composer_unindent.xml b/app/src/main/res/drawable/ic_composer_unindent.xml index f7f383c49..a4a7fc69a 100644 --- a/app/src/main/res/drawable/ic_composer_unindent.xml +++ b/app/src/main/res/drawable/ic_composer_unindent.xml @@ -1,12 +1,13 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="44dp" android:height="44dp" + android:tint="@color/menu_icon_color" android:viewportWidth="44" android:viewportHeight="44"> <group> <clip-path android:pathData="M10,10h24v24h-24z" /> <path - android:pathData="M22,27H30C30.55,27 31,26.55 31,26C31,25.45 30.55,25 30,25H22C21.45,25 21,25.45 21,26C21,26.55 21.45,27 22,27ZM13.35,22.35L16.14,25.14C16.46,25.46 17,25.24 17,24.79V19.21C17,18.76 16.46,18.54 16.15,18.86L13.36,21.65C13.16,21.84 13.16,22.16 13.35,22.35ZM14,31H30C30.55,31 31,30.55 31,30C31,29.45 30.55,29 30,29H14C13.45,29 13,29.45 13,30C13,30.55 13.45,31 14,31ZM13,14C13,14.55 13.45,15 14,15H30C30.55,15 31,14.55 31,14C31,13.45 30.55,13 30,13H14C13.45,13 13,13.45 13,14ZM22,19H30C30.55,19 31,18.55 31,18C31,17.45 30.55,17 30,17H22C21.45,17 21,17.45 21,18C21,18.55 21.45,19 22,19ZM22,23H30C30.55,23 31,22.55 31,22C31,21.45 30.55,21 30,21H22C21.45,21 21,21.45 21,22C21,22.55 21.45,23 22,23Z" - android:fillColor="@color/blue" /> + android:fillColor="@color/blue" + android:pathData="M22,27H30C30.55,27 31,26.55 31,26C31,25.45 30.55,25 30,25H22C21.45,25 21,25.45 21,26C21,26.55 21.45,27 22,27ZM13.35,22.35L16.14,25.14C16.46,25.46 17,25.24 17,24.79V19.21C17,18.76 16.46,18.54 16.15,18.86L13.36,21.65C13.16,21.84 13.16,22.16 13.35,22.35ZM14,31H30C30.55,31 31,30.55 31,30C31,29.45 30.55,29 30,29H14C13.45,29 13,29.45 13,30C13,30.55 13.45,31 14,31ZM13,14C13,14.55 13.45,15 14,15H30C30.55,15 31,14.55 31,14C31,13.45 30.55,13 30,13H14C13.45,13 13,13.45 13,14ZM22,19H30C30.55,19 31,18.55 31,18C31,17.45 30.55,17 30,17H22C21.45,17 21,17.45 21,18C21,18.55 21.45,19 22,19ZM22,23H30C30.55,23 31,22.55 31,22C31,21.45 30.55,21 30,21H22C21.45,21 21,21.45 21,22C21,22.55 21.45,23 22,23Z" /> </group> </vector> diff --git a/app/src/main/res/layout/composer_rich_text_layout.xml b/app/src/main/res/layout/composer_rich_text_layout.xml index bcfd40c54..85c45454c 100644 --- a/app/src/main/res/layout/composer_rich_text_layout.xml +++ b/app/src/main/res/layout/composer_rich_text_layout.xml @@ -17,25 +17,22 @@ android:layout_width="0dp" android:layout_height="0dp" android:layout_marginStart="12dp" + android:background="@null" android:gravity="top" - android:hint="Room message placeholder" + android:hint="@string/enter_your_message_here" android:imeOptions="flagNoExtractUi" android:nextFocusLeft="@id/richTextComposerEditText" android:nextFocusUp="@id/richTextComposerEditText" app:bulletGap="8sp" app:bulletRadius="4sp" app:codeBlockBackgroundDrawable="@drawable/bg_code_block" - app:inlineCodeMultiLineBgLeft="@drawable/bg_inline_code_multi_line_left" - app:inlineCodeMultiLineBgMid="@drawable/bg_inline_code_multi_line_mid" - app:inlineCodeMultiLineBgRight="@drawable/bg_inline_code_multi_line_right" - app:inlineCodeSingleLineBg="@drawable/bg_inline_code_single_line" app:layout_constraintBottom_toTopOf="@id/richTextMenuScrollView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_default="wrap" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0" - tools:text="@tools:sample/lorem/random" /> + tools:text="some text" /> <HorizontalScrollView android:id="@+id/richTextMenuScrollView" diff --git a/app/src/main/res/layout/view_preview_post.xml b/app/src/main/res/layout/view_preview_post.xml index d516d10c3..30c15715b 100644 --- a/app/src/main/res/layout/view_preview_post.xml +++ b/app/src/main/res/layout/view_preview_post.xml @@ -62,26 +62,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - <!-- <io.element.android.wysiwyg.EditorEditText--> - <!-- android:id="@+id/etTextPost"--> - <!-- android:layout_width="0dp"--> - <!-- android:layout_height="0dp"--> - <!-- android:gravity="top"--> - <!-- android:hint="Hint"--> - <!-- app:bulletGap="8sp"--> - <!-- app:bulletRadius="4sp"--> - <!-- app:codeBlockBackgroundDrawable="@drawable/ic_text"--> - <!-- app:inlineCodeMultiLineBgLeft="@drawable/ic_text"--> - <!-- app:inlineCodeMultiLineBgMid="@drawable/ic_text"--> - <!-- app:inlineCodeMultiLineBgRight="@drawable/ic_text"--> - <!-- app:inlineCodeSingleLineBg="@drawable/ic_text"--> - <!-- app:layout_constraintBottom_toTopOf="@id/lMediaContent"--> - <!-- app:layout_constraintEnd_toEndOf="parent"--> - <!-- app:layout_constraintHeight_default="wrap"--> - <!-- app:layout_constraintStart_toStartOf="parent"--> - <!-- app:layout_constraintTop_toTopOf="parent"--> - <!-- tools:text="@tools:sample/lorem/random" />--> - <include android:id="@+id/lMediaContent" diff --git a/app/src/main/res/layout/view_rich_text_menu_button.xml b/app/src/main/res/layout/view_rich_text_menu_button.xml index b99a29da2..ced20d9a8 100644 --- a/app/src/main/res/layout/view_rich_text_menu_button.xml +++ b/app/src/main/res/layout/view_rich_text_menu_button.xml @@ -1,11 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> -<ImageButton xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="@dimen/rich_text_composer_menu_item_size" - android:layout_height="@dimen/rich_text_composer_menu_item_size" - android:layout_marginHorizontal="2dp" - android:background="@drawable/bg_rich_text_menu_button" - app:tint="@color/selector_rich_text_menu_icon" - tools:src="@drawable/ic_composer_bold" - tools:ignore="ContentDescription" /> + android:id="@+id/cvOption" + android:layout_width="48dp" + android:layout_height="48dp" + android:clickable="true" + android:elevation="4dp" + android:focusable="true" + android:foreground="?selectableItemBackground" + app:cardBackgroundColor="@drawable/bg_rich_text_menu_button" + app:cardCornerRadius="8dp" + app:cardUseCompatPadding="true"> + + <ImageView + android:id="@+id/ivIcon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:src="@drawable/ic_mention" /> + +</androidx.cardview.widget.CardView> + -- GitLab