Draft : also clear draft when composer is blank
This commit is contained in:
parent
c360e6b4c8
commit
113e8ecffa
5 changed files with 21 additions and 15 deletions
|
|
@ -21,5 +21,5 @@ import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
|||
|
||||
interface ComposerDraftService {
|
||||
suspend fun loadDraft(roomId: RoomId): ComposerDraft?
|
||||
suspend fun saveDraft(roomId: RoomId, draft: ComposerDraft)
|
||||
suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,19 @@ class DefaultComposerDraftService @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun saveDraft(roomId: RoomId, draft: ComposerDraft) {
|
||||
override suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?) {
|
||||
client.getRoom(roomId)?.use { room ->
|
||||
room.saveComposerDraft(draft)
|
||||
val updateDraftResult = if (draft == null) {
|
||||
room.clearComposerDraft()
|
||||
} else {
|
||||
room.saveComposerDraft(draft)
|
||||
}
|
||||
updateDraftResult
|
||||
.onFailure {
|
||||
Timber.e(it, "Failed to save composer draft for room $roomId")
|
||||
Timber.e(it, "Failed to update composer draft for room $roomId")
|
||||
}
|
||||
.onSuccess {
|
||||
Timber.d("Saved composer draft for room $roomId")
|
||||
Timber.d("Updated composer draft for room $roomId")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -582,16 +582,16 @@ class MessageComposerPresenter @Inject constructor(
|
|||
}
|
||||
is MessageComposerMode.Reply -> ComposerDraftType.Reply(mode.eventId)
|
||||
}
|
||||
if (draftType == null || markdown.isBlank()) {
|
||||
return@launch
|
||||
val composerDraft = if (draftType == null || markdown.isBlank()) {
|
||||
null
|
||||
} else {
|
||||
val composerDraft = ComposerDraft(
|
||||
ComposerDraft(
|
||||
draftType = draftType,
|
||||
htmlText = html,
|
||||
plainText = markdown,
|
||||
)
|
||||
draftService.saveDraft(room.roomId, composerDraft)
|
||||
}
|
||||
draftService.updateDraft(room.roomId, composerDraft)
|
||||
}
|
||||
|
||||
private fun CoroutineScope.toggleTextFormatting(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue