From fa72820e5ab4cd66d4ae8c5132e4e307f7ac50e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sun, 22 Oct 2023 10:20:40 +0100 Subject: [PATCH] Mi Band 8: Map emoji (inefficient) --- .../xiaomi/XiaomiEncryptedSupport.java | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiEncryptedSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiEncryptedSupport.java index aa38cea1e..fcdb81b16 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiEncryptedSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiEncryptedSupport.java @@ -19,6 +19,8 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.UUID; import nodomain.freeyourgadget.gadgetbridge.service.btle.GattService; @@ -86,4 +88,105 @@ public class XiaomiEncryptedSupport extends XiaomiSupport { protected void startAuthentication(final TransactionBuilder builder) { authService.startEncryptedHandshake(builder); } + + @Override + public String customStringFilter(final String inputString) { + // TODO: Do this more efficiently - it iterates the input string 88 times... + String customString = inputString; + for (Map.Entry emoji : EMOJI_MAP.entrySet()) { + customString = customString.replaceAll(emoji.getKey(), emoji.getValue()); + } + return customString; + } + + private static final Map EMOJI_MAP = new LinkedHashMap() {{ + put("\uD83D\uDE0D", "ꀂ"); // 😍 + put("\uD83D\uDE18", "ꀃ"); // 😘 + put("\uD83D\uDE02", "ꀄ"); // 😂 + put("\uD83D\uDE0A", "ꀅ"); // 😊 + put("\uD83D\uDE0E", "ꀆ"); // 😎 + put("\uD83D\uDE09", "ꀇ"); // 😉 + put("\uD83D\uDC8B", "ꀈ"); // 💋 + put("\uD83D\uDC4D", "ꀉ"); // 👍 + put("\uD83E\uDD23", "ꀊ"); // 🤣 + put("\uD83D\uDC95", "ꀋ"); // 💕 + put("\uD83D\uDE00", "ꀌ"); // 😀 + put("\uD83D\uDE04", "ꀍ"); // 😄 + put("\uD83D\uDE2D", "ꀎ"); // 😭 + put("\uD83E\uDD7A", "ꀏ"); // 🥺 + put("\uD83D\uDE4F", "ꀑ"); // 🙏 + put("\uD83E\uDD70", "ꀒ"); // 🥰 + put("\uD83E\uDD14", "ꀓ"); // 🤔 + put("\uD83D\uDD25", "ꀔ"); // 🔥 + put("\uD83D\uDE29", "ꀗ"); // 😩 + put("\uD83D\uDE14", "ꀘ"); // 😔 + put("\uD83D\uDE01", "ꀙ"); // 😁 + put("\uD83D\uDC4C", "ꀚ"); // 👌 + put("\uD83D\uDE0F", "ꀛ"); // 😏 + put("\uD83D\uDE05", "ꀜ"); // 😅 + put("\uD83E\uDD0D", "ꀝ"); // 🤍 + put("\uD83D\uDC94", "ꀞ"); // 💔 + put("\uD83D\uDE0C", "ꀟ"); // 😌 + put("\uD83D\uDE22", "ꀠ"); // 😢 + put("\uD83D\uDC99", "ꀡ"); // 💙 + put("\uD83D\uDC9C", "ꀢ"); // 💜 + put("\uD83C\uDFB6", "ꀤ"); // 🎶 + put("\uD83D\uDE33", "ꀥ"); // 😳 + put("\uD83D\uDC96", "ꀦ"); // 💖 + put("\uD83D\uDE4C", "ꀧ"); // 🙌 + put("\uD83D\uDCAF", "ꀨ"); // 💯 + put("\uD83D\uDE48", "ꀩ"); // 🙈 + put("\uD83D\uDE0B", "ꀫ"); // 😋 + put("\uD83D\uDE11", "ꀬ"); // 😑 + put("\uD83D\uDE34", "ꀭ"); // 😴 + put("\uD83D\uDE2A", "ꀮ"); // 😪 + put("\uD83D\uDE1C", "ꀯ"); // 😜 + put("\uD83D\uDE1B", "ꀰ"); // 😛 + put("\uD83D\uDE1D", "ꀱ"); // 😝 + put("\uD83D\uDE1E", "ꀲ"); // 😞 + put("\uD83D\uDE15", "ꀳ"); // 😕 + put("\uD83D\uDC97", "ꀴ"); // 💗 + put("\uD83D\uDC4F", "ꀵ"); // 👏 + put("\uD83D\uDE10", "ꀶ"); // 😐 + put("\uD83D\uDC49", "ꀷ"); // 👉 + put("\uD83D\uDC9B", "ꀸ"); // 💛 + put("\uD83D\uDC9E", "ꀹ"); // 💞 + put("\uD83D\uDCAA", "ꀺ"); // 💪 + put("\uD83C\uDF39", "ꀻ"); // 🌹 + put("\uD83D\uDC80", "ꀼ"); // 💀 + put("\uD83D\uDE31", "ꀽ"); // 😱 + put("\uD83D\uDC98", "ꀾ"); // 💘 + put("\uD83E\uDD1F", "ꀿ"); // 🤟 + put("\uD83D\uDE21", "ꁀ"); // 😡 + put("\uD83D\uDCF7", "ꁁ"); // 📷 + put("\uD83C\uDF38", "ꁂ"); // 🌸 + put("\uD83D\uDE08", "ꁃ"); // 😈 + put("\uD83D\uDC48", "ꁄ"); // 👈 + put("\uD83C\uDF89", "ꁅ"); // 🎉 + put("\uD83D\uDC81", "ꁆ"); // 💁 + put("\uD83D\uDE4A", "ꁇ"); // 🙊 + put("\uD83D\uDC9A", "ꁈ"); // 💚 + put("\uD83D\uDE2B", "ꁉ"); // 😫 + put("\uD83D\uDE24", "ꁊ"); // 😤 + put("\uD83D\uDC93", "ꁍ"); // 💓 + put("\uD83C\uDF1A", "ꁎ"); // 🌚 + put("\uD83D\uDC47", "ꁏ"); // 👇 + put("\uD83D\uDE07", "ꁒ"); // 😇 + put("\uD83D\uDC4A", "ꁓ"); // 👊 + put("\uD83D\uDC51", "ꁔ"); // 👑 + put("\uD83D\uDE13", "ꁕ"); // 😓 + put("\uD83D\uDE3B", "ꁖ"); // 😻 + put("\uD83D\uDD34", "ꁗ"); // 🔴 + put("\uD83D\uDE25", "ꁘ"); // 😥 + put("\uD83E\uDD29", "ꁙ"); // 🤩 + put("\uD83D\uDE1A", "ꁚ"); // 😚 + put("\uD83D\uDE37", "ꁜ"); // 😷 + put("\uD83D\uDC4B", "ꁝ"); // 👋 + put("\uD83D\uDCA5", "ꁞ"); // 💥 + put("\uD83E\uDD2D", "ꁠ"); // 🤭 + put("\uD83C\uDF1F", "ꁡ"); // 🌟 + put("\uD83E\uDD71", "ꁢ"); // 🥱 + put("\uD83D\uDCA9", "ꁣ"); // 💩 + put("\uD83D\uDE80", "ꁤ"); // 🚀 + }}; }