Skip to content

Commit c9c7af6

Browse files
committed
Simplify the management of inReplyToEventTimelineItem
1 parent a192a88 commit c9c7af6

File tree

4 files changed

+3
-29
lines changed
  • features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer
  • libraries/matrix
    • api/src/main/kotlin/io/element/android/libraries/matrix/api/room
    • impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room
    • test/src/main/kotlin/io/element/android/libraries/matrix/test/room

4 files changed

+3
-29
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import android.Manifest
2020
import android.annotation.SuppressLint
2121
import android.net.Uri
2222
import androidx.compose.runtime.Composable
23-
import androidx.compose.runtime.DisposableEffect
2423
import androidx.compose.runtime.LaunchedEffect
2524
import androidx.compose.runtime.MutableState
2625
import androidx.compose.runtime.getValue
@@ -152,23 +151,12 @@ class MessageComposerPresenter @Inject constructor(
152151
}
153152
}
154153

155-
DisposableEffect(Unit) {
156-
onDispose {
157-
appCoroutineScope.launch {
158-
room.exitReplyMode()
159-
}
160-
}
161-
}
162-
163154
fun handleEvents(event: MessageComposerEvents) {
164155
when (event) {
165156
MessageComposerEvents.ToggleFullScreenState -> isFullScreen.value = !isFullScreen.value
166157
MessageComposerEvents.CloseSpecialMode -> {
167158
richTextEditorState.setHtml("")
168159
messageComposerContext.composerMode = MessageComposerMode.Normal("")
169-
appCoroutineScope.launch {
170-
room.exitReplyMode()
171-
}
172160
}
173161
is MessageComposerEvents.SendMessage -> appCoroutineScope.sendMessage(
174162
message = event.message,
@@ -177,11 +165,9 @@ class MessageComposerPresenter @Inject constructor(
177165
)
178166
is MessageComposerEvents.SetMode -> {
179167
messageComposerContext.composerMode = event.composerMode
180-
appCoroutineScope.launch {
181-
if (event.composerMode is MessageComposerMode.Reply) {
168+
if (event.composerMode is MessageComposerMode.Reply) {
169+
appCoroutineScope.launch {
182170
room.enterReplyMode(event.composerMode.eventId)
183-
} else {
184-
room.exitReplyMode()
185171
}
186172
}
187173
}

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,6 @@ interface MatrixRoom : Closeable {
9191

9292
suspend fun enterReplyMode(eventId: EventId): Result<Unit>
9393

94-
suspend fun exitReplyMode(): Result<Unit>
95-
9694
suspend fun replyMessage(eventId: EventId, body: String, htmlBody: String?): Result<Unit>
9795

9896
suspend fun redactEvent(eventId: EventId, reason: String? = null): Result<Unit>

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ class RustMatrixRoom(
139139
roomCoroutineScope.cancel()
140140
innerRoom.destroy()
141141
roomListItem.destroy()
142+
inReplyToEventTimelineItem?.destroy()
142143
}
143144

144145
override val name: String?
@@ -272,13 +273,6 @@ class RustMatrixRoom(
272273
}
273274
}
274275

275-
override suspend fun exitReplyMode(): Result<Unit> = withContext(roomDispatcher) {
276-
runCatching {
277-
inReplyToEventTimelineItem?.destroy()
278-
inReplyToEventTimelineItem = null
279-
}
280-
}
281-
282276
override suspend fun replyMessage(eventId: EventId, body: String, htmlBody: String?): Result<Unit> = withContext(roomDispatcher) {
283277
runCatching {
284278
val inReplyTo = inReplyToEventTimelineItem ?: innerRoom.getEventTimelineItemByEventId(eventId.value)

libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,6 @@ class FakeMatrixRoom(
212212
return Result.success(Unit)
213213
}
214214

215-
override suspend fun exitReplyMode(): Result<Unit> {
216-
return Result.success(Unit)
217-
}
218-
219215
override suspend fun replyMessage(eventId: EventId, body: String, htmlBody: String?): Result<Unit> {
220216
replyMessageParameter = body to htmlBody
221217
return Result.success(Unit)

0 commit comments

Comments
 (0)