Commit dbc5bae8 authored by 0xd9a's avatar 0xd9a
Browse files

Add accessibility action to toggle media sensitivity in timelines

(related #357)
parent 3ad57e46
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;
@@ -1879,6 +1880,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
                                statusToDeal.sensitive = !statusToDeal.sensitive;
                                adapter.notifyItemChanged(holder.getBindingAdapterPosition());
                            });
                            ViewCompat.addAccessibilityAction(
                                    layoutMediaBinding.mediaVideo,
                                    context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
                                    (view, arguments) -> {
                                        statusToDeal.sensitive = !statusToDeal.sensitive;
                                        adapter.notifyItemChanged(holder.getBindingAdapterPosition());
                                        return true;
                                    });
                        } else {
                            loadAndAddAttachment(context, layoutMediaBinding, holder, adapter, mediaPosition, mediaW, mediaH, ratio, statusToDeal, attachment);
                        }
@@ -1961,6 +1970,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
                                statusToDeal.sensitive = !statusToDeal.sensitive;
                                adapter.notifyItemChanged(holder.getBindingAdapterPosition());
                            });
                            ViewCompat.addAccessibilityAction(
                                    layoutMediaBinding.mediaVideo,
                                    context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
                                    (view, arguments) -> {
                                        statusToDeal.sensitive = !statusToDeal.sensitive;
                                        adapter.notifyItemChanged(holder.getBindingAdapterPosition());
                                        return true;
                                    });
                        } else {
                            loadAndAddAttachment(context, layoutMediaBinding, holder, adapter, mediaPosition, -1.f, -1.f, -1.f, statusToDeal, attachment);
                        }
@@ -3046,6 +3063,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
            statusToDeal.sensitive = !statusToDeal.sensitive;
            adapter.notifyItemChanged(holder.getBindingAdapterPosition());
        });
        ViewCompat.addAccessibilityAction(
                layoutMediaBinding.media,
                context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
                (view, arguments) -> {
                    statusToDeal.sensitive = !statusToDeal.sensitive;
                    adapter.notifyItemChanged(holder.getBindingAdapterPosition());
                    return true;
                });

        if ((!statusToDeal.sensitive || expand_media) && (fullAttachement)) {
            layoutMediaBinding.getRoot().setPadding(0, 0, 0, 10);
+17 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import androidx.appcompat.widget.LinearLayoutCompat;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;
@@ -208,7 +209,14 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
            status.sensitive = !status.sensitive;
            adapter.notifyItemChanged(holder.getBindingAdapterPosition());
        });

        ViewCompat.addAccessibilityAction(
                layoutMediaBinding.media,
                context.getString(status.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
                (view, arguments) -> {
                    status.sensitive = !status.sensitive;
                    adapter.notifyItemChanged(holder.getBindingAdapterPosition());
                    return true;
                });
    }

    @NotNull
@@ -687,6 +695,14 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
                        status.sensitive = !status.sensitive;
                        notifyItemChanged(holder.getBindingAdapterPosition());
                    });
                    ViewCompat.addAccessibilityAction(
                            layoutMediaBinding.mediaVideo,
                            context.getString(status.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
                            (view, arguments) -> {
                                status.sensitive = !status.sensitive;
                                notifyItemChanged(holder.getBindingAdapterPosition());
                                return true;
                            });
                } else {
                    loadAndAddAttachment(context, layoutMediaBinding, holder, this, mediaPosition, -1.f, -1.f, -1.f, status, attachment);
                }
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@
        android:layout_alignParentTop="true"
        android:layout_margin="5dp"
        android:contentDescription="@string/visibility"
        android:importantForAccessibility="no"
        android:src="@drawable/ic_baseline_visibility_24"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@id/media" />
+2 −0
Original line number Diff line number Diff line
@@ -128,6 +128,8 @@
    <string name="bookmark_remove">Remove bookmark</string>
    <string name="status_bookmarked">Status has been added to bookmarks!</string>
    <string name="status_unbookmarked">Status was removed from bookmarks!</string>
    <string name="cd_hide_media">Hide media</string>
    <string name="cd_show_media">Show media</string>

    <!-- Compose -->
    <string name="add_content_warning">Add content warning</string>