diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java index 989b2b2a..e82be1fa 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java @@ -1643,18 +1643,22 @@ public class ComposeAdapter extends RecyclerView.Adapter { holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_public); + holder.binding.buttonQuoteVisibility.setVisibility(View.VISIBLE); statusDraft.visibility = MastodonHelper.visibility.PUBLIC.name(); } case "unlisted" -> { holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_unlisted); + holder.binding.buttonQuoteVisibility.setVisibility(View.VISIBLE); statusDraft.visibility = MastodonHelper.visibility.UNLISTED.name(); } case "private" -> { holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_private); + holder.binding.buttonQuoteVisibility.setVisibility(View.GONE); statusDraft.visibility = MastodonHelper.visibility.PRIVATE.name(); } case "direct" -> { holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_direct); + holder.binding.buttonQuoteVisibility.setVisibility(View.GONE); statusDraft.visibility = MastodonHelper.visibility.DIRECT.name(); } } @@ -1666,29 +1670,54 @@ public class ComposeAdapter extends RecyclerView.Adapter { + holder.binding.quoteVisibilityPanel.setVisibility(View.VISIBLE); + holder.binding.quoteVisibilityGroup.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); + holder.binding.buttonQuoteVisibility.setChecked(false); + }); holder.binding.buttonCloseVisibilityPanel.setOnClickListener(v -> holder.binding.visibilityPanel.setVisibility(View.GONE)); + holder.binding.buttonCloseQuoteVisibilityPanel.setOnClickListener(v -> holder.binding.quoteVisibilityPanel.setVisibility(View.GONE)); holder.binding.buttonVisibilityDirect.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setVisibility(View.GONE); holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_direct); statusDraft.visibility = MastodonHelper.visibility.DIRECT.name(); }); holder.binding.buttonVisibilityPrivate.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setVisibility(View.GONE); holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_private); statusDraft.visibility = MastodonHelper.visibility.PRIVATE.name(); }); holder.binding.buttonVisibilityUnlisted.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setVisibility(View.VISIBLE); holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_unlisted); statusDraft.visibility = MastodonHelper.visibility.UNLISTED.name(); }); holder.binding.buttonVisibilityPublic.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setVisibility(View.VISIBLE); holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_public); statusDraft.visibility = MastodonHelper.visibility.PUBLIC.name(); unlisted_changed = true; }); + holder.binding.buttonQuoteVisibilityNoOne.setOnClickListener(v -> { + holder.binding.quoteVisibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setIconResource(R.drawable.ic_baseline_block_24); + // Todo: "No one" quote visibility clicked + }); + holder.binding.buttonQuoteVisibilityFollowersOnly.setOnClickListener(v -> { + holder.binding.quoteVisibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setIconResource(R.drawable.ic_baseline_people_alt_24); + // Todo: "No one" quote visibility clicked + }); + holder.binding.buttonQuoteVisibilityAnyone.setOnClickListener(v -> { + holder.binding.quoteVisibilityPanel.setVisibility(View.GONE); + holder.binding.buttonQuoteVisibility.setIconResource(R.drawable.ic_compose_visibility_public); + // Todo: "No one" quote visibility clicked + }); if (statusDraft.spoilerChecked || statusDraft.spoiler_text != null && !statusDraft.spoiler_text.trim().isEmpty()) { holder.binding.contentSpoiler.setVisibility(View.VISIBLE); diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml b/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml index dabe9ea2..681af860 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml @@ -208,19 +208,40 @@ app:layout_constraintTop_toBottomOf="@id/text_area_divider" app:toggleCheckedStateOnClick="true" /> - + app:layout_constraintTop_toBottomOf="@id/text_area_divider" + app:selectionRequired="false"> + + + + + + @@ -409,7 +430,87 @@ style="@style/Widget.Material3.Button.IconButton.Outlined" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="96dp" + android:layout_marginStart="98dp" + android:insetLeft="0dp" + android:insetRight="0dp" + app:icon="@drawable/ic_baseline_close_24" /> + + + + + + + + + + + + + + + + + + @@ -419,7 +520,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:barrierDirection="bottom" - app:constraint_referenced_ids="button_attach,button_visibility, button_language, button_post, character_progress, button_sensitive" /> + app:constraint_referenced_ids="button_attach, visibility_indicators_group, button_language, button_post, character_progress, button_sensitive" /> Boosted by Favourited by Followers only + Who can quote + No one + Anyone Other Eg.: Sensitive Content Pronouns