feat(android): Skia renders the text, so Arabic reads properly
An Arabic attachment name displayed scrambled. Not a missed setting: FMX's original text engine does not shape complex scripts - no bidirectional reordering, no letter joining. Separating the size from the name limited the damage without removing it. Skia carries HarfBuzz and does the work. GlobalUseSkia goes before Application.Initialize; the canvas is chosen at init and switching later does not reclaim what is already built. The price is libsk4d.so, 25 MB raw, and an APK from 13 to 22 MB. Deploy rebuilds library\\lib just before calling aapt, so a hand-placed library disappears. A proper DeployFile entry was tried first - MSBuild ignores it, as it ignores every other one in this project. Hence repack-apk.ps1, which redoes aapt, zipalign and signing on the folder already prepared. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -138,6 +138,23 @@ confort, ce qui est le mauvais sens pour un gestionnaire de mots de passe.
|
||||
|
||||
</details>
|
||||
|
||||
## 1 ter. Écritures complexes — Skia (2026-08-15)
|
||||
|
||||
Un nom de pièce jointe en arabe s'affichait en désordre. Ce n'était pas un
|
||||
réglage manqué : le moteur de texte d'origine de FMX ne met pas en forme les
|
||||
écritures complexes — pas de réordonnancement bidirectionnel, pas de liaison
|
||||
des lettres. Séparer la taille du nom limitait les dégâts sans les supprimer.
|
||||
|
||||
`GlobalUseSkia := True` avant `Application.Initialize` remplace le moteur de
|
||||
rendu ; Skia embarque HarfBuzz et fait ce travail. Le prix est `libsk4d.so`,
|
||||
25 Mo (8,9 Mo compressés), et un **APK qui passe de 13 à 22 Mo**.
|
||||
|
||||
Conséquence sur la fabrication : `Deploy` reconstruit `library\lib` avant
|
||||
`aapt`, donc la bibliothèque posée à la main disparaît. D'où
|
||||
[repack-apk.ps1](repack-apk.ps1), qui refait *aapt → zipalign → signature* sur
|
||||
le dossier déjà prêt. Une entrée `DeployFile` en bonne et due forme a été
|
||||
tentée d'abord : MSBuild l'ignore, comme il ignore toutes les autres ici.
|
||||
|
||||
## 2. Durcissement — petit, à faire avant tout usage réel
|
||||
|
||||
Par ordre de gravité, pas de taille.
|
||||
|
||||
Reference in New Issue
Block a user