1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-29 05:16:51 +01:00

Do not flatten to ASCII if device supports unicode

This commit is contained in:
José Rebelo 2023-10-11 23:21:39 +01:00
parent 60f91a9f93
commit 7cbc6cb439

View File

@ -32,6 +32,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.util.Prefs; import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.ArabicTransliterator; import nodomain.freeyourgadget.gadgetbridge.util.language.impl.ArabicTransliterator;
@ -109,6 +110,7 @@ public class LanguageUtils {
*/ */
@Nullable @Nullable
public static Transliterator getTransliterator(final GBDevice device) { public static Transliterator getTransliterator(final GBDevice device) {
final DeviceCoordinator coordinator = device.getDeviceCoordinator();
final Prefs devicePrefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(device.getAddress())); final Prefs devicePrefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()));
final String transliterateLanguagesPref = devicePrefs.getString(PREF_TRANSLITERATION_LANGUAGES, ""); final String transliterateLanguagesPref = devicePrefs.getString(PREF_TRANSLITERATION_LANGUAGES, "");
@ -128,7 +130,14 @@ public class LanguageUtils {
transliterators.add(TRANSLITERATORS_MAP.get(language)); transliterators.add(TRANSLITERATORS_MAP.get(language));
} }
if (!coordinator.supportsUnicodeEmojis()) {
// For now, assume that if the device does not support unicode emoji, it also doesn't
// support utf, so flatten to ASCII. This allows for devices that support unicode
// characters to still use transliterators for languages not supported by the device,
// and still get emoji
// TODO: Maybe this should be configurable, or at least separate from the emoji setting
transliterators.add(new FlattenToAsciiTransliterator()); transliterators.add(new FlattenToAsciiTransliterator());
}
return new MultiTransliterator(transliterators); return new MultiTransliterator(transliterators);
} }