Add parameter to functions which create states, to avoid copy.
This commit is contained in:
parent
18c1335897
commit
c3f6dbd1c1
2 changed files with 43 additions and 31 deletions
|
|
@ -19,6 +19,7 @@ package io.element.android.features.messages.impl
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.features.messages.impl.actionlist.anActionListState
|
import io.element.android.features.messages.impl.actionlist.anActionListState
|
||||||
import io.element.android.features.messages.impl.messagecomposer.AttachmentsState
|
import io.element.android.features.messages.impl.messagecomposer.AttachmentsState
|
||||||
|
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
|
||||||
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
||||||
import io.element.android.features.messages.impl.timeline.aTimelineItemList
|
import io.element.android.features.messages.impl.timeline.aTimelineItemList
|
||||||
import io.element.android.features.messages.impl.timeline.aTimelineState
|
import io.element.android.features.messages.impl.timeline.aTimelineState
|
||||||
|
|
@ -27,6 +28,7 @@ import io.element.android.features.messages.impl.timeline.components.reactionsum
|
||||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||||
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.RetrySendMenuState
|
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.RetrySendMenuState
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
||||||
|
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerState
|
||||||
import io.element.android.features.messages.impl.voicemessages.composer.aVoiceMessageComposerState
|
import io.element.android.features.messages.impl.voicemessages.composer.aVoiceMessageComposerState
|
||||||
import io.element.android.features.messages.impl.voicemessages.composer.aVoiceMessagePreviewState
|
import io.element.android.features.messages.impl.voicemessages.composer.aVoiceMessagePreviewState
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
|
|
@ -42,60 +44,70 @@ open class MessagesStateProvider : PreviewParameterProvider<MessagesState> {
|
||||||
override val values: Sequence<MessagesState>
|
override val values: Sequence<MessagesState>
|
||||||
get() = sequenceOf(
|
get() = sequenceOf(
|
||||||
aMessagesState(),
|
aMessagesState(),
|
||||||
aMessagesState().copy(hasNetworkConnection = false),
|
aMessagesState(hasNetworkConnection = false),
|
||||||
aMessagesState().copy(composerState = aMessageComposerState().copy(showAttachmentSourcePicker = true)),
|
aMessagesState(composerState = aMessageComposerState(showAttachmentSourcePicker = true)),
|
||||||
aMessagesState().copy(userHasPermissionToSendMessage = false),
|
aMessagesState(userHasPermissionToSendMessage = false),
|
||||||
aMessagesState().copy(showReinvitePrompt = true),
|
aMessagesState(showReinvitePrompt = true),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
roomName = AsyncData.Uninitialized,
|
roomName = AsyncData.Uninitialized,
|
||||||
roomAvatar = AsyncData.Uninitialized,
|
roomAvatar = AsyncData.Uninitialized,
|
||||||
),
|
),
|
||||||
aMessagesState().copy(composerState = aMessageComposerState().copy(showTextFormatting = true)),
|
aMessagesState(composerState = aMessageComposerState(showTextFormatting = true)),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
enableVoiceMessages = true,
|
enableVoiceMessages = true,
|
||||||
voiceMessageComposerState = aVoiceMessageComposerState(showPermissionRationaleDialog = true),
|
voiceMessageComposerState = aVoiceMessageComposerState(showPermissionRationaleDialog = true),
|
||||||
),
|
),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
composerState = aMessageComposerState().copy(
|
composerState = aMessageComposerState(
|
||||||
attachmentsState = AttachmentsState.Sending.Processing(persistentListOf())
|
attachmentsState = AttachmentsState.Sending.Processing(persistentListOf())
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
composerState = aMessageComposerState().copy(
|
composerState = aMessageComposerState(
|
||||||
attachmentsState = AttachmentsState.Sending.Uploading(0.33f)
|
attachmentsState = AttachmentsState.Sending.Uploading(0.33f)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
callState = RoomCallState.ONGOING,
|
callState = RoomCallState.ONGOING,
|
||||||
),
|
),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
enableVoiceMessages = true,
|
enableVoiceMessages = true,
|
||||||
voiceMessageComposerState = aVoiceMessageComposerState(
|
voiceMessageComposerState = aVoiceMessageComposerState(
|
||||||
voiceMessageState = aVoiceMessagePreviewState(),
|
voiceMessageState = aVoiceMessagePreviewState(),
|
||||||
showSendFailureDialog = true
|
showSendFailureDialog = true
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aMessagesState().copy(
|
aMessagesState(
|
||||||
callState = RoomCallState.DISABLED,
|
callState = RoomCallState.DISABLED,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aMessagesState() = MessagesState(
|
fun aMessagesState(
|
||||||
roomId = RoomId("!id:domain"),
|
roomName: AsyncData<String> = AsyncData.Success("Room name"),
|
||||||
roomName = AsyncData.Success("Room name"),
|
roomAvatar: AsyncData<AvatarData> = AsyncData.Success(AvatarData("!id:domain", "Room name", size = AvatarSize.TimelineRoom)),
|
||||||
roomAvatar = AsyncData.Success(AvatarData("!id:domain", "Room name", size = AvatarSize.TimelineRoom)),
|
userHasPermissionToSendMessage: Boolean = true,
|
||||||
userHasPermissionToSendMessage = true,
|
composerState: MessageComposerState = aMessageComposerState(
|
||||||
userHasPermissionToRedactOwn = false,
|
|
||||||
userHasPermissionToRedactOther = false,
|
|
||||||
userHasPermissionToSendReaction = true,
|
|
||||||
composerState = aMessageComposerState().copy(
|
|
||||||
richTextEditorState = RichTextEditorState("Hello", initialFocus = true),
|
richTextEditorState = RichTextEditorState("Hello", initialFocus = true),
|
||||||
isFullScreen = false,
|
isFullScreen = false,
|
||||||
mode = MessageComposerMode.Normal,
|
mode = MessageComposerMode.Normal,
|
||||||
),
|
),
|
||||||
voiceMessageComposerState = aVoiceMessageComposerState(),
|
voiceMessageComposerState: VoiceMessageComposerState = aVoiceMessageComposerState(),
|
||||||
timelineState = aTimelineState().copy(
|
hasNetworkConnection: Boolean = true,
|
||||||
|
showReinvitePrompt: Boolean = false,
|
||||||
|
enableVoiceMessages: Boolean = true,
|
||||||
|
callState: RoomCallState = RoomCallState.ENABLED,
|
||||||
|
) = MessagesState(
|
||||||
|
roomId = RoomId("!id:domain"),
|
||||||
|
roomName = roomName,
|
||||||
|
roomAvatar = roomAvatar,
|
||||||
|
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||||
|
userHasPermissionToRedactOwn = false,
|
||||||
|
userHasPermissionToRedactOther = false,
|
||||||
|
userHasPermissionToSendReaction = true,
|
||||||
|
composerState = composerState,
|
||||||
|
voiceMessageComposerState = voiceMessageComposerState,
|
||||||
|
timelineState = aTimelineState(
|
||||||
timelineItems = aTimelineItemList(aTimelineItemTextContent()),
|
timelineItems = aTimelineItemList(aTimelineItemTextContent()),
|
||||||
),
|
),
|
||||||
retrySendMenuState = RetrySendMenuState(
|
retrySendMenuState = RetrySendMenuState(
|
||||||
|
|
@ -116,13 +128,13 @@ fun aMessagesState() = MessagesState(
|
||||||
target = null,
|
target = null,
|
||||||
eventSink = {},
|
eventSink = {},
|
||||||
),
|
),
|
||||||
hasNetworkConnection = true,
|
hasNetworkConnection = hasNetworkConnection,
|
||||||
snackbarMessage = null,
|
snackbarMessage = null,
|
||||||
inviteProgress = AsyncData.Uninitialized,
|
inviteProgress = AsyncData.Uninitialized,
|
||||||
showReinvitePrompt = false,
|
showReinvitePrompt = showReinvitePrompt,
|
||||||
enableTextFormatting = true,
|
enableTextFormatting = true,
|
||||||
enableVoiceMessages = true,
|
enableVoiceMessages = enableVoiceMessages,
|
||||||
callState = RoomCallState.ENABLED,
|
callState = callState,
|
||||||
appName = "Element",
|
appName = "Element",
|
||||||
eventSink = {}
|
eventSink = {}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ open class MessageComposerStateProvider : PreviewParameterProvider<MessageCompos
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aMessageComposerState(
|
fun aMessageComposerState(
|
||||||
composerState: RichTextEditorState = RichTextEditorState(""),
|
richTextEditorState: RichTextEditorState = RichTextEditorState(""),
|
||||||
isFullScreen: Boolean = false,
|
isFullScreen: Boolean = false,
|
||||||
mode: MessageComposerMode = MessageComposerMode.Normal,
|
mode: MessageComposerMode = MessageComposerMode.Normal,
|
||||||
showTextFormatting: Boolean = false,
|
showTextFormatting: Boolean = false,
|
||||||
|
|
@ -42,7 +42,7 @@ fun aMessageComposerState(
|
||||||
attachmentsState: AttachmentsState = AttachmentsState.None,
|
attachmentsState: AttachmentsState = AttachmentsState.None,
|
||||||
memberSuggestions: ImmutableList<MentionSuggestion> = persistentListOf(),
|
memberSuggestions: ImmutableList<MentionSuggestion> = persistentListOf(),
|
||||||
) = MessageComposerState(
|
) = MessageComposerState(
|
||||||
richTextEditorState = composerState,
|
richTextEditorState = richTextEditorState,
|
||||||
isFullScreen = isFullScreen,
|
isFullScreen = isFullScreen,
|
||||||
mode = mode,
|
mode = mode,
|
||||||
showTextFormatting = showTextFormatting,
|
showTextFormatting = showTextFormatting,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue