Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ interface ChatComponent {
fun onVideoRecorded(file: File)
fun onForwardMessage(message: MessageModel)
fun onForwardSelectedMessages()
fun onRepeatMessage(message: MessageModel)
fun onDeleteMessage(message: MessageModel, revoke: Boolean = false)
fun onEditMessage(message: MessageModel)
fun onCancelEdit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ interface ChatStore : Store<ChatStore.Intent, ChatComponent.State, ChatStore.Lab
data class VideoRecorded(val file: File) : Intent()
data class ForwardMessage(val message: MessageModel) : Intent()
object ForwardSelectedMessages : Intent()
data class RepeatMessage(val message: MessageModel) : Intent()
data class DeleteMessage(val message: MessageModel, val revoke: Boolean = false) : Intent()
data class EditMessage(val message: MessageModel) : Intent()
object CancelEdit : Intent()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import org.monogram.presentation.features.chats.currentChat.impl.handlePinMessag
import org.monogram.presentation.features.chats.currentChat.impl.handlePinnedMessageClick
import org.monogram.presentation.features.chats.currentChat.impl.handlePollOptionClick
import org.monogram.presentation.features.chats.currentChat.impl.handleRemoveFromAdBlockWhitelist
import org.monogram.presentation.features.chats.currentChat.impl.handleRepeatMessage
import org.monogram.presentation.features.chats.currentChat.impl.handleReplyMarkupButtonClick
import org.monogram.presentation.features.chats.currentChat.impl.handleReportMessage
import org.monogram.presentation.features.chats.currentChat.impl.handleReportReasonSelected
Expand Down Expand Up @@ -148,6 +149,7 @@ class ChatStoreFactory(
component.handleClearSelection()
}
}
is Intent.RepeatMessage -> component.handleRepeatMessage(intent.message)

is Intent.DeleteMessage -> component.handleDeleteMessage(intent.message, intent.revoke)
is Intent.EditMessage -> component._state.update {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,8 @@ class DefaultChatComponent(

override fun onForwardSelectedMessages() = store.accept(ChatStore.Intent.ForwardSelectedMessages)

override fun onRepeatMessage(message: MessageModel) = store.accept(ChatStore.Intent.RepeatMessage(message))

override fun onDeleteMessage(message: MessageModel, revoke: Boolean) =
store.accept(ChatStore.Intent.DeleteMessage(message, revoke))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,11 @@ fun ChatMessageOptionsMenu(
}
onDismiss()
},
onDismiss = onDismiss
onRepeat = {
component.onRepeatMessage(selectedMessage)
onDismiss()
},
onDismiss = onDismiss,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,3 +345,9 @@ internal fun DefaultChatComponent.handleCopyLink(localClipboard: Clipboard) {
}
}
}

internal fun DefaultChatComponent.handleRepeatMessage(message: MessageModel) {
scope.launch {
repositoryMessage.forwardMessage(chatId, chatId, message.id)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ fun MessageOptionsMenu(
onReport: () -> Unit = {},
onBlock: () -> Unit = {},
onRestrict: () -> Unit = {},
onDismiss: () -> Unit
onRepeat: () -> Unit,
onDismiss: () -> Unit,
) {
val density = LocalDensity.current
val configuration = LocalConfiguration.current
Expand Down Expand Up @@ -657,6 +658,14 @@ fun MessageOptionsMenu(
)
}

if (sections.hasForwardAction) {
InternalMenuOptionItem(
icon = Icons.Rounded.PlusOne,
text = stringResource(R.string.menu_repeat),
onClick = { animateOutAndDismiss(onRepeat) }
)
}

if (sections.hasDownloadAction) {
InternalMenuOptionItem(
icon = Icons.Rounded.Download,
Expand Down
1 change: 1 addition & 0 deletions presentation/src/main/res/values-zh-rCN/string.xml
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@
<string name="menu_pin">置顶</string>
<string name="menu_unpin">取消置顶</string>
<string name="menu_forward">转发</string>
<string name="menu_repeat">+1</string>
<string name="menu_select">选择</string>
<string name="menu_more">更多</string>
<string name="menu_delete">删除</string>
Expand Down
1 change: 1 addition & 0 deletions presentation/src/main/res/values/string.xml
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@
<string name="menu_pin">Pin</string>
<string name="menu_unpin">Unpin</string>
<string name="menu_forward">Forward</string>
<string name="menu_repeat">+1</string>
<string name="menu_select">Select</string>
<string name="menu_more">More</string>
<string name="menu_delete">Delete</string>
Expand Down