Skip to content

Commit 9c74b5c

Browse files
chore(detekt): shorten number of input paramters
AI-assistant: Copilot 1.7.1-243 (Claude Sonnet 4.6) Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
1 parent 7c2ba3a commit 9c74b5c

4 files changed

Lines changed: 145 additions & 126 deletions

File tree

app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ import com.nextcloud.talk.ui.PinnedMessageView
155155
import com.nextcloud.talk.ui.PlaybackSpeed
156156
import com.nextcloud.talk.ui.StatusDrawable
157157
import com.nextcloud.talk.ui.chat.ChatView
158+
import com.nextcloud.talk.ui.chat.ChatViewCallbacks
159+
import com.nextcloud.talk.ui.chat.ChatViewState
158160
import com.nextcloud.talk.ui.dialog.DateTimeCompose
159161
import com.nextcloud.talk.ui.dialog.FileAttachmentPreviewFragment
160162
import com.nextcloud.talk.ui.dialog.GetPinnedOptionsDialog
@@ -612,25 +614,29 @@ class ChatActivity :
612614
Log.d(TAG, "isOneToOneConversation=" + isOneToOneConversation)
613615

614616
ChatView(
615-
chatItems = uiState.items,
616-
isOneToOneConversation = isOneToOneConversation,
617-
conversationThreadId = conversationThreadId,
618-
onLoadMore = { loadMoreMessagesCompose() },
619-
advanceLocalLastReadMessageIfNeeded = { advanceLocalLastReadMessageIfNeeded(it) },
620-
updateRemoteLastReadMessageIfNeeded = { updateRemoteLastReadMessageIfNeeded() },
621-
onLongClick = { openMessageActionsDialog(it) },
622-
onSwipeReply = { handleSwipeToReply(it) },
623-
hasChatPermission = this::participantPermissions.isInitialized &&
624-
participantPermissions.hasChatPermission(),
625-
onFileClick = { downloadAndOpenFile(it) },
626-
onPollClick = { pollId, pollName -> openPollDialog(pollId, pollName) },
627-
onVoicePlayPauseClick = { onVoicePlayPauseClickCompose(it) },
628-
onVoiceSeek = { _, progress -> chatViewModel.seekToMediaPlayer(progress) },
629-
onVoiceSpeedClick = { onVoiceSpeedClickCompose(it) },
630-
onReactionClick = { messageId, emoji -> handleReactionClick(messageId, emoji) },
631-
onReactionLongClick = { messageId -> openReactionsDialog(messageId) },
632-
onOpenThreadClick = { messageId -> openThread(messageId.toLong()) },
633-
onLoadQuotedMessageClick = { messageId -> onLoadQuotedMessage(messageId) },
617+
state = ChatViewState(
618+
chatItems = uiState.items,
619+
isOneToOneConversation = isOneToOneConversation,
620+
conversationThreadId = conversationThreadId,
621+
hasChatPermission = this::participantPermissions.isInitialized &&
622+
participantPermissions.hasChatPermission()
623+
),
624+
callbacks = ChatViewCallbacks(
625+
onLoadMore = { loadMoreMessagesCompose() },
626+
advanceLocalLastReadMessageIfNeeded = { advanceLocalLastReadMessageIfNeeded(it) },
627+
updateRemoteLastReadMessageIfNeeded = { updateRemoteLastReadMessageIfNeeded() },
628+
onLongClick = { openMessageActionsDialog(it) },
629+
onSwipeReply = { handleSwipeToReply(it) },
630+
onFileClick = { downloadAndOpenFile(it) },
631+
onPollClick = { pollId, pollName -> openPollDialog(pollId, pollName) },
632+
onVoicePlayPauseClick = { onVoicePlayPauseClickCompose(it) },
633+
onVoiceSeek = { _, progress -> chatViewModel.seekToMediaPlayer(progress) },
634+
onVoiceSpeedClick = { onVoiceSpeedClickCompose(it) },
635+
onReactionClick = { messageId, emoji -> handleReactionClick(messageId, emoji) },
636+
onReactionLongClick = { messageId -> openReactionsDialog(messageId) },
637+
onOpenThreadClick = { messageId -> openThread(messageId.toLong()) },
638+
onLoadQuotedMessageClick = { messageId -> onLoadQuotedMessage(messageId) }
639+
),
634640
listState = listState
635641
)
636642
}

app/src/main/java/com/nextcloud/talk/ui/chat/ChatMessageView.kt

Lines changed: 49 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,32 @@ private val previewWaveform = listOf(
4848
private const val QUOTE_HIGHLIGHT_HOLD_MILLIS = 700L
4949
private const val QUOTE_HIGHLIGHT_FADE_OUT_MILLIS = 1500
5050

51+
data class ChatMessageContext(
52+
val isOneToOneConversation: Boolean = false,
53+
val conversationThreadId: Long? = null,
54+
val hasChatPermission: Boolean = true
55+
)
56+
57+
class ChatMessageCallbacks(
58+
val onLongClick: ((Int) -> Unit?)? = null,
59+
val onSwipeReply: ((Int) -> Unit)? = null,
60+
val onFileClick: (Int) -> Unit = {},
61+
val onPollClick: (String, String) -> Unit = { _, _ -> },
62+
val onVoicePlayPauseClick: (Int) -> Unit = {},
63+
val onVoiceSeek: (Int, Int) -> Unit = { _, _ -> },
64+
val onVoiceSpeedClick: (Int) -> Unit = {},
65+
val onReactionClick: (Int, String) -> Unit = { _, _ -> },
66+
val onReactionLongClick: (Int) -> Unit = {},
67+
val onOpenThreadClick: (Int) -> Unit = {},
68+
val onQuotedMessageClick: (Int) -> Unit = {}
69+
)
70+
5171
@Composable
5272
fun ChatMessageView(
5373
message: ChatMessageUi,
5474
highlightTriggerKey: Long? = null,
55-
isOneToOneConversation: Boolean = false,
56-
conversationThreadId: Long? = null,
57-
onLongClick: ((Int) -> Unit?)? = null,
58-
onSwipeReply: ((Int) -> Unit)? = null,
59-
hasChatPermission: Boolean = true,
60-
onFileClick: (Int) -> Unit = {},
61-
onPollClick: (pollId: String, pollName: String) -> Unit = { _, _ -> },
62-
onVoicePlayPauseClick: (Int) -> Unit = {},
63-
onVoiceSeek: (messageId: Int, progress: Int) -> Unit = { _, _ -> },
64-
onVoiceSpeedClick: (Int) -> Unit = {},
65-
onReactionClick: (messageId: Int, emoji: String) -> Unit = { _, _ -> },
66-
onReactionLongClick: (messageId: Int) -> Unit = {},
67-
onOpenThreadClick: (messageId: Int) -> Unit = {},
68-
onQuotedMessageClick: (messageId: Int) -> Unit = {}
75+
context: ChatMessageContext = ChatMessageContext(),
76+
callbacks: ChatMessageCallbacks = ChatMessageCallbacks()
6977
) {
7078
val interactionSource = remember { MutableInteractionSource() }
7179
val lastHandledHighlightKey = rememberSaveable(message.id) { mutableStateOf<Long?>(null) }
@@ -84,30 +92,30 @@ fun ChatMessageView(
8492
}
8593

8694
CompositionLocalProvider(
87-
LocalReactionClickHandler provides onReactionClick,
88-
LocalReactionLongClickHandler provides onReactionLongClick,
89-
LocalOpenThreadHandler provides onOpenThreadClick,
90-
LocalQuotedMessageClickHandler provides onQuotedMessageClick
95+
LocalReactionClickHandler provides callbacks.onReactionClick,
96+
LocalReactionLongClickHandler provides callbacks.onReactionLongClick,
97+
LocalOpenThreadHandler provides callbacks.onOpenThreadClick,
98+
LocalQuotedMessageClickHandler provides callbacks.onQuotedMessageClick
9199
) {
92100
SwipeToReplyContainer(
93-
replyable = message.replyable && hasChatPermission,
94-
onSwipeReply = { onSwipeReply?.invoke(message.id) }
101+
replyable = message.replyable && context.hasChatPermission,
102+
onSwipeReply = { callbacks.onSwipeReply?.invoke(message.id) }
95103
) {
96104
Box(
97105
modifier = Modifier
98106
.combinedClickable(
99107
interactionSource = interactionSource,
100108
indication = ripple(),
101-
onClick = { onLongClick?.invoke(message.id) },
102-
onLongClick = { onLongClick?.invoke(message.id) }
109+
onClick = { callbacks.onLongClick?.invoke(message.id) },
110+
onLongClick = { callbacks.onLongClick?.invoke(message.id) }
103111
)
104112
) {
105113
when (val content = message.content) {
106114
MessageTypeContent.RegularText -> {
107115
TextMessage(
108116
uiMessage = message,
109-
isOneToOneConversation = isOneToOneConversation,
110-
conversationThreadId = conversationThreadId
117+
isOneToOneConversation = context.isOneToOneConversation,
118+
conversationThreadId = context.conversationThreadId
111119
)
112120
}
113121

@@ -119,58 +127,58 @@ fun ChatMessageView(
119127
MediaMessage(
120128
typeContent = content,
121129
message = message,
122-
isOneToOneConversation = isOneToOneConversation,
123-
conversationThreadId = conversationThreadId,
124-
onImageClick = onFileClick
130+
isOneToOneConversation = context.isOneToOneConversation,
131+
conversationThreadId = context.conversationThreadId,
132+
onImageClick = callbacks.onFileClick
125133
)
126134
}
127135

128136
is MessageTypeContent.LinkPreview -> {
129137
LinkMessage(
130138
typeContent = content,
131139
message = message,
132-
isOneToOneConversation = isOneToOneConversation,
133-
conversationThreadId = conversationThreadId
140+
isOneToOneConversation = context.isOneToOneConversation,
141+
conversationThreadId = context.conversationThreadId
134142
)
135143
}
136144

137145
is MessageTypeContent.Geolocation -> {
138146
GeolocationMessage(
139147
typeContent = content,
140148
message = message,
141-
isOneToOneConversation = isOneToOneConversation,
142-
conversationThreadId = conversationThreadId
149+
isOneToOneConversation = context.isOneToOneConversation,
150+
conversationThreadId = context.conversationThreadId
143151
)
144152
}
145153

146154
is MessageTypeContent.Voice -> {
147155
VoiceMessage(
148156
typeContent = content,
149157
message = message,
150-
isOneToOneConversation = isOneToOneConversation,
151-
conversationThreadId = conversationThreadId,
152-
onPlayPauseClick = onVoicePlayPauseClick,
153-
onSeek = onVoiceSeek,
154-
onSpeedClick = onVoiceSpeedClick
158+
isOneToOneConversation = context.isOneToOneConversation,
159+
conversationThreadId = context.conversationThreadId,
160+
onPlayPauseClick = callbacks.onVoicePlayPauseClick,
161+
onSeek = callbacks.onVoiceSeek,
162+
onSpeedClick = callbacks.onVoiceSpeedClick
155163
)
156164
}
157165

158166
is MessageTypeContent.Poll -> {
159167
PollMessage(
160168
typeContent = content,
161169
message = message,
162-
isOneToOneConversation = isOneToOneConversation,
163-
conversationThreadId = conversationThreadId,
164-
onPollClick = onPollClick
170+
isOneToOneConversation = context.isOneToOneConversation,
171+
conversationThreadId = context.conversationThreadId,
172+
onPollClick = callbacks.onPollClick
165173
)
166174
}
167175

168176
is MessageTypeContent.Deck -> {
169177
DeckMessage(
170178
typeContent = content,
171179
message = message,
172-
isOneToOneConversation = isOneToOneConversation,
173-
conversationThreadId = conversationThreadId
180+
isOneToOneConversation = context.isOneToOneConversation,
181+
conversationThreadId = context.conversationThreadId
174182
)
175183
}
176184

0 commit comments

Comments
 (0)