From 85fbb5e93ede30acc0411e16bf3959274ce90a20 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 25 Feb 2022 16:44:46 -0500 Subject: [PATCH] Remember saved text for markdown areas. Fixes #104 --- .../comment/edit/CommentEditActivity.kt | 3 +- .../components/comment/reply/CommentReply.kt | 2 -- .../comment/reply/CommentReplyActivity.kt | 28 +++++-------------- .../PrivateMessageReplyActivity.kt | 3 +- .../comment/CreateCommentReportActivity.kt | 3 +- .../report/post/CreatePostReportActivity.kt | 3 +- 6 files changed, 15 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/jerboa/ui/components/comment/edit/CommentEditActivity.kt b/app/src/main/java/com/jerboa/ui/components/comment/edit/CommentEditActivity.kt index 8b34e5942..9a505ac72 100644 --- a/app/src/main/java/com/jerboa/ui/components/comment/edit/CommentEditActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/comment/edit/CommentEditActivity.kt @@ -5,6 +5,7 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Scaffold import androidx.compose.material.Surface import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.text.input.TextFieldValue @@ -35,7 +36,7 @@ fun CommentEditActivity( val account = getCurrentAccount(accountViewModel = accountViewModel) val scope = rememberCoroutineScope() - var content by remember { mutableStateOf(TextFieldValue(commentEditViewModel.commentView.value?.comment?.content.orEmpty())) } + var content by rememberSaveable(stateSaver = TextFieldValue.Saver) { mutableStateOf(TextFieldValue(commentEditViewModel.commentView.value?.comment?.content.orEmpty())) } val focusManager = LocalFocusManager.current diff --git a/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReply.kt b/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReply.kt index 73ebf8fc1..f44d76f6c 100644 --- a/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReply.kt +++ b/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReply.kt @@ -1,6 +1,5 @@ package com.jerboa.ui.components.comment.reply -import android.net.Uri import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn @@ -126,7 +125,6 @@ fun CommentReply( reply: TextFieldValue, onReplyChange: (TextFieldValue) -> Unit, onPersonClick: (personId: Int) -> Unit, - onPickedImage: (image: Uri) -> Unit, isModerator: Boolean, account: Account?, ) { diff --git a/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReplyActivity.kt b/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReplyActivity.kt index 8b700fb31..0163e0f81 100644 --- a/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReplyActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/comment/reply/CommentReplyActivity.kt @@ -7,22 +7,19 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Scaffold import androidx.compose.material.Surface import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.text.input.TextFieldValue import androidx.navigation.NavController -import com.jerboa.api.uploadPictrsImage -import com.jerboa.appendMarkdownImage import com.jerboa.db.AccountViewModel -import com.jerboa.imageInputStreamFromUri import com.jerboa.isModerator import com.jerboa.ui.components.common.getCurrentAccount import com.jerboa.ui.components.inbox.InboxViewModel import com.jerboa.ui.components.person.PersonProfileViewModel import com.jerboa.ui.components.person.personClickWrapper import com.jerboa.ui.components.post.PostViewModel -import kotlinx.coroutines.launch @Composable fun CommentReplyActivity( @@ -39,7 +36,12 @@ fun CommentReplyActivity( val ctx = LocalContext.current val account = getCurrentAccount(accountViewModel = accountViewModel) val scope = rememberCoroutineScope() - var reply by remember { mutableStateOf(TextFieldValue("")) } + var reply by rememberSaveable(stateSaver = TextFieldValue.Saver) { + mutableStateOf( + TextFieldValue + ("") + ) + } val focusManager = LocalFocusManager.current @@ -85,22 +87,6 @@ fun CommentReplyActivity( ctx ) }, - onPickedImage = { uri -> - val imageIs = imageInputStreamFromUri(ctx, uri) - scope.launch { - account?.also { acct -> - val url = uploadPictrsImage(acct, imageIs, ctx) - url?.also { - reply = TextFieldValue( - appendMarkdownImage( - reply.text, - it - ) - ) - } - } - } - }, isModerator = isModerator( commentView.creator, postViewModel diff --git a/app/src/main/java/com/jerboa/ui/components/private_message/PrivateMessageReplyActivity.kt b/app/src/main/java/com/jerboa/ui/components/private_message/PrivateMessageReplyActivity.kt index 3ae57416c..665c3722c 100644 --- a/app/src/main/java/com/jerboa/ui/components/private_message/PrivateMessageReplyActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/private_message/PrivateMessageReplyActivity.kt @@ -7,6 +7,7 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Scaffold import androidx.compose.material.Surface import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager @@ -32,7 +33,7 @@ fun PrivateMessageReplyActivity( val ctx = LocalContext.current val account = getCurrentAccount(accountViewModel = accountViewModel) - var reply by remember { mutableStateOf(TextFieldValue("")) } + var reply by rememberSaveable(stateSaver = TextFieldValue.Saver) { mutableStateOf(TextFieldValue("")) } val focusManager = LocalFocusManager.current diff --git a/app/src/main/java/com/jerboa/ui/components/report/comment/CreateCommentReportActivity.kt b/app/src/main/java/com/jerboa/ui/components/report/comment/CreateCommentReportActivity.kt index 70bef664b..49db04a8b 100644 --- a/app/src/main/java/com/jerboa/ui/components/report/comment/CreateCommentReportActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/report/comment/CreateCommentReportActivity.kt @@ -5,6 +5,7 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Scaffold import androidx.compose.material.Surface import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.text.input.TextFieldValue @@ -26,7 +27,7 @@ fun CreateCommentReportActivity( val ctx = LocalContext.current val account = getCurrentAccount(accountViewModel = accountViewModel) - var reason by remember { mutableStateOf(TextFieldValue("")) } + var reason by rememberSaveable(stateSaver = TextFieldValue.Saver) { mutableStateOf(TextFieldValue("")) } val focusManager = LocalFocusManager.current diff --git a/app/src/main/java/com/jerboa/ui/components/report/post/CreatePostReportActivity.kt b/app/src/main/java/com/jerboa/ui/components/report/post/CreatePostReportActivity.kt index 329330adb..5ae6745d5 100644 --- a/app/src/main/java/com/jerboa/ui/components/report/post/CreatePostReportActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/report/post/CreatePostReportActivity.kt @@ -5,6 +5,7 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Scaffold import androidx.compose.material.Surface import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.text.input.TextFieldValue @@ -26,7 +27,7 @@ fun CreatePostReportActivity( val ctx = LocalContext.current val account = getCurrentAccount(accountViewModel = accountViewModel) - var reason by remember { mutableStateOf(TextFieldValue("")) } + var reason by rememberSaveable(stateSaver = TextFieldValue.Saver) { mutableStateOf(TextFieldValue("")) } val focusManager = LocalFocusManager.current