fix mergable() for /me command.

Michael created

Change summary

src/main/java/eu/siacs/conversations/entities/Message.java          | 6 
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java | 3 
src/main/java/eu/siacs/conversations/utils/UIHelper.java            | 5 
3 files changed, 9 insertions(+), 5 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Message.java 🔗

@@ -47,6 +47,7 @@ public class Message extends AbstractEntity {
 	public static final String REMOTE_MSG_ID = "remoteMsgId";
 	public static final String SERVER_MSG_ID = "serverMsgId";
 	public static final String RELATIVE_FILE_PATH = "relativeFilePath";
+	public static final String ME_COMMAND = "/me ";
 
 	public boolean markable = false;
 	protected String conversationUuid;
@@ -367,7 +368,8 @@ public class Message extends AbstractEntity {
 			 (message.getTimeSent() - this.getTimeSent()) <= (Config.MESSAGE_MERGE_WINDOW * 1000) &&
 			 !message.bodyContainsDownloadable() &&
 			 !this.bodyContainsDownloadable() &&
-			 !this.body.startsWith("/me ")
+			 !message.getBody().startsWith(ME_COMMAND) &&
+			 !this.getBody().startsWith(ME_COMMAND)
 			);
 	}
 
@@ -380,7 +382,7 @@ public class Message extends AbstractEntity {
 	}
 
 	public boolean hasMeCommand() {
-		return getMergedBody().startsWith("/me ");
+		return getMergedBody().startsWith(ME_COMMAND);
 	}
 
 	public int getMergedStatus() {

src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java 🔗

@@ -220,7 +220,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
 		viewHolder.messageBody.setVisibility(View.VISIBLE);
 		if (message.getBody() != null) {
 			final String nick = UIHelper.getMessageDisplayName(message);
-			final String formattedBody = message.getMergedBody().replaceAll("^/me ", nick + " ");
+			final String formattedBody = message.getMergedBody().replaceAll("^" + Message.ME_COMMAND,
+					nick + " ");
 			if (message.getType() != Message.TYPE_PRIVATE) {
 				if (message.hasMeCommand()) {
 					final Spannable span = new SpannableString(formattedBody);

src/main/java/eu/siacs/conversations/utils/UIHelper.java 🔗

@@ -150,8 +150,9 @@ public class UIHelper {
 				return new Pair<>(getFileDescriptionString(context,message),true);
 			}
 		} else {
-			if (message.getBody().startsWith("/me ")) {
-				return new Pair<>(message.getBody().replaceAll("^/me ",UIHelper.getMessageDisplayName(message) + " "),false);
+			if (message.getBody().startsWith(Message.ME_COMMAND)) {
+				return new Pair<>(message.getBody().replaceAll("^" + Message.ME_COMMAND,
+						UIHelper.getMessageDisplayName(message) + " "), false);
 			} else {
 				return new Pair<>(message.getBody(), false);
 			}