Added multilingual text rendering
This commit is contained in:
parent
f51796a184
commit
22be3b6067
|
@ -5,12 +5,12 @@ package.domain = io.unsigned
|
|||
|
||||
source.dir = .
|
||||
source.include_exts = py,png,jpg,jpeg,webp,ttf,kv,pyi,typed,so,0,1,2,3,atlas,frag,html,css,js,whl,zip,gz,woff2,pdf,epub
|
||||
source.include_patterns = assets/*,share/*
|
||||
source.include_patterns = assets/*,assets/fonts/*,share/*
|
||||
source.exclude_patterns = app_storage/*,venv/*,Makefile,./Makefil*,requirements,precompiled/*,parked/*,./setup.py,Makef*,./Makefile,Makefile
|
||||
|
||||
version.regex = __version__ = ['"](.*)['"]
|
||||
version.filename = %(source.dir)s/main.py
|
||||
android.numeric_version = 20231207
|
||||
android.numeric_version = 20240103
|
||||
|
||||
# Cryptography recipe is currently broken, using RNS-internal crypto for now
|
||||
requirements = kivy==2.2.1,libbz2,pillow,qrcode==7.3.1,usb4a,usbserial4a
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
__debug_build__ = False
|
||||
__disable_shaders__ = False
|
||||
__version__ = "0.7.7"
|
||||
__version__ = "0.7.8"
|
||||
__variant__ = "beta"
|
||||
|
||||
import sys
|
||||
|
@ -179,6 +179,7 @@ class SidebandApp(MDApp):
|
|||
self.sideband = SidebandCore(self, is_client=False, verbose=(args.verbose or __debug_build__))
|
||||
|
||||
self.set_ui_theme()
|
||||
self.font_config()
|
||||
self.dark_theme_text_color = dark_theme_text_color
|
||||
|
||||
self.conversations_view = None
|
||||
|
@ -347,6 +348,27 @@ class SidebandApp(MDApp):
|
|||
|
||||
self.update_ui_colors()
|
||||
|
||||
def font_config(self):
|
||||
from kivy.core.text import LabelBase, DEFAULT_FONT
|
||||
fb_path = "assets/fonts/"
|
||||
LabelBase.register(name="hebrew",
|
||||
fn_regular=fb_path+"NotoSansHebrew-Regular.ttf",
|
||||
fn_bold=fb_path+"NotoSansHebrew-Bold.ttf",)
|
||||
|
||||
LabelBase.register(name="japanese",
|
||||
fn_regular=fb_path+"NotoSansJP-Regular.ttf")
|
||||
|
||||
LabelBase.register(name="chinese",
|
||||
fn_regular=fb_path+"NotoSansSC-Regular.ttf")
|
||||
|
||||
LabelBase.register(name="korean",
|
||||
fn_regular=fb_path+"NotoSansKR-Regular.ttf")
|
||||
|
||||
LabelBase.register(name="emoji",
|
||||
fn_regular=fb_path+"NotoEmoji-Regular.ttf")
|
||||
|
||||
|
||||
|
||||
def update_ui_colors(self):
|
||||
if self.sideband.config["dark_ui"]:
|
||||
self.color_reject = colors["DeepOrange"]["900"]
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
<!-- Allow writing to external storage -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
<!-- Legacy permissions for bluetooth access (Android < 12) -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -12,10 +12,16 @@ from kivy.properties import StringProperty, BooleanProperty
|
|||
from kivy.uix.gridlayout import GridLayout
|
||||
from kivy.uix.boxlayout import BoxLayout
|
||||
from kivy.clock import Clock
|
||||
from kivy.utils import escape_markup
|
||||
|
||||
from kivymd.uix.button import MDRectangleFlatButton, MDRectangleFlatIconButton
|
||||
from kivymd.uix.dialog import MDDialog
|
||||
|
||||
if RNS.vendor.platformutils.get_platform() == "android":
|
||||
from ui.helpers import multilingual_markup
|
||||
else:
|
||||
from .helpers import multilingual_markup
|
||||
|
||||
import os
|
||||
import plyer
|
||||
import subprocess
|
||||
|
@ -175,6 +181,13 @@ class Messages():
|
|||
|
||||
for m in self.new_messages:
|
||||
if not m["hash"] in self.added_item_hashes:
|
||||
if not self.is_trusted:
|
||||
message_input = str( escape_markup(m["content"].decode("utf-8")) ).encode("utf-8")
|
||||
else:
|
||||
message_input = m["content"]
|
||||
|
||||
message_markup = multilingual_markup(message_input)
|
||||
|
||||
txstr = time.strftime(ts_format, time.localtime(m["sent"]))
|
||||
rxstr = time.strftime(ts_format, time.localtime(m["received"]))
|
||||
titlestr = ""
|
||||
|
@ -305,7 +318,7 @@ class Messages():
|
|||
force_markup = True
|
||||
|
||||
item = ListLXMessageCard(
|
||||
text=pre_content+m["content"].decode("utf-8")+extra_content,
|
||||
text=pre_content+message_markup.decode("utf-8")+extra_content,
|
||||
heading=heading_str,
|
||||
md_bg_color=msg_color,
|
||||
)
|
||||
|
@ -320,7 +333,6 @@ class Messages():
|
|||
item.ids.content_text.text_color = mt_color
|
||||
item.ids.msg_submenu.theme_text_color = "Custom"
|
||||
item.ids.msg_submenu.text_color = mt_color
|
||||
item.ids.content_text.markup = self.is_trusted or force_markup
|
||||
|
||||
def gen_del(mhash, item):
|
||||
def x():
|
||||
|
@ -759,7 +771,7 @@ Builder.load_string("""
|
|||
MDLabel:
|
||||
id: content_text
|
||||
text: root.text
|
||||
markup: False
|
||||
markup: True
|
||||
size_hint_y: None
|
||||
text_size: self.width, None
|
||||
height: self.texture_size[1]
|
||||
|
|
Loading…
Reference in New Issue