From d1ab0deb98a37251327f6f079316652e9f85d2c3 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Sat, 18 Apr 2020 15:06:24 +0200 Subject: [PATCH] Fix content warning state being lost after screen rotation (#1756) * Restore compose options after rotation * Fix in ViewModel instead * Move showContentWarning change into ViewModel --- .../tusky/components/compose/ComposeActivity.kt | 2 +- .../tusky/components/compose/ComposeViewModel.kt | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt index 164b1c60..bf3d1155 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt @@ -904,7 +904,7 @@ class ComposeActivity : BaseActivity(), private fun onContentWarningChanged() { val showWarning = composeContentWarningBar.isGone - viewModel.showContentWarning.value = showWarning + viewModel.contentWarningChanged(showWarning) updateVisibleCharactersLeft() } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt index cb820c25..90ceb52b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt @@ -61,6 +61,7 @@ class ComposeViewModel private var startingContentWarning: String = "" private var inReplyToId: String? = null private var startingVisibility: Status.Visibility = Status.Visibility.UNKNOWN + private var contentWarningStateChanged: Boolean = false private val instance: MutableLiveData = MutableLiveData(null) private val nodeinfo: MutableLiveData = MutableLiveData(null) public var formattingSyntax: String = "" @@ -257,6 +258,11 @@ class ComposeViewModel return textChanged || contentWarningChanged || mediaChanged || pollChanged } + fun contentWarningChanged(value: Boolean) { + showContentWarning.value = value + contentWarningStateChanged = true + } + fun deleteDraft() { saveTootHelper.deleteDraft(this.savedTootUid) } @@ -429,7 +435,9 @@ class ComposeViewModel if (contentWarning != null) { startingContentWarning = contentWarning } - showContentWarning.value = !contentWarning.isNullOrBlank() + if (!contentWarningStateChanged) { + showContentWarning.value = !contentWarning.isNullOrBlank() + } // recreate media list // when coming from SavedTootActivity