From c901530d59ac77a0408c1429ff750290faecccc9 Mon Sep 17 00:00:00 2001 From: OfficialDakari Date: Tue, 2 Dec 2025 11:21:22 +0500 Subject: [PATCH] fix: render not allowed html tags as text fix: do not render html in unformatted messages --- .../reports/problems/problems-report.html | 2 +- assets/l10n/intl_en.arb | 10 ++++++ assets/l10n/intl_ru.arb | 10 ++++++ lib/generated/l10n/l10n.dart | 12 +++++++ lib/generated/l10n/l10n_ar.dart | 8 +++++ lib/generated/l10n/l10n_be.dart | 8 +++++ lib/generated/l10n/l10n_bn.dart | 8 +++++ lib/generated/l10n/l10n_bo.dart | 8 +++++ lib/generated/l10n/l10n_ca.dart | 8 +++++ lib/generated/l10n/l10n_cs.dart | 8 +++++ lib/generated/l10n/l10n_de.dart | 8 +++++ lib/generated/l10n/l10n_el.dart | 8 +++++ lib/generated/l10n/l10n_en.dart | 8 +++++ lib/generated/l10n/l10n_eo.dart | 8 +++++ lib/generated/l10n/l10n_es.dart | 8 +++++ lib/generated/l10n/l10n_et.dart | 8 +++++ lib/generated/l10n/l10n_eu.dart | 8 +++++ lib/generated/l10n/l10n_fa.dart | 8 +++++ lib/generated/l10n/l10n_fi.dart | 8 +++++ lib/generated/l10n/l10n_fil.dart | 8 +++++ lib/generated/l10n/l10n_fr.dart | 8 +++++ lib/generated/l10n/l10n_ga.dart | 8 +++++ lib/generated/l10n/l10n_gl.dart | 8 +++++ lib/generated/l10n/l10n_he.dart | 8 +++++ lib/generated/l10n/l10n_hi.dart | 8 +++++ lib/generated/l10n/l10n_hr.dart | 8 +++++ lib/generated/l10n/l10n_hu.dart | 8 +++++ lib/generated/l10n/l10n_ia.dart | 8 +++++ lib/generated/l10n/l10n_id.dart | 8 +++++ lib/generated/l10n/l10n_ie.dart | 8 +++++ lib/generated/l10n/l10n_it.dart | 8 +++++ lib/generated/l10n/l10n_ja.dart | 8 +++++ lib/generated/l10n/l10n_ka.dart | 8 +++++ lib/generated/l10n/l10n_ko.dart | 8 +++++ lib/generated/l10n/l10n_lt.dart | 8 +++++ lib/generated/l10n/l10n_lv.dart | 8 +++++ lib/generated/l10n/l10n_nb.dart | 8 +++++ lib/generated/l10n/l10n_nl.dart | 8 +++++ lib/generated/l10n/l10n_pl.dart | 8 +++++ lib/generated/l10n/l10n_pt.dart | 8 +++++ lib/generated/l10n/l10n_ro.dart | 8 +++++ lib/generated/l10n/l10n_ru.dart | 8 +++++ lib/generated/l10n/l10n_sk.dart | 8 +++++ lib/generated/l10n/l10n_sl.dart | 8 +++++ lib/generated/l10n/l10n_sr.dart | 8 +++++ lib/generated/l10n/l10n_sv.dart | 8 +++++ lib/generated/l10n/l10n_ta.dart | 8 +++++ lib/generated/l10n/l10n_te.dart | 8 +++++ lib/generated/l10n/l10n_th.dart | 8 +++++ lib/generated/l10n/l10n_tr.dart | 8 +++++ lib/generated/l10n/l10n_uk.dart | 8 +++++ lib/generated/l10n/l10n_vi.dart | 8 +++++ lib/generated/l10n/l10n_zh.dart | 8 +++++ lib/pages/chat/events/html_message.dart | 5 +-- lib/pages/chat/events/message_content.dart | 36 +++++++++++++------ .../download_manager/download_manager.dart | 35 +++++++++--------- .../matrix_sdk_extensions/matrix_locals.dart | 7 ++-- 57 files changed, 473 insertions(+), 36 deletions(-) diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html index f85479d..e923c4a 100644 --- a/android/build/reports/problems/problems-report.html +++ b/android/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index a0cd35f..759b224 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -2146,6 +2146,16 @@ "type": "String", "placeholders": {} }, + "pollHasBeenEnded": "Poll has been ended", + "startedAPoll": "{senderName} started a poll", + "@startedAPoll": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, "startedACall": "{senderName} started a call", "@startedACall": { "type": "String", diff --git a/assets/l10n/intl_ru.arb b/assets/l10n/intl_ru.arb index f4d31e4..98e54be 100644 --- a/assets/l10n/intl_ru.arb +++ b/assets/l10n/intl_ru.arb @@ -42,6 +42,16 @@ "@alwaysUse24HourFormat": { "description": "Set to true to always display time of day in 24 hour format." }, + "pollHasBeenEnded": "Опрос окончен", + "startedAPoll": "{senderName} создал(-а) опрос", + "@startedAPoll": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, "cleanExif": "Очищать EXIF", "@cleanExif": { "type": "String", diff --git a/lib/generated/l10n/l10n.dart b/lib/generated/l10n/l10n.dart index ad42468..2b7d798 100644 --- a/lib/generated/l10n/l10n.dart +++ b/lib/generated/l10n/l10n.dart @@ -2877,6 +2877,18 @@ abstract class L10n { /// **'Space name'** String get spaceName; + /// No description provided for @pollHasBeenEnded. + /// + /// In en, this message translates to: + /// **'Poll has been ended'** + String get pollHasBeenEnded; + + /// No description provided for @startedAPoll. + /// + /// In en, this message translates to: + /// **'{senderName} started a poll'** + String startedAPoll(String senderName); + /// No description provided for @startedACall. /// /// In en, this message translates to: diff --git a/lib/generated/l10n/l10n_ar.dart b/lib/generated/l10n/l10n_ar.dart index 554164c..e1d0730 100644 --- a/lib/generated/l10n/l10n_ar.dart +++ b/lib/generated/l10n/l10n_ar.dart @@ -1530,6 +1530,14 @@ class L10nAr extends L10n { @override String get spaceName => 'اسم المساحة'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return 'بدأ $senderName مكالمة'; diff --git a/lib/generated/l10n/l10n_be.dart b/lib/generated/l10n/l10n_be.dart index e1bac2a..ab9d829 100644 --- a/lib/generated/l10n/l10n_be.dart +++ b/lib/generated/l10n/l10n_be.dart @@ -1539,6 +1539,14 @@ class L10nBe extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_bn.dart b/lib/generated/l10n/l10n_bn.dart index fba7685..9a24b92 100644 --- a/lib/generated/l10n/l10n_bn.dart +++ b/lib/generated/l10n/l10n_bn.dart @@ -1539,6 +1539,14 @@ class L10nBn extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_bo.dart b/lib/generated/l10n/l10n_bo.dart index 413b3f4..b82433d 100644 --- a/lib/generated/l10n/l10n_bo.dart +++ b/lib/generated/l10n/l10n_bo.dart @@ -1539,6 +1539,14 @@ class L10nBo extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_ca.dart b/lib/generated/l10n/l10n_ca.dart index 1961411..3582f1f 100644 --- a/lib/generated/l10n/l10n_ca.dart +++ b/lib/generated/l10n/l10n_ca.dart @@ -1552,6 +1552,14 @@ class L10nCa extends L10n { @override String get spaceName => 'Nom de l’espai'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName ha iniciat una trucada'; diff --git a/lib/generated/l10n/l10n_cs.dart b/lib/generated/l10n/l10n_cs.dart index 252a9c2..8e826c0 100644 --- a/lib/generated/l10n/l10n_cs.dart +++ b/lib/generated/l10n/l10n_cs.dart @@ -1543,6 +1543,14 @@ class L10nCs extends L10n { @override String get spaceName => 'Název prostoru'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName zahájil hovor'; diff --git a/lib/generated/l10n/l10n_de.dart b/lib/generated/l10n/l10n_de.dart index c905cce..9cac01f 100644 --- a/lib/generated/l10n/l10n_de.dart +++ b/lib/generated/l10n/l10n_de.dart @@ -1548,6 +1548,14 @@ class L10nDe extends L10n { @override String get spaceName => 'Space-Name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName hat einen Anruf getätigt'; diff --git a/lib/generated/l10n/l10n_el.dart b/lib/generated/l10n/l10n_el.dart index 8786f3d..20c7204 100644 --- a/lib/generated/l10n/l10n_el.dart +++ b/lib/generated/l10n/l10n_el.dart @@ -1540,6 +1540,14 @@ class L10nEl extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_en.dart b/lib/generated/l10n/l10n_en.dart index db0eb32..d2d1335 100644 --- a/lib/generated/l10n/l10n_en.dart +++ b/lib/generated/l10n/l10n_en.dart @@ -1539,6 +1539,14 @@ class L10nEn extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_eo.dart b/lib/generated/l10n/l10n_eo.dart index 0e5f95b..b3f26d3 100644 --- a/lib/generated/l10n/l10n_eo.dart +++ b/lib/generated/l10n/l10n_eo.dart @@ -1545,6 +1545,14 @@ class L10nEo extends L10n { @override String get spaceName => 'Nomo de aro'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName komencis vokon'; diff --git a/lib/generated/l10n/l10n_es.dart b/lib/generated/l10n/l10n_es.dart index f1e6ca8..a45dc34 100644 --- a/lib/generated/l10n/l10n_es.dart +++ b/lib/generated/l10n/l10n_es.dart @@ -1554,6 +1554,14 @@ class L10nEs extends L10n { @override String get spaceName => 'Nombre del espacio'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName comenzó una llamada'; diff --git a/lib/generated/l10n/l10n_et.dart b/lib/generated/l10n/l10n_et.dart index f5d23e2..a1d1eaa 100644 --- a/lib/generated/l10n/l10n_et.dart +++ b/lib/generated/l10n/l10n_et.dart @@ -1547,6 +1547,14 @@ class L10nEt extends L10n { @override String get spaceName => 'Kogukonna nimi'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName alustas kõnet'; diff --git a/lib/generated/l10n/l10n_eu.dart b/lib/generated/l10n/l10n_eu.dart index 98c8946..5695087 100644 --- a/lib/generated/l10n/l10n_eu.dart +++ b/lib/generated/l10n/l10n_eu.dart @@ -1546,6 +1546,14 @@ class L10nEu extends L10n { @override String get spaceName => 'Gunearen izena'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName(e)k deia hasi du'; diff --git a/lib/generated/l10n/l10n_fa.dart b/lib/generated/l10n/l10n_fa.dart index a32e937..9ab67e9 100644 --- a/lib/generated/l10n/l10n_fa.dart +++ b/lib/generated/l10n/l10n_fa.dart @@ -1540,6 +1540,14 @@ class L10nFa extends L10n { @override String get spaceName => 'نام فضا'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName تماسی را شروع کرد'; diff --git a/lib/generated/l10n/l10n_fi.dart b/lib/generated/l10n/l10n_fi.dart index d0cee4f..49aaddc 100644 --- a/lib/generated/l10n/l10n_fi.dart +++ b/lib/generated/l10n/l10n_fi.dart @@ -1544,6 +1544,14 @@ class L10nFi extends L10n { @override String get spaceName => 'Tilan nimi'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName aloitti puhelun'; diff --git a/lib/generated/l10n/l10n_fil.dart b/lib/generated/l10n/l10n_fil.dart index 65a7d47..8b2519a 100644 --- a/lib/generated/l10n/l10n_fil.dart +++ b/lib/generated/l10n/l10n_fil.dart @@ -1545,6 +1545,14 @@ class L10nFil extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_fr.dart b/lib/generated/l10n/l10n_fr.dart index 1881b8a..390f730 100644 --- a/lib/generated/l10n/l10n_fr.dart +++ b/lib/generated/l10n/l10n_fr.dart @@ -1563,6 +1563,14 @@ class L10nFr extends L10n { @override String get spaceName => 'Nom de l\'espace'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName a démarré un appel'; diff --git a/lib/generated/l10n/l10n_ga.dart b/lib/generated/l10n/l10n_ga.dart index 1c2be37..98784a0 100644 --- a/lib/generated/l10n/l10n_ga.dart +++ b/lib/generated/l10n/l10n_ga.dart @@ -1557,6 +1557,14 @@ class L10nGa extends L10n { @override String get spaceName => 'Ainm an spáis'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return 'Thosaigh $senderName glao'; diff --git a/lib/generated/l10n/l10n_gl.dart b/lib/generated/l10n/l10n_gl.dart index ff509d3..7e55b79 100644 --- a/lib/generated/l10n/l10n_gl.dart +++ b/lib/generated/l10n/l10n_gl.dart @@ -1546,6 +1546,14 @@ class L10nGl extends L10n { @override String get spaceName => 'Nome do Espazo'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName iniciou unha chamada'; diff --git a/lib/generated/l10n/l10n_he.dart b/lib/generated/l10n/l10n_he.dart index 046a32f..d2bd3d1 100644 --- a/lib/generated/l10n/l10n_he.dart +++ b/lib/generated/l10n/l10n_he.dart @@ -1534,6 +1534,14 @@ class L10nHe extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_hi.dart b/lib/generated/l10n/l10n_hi.dart index 1839779..e3244e3 100644 --- a/lib/generated/l10n/l10n_hi.dart +++ b/lib/generated/l10n/l10n_hi.dart @@ -1539,6 +1539,14 @@ class L10nHi extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_hr.dart b/lib/generated/l10n/l10n_hr.dart index 5149287..034bee7 100644 --- a/lib/generated/l10n/l10n_hr.dart +++ b/lib/generated/l10n/l10n_hr.dart @@ -1543,6 +1543,14 @@ class L10nHr extends L10n { @override String get spaceName => 'Ime prostora'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName ja započeo/la poziv'; diff --git a/lib/generated/l10n/l10n_hu.dart b/lib/generated/l10n/l10n_hu.dart index 475f09e..6170f90 100644 --- a/lib/generated/l10n/l10n_hu.dart +++ b/lib/generated/l10n/l10n_hu.dart @@ -1545,6 +1545,14 @@ class L10nHu extends L10n { @override String get spaceName => 'Tér neve'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName hívást indított'; diff --git a/lib/generated/l10n/l10n_ia.dart b/lib/generated/l10n/l10n_ia.dart index afd41d5..7086b8d 100644 --- a/lib/generated/l10n/l10n_ia.dart +++ b/lib/generated/l10n/l10n_ia.dart @@ -1539,6 +1539,14 @@ class L10nIa extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_id.dart b/lib/generated/l10n/l10n_id.dart index 50ae5d3..3560f3c 100644 --- a/lib/generated/l10n/l10n_id.dart +++ b/lib/generated/l10n/l10n_id.dart @@ -1547,6 +1547,14 @@ class L10nId extends L10n { @override String get spaceName => 'Nama space'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName memulai panggilan'; diff --git a/lib/generated/l10n/l10n_ie.dart b/lib/generated/l10n/l10n_ie.dart index 0f31601..0951091 100644 --- a/lib/generated/l10n/l10n_ie.dart +++ b/lib/generated/l10n/l10n_ie.dart @@ -1538,6 +1538,14 @@ class L10nIe extends L10n { @override String get spaceName => 'Nómine de spacie'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_it.dart b/lib/generated/l10n/l10n_it.dart index f6a0322..64e13ae 100644 --- a/lib/generated/l10n/l10n_it.dart +++ b/lib/generated/l10n/l10n_it.dart @@ -1550,6 +1550,14 @@ class L10nIt extends L10n { @override String get spaceName => 'Nome dello spazio'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName ha iniziato una chiamata'; diff --git a/lib/generated/l10n/l10n_ja.dart b/lib/generated/l10n/l10n_ja.dart index d025b46..f43b116 100644 --- a/lib/generated/l10n/l10n_ja.dart +++ b/lib/generated/l10n/l10n_ja.dart @@ -1518,6 +1518,14 @@ class L10nJa extends L10n { @override String get spaceName => 'スペース名'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderNameは通話を開始しました'; diff --git a/lib/generated/l10n/l10n_ka.dart b/lib/generated/l10n/l10n_ka.dart index e9d47e4..edadbbc 100644 --- a/lib/generated/l10n/l10n_ka.dart +++ b/lib/generated/l10n/l10n_ka.dart @@ -1541,6 +1541,14 @@ class L10nKa extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_ko.dart b/lib/generated/l10n/l10n_ko.dart index 5cb12e4..07c6ee8 100644 --- a/lib/generated/l10n/l10n_ko.dart +++ b/lib/generated/l10n/l10n_ko.dart @@ -1509,6 +1509,14 @@ class L10nKo extends L10n { @override String get spaceName => '스페이스 이름'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName 가 통화 시작함'; diff --git a/lib/generated/l10n/l10n_lt.dart b/lib/generated/l10n/l10n_lt.dart index 6b7dcee..5fb6cf1 100644 --- a/lib/generated/l10n/l10n_lt.dart +++ b/lib/generated/l10n/l10n_lt.dart @@ -1544,6 +1544,14 @@ class L10nLt extends L10n { @override String get spaceName => 'Erdvės pavadinimas'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName pradėjo skambutį'; diff --git a/lib/generated/l10n/l10n_lv.dart b/lib/generated/l10n/l10n_lv.dart index b6bc84a..db07201 100644 --- a/lib/generated/l10n/l10n_lv.dart +++ b/lib/generated/l10n/l10n_lv.dart @@ -1548,6 +1548,14 @@ class L10nLv extends L10n { @override String get spaceName => 'Vietas nosaukums'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName uzsāka zvanu'; diff --git a/lib/generated/l10n/l10n_nb.dart b/lib/generated/l10n/l10n_nb.dart index e046e25..85ae747 100644 --- a/lib/generated/l10n/l10n_nb.dart +++ b/lib/generated/l10n/l10n_nb.dart @@ -1541,6 +1541,14 @@ class L10nNb extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName startet en samtale'; diff --git a/lib/generated/l10n/l10n_nl.dart b/lib/generated/l10n/l10n_nl.dart index fa9cda0..36faaf8 100644 --- a/lib/generated/l10n/l10n_nl.dart +++ b/lib/generated/l10n/l10n_nl.dart @@ -1542,6 +1542,14 @@ class L10nNl extends L10n { @override String get spaceName => 'Spacenaam'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName heeft een gesprek gestart'; diff --git a/lib/generated/l10n/l10n_pl.dart b/lib/generated/l10n/l10n_pl.dart index dc6f33c..78154fe 100644 --- a/lib/generated/l10n/l10n_pl.dart +++ b/lib/generated/l10n/l10n_pl.dart @@ -1544,6 +1544,14 @@ class L10nPl extends L10n { @override String get spaceName => 'Nazwa przestrzeni'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName rozpoczął/-ęła rozmowę'; diff --git a/lib/generated/l10n/l10n_pt.dart b/lib/generated/l10n/l10n_pt.dart index 3fee71e..42b3897 100644 --- a/lib/generated/l10n/l10n_pt.dart +++ b/lib/generated/l10n/l10n_pt.dart @@ -1539,6 +1539,14 @@ class L10nPt extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_ro.dart b/lib/generated/l10n/l10n_ro.dart index 031f2f6..eb2ffb1 100644 --- a/lib/generated/l10n/l10n_ro.dart +++ b/lib/generated/l10n/l10n_ro.dart @@ -1550,6 +1550,14 @@ class L10nRo extends L10n { @override String get spaceName => 'Numele spațiului'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName a început un apel'; diff --git a/lib/generated/l10n/l10n_ru.dart b/lib/generated/l10n/l10n_ru.dart index 6ea283b..4928dd0 100644 --- a/lib/generated/l10n/l10n_ru.dart +++ b/lib/generated/l10n/l10n_ru.dart @@ -1543,6 +1543,14 @@ class L10nRu extends L10n { @override String get spaceName => 'Название пространства'; + @override + String get pollHasBeenEnded => 'Опрос окончен'; + + @override + String startedAPoll(String senderName) { + return '$senderName создал(-а) опрос'; + } + @override String startedACall(String senderName) { return '$senderName начал(а) звонок'; diff --git a/lib/generated/l10n/l10n_sk.dart b/lib/generated/l10n/l10n_sk.dart index b39712d..1ee5918 100644 --- a/lib/generated/l10n/l10n_sk.dart +++ b/lib/generated/l10n/l10n_sk.dart @@ -1541,6 +1541,14 @@ class L10nSk extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_sl.dart b/lib/generated/l10n/l10n_sl.dart index 566fbeb..ad30ed0 100644 --- a/lib/generated/l10n/l10n_sl.dart +++ b/lib/generated/l10n/l10n_sl.dart @@ -1543,6 +1543,14 @@ class L10nSl extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_sr.dart b/lib/generated/l10n/l10n_sr.dart index 248ee29..c662fcc 100644 --- a/lib/generated/l10n/l10n_sr.dart +++ b/lib/generated/l10n/l10n_sr.dart @@ -1539,6 +1539,14 @@ class L10nSr extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName започе позив'; diff --git a/lib/generated/l10n/l10n_sv.dart b/lib/generated/l10n/l10n_sv.dart index 5b4b3a6..74f06c5 100644 --- a/lib/generated/l10n/l10n_sv.dart +++ b/lib/generated/l10n/l10n_sv.dart @@ -1540,6 +1540,14 @@ class L10nSv extends L10n { @override String get spaceName => 'Utrymmes namn'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName startade ett samtal'; diff --git a/lib/generated/l10n/l10n_ta.dart b/lib/generated/l10n/l10n_ta.dart index 40dfcf1..c7a0c94 100644 --- a/lib/generated/l10n/l10n_ta.dart +++ b/lib/generated/l10n/l10n_ta.dart @@ -1556,6 +1556,14 @@ class L10nTa extends L10n { @override String get spaceName => 'விண்வெளி பெயர்'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName அழைப்பைத் தொடங்கினார்'; diff --git a/lib/generated/l10n/l10n_te.dart b/lib/generated/l10n/l10n_te.dart index 40c5621..f1b10e8 100644 --- a/lib/generated/l10n/l10n_te.dart +++ b/lib/generated/l10n/l10n_te.dart @@ -1539,6 +1539,14 @@ class L10nTe extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_th.dart b/lib/generated/l10n/l10n_th.dart index a436800..16c7d5e 100644 --- a/lib/generated/l10n/l10n_th.dart +++ b/lib/generated/l10n/l10n_th.dart @@ -1541,6 +1541,14 @@ class L10nTh extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_tr.dart b/lib/generated/l10n/l10n_tr.dart index 2b018f4..efb4d33 100644 --- a/lib/generated/l10n/l10n_tr.dart +++ b/lib/generated/l10n/l10n_tr.dart @@ -1545,6 +1545,14 @@ class L10nTr extends L10n { @override String get spaceName => 'Alan adı'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName bir arama başlattı'; diff --git a/lib/generated/l10n/l10n_uk.dart b/lib/generated/l10n/l10n_uk.dart index 37d8e8d..05b2c58 100644 --- a/lib/generated/l10n/l10n_uk.dart +++ b/lib/generated/l10n/l10n_uk.dart @@ -1549,6 +1549,14 @@ class L10nUk extends L10n { @override String get spaceName => 'Назва простору'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName розпочинає виклик'; diff --git a/lib/generated/l10n/l10n_vi.dart b/lib/generated/l10n/l10n_vi.dart index 1566ea7..0749232 100644 --- a/lib/generated/l10n/l10n_vi.dart +++ b/lib/generated/l10n/l10n_vi.dart @@ -1539,6 +1539,14 @@ class L10nVi extends L10n { @override String get spaceName => 'Space name'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName started a call'; diff --git a/lib/generated/l10n/l10n_zh.dart b/lib/generated/l10n/l10n_zh.dart index e9f6aa9..bbc5d60 100644 --- a/lib/generated/l10n/l10n_zh.dart +++ b/lib/generated/l10n/l10n_zh.dart @@ -1497,6 +1497,14 @@ class L10nZh extends L10n { @override String get spaceName => '空间名称'; + @override + String get pollHasBeenEnded => 'Poll has been ended'; + + @override + String startedAPoll(String senderName) { + return '$senderName started a poll'; + } + @override String startedACall(String senderName) { return '$senderName 开始了通话'; diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart index a2cb56c..e2e4888 100644 --- a/lib/pages/chat/events/html_message.dart +++ b/lib/pages/chat/events/html_message.dart @@ -140,7 +140,7 @@ class HtmlMessage extends StatelessWidget { if (depth >= 100) return const TextSpan(); // This is a text node, so we render it as text: - if (node is! dom.Element) { + if (node is! dom.Element || !allowedHtmlTags.contains(node.localName)) { var text = node.text ?? ''; // Single linebreak nodes between Elements are ignored: if (text == '\n') text = ''; @@ -153,9 +153,6 @@ class HtmlMessage extends StatelessWidget { ); } - // We must not render tags which are not in the allow list: - if (!allowedHtmlTags.contains(node.localName)) return const TextSpan(); - switch (node.localName) { case 'br': return const TextSpan(text: '\n'); diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index f51f31a..6513256 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -108,16 +108,26 @@ class MessageContent extends StatelessWidget { final fontSize = AppConfig.messageFontSize * AppConfig.fontSizeFactor; final buttonTextColor = textColor; switch (event.type) { - case PollEvents.PollStart: - return PollWidget(event, color: textColor, linkColor: linkColor, fontSize: fontSize, timeline: timeline); case EventTypes.Message: case EventTypes.Encrypted: case EventTypes.Sticker: + case PollEvents.PollStart: + // temporary solution + if (event.type == PollEvents.PollStart) { + return PollWidget( + event, + color: textColor, + linkColor: linkColor, + fontSize: fontSize, + timeline: timeline, + ); + } switch (event.messageType) { case MessageTypes.Image: case MessageTypes.Sticker: if (event.redacted) continue textmessage; - final maxSize = event.messageType == MessageTypes.Image ? 512.0 : 256.0; + final maxSize = + event.messageType == MessageTypes.Image ? 512.0 : 256.0; final w = event.content .tryGetMap('info') ?.tryGet('w'); @@ -152,11 +162,10 @@ class MessageContent extends StatelessWidget { return CuteContent(event); case MessageTypes.Audio: if (PlatformInfos.isMobile || - PlatformInfos.isMacOS || - PlatformInfos.isWeb || - // Extera Next is not being built for snap, so enable this. - PlatformInfos.isLinux - ) { + PlatformInfos.isMacOS || + PlatformInfos.isWeb || + // Extera Next is not being built for snap, so enable this. + PlatformInfos.isLinux) { return AudioPlayerWidget( event, color: textColor, @@ -170,7 +179,12 @@ class MessageContent extends StatelessWidget { linkColor: linkColor, ); case MessageTypes.Video: - return EventVideoPlayer(event, textColor, linkColor, timeline: timeline,); + return EventVideoPlayer( + event, + textColor, + linkColor, + timeline: timeline, + ); case MessageTypes.File: return MessageDownloadContent( event, @@ -184,7 +198,9 @@ class MessageContent extends StatelessWidget { if (AppConfig.renderHtml && !event.redacted && event.isRichMessage) { - var html = event.formattedText; + var html = AppConfig.renderHtml && event.isRichMessage + ? event.formattedText + : event.text.replaceAll('<', '<').replaceAll('>', '>'); if (event.messageType == MessageTypes.Emote) { html = '* $html'; } diff --git a/lib/pages/download_manager/download_manager.dart b/lib/pages/download_manager/download_manager.dart index 359b9f4..336b3b4 100644 --- a/lib/pages/download_manager/download_manager.dart +++ b/lib/pages/download_manager/download_manager.dart @@ -38,22 +38,25 @@ class Download { ct = CancelToken(); // Download the file - response = dio.download(httpUrl, "$downloadPath/$name", - onReceiveProgress: (received, total) { - receivedBytes = received; - totalBytes = total; - progress = (receivedBytes / totalBytes) * 100; - if (progress == 100) { - Provider.of(context) - .downloads - .remove(this); - } - print("Download progress: $progress%"); - }, - options: Options( - responseType: ResponseType.bytes, - headers: {'authorization': "Bearer ${mx.accessToken}"}), - cancelToken: ct); + response = dio.download( + httpUrl, + "$downloadPath/$name", + onReceiveProgress: (received, total) { + receivedBytes = received; + totalBytes = total; + progress = (receivedBytes / totalBytes) * 100; + if (progress == 100) { + Provider.of(context) + .downloads + .remove(this); + } + print("Download progress: $progress%"); + }, + options: Options( + responseType: ResponseType.bytes, + headers: {'authorization': "Bearer ${mx.accessToken}"}), + cancelToken: ct, + ); print("Download completed and saved to $downloadPath/$name"); } } catch (e) { diff --git a/lib/utils/matrix_sdk_extensions/matrix_locals.dart b/lib/utils/matrix_sdk_extensions/matrix_locals.dart index f8c1839..3e9b563 100644 --- a/lib/utils/matrix_sdk_extensions/matrix_locals.dart +++ b/lib/utils/matrix_sdk_extensions/matrix_locals.dart @@ -363,13 +363,10 @@ class MatrixLocals extends MatrixLocalizations { @override // TODO: implement pollHasBeenEnded - String get pollHasBeenEnded => throw UnimplementedError(); + String get pollHasBeenEnded => l10n.pollHasBeenEnded; @override - String startedAPoll(String senderName) { - // TODO: implement startedAPoll - throw UnimplementedError(); - } + String startedAPoll(String senderName) => l10n.startedAPoll(senderName); // This is currently not used, just to keep up with matrix-dart-sdk upstream. // I will reimplement polls to match fluffychat's, I don't know when...