From 1f97fa9447671eeb6bb4af5b5e40411d8cb07162 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 7e90de32e..e2a6912e9 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -1852,10 +1852,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; @@ -1863,11 +1866,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"); } }