diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt index 43f682de6..4533c8816 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt @@ -114,10 +114,10 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : binding.messageText.text = processedMessageText if (message.lastEditTimestamp != 0L && !message.isDeleted) { - binding.messageType.visibility = View.VISIBLE + binding.messageEditIndicator.visibility = View.VISIBLE binding.messageTime.text = dateUtils.getLocalTimeStringFromTimestamp(message.lastEditTimestamp) } else { - binding.messageType.visibility = View.GONE + binding.messageEditIndicator.visibility = View.GONE binding.messageTime.text = dateUtils.getLocalTimeStringFromTimestamp(message.timestamp) } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt index 7d8f2947f..232b9e433 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt @@ -105,10 +105,10 @@ class OutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessageViewH binding.messageText.text = processedMessageText if (message.lastEditTimestamp != 0L && !message.isDeleted) { - binding.messageType.visibility = View.VISIBLE + binding.messageEditIndicator.visibility = View.VISIBLE binding.messageTime.text = dateUtils.getLocalTimeStringFromTimestamp(message.lastEditTimestamp) } else { - binding.messageType.visibility = View.GONE + binding.messageEditIndicator.visibility = View.GONE binding.messageTime.text = dateUtils.getLocalTimeStringFromTimestamp(message.timestamp) } diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index a83d41756..e05e849df 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -531,8 +531,6 @@ class ChatActivity : context.getSharedPreferences(localClassName, MODE_PRIVATE).apply { val text = getString(roomToken, "") val cursor = getInt(roomToken + CURSOR_KEY, 0) - // val editFlag = getBoolean(EDIT_FLAG, false) - // editableBehaviorSubject.onNext(editFlag) binding.messageInputView.messageInput.setText(text) binding.messageInputView.messageInput.setSelection(cursor) } @@ -559,7 +557,6 @@ class ChatActivity : context.getSharedPreferences(localClassName, MODE_PRIVATE).edit().apply { putString(roomToken, text) putInt(roomToken + CURSOR_KEY, cursor) - // putBoolean(EDIT_FLAG, editableBehaviorSubject.value!!) apply() } } @@ -763,13 +760,13 @@ class ChatActivity : val filters = arrayOfNulls(1) val lengthFilter = CapabilitiesUtilNew.getMessageMaxLength(conversationUser) + binding.editView.editMessageView.visibility = View.GONE + if (editableBehaviorSubject.value!!) { val editableText = Editable.Factory.getInstance().newEditable(editMessage.message) binding.messageInputView.inputEditText.text = editableText binding.messageInputView.inputEditText.setSelection(editableText.length) binding.editView.editMessage.setText(editMessage.message) - } else { - binding.editView.editMessageView.visibility = View.GONE } filters[0] = InputFilter.LengthFilter(lengthFilter) @@ -918,14 +915,12 @@ class ChatActivity : ).show() } } - message.message = messageEdited.ocs?.data?.parentMessage?.text - message.lastEditTimestamp = messageEdited.ocs?.data?.lastEditTimestamp!! - adapter?.update(message) - adapter?.notifyDataSetChanged() clearEditUI() } override fun onError(e: Throwable) { + Log.e(TAG, "failed to edit message", e) + Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show() } override fun onComplete() { @@ -990,6 +985,9 @@ class ChatActivity : binding.messageInputView.findViewById(R.id.editMessageButton)?.let { viewThemeUtils.platform.colorImageView(it, ColorRole.PRIMARY) } + binding.editView.clearEdit.let { + viewThemeUtils.platform.colorImageView(it, ColorRole.PRIMARY) + } } private fun setupActionBar() { @@ -4837,6 +4835,5 @@ class ChatActivity : private const val MILISEC_15: Long = 15 private const val LINEBREAK = "\n" private const val CURSOR_KEY = "_cursor" - private const val EDIT_FLAG = "_editFlag" } } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt index a1a04970d..ea6a9e936 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt @@ -51,6 +51,7 @@ import com.nextcloud.talk.repositories.reactions.ReactionsRepository import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ConversationUtils +import com.nextcloud.talk.utils.DateConstants import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew import com.vanniktech.emoji.EmojiPopup @@ -93,12 +94,9 @@ class MessageActionsDialog( private val messageHasRegularText = ChatMessage.MessageType.REGULAR_TEXT_MESSAGE == message .getCalculateMessageType() && !message.isDeleted - private val isOlderThanTwentyFourHours = message.createdAt.before( - Date( - System.currentTimeMillis() - - AGE_THRESHOLD_FOR_EDIT_MESSAGE - ) - ) + private val isOlderThanTwentyFourHours = message + .createdAt + .before(Date(System.currentTimeMillis() - AGE_THRESHOLD_FOR_EDIT_MESSAGE)) private val isUserAllowedToEdit = chatActivity.userAllowedByPrivilages(message) @@ -375,7 +373,11 @@ class MessageActionsDialog( private fun initMenuEditorDetails(showEditorDetails: Boolean) { if (showEditorDetails) { - val editedTime = dateUtils.getLocalTimeStringFromTimestamp(message.lastEditTimestamp) + val editedTime = dateUtils.getLocalDateTimeStringFromTimestamp( + message.lastEditTimestamp * + DateConstants.SECOND_DIVIDER + ) + val editorName = context.getString(R.string.nc_edited_by) + message.lastEditActorDisplayName dialogMessageActionsBinding.editorName.setText(editorName) dialogMessageActionsBinding.editedTime.setText(editedTime) diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index 1ed31932f..b54e3de07 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -263,7 +263,9 @@ android:id="@+id/editView" layout="@layout/edit_message_view" android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:layout_marginEnd="6dp" > + + android:textSize="15sp" + android:textColor = "@color/grey_600"/> + android:textSize="15sp" + android:textColor ="@color/grey_600"/> diff --git a/app/src/main/res/layout/edit_message_view.xml b/app/src/main/res/layout/edit_message_view.xml index d314b4888..7e55f1e8d 100644 --- a/app/src/main/res/layout/edit_message_view.xml +++ b/app/src/main/res/layout/edit_message_view.xml @@ -7,7 +7,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" - android:id = "@+id/edit_message_view" + android:id = "@+id/editMessageView" android:orientation = "horizontal"> + android:gravity = "top|end"> diff --git a/app/src/main/res/layout/item_custom_incoming_text_message.xml b/app/src/main/res/layout/item_custom_incoming_text_message.xml index 57313c387..5a861f62c 100644 --- a/app/src/main/res/layout/item_custom_incoming_text_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_text_message.xml @@ -95,11 +95,14 @@ diff --git a/app/src/main/res/layout/item_custom_outcoming_text_message.xml b/app/src/main/res/layout/item_custom_outcoming_text_message.xml index 9383c9dc3..74457e9be 100644 --- a/app/src/main/res/layout/item_custom_outcoming_text_message.xml +++ b/app/src/main/res/layout/item_custom_outcoming_text_message.xml @@ -73,6 +73,20 @@ app:layout_wrapBefore="false" tools:text="10:35" /> + + + - - - - - -