From 4b1064f2a303ead134b41be200e1a5f0b4e931b5 Mon Sep 17 00:00:00 2001 From: OfficialDakari Date: Sat, 13 Sep 2025 22:30:45 +0500 Subject: [PATCH] translate GUI for background downloads make saving in /sdcard/Download --- assets/l10n/intl_en.arb | 5 ++++ assets/l10n/intl_ru.arb | 5 ++++ lib/generated/l10n/l10n.dart | 6 ++++ lib/generated/l10n/l10n_ar.dart | 3 ++ lib/generated/l10n/l10n_be.dart | 3 ++ lib/generated/l10n/l10n_bn.dart | 3 ++ lib/generated/l10n/l10n_bo.dart | 3 ++ lib/generated/l10n/l10n_ca.dart | 3 ++ lib/generated/l10n/l10n_cs.dart | 3 ++ lib/generated/l10n/l10n_de.dart | 3 ++ lib/generated/l10n/l10n_el.dart | 3 ++ lib/generated/l10n/l10n_en.dart | 3 ++ lib/generated/l10n/l10n_eo.dart | 3 ++ lib/generated/l10n/l10n_es.dart | 3 ++ lib/generated/l10n/l10n_et.dart | 3 ++ lib/generated/l10n/l10n_eu.dart | 3 ++ lib/generated/l10n/l10n_fa.dart | 3 ++ lib/generated/l10n/l10n_fi.dart | 3 ++ lib/generated/l10n/l10n_fil.dart | 3 ++ lib/generated/l10n/l10n_fr.dart | 3 ++ lib/generated/l10n/l10n_ga.dart | 3 ++ lib/generated/l10n/l10n_gl.dart | 3 ++ lib/generated/l10n/l10n_he.dart | 3 ++ lib/generated/l10n/l10n_hi.dart | 3 ++ lib/generated/l10n/l10n_hr.dart | 3 ++ lib/generated/l10n/l10n_hu.dart | 3 ++ lib/generated/l10n/l10n_ia.dart | 3 ++ lib/generated/l10n/l10n_id.dart | 3 ++ lib/generated/l10n/l10n_ie.dart | 3 ++ lib/generated/l10n/l10n_it.dart | 3 ++ lib/generated/l10n/l10n_ja.dart | 3 ++ lib/generated/l10n/l10n_ka.dart | 3 ++ lib/generated/l10n/l10n_ko.dart | 3 ++ lib/generated/l10n/l10n_lt.dart | 3 ++ lib/generated/l10n/l10n_lv.dart | 3 ++ lib/generated/l10n/l10n_nb.dart | 3 ++ lib/generated/l10n/l10n_nl.dart | 3 ++ lib/generated/l10n/l10n_pl.dart | 3 ++ lib/generated/l10n/l10n_pt.dart | 3 ++ lib/generated/l10n/l10n_ro.dart | 3 ++ lib/generated/l10n/l10n_ru.dart | 3 ++ lib/generated/l10n/l10n_sk.dart | 3 ++ lib/generated/l10n/l10n_sl.dart | 3 ++ lib/generated/l10n/l10n_sr.dart | 3 ++ lib/generated/l10n/l10n_sv.dart | 3 ++ lib/generated/l10n/l10n_ta.dart | 3 ++ lib/generated/l10n/l10n_te.dart | 3 ++ lib/generated/l10n/l10n_th.dart | 3 ++ lib/generated/l10n/l10n_tr.dart | 3 ++ lib/generated/l10n/l10n_uk.dart | 3 ++ lib/generated/l10n/l10n_vi.dart | 3 ++ lib/generated/l10n/l10n_zh.dart | 3 ++ .../chat_list/client_chooser_button.dart | 2 +- .../download_manager/download_manager.dart | 25 +++++++++++++---- .../download_manager_view.dart | 9 +++--- .../event_extension.dart | 7 ++--- pubspec.lock | 28 +++++++++---------- 57 files changed, 205 insertions(+), 29 deletions(-) diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index 3d69f1e..ec8ad7e 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -1564,6 +1564,11 @@ "type": "String", "placeholders": {} }, + "downloads": "Downloads", + "@downloads": { + "type": "String", + "placeholders": {} + }, "passwordForgotten": "Forgot password", "@passwordForgotten": { "type": "String", diff --git a/assets/l10n/intl_ru.arb b/assets/l10n/intl_ru.arb index 8d8395d..5f3f75d 100644 --- a/assets/l10n/intl_ru.arb +++ b/assets/l10n/intl_ru.arb @@ -2822,6 +2822,11 @@ } } }, + "downloads": "Загрузки", + "@downloads": { + "type": "String", + "placeholders": {} + }, "doYouWantToBan": "Забанить {user}", "@doYouWantToBan": { "type": "String", diff --git a/lib/generated/l10n/l10n.dart b/lib/generated/l10n/l10n.dart index d2162ce..3319e51 100644 --- a/lib/generated/l10n/l10n.dart +++ b/lib/generated/l10n/l10n.dart @@ -2073,6 +2073,12 @@ abstract class L10n { /// **'Password'** String get password; + /// No description provided for @downloads. + /// + /// In en, this message translates to: + /// **'Downloads'** + String get downloads; + /// No description provided for @passwordForgotten. /// /// In en, this message translates to: diff --git a/lib/generated/l10n/l10n_ar.dart b/lib/generated/l10n/l10n_ar.dart index cc81251..11d38ac 100644 --- a/lib/generated/l10n/l10n_ar.dart +++ b/lib/generated/l10n/l10n_ar.dart @@ -1084,6 +1084,9 @@ class L10nAr extends L10n { @override String get password => 'كلمة السر'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'نسيتَ كلمة السر'; diff --git a/lib/generated/l10n/l10n_be.dart b/lib/generated/l10n/l10n_be.dart index 3d36180..dde88ff 100644 --- a/lib/generated/l10n/l10n_be.dart +++ b/lib/generated/l10n/l10n_be.dart @@ -1092,6 +1092,9 @@ class L10nBe extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_bn.dart b/lib/generated/l10n/l10n_bn.dart index 7f9810f..50e94d0 100644 --- a/lib/generated/l10n/l10n_bn.dart +++ b/lib/generated/l10n/l10n_bn.dart @@ -1092,6 +1092,9 @@ class L10nBn extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_bo.dart b/lib/generated/l10n/l10n_bo.dart index 2d1f011..1c82c0d 100644 --- a/lib/generated/l10n/l10n_bo.dart +++ b/lib/generated/l10n/l10n_bo.dart @@ -1092,6 +1092,9 @@ class L10nBo extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_ca.dart b/lib/generated/l10n/l10n_ca.dart index 449e186..f4935d7 100644 --- a/lib/generated/l10n/l10n_ca.dart +++ b/lib/generated/l10n/l10n_ca.dart @@ -1102,6 +1102,9 @@ class L10nCa extends L10n { @override String get password => 'Contrasenya'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Contrasenya oblidada'; diff --git a/lib/generated/l10n/l10n_cs.dart b/lib/generated/l10n/l10n_cs.dart index ea12b9e..86aa967 100644 --- a/lib/generated/l10n/l10n_cs.dart +++ b/lib/generated/l10n/l10n_cs.dart @@ -1097,6 +1097,9 @@ class L10nCs extends L10n { @override String get password => 'Heslo'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Zapomenuté heslo'; diff --git a/lib/generated/l10n/l10n_de.dart b/lib/generated/l10n/l10n_de.dart index 4f2675b..6540fa8 100644 --- a/lib/generated/l10n/l10n_de.dart +++ b/lib/generated/l10n/l10n_de.dart @@ -1099,6 +1099,9 @@ class L10nDe extends L10n { @override String get password => 'Passwort'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Passwort vergessen'; diff --git a/lib/generated/l10n/l10n_el.dart b/lib/generated/l10n/l10n_el.dart index e3667f7..a3da084 100644 --- a/lib/generated/l10n/l10n_el.dart +++ b/lib/generated/l10n/l10n_el.dart @@ -1093,6 +1093,9 @@ class L10nEl extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_en.dart b/lib/generated/l10n/l10n_en.dart index 6da8e58..538137b 100644 --- a/lib/generated/l10n/l10n_en.dart +++ b/lib/generated/l10n/l10n_en.dart @@ -1092,6 +1092,9 @@ class L10nEn extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_eo.dart b/lib/generated/l10n/l10n_eo.dart index 075f0a7..00ea3b8 100644 --- a/lib/generated/l10n/l10n_eo.dart +++ b/lib/generated/l10n/l10n_eo.dart @@ -1096,6 +1096,9 @@ class L10nEo extends L10n { @override String get password => 'Pasvorto'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgesita pasvorto'; diff --git a/lib/generated/l10n/l10n_es.dart b/lib/generated/l10n/l10n_es.dart index 47e71e6..2a1e41d 100644 --- a/lib/generated/l10n/l10n_es.dart +++ b/lib/generated/l10n/l10n_es.dart @@ -1104,6 +1104,9 @@ class L10nEs extends L10n { @override String get password => 'Contraseña'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Contraseña olvidada'; diff --git a/lib/generated/l10n/l10n_et.dart b/lib/generated/l10n/l10n_et.dart index 3c5a4e9..d9fe722 100644 --- a/lib/generated/l10n/l10n_et.dart +++ b/lib/generated/l10n/l10n_et.dart @@ -1099,6 +1099,9 @@ class L10nEt extends L10n { @override String get password => 'Salasõna'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Salasõna on ununenud'; diff --git a/lib/generated/l10n/l10n_eu.dart b/lib/generated/l10n/l10n_eu.dart index b9c063a..d90f5e3 100644 --- a/lib/generated/l10n/l10n_eu.dart +++ b/lib/generated/l10n/l10n_eu.dart @@ -1098,6 +1098,9 @@ class L10nEu extends L10n { @override String get password => 'Pasahitza'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Pasahitza ahaztu dut'; diff --git a/lib/generated/l10n/l10n_fa.dart b/lib/generated/l10n/l10n_fa.dart index 2b312fe..3b714b8 100644 --- a/lib/generated/l10n/l10n_fa.dart +++ b/lib/generated/l10n/l10n_fa.dart @@ -1092,6 +1092,9 @@ class L10nFa extends L10n { @override String get password => 'رمز عبور'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'رمز عبور را فراموش کرده‌ام'; diff --git a/lib/generated/l10n/l10n_fi.dart b/lib/generated/l10n/l10n_fi.dart index 6f7650a..c9653f0 100644 --- a/lib/generated/l10n/l10n_fi.dart +++ b/lib/generated/l10n/l10n_fi.dart @@ -1097,6 +1097,9 @@ class L10nFi extends L10n { @override String get password => 'Salasana'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Salasana unohtunut'; diff --git a/lib/generated/l10n/l10n_fil.dart b/lib/generated/l10n/l10n_fil.dart index 9a4a63a..e1368a5 100644 --- a/lib/generated/l10n/l10n_fil.dart +++ b/lib/generated/l10n/l10n_fil.dart @@ -1098,6 +1098,9 @@ class L10nFil extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_fr.dart b/lib/generated/l10n/l10n_fr.dart index 84e05f4..47f596c 100644 --- a/lib/generated/l10n/l10n_fr.dart +++ b/lib/generated/l10n/l10n_fr.dart @@ -1110,6 +1110,9 @@ class L10nFr extends L10n { @override String get password => 'Mot de passe'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Mot de passe oublié'; diff --git a/lib/generated/l10n/l10n_ga.dart b/lib/generated/l10n/l10n_ga.dart index a7c7bde..5320ce8 100644 --- a/lib/generated/l10n/l10n_ga.dart +++ b/lib/generated/l10n/l10n_ga.dart @@ -1106,6 +1106,9 @@ class L10nGa extends L10n { @override String get password => 'Pasfhocal'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Pasfhocal dearmadta'; diff --git a/lib/generated/l10n/l10n_gl.dart b/lib/generated/l10n/l10n_gl.dart index 23624de..471ee75 100644 --- a/lib/generated/l10n/l10n_gl.dart +++ b/lib/generated/l10n/l10n_gl.dart @@ -1098,6 +1098,9 @@ class L10nGl extends L10n { @override String get password => 'Contrasinal'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Contrasinal esquecido'; diff --git a/lib/generated/l10n/l10n_he.dart b/lib/generated/l10n/l10n_he.dart index adf691f..a6b4b62 100644 --- a/lib/generated/l10n/l10n_he.dart +++ b/lib/generated/l10n/l10n_he.dart @@ -1088,6 +1088,9 @@ class L10nHe extends L10n { @override String get password => 'סיסמה'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'שכחתי סיסמה'; diff --git a/lib/generated/l10n/l10n_hi.dart b/lib/generated/l10n/l10n_hi.dart index f1bb6b5..be12ea0 100644 --- a/lib/generated/l10n/l10n_hi.dart +++ b/lib/generated/l10n/l10n_hi.dart @@ -1092,6 +1092,9 @@ class L10nHi extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_hr.dart b/lib/generated/l10n/l10n_hr.dart index 541fdb8..054e32f 100644 --- a/lib/generated/l10n/l10n_hr.dart +++ b/lib/generated/l10n/l10n_hr.dart @@ -1095,6 +1095,9 @@ class L10nHr extends L10n { @override String get password => 'Lozinka'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Zaboravljena lozinka'; diff --git a/lib/generated/l10n/l10n_hu.dart b/lib/generated/l10n/l10n_hu.dart index 9ed1029..bc2505c 100644 --- a/lib/generated/l10n/l10n_hu.dart +++ b/lib/generated/l10n/l10n_hu.dart @@ -1096,6 +1096,9 @@ class L10nHu extends L10n { @override String get password => 'Jelszó'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Elfelejtett jelszó'; diff --git a/lib/generated/l10n/l10n_ia.dart b/lib/generated/l10n/l10n_ia.dart index bf1c8dc..f0d54c8 100644 --- a/lib/generated/l10n/l10n_ia.dart +++ b/lib/generated/l10n/l10n_ia.dart @@ -1092,6 +1092,9 @@ class L10nIa extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_id.dart b/lib/generated/l10n/l10n_id.dart index 1211317..d3ea89c 100644 --- a/lib/generated/l10n/l10n_id.dart +++ b/lib/generated/l10n/l10n_id.dart @@ -1100,6 +1100,9 @@ class L10nId extends L10n { @override String get password => 'Kata sandi'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Lupa kata sandi'; diff --git a/lib/generated/l10n/l10n_ie.dart b/lib/generated/l10n/l10n_ie.dart index 777aa89..6221d42 100644 --- a/lib/generated/l10n/l10n_ie.dart +++ b/lib/generated/l10n/l10n_ie.dart @@ -1091,6 +1091,9 @@ class L10nIe extends L10n { @override String get password => 'Contrasigne'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Li contrasigne esset obliviat'; diff --git a/lib/generated/l10n/l10n_it.dart b/lib/generated/l10n/l10n_it.dart index f3e549b..187eb60 100644 --- a/lib/generated/l10n/l10n_it.dart +++ b/lib/generated/l10n/l10n_it.dart @@ -1100,6 +1100,9 @@ class L10nIt extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Password dimenticata'; diff --git a/lib/generated/l10n/l10n_ja.dart b/lib/generated/l10n/l10n_ja.dart index d59c85c..d1e10da 100644 --- a/lib/generated/l10n/l10n_ja.dart +++ b/lib/generated/l10n/l10n_ja.dart @@ -1074,6 +1074,9 @@ class L10nJa extends L10n { @override String get password => 'パスワード'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'パスワードを忘れた'; diff --git a/lib/generated/l10n/l10n_ka.dart b/lib/generated/l10n/l10n_ka.dart index e54236b..9a7faf7 100644 --- a/lib/generated/l10n/l10n_ka.dart +++ b/lib/generated/l10n/l10n_ka.dart @@ -1094,6 +1094,9 @@ class L10nKa extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_ko.dart b/lib/generated/l10n/l10n_ko.dart index 92c86f7..e0690fb 100644 --- a/lib/generated/l10n/l10n_ko.dart +++ b/lib/generated/l10n/l10n_ko.dart @@ -1066,6 +1066,9 @@ class L10nKo extends L10n { @override String get password => '비밀번호'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => '비밀번호 까먹음'; diff --git a/lib/generated/l10n/l10n_lt.dart b/lib/generated/l10n/l10n_lt.dart index cc59768..068122a 100644 --- a/lib/generated/l10n/l10n_lt.dart +++ b/lib/generated/l10n/l10n_lt.dart @@ -1097,6 +1097,9 @@ class L10nLt extends L10n { @override String get password => 'Slaptažodis'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Slaptažodis užmirštas'; diff --git a/lib/generated/l10n/l10n_lv.dart b/lib/generated/l10n/l10n_lv.dart index 0289898..4441882 100644 --- a/lib/generated/l10n/l10n_lv.dart +++ b/lib/generated/l10n/l10n_lv.dart @@ -1100,6 +1100,9 @@ class L10nLv extends L10n { @override String get password => 'Parole'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Aizmirsta parole'; diff --git a/lib/generated/l10n/l10n_nb.dart b/lib/generated/l10n/l10n_nb.dart index cb3e7b1..df35e31 100644 --- a/lib/generated/l10n/l10n_nb.dart +++ b/lib/generated/l10n/l10n_nb.dart @@ -1095,6 +1095,9 @@ class L10nNb extends L10n { @override String get password => 'Passord'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Passord glemt'; diff --git a/lib/generated/l10n/l10n_nl.dart b/lib/generated/l10n/l10n_nl.dart index 0b14bc3..ccccb49 100644 --- a/lib/generated/l10n/l10n_nl.dart +++ b/lib/generated/l10n/l10n_nl.dart @@ -1095,6 +1095,9 @@ class L10nNl extends L10n { @override String get password => 'Wachtwoord'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Wachtwoord vergeten'; diff --git a/lib/generated/l10n/l10n_pl.dart b/lib/generated/l10n/l10n_pl.dart index 6b8a1b7..0db8bdb 100644 --- a/lib/generated/l10n/l10n_pl.dart +++ b/lib/generated/l10n/l10n_pl.dart @@ -1096,6 +1096,9 @@ class L10nPl extends L10n { @override String get password => 'Hasło'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Nie pamiętam hasła'; diff --git a/lib/generated/l10n/l10n_pt.dart b/lib/generated/l10n/l10n_pt.dart index 66af4de..b4d3e77 100644 --- a/lib/generated/l10n/l10n_pt.dart +++ b/lib/generated/l10n/l10n_pt.dart @@ -1092,6 +1092,9 @@ class L10nPt extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_ro.dart b/lib/generated/l10n/l10n_ro.dart index a61512d..5d4045e 100644 --- a/lib/generated/l10n/l10n_ro.dart +++ b/lib/generated/l10n/l10n_ro.dart @@ -1099,6 +1099,9 @@ class L10nRo extends L10n { @override String get password => 'Parolă'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Parola uitată'; diff --git a/lib/generated/l10n/l10n_ru.dart b/lib/generated/l10n/l10n_ru.dart index a2e368a..e5154c3 100644 --- a/lib/generated/l10n/l10n_ru.dart +++ b/lib/generated/l10n/l10n_ru.dart @@ -1096,6 +1096,9 @@ class L10nRu extends L10n { @override String get password => 'Пароль'; + @override + String get downloads => 'Загрузки'; + @override String get passwordForgotten => 'Забыли пароль'; diff --git a/lib/generated/l10n/l10n_sk.dart b/lib/generated/l10n/l10n_sk.dart index 187387a..2a4a4f4 100644 --- a/lib/generated/l10n/l10n_sk.dart +++ b/lib/generated/l10n/l10n_sk.dart @@ -1094,6 +1094,9 @@ class L10nSk extends L10n { @override String get password => 'Heslo'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_sl.dart b/lib/generated/l10n/l10n_sl.dart index 8b4556c..d37a53a 100644 --- a/lib/generated/l10n/l10n_sl.dart +++ b/lib/generated/l10n/l10n_sl.dart @@ -1096,6 +1096,9 @@ class L10nSl extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_sr.dart b/lib/generated/l10n/l10n_sr.dart index 47d1e94..b1bc7c2 100644 --- a/lib/generated/l10n/l10n_sr.dart +++ b/lib/generated/l10n/l10n_sr.dart @@ -1092,6 +1092,9 @@ class L10nSr extends L10n { @override String get password => 'Лозинка'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Заборављена лозинка'; diff --git a/lib/generated/l10n/l10n_sv.dart b/lib/generated/l10n/l10n_sv.dart index 11936bd..6791f5e 100644 --- a/lib/generated/l10n/l10n_sv.dart +++ b/lib/generated/l10n/l10n_sv.dart @@ -1093,6 +1093,9 @@ class L10nSv extends L10n { @override String get password => 'Lösenord'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Glömt lösenord'; diff --git a/lib/generated/l10n/l10n_ta.dart b/lib/generated/l10n/l10n_ta.dart index 43cb658..593d7ce 100644 --- a/lib/generated/l10n/l10n_ta.dart +++ b/lib/generated/l10n/l10n_ta.dart @@ -1108,6 +1108,9 @@ class L10nTa extends L10n { @override String get password => 'கடவுச்சொல்'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'கடவுச்சொல் மறந்துவிட்டது'; diff --git a/lib/generated/l10n/l10n_te.dart b/lib/generated/l10n/l10n_te.dart index e716f81..fc230b8 100644 --- a/lib/generated/l10n/l10n_te.dart +++ b/lib/generated/l10n/l10n_te.dart @@ -1092,6 +1092,9 @@ class L10nTe extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_th.dart b/lib/generated/l10n/l10n_th.dart index 85c747b..4cd734d 100644 --- a/lib/generated/l10n/l10n_th.dart +++ b/lib/generated/l10n/l10n_th.dart @@ -1094,6 +1094,9 @@ class L10nTh extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_tr.dart b/lib/generated/l10n/l10n_tr.dart index 733f35b..a406099 100644 --- a/lib/generated/l10n/l10n_tr.dart +++ b/lib/generated/l10n/l10n_tr.dart @@ -1098,6 +1098,9 @@ class L10nTr extends L10n { @override String get password => 'Parola'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Parola unutuldu'; diff --git a/lib/generated/l10n/l10n_uk.dart b/lib/generated/l10n/l10n_uk.dart index fdde137..aa676b0 100644 --- a/lib/generated/l10n/l10n_uk.dart +++ b/lib/generated/l10n/l10n_uk.dart @@ -1101,6 +1101,9 @@ class L10nUk extends L10n { @override String get password => 'Пароль'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Забули пароль'; diff --git a/lib/generated/l10n/l10n_vi.dart b/lib/generated/l10n/l10n_vi.dart index 8b7c921..f32bd98 100644 --- a/lib/generated/l10n/l10n_vi.dart +++ b/lib/generated/l10n/l10n_vi.dart @@ -1092,6 +1092,9 @@ class L10nVi extends L10n { @override String get password => 'Password'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => 'Forgot password'; diff --git a/lib/generated/l10n/l10n_zh.dart b/lib/generated/l10n/l10n_zh.dart index 87a291d..62c8c90 100644 --- a/lib/generated/l10n/l10n_zh.dart +++ b/lib/generated/l10n/l10n_zh.dart @@ -1054,6 +1054,9 @@ class L10nZh extends L10n { @override String get password => '密码'; + @override + String get downloads => 'Downloads'; + @override String get passwordForgotten => '忘记密码'; diff --git a/lib/pages/chat_list/client_chooser_button.dart b/lib/pages/chat_list/client_chooser_button.dart index 57335a8..528c900 100644 --- a/lib/pages/chat_list/client_chooser_button.dart +++ b/lib/pages/chat_list/client_chooser_button.dart @@ -63,7 +63,7 @@ class ClientChooserButton extends StatelessWidget { children: [ Icon(Icons.download_outlined), const SizedBox(width: 18), - Text("Downloads"), + Text(L10n.of(context).downloads), ], ), ), diff --git a/lib/pages/download_manager/download_manager.dart b/lib/pages/download_manager/download_manager.dart index 138e1a6..1c48902 100644 --- a/lib/pages/download_manager/download_manager.dart +++ b/lib/pages/download_manager/download_manager.dart @@ -6,6 +6,7 @@ import 'package:extera_next/widgets/matrix.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:dio/dio.dart'; +import 'package:matrix/matrix.dart'; import 'package:provider/provider.dart'; import 'package:path_provider/path_provider.dart'; @@ -17,23 +18,29 @@ class Download { late int receivedBytes = 0; late int totalBytes = 1; late double progress = 0; + late String httpUrl; + late String downloadPath; + late CancelToken ct; Download(this.context, this.url, this.name); void start() async { try { final mx = Matrix.of(context).client; - final directory = await getExternalStorageDirectory(); - final downloadPath = - directory != null ? "${directory.path}/Download" : null; + // final directory = await getDownloadsDirectory(); + downloadPath = + "/sdcard/Download/Extera"; + + httpUrl = (await Uri.parse(url).getDownloadUri(mx)).toString(); if (downloadPath != null) { // Create Dio instance final dio = Dio(); - // Progress status variables + + ct = CancelToken(); // Download the file response = dio.download( - url, + httpUrl, "$downloadPath/$name", onReceiveProgress: (received, total) { receivedBytes = received; @@ -43,7 +50,9 @@ class Download { }, options: Options( responseType: ResponseType.bytes, - headers: {'authorization': "Bearer ${mx.accessToken}"}), + headers: {'authorization': "Bearer ${mx.accessToken}"} + ), + cancelToken: ct ); print("Download completed and saved to $downloadPath/$name"); } @@ -51,6 +60,10 @@ class Download { print("Error during download: $e"); } } + + void cancel() async { + ct.cancel(); + } } class DownloadManager extends StatefulWidget { diff --git a/lib/pages/download_manager/download_manager_view.dart b/lib/pages/download_manager/download_manager_view.dart index 24fcbc6..019433f 100644 --- a/lib/pages/download_manager/download_manager_view.dart +++ b/lib/pages/download_manager/download_manager_view.dart @@ -1,3 +1,4 @@ +import 'package:extera_next/generated/l10n/l10n.dart'; import 'package:extera_next/pages/download_manager/download_manager.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -18,7 +19,7 @@ class DownloadManagerView extends StatelessWidget { Widget build(BuildContext context) { return AlertDialog.adaptive( content: ConstrainedBox( - constraints: const BoxConstraints(maxHeight: 256, maxWidth: 256), + constraints: const BoxConstraints(maxHeight: 256, maxWidth: 512), child: ListView.builder( itemCount: controller.downloads.length, itemBuilder: (context, index) { @@ -26,15 +27,15 @@ class DownloadManagerView extends StatelessWidget { return ListTile( title: Text(download.name), subtitle: LinearProgressIndicator( - value: download.progress, + value: download.progress / 100, backgroundColor: Colors.grey[200], valueColor: AlwaysStoppedAnimation(Colors.blue), ), trailing: ElevatedButton( onPressed: () { - // "Cancel" button action can be added here + download.cancel(); }, - child: Text("Cancel"), + child: Text(L10n.of(context).cancel), ), ); }, diff --git a/lib/utils/matrix_sdk_extensions/event_extension.dart b/lib/utils/matrix_sdk_extensions/event_extension.dart index 3966897..881ec32 100644 --- a/lib/utils/matrix_sdk_extensions/event_extension.dart +++ b/lib/utils/matrix_sdk_extensions/event_extension.dart @@ -27,12 +27,12 @@ extension LocalizedBody on Event { } void downloadInBackground(BuildContext context) async { - if (!canDownloadInBackground) { + if (canDownloadInBackground) { final dmc = Provider.of(context); final filename = content.tryGet('filename') ?? body; - dmc.download(context, "$filename.${roomId!.substring(0, 4)}.${eventId.substring(0, 4)}.${extensionFromMime(attachmentMimetype)}", attachmentMxcUrl.toString()); + dmc.download(context, "$filename.${roomId!.substring(1, 5)}.${eventId.substring(1, 5)}.${extensionFromMime(attachmentMimetype)}", attachmentMxcUrl.toString()); } else { - throw Exception("Cannot download in background"); + throw Exception("Cannot download in background $hasAttachment ${room.encrypted}"); } } @@ -45,7 +45,6 @@ extension LocalizedBody on Event { bool get canDownloadInBackground => hasAttachment && - status.isSent && !room.encrypted; bool get isAttachmentSmallEnough => diff --git a/pubspec.lock b/pubspec.lock index 31c1465..7e55b82 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1098,26 +1098,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.1" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" license_checker: dependency: "direct dev" description: @@ -1975,26 +1975,26 @@ packages: dependency: transitive description: name: test - sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.26.2" + version: "1.25.15" test_api: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" test_core: dependency: transitive description: name: test_core - sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.11" + version: "0.6.8" timezone: dependency: transitive description: @@ -2175,10 +2175,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" video_compress: dependency: "direct main" description: