diff options
author | Christian Schneppe <christian@pix-art.de> | 2016-12-25 18:44:07 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2016-12-25 18:44:07 +0100 |
commit | 3f34a3aff0902b37b4e94b5d8c1c38b8285532ab (patch) | |
tree | 392d51ab50768d72c201dd8041400eef4662b8f6 | |
parent | 9867e3b1fc9ef6ac9a3fc851dc001478177b80d7 (diff) |
skip empty lines in message preview. prevents indexoutofbounds exception
and don't show quoted text in message preview
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/UIHelper.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/UIHelper.java b/src/main/java/de/pixart/messenger/utils/UIHelper.java index 0bb87e6c7..dce1b031c 100644 --- a/src/main/java/de/pixart/messenger/utils/UIHelper.java +++ b/src/main/java/de/pixart/messenger/utils/UIHelper.java @@ -202,7 +202,31 @@ public class UIHelper { return new Pair<>(context.getString(R.string.x_file_offered_for_download, getFileDescriptionString(context, message)), true); } else { - return new Pair<>(body.trim(), false); + String[] lines = body.split("\n"); + StringBuilder builder = new StringBuilder(); + for(String l : lines) { + if (l.length() > 0) { + char first = l.charAt(0); + if (first != '>' && first != '\u00bb') { + String line = l.trim(); + if (line.isEmpty()) { + continue; + } + char last = line.charAt(line.length()-1); + if (builder.length() != 0) { + builder.append(' '); + } + builder.append(line); + if (last != '.' && last != '!' && last != '?' && last != ',') { + break; + } + } + } + } + if (builder.length() == 0) { + builder.append(body.trim()); + } + return new Pair<>(builder.length() > 256 ? builder.substring(0,256) : builder.toString(), false); } } } |