Added detection of failed markup rendering, and plaintext fallback

This commit is contained in:
Mark Qvist 2024-12-09 12:25:59 +01:00
parent ad58ab335a
commit b2a5b8c193
2 changed files with 12 additions and 4 deletions

View File

@ -45,10 +45,6 @@ def strip_emojis(str_input):
return output
def multilingual_markup(data):
# TODO: Remove
# import time
# ts = time.time()
do = ""
rfont = "default"
ds = data.decode("utf-8")
@ -95,6 +91,10 @@ def multilingual_markup(data):
return do.encode("utf-8")
font_map = {
"mono": "RobotoMono-Regular"
}
codepoint_map = {
0x0590: [0x05ff, "hebrew"],
0x2e3a: [0x2e3b, "chinese"],

View File

@ -653,6 +653,14 @@ class Messages():
item.ids.content_text.owner = item
item.ids.content_text.bind(texture_size=check_textures)
def cbf(w):
def x(dt):
if w.texture_size[0] == 0 and w.texture_size[1] == 0:
w.text = "[i]This message could not be rendered, likely due to an error in its markup. Falling back to plain-text rendering.[/i]\n\n"+escape_markup(w.text)
return x
Clock.schedule_once(cbf(item.ids.content_text), 0.25)
if not RNS.vendor.platformutils.is_android():
item.radius = dp(5)