Commit Diff


commit - 32785bf97696fee1e43b09d435dbd8a156ae0b62
commit + 8f00c06467fbbe772e1c459438d6283db6b9b4d6
blob - ad93be035808924561c55e39e9dcd69f84987f4c
blob + 7ceb5af66b950d38052b46e32bb4708b2cc252a5
--- mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java
+++ mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java
@@ -501,6 +501,7 @@ public class ComposeFragment extends MastodonToolbarFr
 			case DIRECT -> R.id.vis_private;
 			case LOCAL -> R.id.vis_local;
 			case CONVERSATION -> R.id.vis_conversation;
+			case SUBSCRIBERS -> R.id.vis_subscribers;
 		}).setChecked(true);
 		visibilityPopup.getMenu().findItem(R.id.local_only).setChecked(localOnly);
 
@@ -727,6 +728,7 @@ public class ComposeFragment extends MastodonToolbarFr
 				case DIRECT -> R.drawable.ic_fluent_mention_20_regular;
 				case LOCAL -> R.drawable.ic_fluent_eye_20_regular;
 				case CONVERSATION -> R.drawable.ic_fluent_lock_closed_16_filled;
+				case SUBSCRIBERS -> R.drawable.ic_fluent_star_emphasis_24_regular;
 			});
 			ImageView moreBtn = view.findViewById(R.id.more);
 			moreBtn.setImageDrawable(visibilityIcon);
@@ -776,6 +778,7 @@ public class ComposeFragment extends MastodonToolbarFr
 				case DIRECT -> R.string.visibility_private;
 				case LOCAL -> R.string.sk_local_only;
 				case CONVERSATION -> R.string.sk_conversation;
+				case SUBSCRIBERS -> R.string.sk_subscribers;
 			};
 			replyText.setContentDescription(getString(R.string.in_reply_to, status.account.getDisplayName()) + ", " + getString(visibilityNameRes));
 			replyText.setOnClickListener(v->{
@@ -1780,6 +1783,7 @@ public class ComposeFragment extends MastodonToolbarFr
 			case DIRECT -> R.string.visibility_private;
 			case LOCAL -> R.string.sk_local_only;
 			case CONVERSATION -> R.string.sk_conversation;
+			case SUBSCRIBERS -> R.string.sk_subscribers;
 		});
 		Drawable icon=getResources().getDrawable(switch(statusVisibility){
 			case PUBLIC -> R.drawable.ic_fluent_planet_16_regular;
@@ -1788,6 +1792,7 @@ public class ComposeFragment extends MastodonToolbarFr
 			case DIRECT -> R.drawable.ic_fluent_mention_16_regular;
 			case LOCAL -> R.drawable.ic_fluent_eye_16_regular;
 			case CONVERSATION -> R.drawable.ic_fluent_lock_closed_16_filled;
+			case SUBSCRIBERS -> R.drawable.ic_fluent_star_emphasis_24_regular;
 		}, getActivity().getTheme()).mutate();
 		icon.setBounds(0, 0, V.dp(18), V.dp(18));
 		visibilityBtn.setCompoundDrawableTintList(getContext().getResources().getColorStateList(R.color.m3_primary_selector, getContext().getTheme()));
blob - 5f0abe64da019156712dfe61787d15440a3a48b7
blob + 9cd6a64da75de1c52e1476ad9759ebf141141ca6
--- mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsPrivacyFragment.java
+++ mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsPrivacyFragment.java
@@ -65,6 +65,7 @@ public class SettingsPrivacyFragment extends BaseSetti
 			case DIRECT -> R.string.visibility_private;
 			case LOCAL -> R.string.sk_local_only;
 			case CONVERSATION -> R.string.sk_conversation;
+			case SUBSCRIBERS -> R.string.sk_subscribers;
 		};
 	}
 
blob - 049ff94b7d51f5b24fa50e1c8f1e4cb542faafd4
blob + 4d45ae672a2a9bedd59cf111309d4cee2d6e0217
--- mastodon/src/main/java/org/joinmastodon/android/model/StatusPrivacy.java
+++ mastodon/src/main/java/org/joinmastodon/android/model/StatusPrivacy.java
@@ -14,7 +14,9 @@ public enum StatusPrivacy{
 	@SerializedName("local")
 	LOCAL(4), // akkoma
 	@SerializedName("conversation")
-	CONVERSATION(5); // mitra
+	CONVERSATION(5), // mitra
+	@SerializedName("subscribers")
+	SUBSCRIBERS(6); // mitra
 
 	private final int privacy;
 
blob - 115a39d5b4c2cb2eee2e61ca8bb24fc0d45d576e
blob + 1ab255f3ac1064a2769cc6029ea5f2c9bae59713
--- mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ExtendedFooterStatusDisplayItem.java
+++ mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ExtendedFooterStatusDisplayItem.java
@@ -129,6 +129,7 @@ public class ExtendedFooterStatusDisplayItem extends S
 				case DIRECT -> R.drawable.ic_fluent_mention_20_regular;
 				case LOCAL -> R.drawable.ic_fluent_eye_20_regular;
 				case CONVERSATION -> R.drawable.ic_fluent_lock_closed_20_filled;
+				case SUBSCRIBERS -> R.drawable.ic_fluent_star_emphasis_24_regular;
 			});
 		}
 
blob - e86336db1537dd493aab2cd3262c126dd57ef2a5
blob + 0d8b2d6b021b7f84551037cf77c1c7046a4cfbf4
--- mastodon/src/main/java/org/joinmastodon/android/ui/photoviewer/PhotoViewerInfoSheet.java
+++ mastodon/src/main/java/org/joinmastodon/android/ui/photoviewer/PhotoViewerInfoSheet.java
@@ -146,7 +146,7 @@ public class PhotoViewerInfoSheet extends BottomSheet{
 	public void setStatus(Status status){
 		statusID=status.id;
 		boostBtn.setCompoundDrawablesWithIntrinsicBounds(0, switch(status.visibility){
-			case DIRECT, CONVERSATION -> R.drawable.ic_boost_disabled_24px;
+			case DIRECT, CONVERSATION, SUBSCRIBERS -> R.drawable.ic_boost_disabled_24px;
 			case PUBLIC, UNLISTED, LOCAL -> R.drawable.ic_boost;
 			case PRIVATE -> R.drawable.ic_boost_private;
 		}, 0, 0);
blob - 4908cb5bc4317d8e032b8c1e968b4b77ec6b62fd
blob + f1f8620ff712dc7c9080689f02ed12e45de4ce3a
--- mastodon/src/main/res/menu/compose_visibility.xml
+++ mastodon/src/main/res/menu/compose_visibility.xml
@@ -27,5 +27,9 @@
 		<item android:id="@+id/vis_conversation"
 			android:icon="@drawable/ic_fluent_lock_closed_24_regular"
 			android:title="@string/visibility_conversation" />
+		<item android:id="@+id/vis_subscribers"
+			android:icon="@drawable/ic_fluent_star_emphasis_24_regular"
+			android:visible="false"
+			android:title="@string/visibility_subscribers" />
 	</group>
 </menu>
\ No newline at end of file
blob - 1906e018e79838339ff0e0fc61387c9e486cb8e1
blob + d0ba2ad9adeb4d7de9e4bacecbe24e0dfc0190f2
--- mastodon/src/main/res/values/strings.xml
+++ mastodon/src/main/res/values/strings.xml
@@ -184,6 +184,7 @@
 	<string name="visibility_followers_only">Followers only</string>
 	<string name="visibility_private">Only people mentioned</string>
 	<string name="visibility_conversation">Conversation</string>
+	<string name="visibility_subscribers">Subscribers</string>
 	<string name="recent_searches">Recents</string>
 	<string name="skip">Skip</string>
 	<string name="notification_type_follow">New followers</string>
blob - 3201e3f94b6f841b1b9f708d6ef08087ea644cd3
blob + 187f16d42a46e52f1f43dd989e30865d33651c58
--- mastodon/src/main/res/values/strings_sk.xml
+++ mastodon/src/main/res/values/strings_sk.xml
@@ -283,6 +283,7 @@
     <string name="sk_separator">·</string>
     <string name="sk_local_only">Local instance only</string>
 	<string name="sk_conversation">Conversation</string>
+	<string name="sk_subscribers">Subscribers</string>
     <string name="sk_instance_features">Instance features</string>
     <string name="sk_settings_support_local_only">Server supports local-only posting</string>
     <string name="sk_settings_local_only_explanation">Your home instance must support local-only posting for this to work. Most modified versions of Mastodon do, but Mastodon doesn’t.</string>