From f58c65544993eca543425a258f764da5f2e2ea7b Mon Sep 17 00:00:00 2001 From: Arjan Schrijver Date: Sat, 22 Jul 2023 12:13:25 +0200 Subject: [PATCH] Fossil/Skagen Hybrids: Strip unicode characters that the watch can't display --- .../service/devices/qhybrid/QHybridSupport.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/QHybridSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/QHybridSupport.java index 29213c326..bfee4c841 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/QHybridSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/QHybridSupport.java @@ -17,8 +17,6 @@ along with this program. If not, see . */ package nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid; -import android.app.Notification; -import android.app.PendingIntent; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCharacteristic; import android.content.BroadcastReceiver; @@ -27,7 +25,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.widget.Toast; @@ -38,8 +35,6 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileOutputStream; -import java.io.PrintWriter; -import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -47,7 +42,6 @@ import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; -import nodomain.freeyourgadget.gadgetbridge.BuildConfig; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst; @@ -562,6 +556,14 @@ public class QHybridSupport extends QHybridBaseSupport { logger.debug(message); } + @Override + public String customStringFilter(String inputString) { + // Remove Unicode code points that can't be displayed by the watch like emoji skin tones and variation selectors + // \x{1f3fb}-\x{1f3ff} = Emoji skin tones: https://en.wikipedia.org/wiki/Emoticons_(Unicode_block) + // \ufe00-\ufe0f = Variation selectors: https://en.wikipedia.org/wiki/Variation_Selectors_(Unicode_block) + return inputString.replaceAll("[\\x{1f3fb}-\\x{1f3ff}|\\ufe00-\\ufe0f]", ""); + } + @Override public void onDeleteNotification(int id) { super.onDeleteNotification(id);