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 7b86bf7cd3..1cdc39f9d4 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 @@ -4,6 +4,7 @@ import android.content.Context; import android.graphics.drawable.Animatable; import android.graphics.drawable.Drawable; +import android.text.TextUtils; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; @@ -13,6 +14,7 @@ import android.widget.TextView; import org.joinmastodon.android.R; +import org.joinmastodon.android.fragments.ThreadFragment; import org.joinmastodon.android.model.Status; import org.joinmastodon.android.ui.text.HtmlParser; import org.joinmastodon.android.ui.utils.CustomEmojiHelper; @@ -35,6 +37,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ public boolean largerFont; public final Status status; private final String accountID; + private static final int MAX_LINES = 15; public TextStatusDisplayItem(String parentID, CharSequence text, Callbacks callbacks, Context context, Status status, String accountID){ super(parentID, callbacks, context); @@ -71,6 +74,7 @@ private CustomEmojiHelper getCurrentEmojiHelper(){ public static class Holder extends StatusDisplayItem.Holder implements ImageLoaderViewHolder{ private final LinkedTextView text; + private final TextView readMore; private final ViewStub translationFooterStub; private View translationFooter; private TextView translationInfo; @@ -80,6 +84,7 @@ public static class Holder extends StatusDisplayItem.Holder{ + if (text.getLineCount() > MAX_LINES) { + text.setMaxLines(MAX_LINES); + text.setEllipsize(TextUtils.TruncateAt.END); + readMore.setVisibility(View.VISIBLE); + readMore.setOnClickListener(v -> item.callbacks.onItemClick(item.parentID)); + } + }); + } + text.setTextIsSelectable(item.textSelectable); text.setInvalidateOnEveryFrame(false); 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 0c31c8547c..0485e28c4d 100644 --- a/mastodon/src/main/res/layout/display_item_text.xml +++ b/mastodon/src/main/res/layout/display_item_text.xml @@ -17,10 +17,26 @@ android:paddingBottom="8dp" android:lineSpacingExtra="5.25dp"/> + + - \ No newline at end of file + diff --git a/mastodon/src/main/res/values/strings.xml b/mastodon/src/main/res/values/strings.xml index 54334f7e38..8d2200dcc6 100644 --- a/mastodon/src/main/res/values/strings.xml +++ b/mastodon/src/main/res/values/strings.xml @@ -930,4 +930,5 @@ Back to editing Don\'t show this message again More replies found - \ No newline at end of file + Read more › +