From 5c9e41f4fff0096e2c30057cbe6fe3e4e9df527f Mon Sep 17 00:00:00 2001 From: sk Date: Thu, 17 Nov 2022 00:43:37 +0100 Subject: [PATCH] add content warning above text --- .../displayitems/TextStatusDisplayItem.java | 13 ++++- .../src/main/res/layout/display_item_text.xml | 52 ++++++++++++++++--- 2 files changed, 56 insertions(+), 9 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java index 557bede7e..28b8fe52c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java @@ -3,6 +3,7 @@ package org.joinmastodon.android.ui.displayitems; import android.app.Activity; import android.graphics.drawable.Animatable; import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; @@ -11,6 +12,7 @@ import android.widget.TextView; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.BaseStatusListFragment; import org.joinmastodon.android.model.Status; +import org.joinmastodon.android.ui.drawables.SpoilerStripesDrawable; import org.joinmastodon.android.ui.text.HtmlParser; import org.joinmastodon.android.ui.utils.CustomEmojiHelper; import org.joinmastodon.android.ui.views.LinkedTextView; @@ -59,13 +61,16 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ public static class Holder extends StatusDisplayItem.Holder implements ImageLoaderViewHolder{ private final LinkedTextView text; - private final TextView spoilerTitle; - private final View spoilerOverlay; + private final TextView spoilerTitle, spoilerTitleInline; + private final View spoilerOverlay, content, spoilerHeader; public Holder(Activity activity, ViewGroup parent){ super(activity, R.layout.display_item_text, parent); text=findViewById(R.id.text); spoilerTitle=findViewById(R.id.spoiler_title); + spoilerTitleInline=findViewById(R.id.spoiler_title_inline); + content=findViewById(R.id.content); + spoilerHeader=findViewById(R.id.spoiler_header); spoilerOverlay=findViewById(R.id.spoiler_overlay); itemView.setOnClickListener(v->item.parentFragment.onRevealSpoilerClick(this)); } @@ -77,17 +82,21 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ text.setInvalidateOnEveryFrame(false); if(!TextUtils.isEmpty(item.status.spoilerText)){ spoilerTitle.setText(item.parsedSpoilerText); + spoilerTitleInline.setText(item.parsedSpoilerText); if(item.status.spoilerRevealed){ spoilerOverlay.setVisibility(View.GONE); + spoilerHeader.setVisibility(View.VISIBLE); text.setVisibility(View.VISIBLE); itemView.setClickable(false); }else{ spoilerOverlay.setVisibility(View.VISIBLE); + spoilerHeader.setVisibility(View.INVISIBLE); text.setVisibility(View.INVISIBLE); itemView.setClickable(true); } }else{ spoilerOverlay.setVisibility(View.GONE); + spoilerHeader.setVisibility(View.GONE); text.setVisibility(View.VISIBLE); itemView.setClickable(false); } diff --git a/mastodon/src/main/res/layout/display_item_text.xml b/mastodon/src/main/res/layout/display_item_text.xml index 90d06c6a8..a5f5d1698 100644 --- a/mastodon/src/main/res/layout/display_item_text.xml +++ b/mastodon/src/main/res/layout/display_item_text.xml @@ -3,23 +3,61 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingLeft="16dp" - android:paddingRight="16dp" android:paddingTop="10dp" android:paddingBottom="12dp"> - + android:layout_height="wrap_content"> + + + + + + + + + + + +