do not interpret grin >< as quote
This commit is contained in:
parent
064926a18b
commit
8ca16a6f63
|
@ -352,7 +352,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
||||||
char current = body.length() > i ? body.charAt(i) : '\n';
|
char current = body.length() > i ? body.charAt(i) : '\n';
|
||||||
if (lineStart == -1) {
|
if (lineStart == -1) {
|
||||||
if (previous == '\n') {
|
if (previous == '\n') {
|
||||||
if ((current == '>' && !UIHelper.isPositionFollowedByNumber(body,i)) || current == '\u00bb') {
|
if ((current == '>' && UIHelper.isPositionFollowedByQuoteableCharacter(body,i)) || current == '\u00bb') {
|
||||||
// Line start with quote
|
// Line start with quote
|
||||||
lineStart = i;
|
lineStart = i;
|
||||||
if (quoteStart == -1) quoteStart = i;
|
if (quoteStart == -1) quoteStart = i;
|
||||||
|
|
|
@ -25,6 +25,7 @@ import eu.siacs.conversations.entities.Message;
|
||||||
import eu.siacs.conversations.entities.Presence;
|
import eu.siacs.conversations.entities.Presence;
|
||||||
import eu.siacs.conversations.entities.Transferable;
|
import eu.siacs.conversations.entities.Transferable;
|
||||||
import eu.siacs.conversations.ui.XmppActivity;
|
import eu.siacs.conversations.ui.XmppActivity;
|
||||||
|
import eu.siacs.conversations.xmpp.chatstate.ChatState;
|
||||||
import eu.siacs.conversations.xmpp.jid.Jid;
|
import eu.siacs.conversations.xmpp.jid.Jid;
|
||||||
|
|
||||||
public class UIHelper {
|
public class UIHelper {
|
||||||
|
@ -205,7 +206,7 @@ public class UIHelper {
|
||||||
for(String l : lines) {
|
for(String l : lines) {
|
||||||
if (l.length() > 0) {
|
if (l.length() > 0) {
|
||||||
char first = l.charAt(0);
|
char first = l.charAt(0);
|
||||||
if ((first != '>' || isPositionFollowedByNumber(l,0)) && first != '\u00bb') {
|
if ((first != '>' || !isPositionFollowedByQuoteableCharacter(l,0)) && first != '\u00bb') {
|
||||||
String line = l.trim();
|
String line = l.trim();
|
||||||
if (line.isEmpty()) {
|
if (line.isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -229,7 +230,11 @@ public class UIHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isPositionFollowedByNumber(CharSequence body, int pos) {
|
public static boolean isPositionFollowedByQuoteableCharacter(CharSequence body, int pos) {
|
||||||
|
return !isPositionFollowedByNumber(body, pos) && !isPositionFollowedByBigGrin(body,pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isPositionFollowedByNumber(CharSequence body, int pos) {
|
||||||
boolean previousWasNumber = false;
|
boolean previousWasNumber = false;
|
||||||
for (int i = pos +1; i < body.length(); i++) {
|
for (int i = pos +1; i < body.length(); i++) {
|
||||||
char c = body.charAt(i);
|
char c = body.charAt(i);
|
||||||
|
@ -244,6 +249,11 @@ public class UIHelper {
|
||||||
return previousWasNumber;
|
return previousWasNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isPositionFollowedByBigGrin(CharSequence body, int pos) {
|
||||||
|
return body.length() <= pos + 1
|
||||||
|
|| ((body.charAt(pos+1) == '<') && (body.length() == pos+2 || Character.isWhitespace(body.charAt(pos+2))));
|
||||||
|
}
|
||||||
|
|
||||||
public static String getFileDescriptionString(final Context context, final Message message) {
|
public static String getFileDescriptionString(final Context context, final Message message) {
|
||||||
if (message.getType() == Message.TYPE_IMAGE) {
|
if (message.getType() == Message.TYPE_IMAGE) {
|
||||||
return context.getString(R.string.image);
|
return context.getString(R.string.image);
|
||||||
|
|
Loading…
Reference in New Issue