diff --git a/CHANGES.md b/CHANGES.md index de8d93f08b..85ed3f05e3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,8 +8,8 @@ Improvements 🙌: - Open an existing DM instead of creating a new one (#2319) Bugfix 🐛: - - Fix issue when updating the avatar of a room - Exclude yourself when decorating rooms which are direct or don't have more than 2 users (#2370) + - Fix issue when restoring draft after sharing (#2287) - Fix issue when updating the avatar of a room (new avatar vanishing) - Discard change dialog displayed by mistake when avatar has been updated diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt index 9efad1081f..102a0673d4 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt @@ -164,7 +164,7 @@ class RoomDetailViewModel @AssistedInject constructor( getUnreadState() observeSyncState() observeEventDisplayedActions() - getDraftIfAny() + loadDraftIfAny() observeUnreadState() observeMyRoomMember() observeActiveRoomWidgets() @@ -495,8 +495,8 @@ class RoomDetailViewModel @AssistedInject constructor( } } - private fun getDraftIfAny() { - val currentDraft = room.getDraft() ?: return + private fun loadDraftIfAny() { + val currentDraft = room.getDraft() setState { copy( // Create a sendMode from a draft and retrieve the TimelineEvent @@ -517,6 +517,7 @@ class RoomDetailViewModel @AssistedInject constructor( SendMode.EDIT(timelineEvent, currentDraft.text) } } + else -> null } ?: SendMode.REGULAR("", fromSharing = false) ) } @@ -772,7 +773,7 @@ class RoomDetailViewModel @AssistedInject constructor( private fun popDraft() = withState { if (it.sendMode is SendMode.REGULAR && it.sendMode.fromSharing) { // If we were sharing, we want to get back our last value from draft - getDraftIfAny() + loadDraftIfAny() } else { // Otherwise we clear the composer and remove the draft from db setState { copy(sendMode = SendMode.REGULAR("", false)) }