From e8b43c71799dc57bff9270d2f5f3d1c9cfa2075c Mon Sep 17 00:00:00 2001 From: sk Date: Thu, 26 May 2022 22:09:02 +0200 Subject: [PATCH] preserve visibility when re-drafting --- .../org/joinmastodon/android/fragments/ComposeFragment.java | 5 +++++ .../java/org/joinmastodon/android/ui/utils/UiUtils.java | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java index 5179b326d..0f0b7e546 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -213,6 +213,11 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr replyTo=Parcels.unwrap(getArguments().getParcelable("replyTo")); statusVisibility=replyTo.visibility; } + + if(getArguments().containsKey("visibility")){ + statusVisibility=(StatusPrivacy) getArguments().getSerializable("visibility"); + } + if(savedInstanceState!=null){ statusVisibility=(StatusPrivacy) savedInstanceState.getSerializable("visibility"); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index 5c7cefa94..b13c59858 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -54,6 +54,7 @@ import org.joinmastodon.android.model.Account; import org.joinmastodon.android.model.Emoji; import org.joinmastodon.android.model.Relationship; import org.joinmastodon.android.model.Status; +import org.joinmastodon.android.model.StatusPrivacy; import org.joinmastodon.android.ui.M3AlertDialogBuilder; import org.joinmastodon.android.ui.text.CustomEmojiSpan; import org.joinmastodon.android.ui.text.HtmlParser; @@ -80,6 +81,10 @@ import androidx.annotation.StringRes; import androidx.browser.customtabs.CustomTabsIntent; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.RecyclerView; + +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; + import me.grishka.appkit.Nav; import me.grishka.appkit.api.Callback; import me.grishka.appkit.api.ErrorResponse; @@ -386,6 +391,7 @@ public class UiUtils{ args.putBoolean("hasDraft", true); args.putString("prefilledText", HtmlParser.parse(status.content, status.emojis, status.mentions, status.tags, accountID).toString()); args.putString("spoilerText", status.spoilerText); + args.putSerializable("visibility", status.visibility); if(status.poll!=null){ args.putInt("pollDuration", (int)status.poll.expiresAt.minus(status.createdAt.getEpochSecond(), ChronoUnit.SECONDS).getEpochSecond()); ArrayList opts=status.poll.options.stream().map(o -> o.title).collect(Collectors.toCollection(ArrayList::new));