From affb3c4254aa25e99e0682b5c0e96b4c7dd174fb Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 3 Aug 2017 08:55:22 +0200 Subject: display messages that only contain emoji slightly larger --- build.gradle | 3 +++ src/main/java/de/pixart/messenger/entities/Message.java | 10 ++++++---- .../java/de/pixart/messenger/ui/adapter/MessageAdapter.java | 11 ++++++----- src/main/java/de/pixart/messenger/utils/UIHelper.java | 6 ------ src/main/res/values/strings.xml | 1 + 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 662e4c069..f06c70202 100644 --- a/build.gradle +++ b/build.gradle @@ -62,6 +62,9 @@ dependencies { compile 'com.wefika:flowlayout:0.4.1' compile 'com.googlecode.ez-vcard:ez-vcard:0.10.2' compile 'com.vanniktech:emoji-ios:0.4.0' + compile('com.vdurmont:emoji-java:3.3.0') { + exclude group: 'org.json', module: 'json' + } } ext { diff --git a/src/main/java/de/pixart/messenger/entities/Message.java b/src/main/java/de/pixart/messenger/entities/Message.java index d13e90743..885e84f1d 100644 --- a/src/main/java/de/pixart/messenger/entities/Message.java +++ b/src/main/java/de/pixart/messenger/entities/Message.java @@ -4,6 +4,8 @@ import android.content.ContentValues; import android.database.Cursor; import android.text.SpannableStringBuilder; +import com.vdurmont.emoji.EmojiManager; + import java.net.MalformedURLException; import java.net.URL; @@ -501,8 +503,8 @@ public class Message extends AbstractEntity { !this.treatAsDownloadable() && !message.getBody().startsWith(ME_COMMAND) && !this.getBody().startsWith(ME_COMMAND) && - !this.bodyIsHeart() && - !message.bodyIsHeart() && + !this.bodyIsOnlyEmojis() && + !message.bodyIsOnlyEmojis() && !this.bodyIsXmpp() && !message.bodyIsXmpp() && ((this.axolotlFingerprint == null && message.axolotlFingerprint == null) || this.axolotlFingerprint.equals(message.getFingerprint())) && @@ -669,8 +671,8 @@ public class Message extends AbstractEntity { } } - public boolean bodyIsHeart() { - return body != null && UIHelper.HEARTS.contains(body.trim()); + public boolean bodyIsOnlyEmojis() { + return EmojiManager.isOnlyEmojis(body.trim()); } public boolean bodyIsXmpp() { diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java index 8320ac8ad..9aa34d88a 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -43,6 +43,7 @@ import android.widget.Toast; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.vdurmont.emoji.EmojiManager; import java.io.File; import java.io.IOException; @@ -361,7 +362,7 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie viewHolder.messageBody.setTextIsSelectable(false); } - private void displayHeartMessage(final ViewHolder viewHolder, final String body) { + private void displayEmojiMessage(final ViewHolder viewHolder, final String body) { viewHolder.aw_player.setVisibility(View.GONE); if (viewHolder.download_button != null) { viewHolder.download_button.setVisibility(View.GONE); @@ -370,8 +371,8 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie viewHolder.messageBody.setVisibility(View.VISIBLE); viewHolder.messageBody.setIncludeFontPadding(false); Spannable span = new SpannableString(body); - span.setSpan(new RelativeSizeSpan(4.0f), 0, body.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - span.setSpan(new ForegroundColorSpan(activity.getWarningTextColor()), 0, body.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + float size = EmojiManager.isEmoji(body) ? 3.0f : 2.0f; + span.setSpan(new RelativeSizeSpan(size), 0, body.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); viewHolder.messageBody.setText(span); } @@ -962,8 +963,8 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } else { if (GeoHelper.isGeoUri(message.getBody())) { displayLocationMessage(viewHolder, message); - } else if (message.bodyIsHeart()) { - displayHeartMessage(viewHolder, message.getBody().trim()); + } else if (message.bodyIsOnlyEmojis()) { + displayEmojiMessage(viewHolder, message.getBody().trim()); } else if (message.bodyIsXmpp()) { displayXmppMessage(viewHolder, message.getBody().trim()); } else if (message.treatAsDownloadable()) { diff --git a/src/main/java/de/pixart/messenger/utils/UIHelper.java b/src/main/java/de/pixart/messenger/utils/UIHelper.java index ab749ca2d..955b7db10 100644 --- a/src/main/java/de/pixart/messenger/utils/UIHelper.java +++ b/src/main/java/de/pixart/messenger/utils/UIHelper.java @@ -28,12 +28,6 @@ import de.pixart.messenger.xmpp.jid.Jid; public class UIHelper { - private static String BLACK_HEART_SUIT = "\u2665"; - private static String HEAVY_BLACK_HEART_SUIT = "\u2764"; - private static String WHITE_HEART_SUIT = "\u2661"; - - public static final List HEARTS = Arrays.asList(BLACK_HEART_SUIT,HEAVY_BLACK_HEART_SUIT,WHITE_HEART_SUIT); - private static final List LOCATION_QUESTIONS = Arrays.asList( "where are you", //en "where are you now", //en diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 403902149..44ad91908 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -319,6 +319,7 @@ \n\nhttps://github.com/vanniktech/Emoji\n(Apache License, Version 2.0) \n\nhttps://github.com/ypresto/android-transcoder\n(Apache License, Version 2.0) \n\nhttp://www.eclipse.org/jetty/\n(Apache License, Version 2.0 and Eclipse Public License 1.0) + \n\nhttps://github.com/vdurmont/emoji-java\n(The MIT License) Quiet Hours Start time -- cgit v1.2.3