From 6918167206c827fb4cacabcec384265e30452081 Mon Sep 17 00:00:00 2001 From: Andy Klimczak Date: Sun, 17 Apr 2016 11:53:43 -0400 Subject: [PATCH] Split long OP posts between words instead of in middle of a word Will fallback to old method if the post is a single long string/spam --- .../src/main/java/org/floens/chan/ui/cell/PostCell.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java b/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java index af995cc9..120cdb23 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java @@ -71,6 +71,7 @@ import org.floens.chan.ui.view.ThumbnailView; import org.floens.chan.utils.AndroidUtils; import org.floens.chan.utils.Time; +import java.text.BreakIterator; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -411,7 +412,11 @@ public class PostCell extends LinearLayout implements PostCellInterface { CharSequence commentText; if (post.comment.length() > COMMENT_MAX_LENGTH_BOARD && !threadMode) { - commentText = post.comment.subSequence(0, COMMENT_MAX_LENGTH_BOARD); + BreakIterator bi = BreakIterator.getWordInstance(); + bi.setText(post.comment.toString()); + int precedingBoundary = bi.preceding(COMMENT_MAX_LENGTH_BOARD); + // Fallback to old method in case the comment does not have any spaces/individual words + commentText = precedingBoundary > 0 ? post.comment.subSequence(0, precedingBoundary) : post.comment.subSequence(0, COMMENT_MAX_LENGTH_BOARD); } else { commentText = post.comment; }