From f888091e22a4f7eff3a48b53b4731bd47ebb45f9 Mon Sep 17 00:00:00 2001 From: Grishka Date: Mon, 18 Mar 2024 20:34:23 +0300 Subject: [PATCH] Add unlisted visibility option as "quiet public" closes #189, closes #103, closes #37 --- .../android/fragments/ComposeFragment.java | 15 +++++++-------- .../src/main/res/drawable/ic_clear_night_20px.xml | 9 +++++++++ mastodon/src/main/res/menu/compose_visibility.xml | 2 ++ mastodon/src/main/res/values/strings.xml | 1 + 4 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 mastodon/src/main/res/drawable/ic_clear_night_20px.xml 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 f7e10635..e309efc3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -915,6 +915,8 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr int id=item.getItemId(); if(id==R.id.vis_public){ statusVisibility=StatusPrivacy.PUBLIC; + }else if(id==R.id.vis_unlisted){ + statusVisibility=StatusPrivacy.UNLISTED; }else if(id==R.id.vis_followers){ statusVisibility=StatusPrivacy.PRIVATE; }else if(id==R.id.vis_private){ @@ -950,12 +952,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr private void applyPreferencesForPostVisibility(Preferences prefs, Bundle savedInstanceState){ // Only override the reply visibility if our preference is more private if(prefs.postingDefaultVisibility.isLessVisibleThan(statusVisibility)){ - // Map unlisted from the API onto public, because we don't have unlisted in the UI - statusVisibility=switch(prefs.postingDefaultVisibility){ - case PUBLIC, UNLISTED -> StatusPrivacy.PUBLIC; - case PRIVATE -> StatusPrivacy.PRIVATE; - case DIRECT -> StatusPrivacy.DIRECT; - }; + statusVisibility=prefs.postingDefaultVisibility; } // A saved privacy setting from a previous compose session wins over all @@ -973,12 +970,14 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr statusVisibility=StatusPrivacy.PUBLIC; } visibilityBtn.setText(switch(statusVisibility){ - case PUBLIC, UNLISTED -> R.string.visibility_public; + case PUBLIC -> R.string.visibility_public; + case UNLISTED -> R.string.visibility_unlisted; case PRIVATE -> R.string.visibility_followers_only; case DIRECT -> R.string.visibility_private; }); Drawable icon=getResources().getDrawable(switch(statusVisibility){ - case PUBLIC, UNLISTED -> R.drawable.ic_public_20px; + case PUBLIC -> R.drawable.ic_public_20px; + case UNLISTED -> R.drawable.ic_clear_night_20px; case PRIVATE -> R.drawable.ic_group_20px; case DIRECT -> R.drawable.ic_alternate_email_20px; }, getActivity().getTheme()).mutate(); diff --git a/mastodon/src/main/res/drawable/ic_clear_night_20px.xml b/mastodon/src/main/res/drawable/ic_clear_night_20px.xml new file mode 100644 index 00000000..87487c60 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_clear_night_20px.xml @@ -0,0 +1,9 @@ + + + diff --git a/mastodon/src/main/res/menu/compose_visibility.xml b/mastodon/src/main/res/menu/compose_visibility.xml index 5923b39b..a8cd7d24 100644 --- a/mastodon/src/main/res/menu/compose_visibility.xml +++ b/mastodon/src/main/res/menu/compose_visibility.xml @@ -2,6 +2,8 @@ + You’ll no longer get notifications for new posts. Mute conversation Unmute conversation + Quiet public \ No newline at end of file