From c2a993c5c1c9e3d30cd92dfe09b235c527a9543f Mon Sep 17 00:00:00 2001 From: sk Date: Mon, 23 Jan 2023 22:00:23 +0100 Subject: [PATCH] don't override visibility when replying to self closes sk22#348 --- .../android/fragments/ComposeFragment.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) 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 408374e03..d078e66b7 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -1795,10 +1795,13 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr statusVisibility = (StatusPrivacy) savedInstanceState.getSerializable("visibility"); } - Preferences prefs = AccountSessionManager.getInstance().getAccount(accountID).preferences; - if (prefs != null) { + AccountSessionManager asm = AccountSessionManager.getInstance(); + Preferences prefs = asm.getAccount(accountID).preferences; + if (prefs != null && replyTo != null) { // Only override the reply visibility if our preference is more private - if (prefs.postingDefaultVisibility.isLessVisibleThan(statusVisibility)) { + // (or we're replying to ourselves) + if (prefs.postingDefaultVisibility.isLessVisibleThan(statusVisibility) && + !asm.isSelf(accountID, replyTo.account)) { statusVisibility = switch (prefs.postingDefaultVisibility) { case PUBLIC -> StatusPrivacy.PUBLIC; case UNLISTED -> StatusPrivacy.UNLISTED; @@ -1806,11 +1809,11 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr case DIRECT -> StatusPrivacy.DIRECT; }; } + } - // A saved privacy setting from a previous compose session wins over all - if(savedInstanceState !=null){ - statusVisibility = (StatusPrivacy) savedInstanceState.getSerializable("visibility"); - } + // A saved privacy setting from a previous compose session wins over all + if(savedInstanceState !=null){ + statusVisibility = (StatusPrivacy) savedInstanceState.getSerializable("visibility"); } }