From 803fdcad2196b1ca3c1476d4c7e828078e8efdc3 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Mon, 14 Apr 2025 15:37:01 +0000 Subject: [PATCH 01/33] Translated using Weblate (German) Currently translated at 100.0% (86 of 86 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/de/ --- fastlane/metadata/android/de-DE/changelogs/4214004.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/de-DE/changelogs/4214004.txt diff --git a/fastlane/metadata/android/de-DE/changelogs/4214004.txt b/fastlane/metadata/android/de-DE/changelogs/4214004.txt new file mode 100644 index 0000000000000000000000000000000000000000..58287eabdcbd6db283d1f8e2c4938a9985b4f3e7 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/4214004.txt @@ -0,0 +1,2 @@ +* Korrektur der Reaktionen bei über P2P empfangenen Dateien +* Verbesserung des URI-Abgleichs From bf048492cd6f9bfa2d7c5159f6fb9f3fb8ef953f Mon Sep 17 00:00:00 2001 From: Grzegorz Szymaszek Date: Tue, 15 Apr 2025 05:05:16 +0000 Subject: [PATCH 02/33] Translated using Weblate (Polish) Currently translated at 55.8% (48 of 86 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/pl/ --- fastlane/metadata/android/pl-PL/changelogs/4214004.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/pl-PL/changelogs/4214004.txt diff --git a/fastlane/metadata/android/pl-PL/changelogs/4214004.txt b/fastlane/metadata/android/pl-PL/changelogs/4214004.txt new file mode 100644 index 0000000000000000000000000000000000000000..c5b30ba38e88ca2d04b503a6c86fb0b59464dd6b --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/4214004.txt @@ -0,0 +1,2 @@ +* Naprawienie reakcji na pliki otrzymane przez P2P +* Ulepszenie dopasowywania URI From e22f554e2d5e2b577e717bb15e50f6d2a98f9715 Mon Sep 17 00:00:00 2001 From: Besnik_b Date: Mon, 14 Apr 2025 16:41:44 +0000 Subject: [PATCH 03/33] Translated using Weblate (Albanian) Currently translated at 100.0% (86 of 86 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/sq/ --- fastlane/metadata/android/sq/changelogs/4214004.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/sq/changelogs/4214004.txt diff --git a/fastlane/metadata/android/sq/changelogs/4214004.txt b/fastlane/metadata/android/sq/changelogs/4214004.txt new file mode 100644 index 0000000000000000000000000000000000000000..61ce4a519a3c84ba9dcea0bf32194cc88b4f1c39 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/4214004.txt @@ -0,0 +1,2 @@ +* Ndreqje reagimesh ndaj kartelash të marra përmes P2P +* Përmirësim përkimi URI-sh From d306a4da0979162c0879892895d5edc721a36963 Mon Sep 17 00:00:00 2001 From: ghose Date: Tue, 15 Apr 2025 02:56:05 +0000 Subject: [PATCH 04/33] Translated using Weblate (Galician) Currently translated at 67.4% (58 of 86 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/gl/ --- fastlane/metadata/android/gl-ES/changelogs/4214004.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/gl-ES/changelogs/4214004.txt diff --git a/fastlane/metadata/android/gl-ES/changelogs/4214004.txt b/fastlane/metadata/android/gl-ES/changelogs/4214004.txt new file mode 100644 index 0000000000000000000000000000000000000000..e645b3e832915294414299a9d9bdcf0199601166 --- /dev/null +++ b/fastlane/metadata/android/gl-ES/changelogs/4214004.txt @@ -0,0 +1,2 @@ +* arranxo das reaccións a ficheiros recibidos por P2P +* mellora da resolución de URI From c214d77cdc9e3f5c80cd39605326a24c1c81ce46 Mon Sep 17 00:00:00 2001 From: solokot Date: Mon, 14 Apr 2025 17:00:45 +0000 Subject: [PATCH 05/33] Translated using Weblate (Russian) Currently translated at 37.2% (32 of 86 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/ru/ --- fastlane/metadata/android/ru-RU/changelogs/4214004.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/ru-RU/changelogs/4214004.txt diff --git a/fastlane/metadata/android/ru-RU/changelogs/4214004.txt b/fastlane/metadata/android/ru-RU/changelogs/4214004.txt new file mode 100644 index 0000000000000000000000000000000000000000..2bbb4e748aa447ad69cc847ae9b97c0b504a66f0 --- /dev/null +++ b/fastlane/metadata/android/ru-RU/changelogs/4214004.txt @@ -0,0 +1,2 @@ +* Исправлены реакции на файлы, полученные через P2P +* Улучшено распознавание URI From 6948736adac5a7273198ed8281f5c0540dcd7f1a Mon Sep 17 00:00:00 2001 From: nurikucukler Date: Wed, 16 Apr 2025 20:51:33 +0000 Subject: [PATCH 06/33] Translated using Weblate (Turkish) Currently translated at 93.7% (1006 of 1073 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/tr/ --- src/main/res/values-tr-rTR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/res/values-tr-rTR/strings.xml b/src/main/res/values-tr-rTR/strings.xml index 96b15cb3be6fb7e97742c3c82b1ca559cdccb758..c46afd9034fe967e30d3066d3b24f36cc274fc9c 100644 --- a/src/main/res/values-tr-rTR/strings.xml +++ b/src/main/res/values-tr-rTR/strings.xml @@ -84,12 +84,12 @@ Dosyayı sil Bu dosyayı silmek istediğinizden emin misiniz? \n\nUyarı: Bu eylem, bu dosyanın diğer aygıt ve sunucularda kayıtlı kopyalarını silmeyecektir. Aygıt seç - Şifrelenmemiş ileti gönder + Açık metin olarak ileti gönder Mesajı gönder %s kişisine ileti gönder v\\OMEMO ile şifrelenmiş ileti gönder Yeni rumuz kullanımda - Şifrelenmemiş gönder + Açık metin olarak gönder Deşifre edilemedi. Uygun bir özel anahtarınız olmayabilir. OpenKeychain %1$s mesajları şifrelemek, deşifre etmek ve genel anahtarlarınızı yönetmek için <b>OpenKeychain</b> kullanmaktadır.<br><br>lt GPLv3+ altında lisanslıdır ve F-Droid ve Google Play\'de mevcuttur.<br><br><small>(Lütfen devamında %1$s\'ı yeniden başlatın.)</small> @@ -1006,7 +1006,7 @@ Kişiniz doğrulanmamış bir cihaz kullanıyor. Aktif MITM (Ortadaki Adam) saldırılarını önlemek için kişinizin QR kodunu okutarak doğrulama yapın. Arama entegrasyonu mevcut değil! Sohbeti arşivle - Bu sohbeti arşivle + Ardından sohbeti sil Sohbete git Bildirimlerin alınacağı hesap. UnifiedPush dağıtıcısı From d5308e4f7f1c4c272c87eb6c652cdf0129bd66ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Tue, 15 Apr 2025 20:39:28 +0000 Subject: [PATCH 07/33] Translated using Weblate (Estonian) Currently translated at 100.0% (86 of 86 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/et/ --- fastlane/metadata/android/et/changelogs/4214004.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/et/changelogs/4214004.txt diff --git a/fastlane/metadata/android/et/changelogs/4214004.txt b/fastlane/metadata/android/et/changelogs/4214004.txt new file mode 100644 index 0000000000000000000000000000000000000000..e4b1f45edc4c84c567e92c4fa456e0c6e45f3217 --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/4214004.txt @@ -0,0 +1,2 @@ +* Parandasime võrdõigusvõrgust laaditud failidele reageerimist +* Parandasime URI-de klapitamist From 22936f9ab330a05cf572d1bc6e35ae0bae0509cb Mon Sep 17 00:00:00 2001 From: nautilusx Date: Thu, 17 Apr 2025 05:32:36 +0000 Subject: [PATCH 08/33] Translated using Weblate (German) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/de/ --- src/main/res/values-de/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index a3e241e9032166a4ae7db260ec642ca46da3e063..13a4675658831880d5cafdbf594ece2a7189d420 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -1123,4 +1123,7 @@ URI in die Zwischenablage kopiert URI kopieren E-Mail-Adresse in die Zwischenablage kopiert + Dienst nicht verfügbar (bekanntes Problem) + Geplante Wiederaufnahme des Dienstes um %s + Geplante Ausfallzeit From 0aaf59fce66ec91b10e799206ff9fb1c3382fa62 Mon Sep 17 00:00:00 2001 From: ghose Date: Thu, 17 Apr 2025 04:29:35 +0000 Subject: [PATCH 09/33] Translated using Weblate (Galician) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/gl/ --- src/main/res/values-gl/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index bdc0605895bb5025c61e2557f56a79d987cd4648..51ec7aaf88c72f6ab28828e7615dfe013f567c0e 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -1123,4 +1123,7 @@ Copiouse o enderezo ao portapapeis Copiouse o número ao portapapeis Copiar número de teléfono + Desconexión programada + Está previsto reactivar o servizo ás %s + Sen servizo (incidencia coñecida) From 759279caae0aa38613e1bdb609de22d83e251582 Mon Sep 17 00:00:00 2001 From: Grzegorz Szymaszek Date: Thu, 17 Apr 2025 07:10:20 +0000 Subject: [PATCH 10/33] Translated using Weblate (Polish) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/pl/ --- src/main/res/values-pl/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 8decb19e21294aeea969558a183b41cd01f6f14f..da6e940dab56231c7fb27e1b0b2654d3feb230b0 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -1155,4 +1155,7 @@ Kopiuj URI Skopiowano adres e‑mail do schowka Skopiowano URI do schowka + Planowana niedostępność + Przywrócenie usługi planowane na %s + Usługa niedostępna (znany problem) From a6e0c2a8e224246487b5bbcedaa4b43154630673 Mon Sep 17 00:00:00 2001 From: SomeTr Date: Thu, 17 Apr 2025 05:23:49 +0000 Subject: [PATCH 11/33] Translated using Weblate (Ukrainian) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/uk/ --- src/main/res/values-uk/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index 893b5d02892f0b3dd71e36ece663d460d08a792f..e1f2b8336c37c43d83082dac31fa03906a76e547 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -1171,4 +1171,7 @@ Номер телефону скопійовано Копіювати адресу Email URI скопійовано + Запланований простій + Сервіс не працює (відома проблема) + Відновлення роботи заплановано на %s From 069dd8495c4de3b26503d73a4ef515e881af3b8f Mon Sep 17 00:00:00 2001 From: licaon-kter Date: Thu, 17 Apr 2025 04:17:48 +0000 Subject: [PATCH 12/33] Translated using Weblate (Romanian) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/ro/ --- src/main/res/values-ro-rRO/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-ro-rRO/strings.xml b/src/main/res/values-ro-rRO/strings.xml index 4a3f55f8fe88ee976eca53474f4d3ac09e037ec2..c13784865f0aa4706eda765f35df302e4ac4fb52 100644 --- a/src/main/res/values-ro-rRO/strings.xml +++ b/src/main/res/values-ro-rRO/strings.xml @@ -1142,4 +1142,7 @@ Adresă copiată Copiere telefon E-mail copiat + Serviciu oprit (Problemă cunoscută) + Serviciul este programat să revină la %s + Oprire planificată From aa85c78f5b061e5866761a3e6f2d6905c37ce4f2 Mon Sep 17 00:00:00 2001 From: Besnik_b Date: Thu, 17 Apr 2025 05:47:34 +0000 Subject: [PATCH 13/33] Translated using Weblate (Albanian) Currently translated at 99.0% (1066 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/sq/ --- src/main/res/values-sq-rAL/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-sq-rAL/strings.xml b/src/main/res/values-sq-rAL/strings.xml index aa61160ab1df609586ac5276341f3a509c48e7f0..06d7414dde5c28d7689820ad6211af6595c03efe 100644 --- a/src/main/res/values-sq-rAL/strings.xml +++ b/src/main/res/values-sq-rAL/strings.xml @@ -1133,4 +1133,7 @@ URI u kopjua në të papastër Adresa email u kopjua në të papastër Kopjo URI-n + Shërbimi është vënë në plan të rikthehet në funksionim më %s + Shërbim Jashtë Funksionimi (Problem i Ditur) + Kohë Mosfunksionimi e Planifikuar From 91bc0e45f4df7b812deb46ff6bf6da1adf1ea5e3 Mon Sep 17 00:00:00 2001 From: nurikucukler Date: Wed, 16 Apr 2025 20:54:24 +0000 Subject: [PATCH 14/33] Translated using Weblate (Turkish) Currently translated at 96.3% (1037 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/tr/ --- src/main/res/values-tr-rTR/strings.xml | 37 +++++++++++++++++++++----- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/src/main/res/values-tr-rTR/strings.xml b/src/main/res/values-tr-rTR/strings.xml index c46afd9034fe967e30d3066d3b24f36cc274fc9c..37f49a99b847f996374833f32df8edc6fb7da826 100644 --- a/src/main/res/values-tr-rTR/strings.xml +++ b/src/main/res/values-tr-rTR/strings.xml @@ -164,7 +164,7 @@ Uyumsuz istemci Akış hatası Akış açılım hatası - Şifrelenmemiş + Açık metin OTR OpenPGP OMEMO @@ -322,7 +322,7 @@ Ön planda çalışması İşletim sisteminin bağlantınızı koparmasına engel olur Yedek oluştur - Yedekleme dosyaları %s\'da depolanacak + Yedekler %s\'da depolanacak Yedekleme dosyaları oluşturuluyor Yedeklemeniz oluşturuldu Yedekleme dosyaları %s\'da depolandı @@ -461,7 +461,7 @@ İndirme başarısız: Geçersiz dosya Tor ağına erişilemiyor Bağlantı başarısız - Sunucu bu alan adı için sorumlu değil + Bu alan için sorumlu değil Bozuk Mevcudiyet Telefon kilitliyken uzakta @@ -822,12 +822,12 @@ e-kitap Orijinal (sıkıştırılmamış) Şununla aç… - Conversations profil resmi + Profil resmi Hesap seç Yedekleri yükle Geri getir Yedekleri geri getirmek için %s hesabının şifrenizi girin. - Herhangi bir yüklemeyi klonlama (aynı anda çalışan) girişiminde yedekleri geri yükleme özelliğini kullanmayın. Yedeklerin geri yüklenmesi sadece hesap aktarımları veya asıl cihazı kaybetmeniz durumu için kullanılmalıdır. + Herhangi bir yüklemeyi klonlama (aynı anda çalışan) girişiminde OMEMO anahtarlarını geri yüklemeyin. OMEMO anahtarlarının geri yüklenmesi sadece hesap aktarımları veya asıl cihazı kaybetmeniz durumu için kullanılmalıdır. Yedekler geri yüklenemedi. Yedekleme çözülemedi. Şifre doğru mu? Yedekleme & Geri yükle @@ -981,7 +981,7 @@ Çökme raporları gönder Sohbete Katıl Quicksy\'e hoşgeldiniz! - Kendiniz oluşturmadığınız yedekleri geri yüklemeye çalışmayın! + Sadece kendinizin yarattığı yedekleri geri yükleyin. Oturumu kapat Bildirimi gizle Spam bildir @@ -1023,7 +1023,7 @@ Renkli konuşma balonları Gönderilen ve alınan mesajlar için farklı renkler kullan Arama yapma izni yok - Uygun gelen sohbetler arşivlendi + İlgili sohbetler arşivlendi. Dinamik renklendirme Sistem renkleri (Material You) Kişi müsait değil @@ -1068,4 +1068,27 @@ Yabancılardan gelen davetler Yabancılardan gelen grup davetlerini kabul et Yapılandırmayı değiştir + Bağlantı zaman aşımı + OMEMO anahtarlarını geri yükle + Quicksy sadece quicksy.im hesaplarındaki yedekleri geri yükleyebilir + Word dokümanı + URI + Coğrafi konumu kopyala + E-posta adresini kopyala + E-posta adresi geçici taşıma panosuna kopyalandı + Bir defaya mahsus yedekle + Yinelenen yedekleme + Tam ekran bildirim + P2P ile tekrar dene + Ek iz eklensin mi? + URI geçici taşıma panosuna kopyalandı + URI kopyala + Telefon numarasını kopyala + Telefon numarası geçici taşıma panosuna kopyalandı + Video etkisizleştirilemedi. + Bir defaya mahsus yarat, Yinelemeyi zamanla + Kanal bağlantısı mevcut değil + Profil resminiz. Galeriden yeni profil resmi seçmek için dokunun. + XEP-0386: Bağlantı 2 + XEP-0388: Genişletilebilir SASL Profili From af205c7c8df554b74dc06f9dcdb2723d6bd7ec22 Mon Sep 17 00:00:00 2001 From: Outbreak2096 Date: Thu, 17 Apr 2025 02:13:35 +0000 Subject: [PATCH 15/33] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/zh_Hans/ --- src/main/res/values-zh-rCN/strings.xml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index cb8ebaa55e0d1209e4bec1f8d5ee8606236389ef..cb1eeb0eef11ad76c9a6ee6efe11a6fb59f6e528 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -196,7 +196,7 @@ XEP-0280:消息抄送 XEP-0352:客户端状态指示 XEP-0191:屏蔽命令 - XEP-0237:花名册版本控制 + XEP-0237:名册版本控制 XEP-0198:流管理 XEP-0215:外部服务发现 XEP-0163:个人事件协议(头像/OMEMO) @@ -482,7 +482,7 @@ 主机名和端口 设置账号时显示扩展连接设置 xmpp.example.com - 用证书登录 + 使用证书登录 无法解析证书 归档首选项 服务器端归档首选项 @@ -599,10 +599,10 @@ 您的操作系统正在限制 %1$s 在后台时访问互联网。要接收新消息通知,应当在“流量节省程序”开启时允许 %1$s 无限制访问。\n%1$s 仍会在可能的情况下尽可能节省数据。 设备不支持为 %1$s 禁用流量节省程序。 无法创建临时文件 - 此设备已经过验证 + 此设备已通过验证 复制指纹 您已验证您拥有的所有 OMEMO 密钥 - 已验证的指纹 + 已验证指纹 使用相机扫描对方二维码 正在获取密钥,请稍候 以二维码形式分享 @@ -667,7 +667,7 @@ 今天 昨天 用 DNSSEC 验证主机名 - 将包含已验证主机名的服务器证书视为已验证 + 包含已验证主机名的服务器证书视为已通过验证 证书不包含 XMPP 地址 部分 录制视频 @@ -678,7 +678,7 @@ 接受未知证书? 此服务器证书不是由已知的证书颁发机构签发的。 接受不匹配的服务器名称? - 由于“%s”,服务器无法验证。证书仅对此有效: + 服务器无法以“%s”进行身份验证。证书仅对此有效: 是否仍要连接? 证书详情: 仅一次 @@ -735,7 +735,7 @@ 名称 提供名称是可选的 群聊名 - 此群聊已经解散了 + 此群聊已解散 无法保存录制 前台服务 此通知类别用于显示永久通知,表明 %1$s 正在运行。 @@ -764,7 +764,7 @@ 360p(中) 720p(高) 已取消 - 您已经在起草一条消息了。 + 您已经在起草消息了。 功能未实现 国家/地区代码无效 选择国家/地区 @@ -1118,4 +1118,7 @@ URI 复制 URI 复制电话号码 + 计划停机时间 + 服务中断(已知问题) + ‌服务预计将于 %s 恢复 From 9d6f0ef179e6084816a5d88edb48a59c1df3de72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Thu, 17 Apr 2025 06:08:01 +0000 Subject: [PATCH 16/33] Translated using Weblate (Estonian) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/et/ --- src/main/res/values-et/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-et/strings.xml b/src/main/res/values-et/strings.xml index a3e1991a94eff04be51677690a1e2dbb199b5873..5ab238206bf055baa0983c834f9eceb0da4336ea 100644 --- a/src/main/res/values-et/strings.xml +++ b/src/main/res/values-et/strings.xml @@ -1143,4 +1143,7 @@ Kopeerisime URI lõikelauale Kopeeri telefoninumber Kopeerisime telefoninumbri lõikelauale + Planeeritud teenuse katkestus + Teenus ei tööta (teadaolev probleem) + Teenuse plaanilise taastumise aeg on %s From beb076c38ee4a3bd4f21ae6aac3d5749872ec389 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 17 Apr 2025 14:24:47 +0200 Subject: [PATCH 17/33] parse uri params as multi list --- src/main/java/de/gultsch/common/MiniUri.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/gultsch/common/MiniUri.java b/src/main/java/de/gultsch/common/MiniUri.java index 79c78b549b496c67b0646122ddf08206fdba2e7e..60eb7c29ad7b40b41f36646b0e14ca7d56d935d5 100644 --- a/src/main/java/de/gultsch/common/MiniUri.java +++ b/src/main/java/de/gultsch/common/MiniUri.java @@ -5,9 +5,10 @@ import androidx.annotation.NonNull; import com.google.common.base.MoreObjects; import com.google.common.base.Splitter; import com.google.common.base.Strings; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Locale; @@ -21,7 +22,7 @@ public class MiniUri { private final String scheme; private final String authority; private final String path; - private final Map parameter; + private final Map> parameter; public MiniUri(final String uri) { this.raw = uri; @@ -63,8 +64,9 @@ public class MiniUri { }; } - private static Map parseParameters(final String query, final char separator) { - final ImmutableMap.Builder builder = new ImmutableMap.Builder<>(); + private static Map> parseParameters( + final String query, final char separator) { + final var builder = new ImmutableMultimap.Builder(); for (final String pair : Splitter.on(separator).split(query)) { final String[] parts = pair.split("=", 2); if (parts.length == 0) { @@ -81,7 +83,7 @@ public class MiniUri { builder.put(key, EMPTY_STRING); } } - return builder.build(); + return builder.build().asMap(); } @NonNull @@ -123,7 +125,7 @@ public class MiniUri { return Uri.parse(this.raw); } - public Map getParameter() { + public Map> getParameter() { return this.parameter; } } From 02058d2144cf52872fee144a053e6cf638b13ab8 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 10:40:24 +0200 Subject: [PATCH 18/33] version bump to 2.18.2 --- CHANGELOG.md | 5 +++++ build.gradle | 4 ++-- fastlane/metadata/android/en-US/changelogs/4214104.txt | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/4214104.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index bd242198d888427b4b1dd9180bb036867aa2e396..49959e6af02a6f323b9425d5a9cadae1b28404fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### Version 2.18.2 + +* Support 'Service Outage Status' +* Minor security fixes for parsing multiple bodies, occupant-ids and stanza-id + ### Version 2.18.1 * Fix reactions on files received via P2P diff --git a/build.gradle b/build.gradle index 9f3964e8e1a194e640b0aa6d94c5e471e92a5fde..8d32d500d9438665b739f0003c8d14d97499bfa8 100644 --- a/build.gradle +++ b/build.gradle @@ -117,8 +117,8 @@ android { defaultConfig { minSdkVersion 23 targetSdkVersion 35 - versionCode 42140 - versionName "2.18.1" + versionCode 42141 + versionName "2.18.2" archivesBaseName += "-$versionName" applicationId "eu.siacs.conversations" resValue "string", "applicationId", applicationId diff --git a/fastlane/metadata/android/en-US/changelogs/4214104.txt b/fastlane/metadata/android/en-US/changelogs/4214104.txt new file mode 100644 index 0000000000000000000000000000000000000000..0c0dfcba3297a8d9a8c5e206ccb12fdf37f1ca99 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/4214104.txt @@ -0,0 +1,2 @@ +* Support 'Service Outage Status' +* Minor security fixes for parsing multiple bodies, occupant-ids and stanza-id From a0b76ac27cdb9c7491797c9e674484592434dd2f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 16:06:06 +0200 Subject: [PATCH 19/33] reorganize third party libraries in about section --- build.gradle | 78 +++++++++++--------------- src/main/res/layout/activity_about.xml | 9 +-- src/main/res/values/about.xml | 43 ++++++++------ 3 files changed, 64 insertions(+), 66 deletions(-) diff --git a/build.gradle b/build.gradle index 8d32d500d9438665b739f0003c8d14d97499bfa8..4ff59b31deb9506dde66ad3dd38c1eb920a5f6e3 100644 --- a/build.gradle +++ b/build.gradle @@ -44,65 +44,53 @@ spotless { dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' - implementation project(':libs:annotation') annotationProcessor project(':libs:annotation-processor') - - - implementation 'androidx.viewpager:viewpager:1.1.0' - - playstoreImplementation('com.google.firebase:firebase-messaging:24.1.1') { - exclude group: 'com.google.firebase', module: 'firebase-core' - exclude group: 'com.google.firebase', module: 'firebase-analytics' - exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' - } - conversationsPlaystoreImplementation("com.android.installreferrer:installreferrer:2.2") - quicksyPlaystoreImplementation 'com.google.android.gms:play-services-auth-api-phone:18.2.0' - implementation 'com.github.open-keychain.open-keychain:openpgp-api:v5.7.1' - implementation("com.vanniktech:android-image-cropper:4.6.0") - implementation "androidx.sharetarget:sharetarget:1.2.0" - + implementation project(':libs:annotation') implementation 'androidx.appcompat:appcompat:1.7.0' - implementation 'androidx.exifinterface:exifinterface:1.4.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation "androidx.preference:preference:1.2.1" + implementation 'androidx.emoji2:emoji2:1.5.0' + freeImplementation 'androidx.emoji2:emoji2-bundled:1.5.0' + implementation 'androidx.emoji2:emoji2-emojipicker:1.5.0' + implementation 'androidx.exifinterface:exifinterface:1.4.0' + implementation 'androidx.preference:preference:1.2.1' + implementation 'androidx.sharetarget:sharetarget:1.2.0' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' - implementation 'com.google.android.material:material:1.13.0-alpha12' + implementation 'androidx.viewpager:viewpager:1.1.0' implementation 'androidx.work:work-runtime:2.10.0' - - implementation "androidx.emoji2:emoji2:1.5.0" - freeImplementation "androidx.emoji2:emoji2-bundled:1.5.0" - implementation "androidx.emoji2:emoji2-emojipicker:1.5.0" - - implementation 'org.bouncycastle:bcmail-jdk18on:1.80' + implementation 'com.github.open-keychain.open-keychain:openpgp-api:v5.7.1' + implementation 'com.google.android.material:material:1.13.0-alpha12' + implementation 'com.google.guava:guava:33.4.6-android' implementation 'com.google.zxing:core:3.5.3' - implementation 'org.minidns:minidns-client:1.0.4' - implementation 'org.minidns:minidns-dnssec:1.0.4' - implementation 'me.leolin:ShortcutBadger:1.1.22@aar' - implementation 'org.whispersystems:signal-protocol-java:2.6.2' + implementation 'com.leinardi.android:speed-dial:3.3.0' implementation 'com.makeramen:roundedimageview:2.3.0' - - //noinspection GradleDependency + implementation 'com.squareup.okhttp3:okhttp:4.12.0' + implementation 'com.squareup.retrofit2:converter-gson:2.11.0' + implementation 'com.squareup.retrofit2:retrofit:2.11.0' + implementation 'com.vanniktech:android-image-cropper:4.6.0' + implementation 'im.conversations.webrtc:webrtc-android:129.0.0' implementation 'io.deepmedia.community:transcoder-android:0.11.2' - + implementation 'me.drakeet.support:toastcompat:1.1.0' + implementation 'me.leolin:ShortcutBadger:1.1.22@aar' + implementation 'org.bouncycastle:bcmail-jdk18on:1.80' + implementation 'org.conscrypt:conscrypt-android:2.5.2' + implementation 'org.hsluv:hsluv:0.2' implementation 'org.jxmpp:jxmpp-jid:1.0.3' implementation 'org.jxmpp:jxmpp-stringprep-libidn:1.0.3' - implementation 'org.osmdroid:osmdroid-android:6.1.11' - implementation 'org.hsluv:hsluv:0.2' - implementation 'org.conscrypt:conscrypt-android:2.5.2' - implementation 'me.drakeet.support:toastcompat:1.1.0' - implementation "com.leinardi.android:speed-dial:3.3.0" - - implementation "com.squareup.retrofit2:retrofit:2.11.0" - implementation "com.squareup.retrofit2:converter-gson:2.11.0" - implementation "com.squareup.okhttp3:okhttp:4.12.0" + implementation 'org.minidns:minidns-client:1.0.4' + implementation 'org.minidns:minidns-dnssec:1.0.4' + implementation 'org.osmdroid:osmdroid-android:6.1.20' + implementation 'org.whispersystems:signal-protocol-java:2.6.2' + conversationsPlaystoreImplementation 'com.android.installreferrer:installreferrer:2.2' + playstoreImplementation('com.google.firebase:firebase-messaging:24.1.1') { + exclude group: 'com.google.firebase', module: 'firebase-core' + exclude group: 'com.google.firebase', module: 'firebase-analytics' + exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' - implementation 'com.google.guava:guava:33.4.6-android' + } quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.13.52' - implementation 'im.conversations.webrtc:webrtc-android:129.0.0' + quicksyPlaystoreImplementation 'com.google.android.gms:play-services-auth-api-phone:18.2.0' - //Testing testImplementation 'junit:junit:4.13.2' - } ext { diff --git a/src/main/res/layout/activity_about.xml b/src/main/res/layout/activity_about.xml index 823620ffdf419755fea1690664b9a9593d769813..48c33e36b4af9adb0242beea6cd293a5a926566e 100644 --- a/src/main/res/layout/activity_about.xml +++ b/src/main/res/layout/activity_about.xml @@ -4,6 +4,7 @@ + + android:typeface="monospace" + tools:text="@string/pref_about_message" /> diff --git a/src/main/res/values/about.xml b/src/main/res/values/about.xml index 4076d92cba867a021e7e86589303c66fc6b03266..d6982f23115a343fe72641bc5663561d0f81fe63 100644 --- a/src/main/res/values/about.xml +++ b/src/main/res/values/about.xml @@ -43,23 +43,32 @@ \n\nYou should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses \n\nDownload the full source code at https://codeberg.org/iNPUTmice/Conversations - \n\n\nLibraries - \n\nhttps://webrtc.org\nCopyright (c) 2011, The WebRTC project authors. All rights reserved. (https://webrtc.org/support/license) - \n\nhttps://github.com/ypresto/android-transcoder\n(Apache License, Version 2.0) - \n\nhttps://www.bouncycastle.org\n(The MIT License (MIT)) - \n\nhttps://www.gnu.org/software/libidn\n(Apache License, Version 2.0) - \n\nhttps://github.com/ge0rg/MemorizingTrustManager\n(The MIT License (MIT)) - \n\nhttps://github.com/rtreffer/minidns\n(WTFPL) - \n\nhttps://github.com/open-keychain/openkeychain-api-lib\n(Apache License, Version 2.0) - \n\nhttps://developer.android.com/tools/support-library\n(Apache License, Version 2.0) - \n\nhttps://github.com/google/material-design-icons\n(CC BY 4.0) - \n\nhttps://github.com/leolin310148/ShortcutBadger\n(Apache License, Version 2.0) - \n\nhttps://github.com/WhisperSystems/libaxolotl-java\n(GPLv3) - \n\nhttps://github.com/vinc3m1/RoundedImageView\n(Apache License, Version 2.0) - \n\nhttps://github.com/jdamcd/android-crop\n(Apache License, Version 2.0) - \n\nhttps://github.com/zxing/zxing\n(Apache License, Version 2.0) - \n\nhttps://github.com/osmdroid/osmdroid\n(Apache License, Version 2.0) - \n\n\nMaps + \n\n\nThird-party libraries: + + \n\nAndroid Jetpack\nhttps://android.googlesource.com/platform/frameworks/support\n(Apache License, Version 2.0) + \n\nOpenKeychain Intents\nhttps://github.com/open-keychain/openkeychain-api-lib\n(Apache License, Version 2.0) + \n\nMaterial Components for Android\nhttps://github.com/material-components/material-components-android\n(Apache License, Version 2.0) + \n\nGuava: Google Core Libraries for Java\nhttps://github.com/google/guava\n(Apache License, Version 2.0) + \n\nZXing barcode scanning library for Android\nhttps://github.com/zxing/zxing\n(Apache License, Version 2.0) + \n\nFloating Action Button Speed Dial\nhttps://github.com/leinardi/FloatingActionButtonSpeedDial\n(Apache License, Version 2.0) + \n\nRoundedImageView\nhttps://github.com/vinc3m1/RoundedImageView\n(Apache License, Version 2.0) + \n\nOkHttp\nhttps://github.com/square/okhttp\n(Apache License, Version 2.0) + \n\nRetrofit\nhttps://github.com/square/retrofit\n(Apache License, Version 2.0) + \n\nAndroid Image Cropper\nhttps://github.com/CanHub/Android-Image-Cropper\n(Apache License, Version 2.0) + \n\nWebRTC\nhttps://webrtc.googlesource.com/src\n(Copyright (c) 2011, The WebRTC project authors) + \n\nTranscoder\nhttps://github.com/deepmedia/Transcoder\n(Apache License, Version 2.0) + \n\nToastCompat\nhttps://github.com/PureWriter/ToastCompat\n(Apache License, Version 2.0) + \n\nShortcutBadger\nhttps://github.com/leolin310148/ShortcutBadger\n(Copyright 2014 Leo Lin, Apache License, Version 2.0) + \n\nThe Bouncy Castle Crypto Package For Java\nhttps://github.com/bcgit/bc-java\n(Copyright (c) 2000-2024 The Legion of the Bouncy Castle Inc, MIT License) + \n\nConscrypt - A Java Security Provider\nhttps://github.com/google/conscrypt\n(Apache License, Version 2.0) + \n\nHSLuv\nhttps://github.com/hsluv/hsluv-java\n(Copyright (c) 2016 Alexei Boronine, MIT License) + \n\nJXMPP\nhttps://github.com/igniterealtime/jxmpp\n(Apache License, Version 2.0) + \n\nMiniDNS\nhttps://github.com/MiniDNS/minidns\n(Apache License, Version 2.0) + \n\nOpenStreetMap-Tools for Android\nhttps://github.com/osmdroid/osmdroid\n(Apache License, Version 2.0) + \n\nlibsignal-protocol\nhttps://github.com/signalapp/libsignal-protocol-java\n(GNU General Public License v3.0) + \n\nAndroid port of Googles’s libphonenumber\nhttps://github.com/MichaelRocks/libphonenumber-android\n(Apache License, Version 2.0) + + \n\n\nMaps: \n\nMaps by Open Street Map (https://www.openstreetmap.org). Copyright restrictions may apply. From 714ab31e5d228de6a553e3a1e712151aa106c366 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 16:17:08 +0200 Subject: [PATCH 20/33] set fgs type on import backup worker --- .../conversations/worker/ImportBackupWorker.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/worker/ImportBackupWorker.java b/src/main/java/eu/siacs/conversations/worker/ImportBackupWorker.java index 556748a72362b2b04abe6c98f4bde5ad9035b6c9..abf2568ec148605b84bf06b82f7776c086baff48 100644 --- a/src/main/java/eu/siacs/conversations/worker/ImportBackupWorker.java +++ b/src/main/java/eu/siacs/conversations/worker/ImportBackupWorker.java @@ -8,6 +8,7 @@ import android.app.PendingIntent; import android.content.ContentValues; import android.content.Context; import android.content.Intent; +import android.content.pm.ServiceInfo; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; @@ -103,8 +104,7 @@ public class ImportBackupWorker extends Worker { @NonNull @Override public Result doWork() { - setForegroundAsync( - new ForegroundInfo(NOTIFICATION_ID, createImportBackupNotification(1, 0))); + setForegroundAsync(getForegroundInfo()); final Result result; try { result = importBackup(this.uri, this.password); @@ -127,6 +127,18 @@ public class ImportBackupWorker extends Worker { return result; } + @NonNull + @Override + public ForegroundInfo getForegroundInfo() { + final var notification = createImportBackupNotification(1, 0); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { + return new ForegroundInfo( + NOTIFICATION_ID, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC); + } else { + return new ForegroundInfo(NOTIFICATION_ID, notification); + } + } + private Result importBackup(final Uri uri, final String password) throws IOException, InvalidKeySpecException { final var context = getApplicationContext(); From 789141f2194a6df9e4c8bf9e6a0df95d8510b2ad Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 16:17:24 +0200 Subject: [PATCH 21/33] remove some unused code --- .../eu/siacs/conversations/AppSettings.java | 6 ++ .../services/NotificationService.java | 6 +- .../services/XmppConnectionService.java | 10 +-- .../NotificationsSettingsFragment.java | 2 +- .../conversations/utils/Compatibility.java | 69 ++----------------- 5 files changed, 21 insertions(+), 72 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/AppSettings.java b/src/main/java/eu/siacs/conversations/AppSettings.java index ea9139bc0e75cdc1c44afe309462cfae46f48b16..40aad2758609f26e4397e3cbed172d18b5cc2026 100644 --- a/src/main/java/eu/siacs/conversations/AppSettings.java +++ b/src/main/java/eu/siacs/conversations/AppSettings.java @@ -12,6 +12,7 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import eu.siacs.conversations.persistance.FileBackend; import eu.siacs.conversations.services.QuickConversationsService; +import eu.siacs.conversations.utils.Compatibility; import java.security.SecureRandom; public class AppSettings { @@ -145,6 +146,11 @@ public class AppSettings { ACCEPT_INVITES_FROM_STRANGERS, R.bool.accept_invites_from_strangers); } + public boolean isKeepForegroundService() { + return Compatibility.twentySix() + || getBooleanPreference(KEEP_FOREGROUND_SERVICE, R.bool.enable_foreground_service); + } + private boolean getBooleanPreference(@NonNull final String name, @BoolRes int res) { final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); diff --git a/src/main/java/eu/siacs/conversations/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java index cd2045774e28a29685af493b956b3aed0211307e..277db9037d6bbf4e1fff4241247a957aad08fed8 100644 --- a/src/main/java/eu/siacs/conversations/services/NotificationService.java +++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java @@ -1820,7 +1820,7 @@ public class NotificationService { .setSmallIcon(connected > 0 ? R.drawable.ic_link_24dp : R.drawable.ic_link_off_24dp) .setLocalOnly(true); - if (Compatibility.runsTwentySix()) { + if (Compatibility.twentySix()) { mBuilder.setChannelId("foreground"); mBuilder.addAction( R.drawable.ic_logout_24dp, @@ -1970,7 +1970,7 @@ public class NotificationService { s() ? PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT : PendingIntent.FLAG_UPDATE_CURRENT)); - if (Compatibility.runsTwentySix()) { + if (Compatibility.twentySix()) { mBuilder.setChannelId("error"); } notify(ERROR_NOTIFICATION_ID, mBuilder.build()); @@ -1995,7 +1995,7 @@ public class NotificationService { builder.setContentIntent(createContentIntent(message.getConversation())); } builder.setOngoing(true); - if (Compatibility.runsTwentySix()) { + if (Compatibility.twentySix()) { builder.setChannelId("compression"); } return builder.build(); diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index f6cf075273ea55e1365df5b12c2d88a4f90631ab..7c627f755d3f0a150b29714aaa1f54b35433b49d 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -1401,11 +1401,11 @@ public class XmppConnectionService extends Service { @Override public void onCreate() { LibIdnXmppStringprep.setup(); - if (Compatibility.runsTwentySix()) { + if (Compatibility.twentySix()) { mNotificationService.initializeChannels(); } mChannelDiscoveryService.initializeMuclumbusService(); - mForceDuringOnCreate.set(Compatibility.runsAndTargetsTwentySix(this)); + mForceDuringOnCreate.set(Compatibility.twentySix()); toggleForegroundService(); this.destroyed = false; OmemoSetting.load(this); @@ -1657,7 +1657,7 @@ public class XmppConnectionService extends Service { || mForceDuringOnCreate.get() || ongoingVideoTranscoding || ongoing != null - || (Compatibility.keepForegroundService(this) && hasEnabledAccounts())) { + || (appSettings.isKeepForegroundService() && hasEnabledAccounts())) { final Notification notification; if (ongoing != null) { notification = this.mNotificationService.getOngoingCallNotification(ongoing); @@ -1729,14 +1729,14 @@ public class XmppConnectionService extends Service { public boolean foregroundNotificationNeedsUpdatingWhenErrorStateChanges() { return !mOngoingVideoTranscoding.get() && ongoingCall.get() == null - && Compatibility.keepForegroundService(this) + && appSettings.isKeepForegroundService() && hasEnabledAccounts(); } @Override public void onTaskRemoved(final Intent rootIntent) { super.onTaskRemoved(rootIntent); - if ((Compatibility.keepForegroundService(this) && hasEnabledAccounts()) + if ((appSettings.isKeepForegroundService() && hasEnabledAccounts()) || mOngoingVideoTranscoding.get() || ongoingCall.get() != null) { Log.d(Config.LOGTAG, "ignoring onTaskRemoved because foreground service is activated"); diff --git a/src/main/java/eu/siacs/conversations/ui/fragment/settings/NotificationsSettingsFragment.java b/src/main/java/eu/siacs/conversations/ui/fragment/settings/NotificationsSettingsFragment.java index 624152a7e5c91dc316989609845b985059abdb28..f9b977081524713c65c301c9faa19e87b5364809 100644 --- a/src/main/java/eu/siacs/conversations/ui/fragment/settings/NotificationsSettingsFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/fragment/settings/NotificationsSettingsFragment.java @@ -75,7 +75,7 @@ public class NotificationsSettingsFragment extends XmppPreferenceFragment { || callIntegration == null) { throw new IllegalStateException("The preference resource file is missing preferences"); } - if (Compatibility.runsTwentySix()) { + if (Compatibility.twentySix()) { notificationRingtone.setVisible(false); notificationHeadsUp.setVisible(false); notificationVibrate.setVisible(false); diff --git a/src/main/java/eu/siacs/conversations/utils/Compatibility.java b/src/main/java/eu/siacs/conversations/utils/Compatibility.java index 26a2331cc3143aa053859a92a77b3bd451d89bf0..36e7048e5cd2444a1e66df523b4fa65aea3fba1a 100644 --- a/src/main/java/eu/siacs/conversations/utils/Compatibility.java +++ b/src/main/java/eu/siacs/conversations/utils/Compatibility.java @@ -6,40 +6,30 @@ import android.annotation.SuppressLint; import android.app.ActivityOptions; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; -import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.os.Build; import android.os.Bundle; -import android.preference.PreferenceManager; import android.util.Log; - -import androidx.annotation.BoolRes; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import androidx.core.content.ContextCompat; - -import eu.siacs.conversations.AppSettings; import eu.siacs.conversations.Config; -import eu.siacs.conversations.R; public class Compatibility { public static boolean hasStoragePermission(final Context context) { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU || ContextCompat.checkSelfPermission( - context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU + || ContextCompat.checkSelfPermission( + context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) + == PackageManager.PERMISSION_GRANTED; } public static boolean s() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S; } - private static boolean runsTwentyFour() { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N; - } - - public static boolean runsTwentySix() { + public static boolean twentySix() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; } @@ -47,56 +37,9 @@ public class Compatibility { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.P; } - private static boolean getBooleanPreference(Context context, String name, @BoolRes int res) { - return getPreferences(context).getBoolean(name, context.getResources().getBoolean(res)); - } - - private static SharedPreferences getPreferences(final Context context) { - return PreferenceManager.getDefaultSharedPreferences(context); - } - - private static boolean targetsTwentySix(Context context) { - try { - final PackageManager packageManager = context.getPackageManager(); - final ApplicationInfo applicationInfo = - packageManager.getApplicationInfo(context.getPackageName(), 0); - return applicationInfo.targetSdkVersion >= 26; - } catch (PackageManager.NameNotFoundException | RuntimeException e) { - return true; // when in doubt… - } - } - - private static boolean targetsTwentyFour(Context context) { - try { - final PackageManager packageManager = context.getPackageManager(); - final ApplicationInfo applicationInfo = - packageManager.getApplicationInfo(context.getPackageName(), 0); - return applicationInfo.targetSdkVersion >= 24; - } catch (PackageManager.NameNotFoundException | RuntimeException e) { - return true; // when in doubt… - } - } - - public static boolean runsAndTargetsTwentySix(Context context) { - return runsTwentySix() && targetsTwentySix(context); - } - - public static boolean runsAndTargetsTwentyFour(Context context) { - return runsTwentyFour() && targetsTwentyFour(context); - } - - public static boolean keepForegroundService(Context context) { - return runsAndTargetsTwentySix(context) - || getBooleanPreference( - context, - AppSettings.KEEP_FOREGROUND_SERVICE, - R.bool.enable_foreground_service); - } - - public static void startService(final Context context, final Intent intent) { try { - if (Compatibility.runsAndTargetsTwentySix(context)) { + if (Compatibility.twentySix()) { intent.putExtra(EXTRA_NEEDS_FOREGROUND_SERVICE, true); ContextCompat.startForegroundService(context, intent); } else { From 662a060afd25f174177ea966e58da38e7d31377c Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 16:18:32 +0200 Subject: [PATCH 22/33] bump version code --- build.gradle | 2 +- .../android/en-US/changelogs/{4214104.txt => 4214204.txt} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename fastlane/metadata/android/en-US/changelogs/{4214104.txt => 4214204.txt} (100%) diff --git a/build.gradle b/build.gradle index 4ff59b31deb9506dde66ad3dd38c1eb920a5f6e3..6b5c6655aa5dc1d1c7ffddda0f2f24897edf3efb 100644 --- a/build.gradle +++ b/build.gradle @@ -105,7 +105,7 @@ android { defaultConfig { minSdkVersion 23 targetSdkVersion 35 - versionCode 42141 + versionCode 42142 versionName "2.18.2" archivesBaseName += "-$versionName" applicationId "eu.siacs.conversations" diff --git a/fastlane/metadata/android/en-US/changelogs/4214104.txt b/fastlane/metadata/android/en-US/changelogs/4214204.txt similarity index 100% rename from fastlane/metadata/android/en-US/changelogs/4214104.txt rename to fastlane/metadata/android/en-US/changelogs/4214204.txt From bf3778f99af70f5111a3cbf1ae537b6157433160 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 21:47:06 +0200 Subject: [PATCH 23/33] fix selection indicator in overview --- .../background_selected_item_conversation.xml | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/res/drawable/background_selected_item_conversation.xml b/src/main/res/drawable/background_selected_item_conversation.xml index 53c35008b320e361041724412ace00b81868c242..e178bf4d55c46322903f3e4231db81c5dc586b4a 100644 --- a/src/main/res/drawable/background_selected_item_conversation.xml +++ b/src/main/res/drawable/background_selected_item_conversation.xml @@ -1,7 +1,16 @@ - - - - \ No newline at end of file + + + + + + + + + + + + + \ No newline at end of file From e87b8748c4a6c4239601edb346fbb302fb0a56fd Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 18 Apr 2025 21:47:40 +0200 Subject: [PATCH 24/33] fix FAB not shriking --- .../ui/ConversationsOverviewFragment.java | 34 +++++++++++-------- .../ui/ExtendedFabSizeChanger.java | 14 +++++--- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java index 04853ddd2781e49aaac500c8e543921f15953fba..8b1f50a00e705f752fbace9df7fa6a1ec5b0f13e 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java @@ -378,15 +378,17 @@ public class ConversationsOverviewFragment extends XmppFragment { if (this.binding == null) { return null; } - LinearLayoutManager layoutManager = - (LinearLayoutManager) this.binding.list.getLayoutManager(); - int position = layoutManager.findFirstVisibleItemPosition(); - final View view = this.binding.list.getChildAt(0); - if (view != null) { - return new ScrollState(position, view.getTop()); - } else { - return new ScrollState(position, 0); + if (this.binding.list.getLayoutManager() + instanceof LinearLayoutManager linearLayoutManager) { + final int position = linearLayoutManager.findFirstVisibleItemPosition(); + final View view = this.binding.list.getChildAt(0); + if (view != null) { + return new ScrollState(position, view.getTop()); + } else { + return new ScrollState(position, 0); + } } + return null; } @Override @@ -473,18 +475,22 @@ public class ConversationsOverviewFragment extends XmppFragment { } } this.conversationsAdapter.notifyDataSetChanged(); - ScrollState scrollState = pendingScrollState.pop(); + final var scrollState = pendingScrollState.pop(); if (scrollState != null) { setScrollPosition(scrollState); } } - private void setScrollPosition(ScrollState scrollPosition) { - if (scrollPosition != null) { - LinearLayoutManager layoutManager = - (LinearLayoutManager) binding.list.getLayoutManager(); - layoutManager.scrollToPositionWithOffset( + private void setScrollPosition(@NonNull final ScrollState scrollPosition) { + if (binding.list.getLayoutManager() instanceof LinearLayoutManager linearLayoutManager) { + linearLayoutManager.scrollToPositionWithOffset( scrollPosition.position, scrollPosition.offset); + if (scrollPosition.position > 0) { + binding.fab.shrink(); + } else { + binding.fab.extend(); + } + binding.fab.clearAnimation(); } } } diff --git a/src/main/java/eu/siacs/conversations/ui/ExtendedFabSizeChanger.java b/src/main/java/eu/siacs/conversations/ui/ExtendedFabSizeChanger.java index 6c21f1a2d1c327aed2dce19b117fe558530df903..48ada71d9d650699398e782eea0c8dc903bf17e2 100644 --- a/src/main/java/eu/siacs/conversations/ui/ExtendedFabSizeChanger.java +++ b/src/main/java/eu/siacs/conversations/ui/ExtendedFabSizeChanger.java @@ -16,11 +16,15 @@ public class ExtendedFabSizeChanger extends RecyclerView.OnScrollListener { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); - if (RecyclerViews.findFirstVisibleItemPosition(recyclerView) > 0) { - extendedFloatingActionButton.shrink(); - } else { - extendedFloatingActionButton.extend(); - } + final var firstVisibleItem = RecyclerViews.findFirstVisibleItemPosition(recyclerView); + recyclerView.post( + () -> { + if (firstVisibleItem > 0) { + extendedFloatingActionButton.shrink(); + } else { + extendedFloatingActionButton.extend(); + } + }); } public static RecyclerView.OnScrollListener of(final ExtendedFloatingActionButton fab) { From 566d1ddf24a13de58e3c6bb10ca98b79181a7412 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 19 Apr 2025 10:30:31 +0200 Subject: [PATCH 25/33] change link to bouncycastle --- src/main/res/values/about.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/res/values/about.xml b/src/main/res/values/about.xml index d6982f23115a343fe72641bc5663561d0f81fe63..a47716ebb30259083e5cff747c758901b2900cc2 100644 --- a/src/main/res/values/about.xml +++ b/src/main/res/values/about.xml @@ -59,7 +59,7 @@ \n\nTranscoder\nhttps://github.com/deepmedia/Transcoder\n(Apache License, Version 2.0) \n\nToastCompat\nhttps://github.com/PureWriter/ToastCompat\n(Apache License, Version 2.0) \n\nShortcutBadger\nhttps://github.com/leolin310148/ShortcutBadger\n(Copyright 2014 Leo Lin, Apache License, Version 2.0) - \n\nThe Bouncy Castle Crypto Package For Java\nhttps://github.com/bcgit/bc-java\n(Copyright (c) 2000-2024 The Legion of the Bouncy Castle Inc, MIT License) + \n\nThe Bouncy Castle Crypto Package For Java\nhttps://www.bouncycastle.org/\n(Copyright (c) 2000-2024 The Legion of the Bouncy Castle Inc, MIT License) \n\nConscrypt - A Java Security Provider\nhttps://github.com/google/conscrypt\n(Apache License, Version 2.0) \n\nHSLuv\nhttps://github.com/hsluv/hsluv-java\n(Copyright (c) 2016 Alexei Boronine, MIT License) \n\nJXMPP\nhttps://github.com/igniterealtime/jxmpp\n(Apache License, Version 2.0) From ee776a86ff4aecb45988321a311e51925e0bbc6f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 19 Apr 2025 10:30:53 +0200 Subject: [PATCH 26/33] change selector for tablet w945dp was triggering on a Pixel 9 Pro in landscape mode. We increase the width slightly and also add a min 16:10 aspect ratio so it doesn't trigger on 21:9 phones --- .../activity_conversations.xml | 0 .../res/{values-w945dp => values-w1024dp-h640dp}/defaults.xml | 0 src/main/res/{values-w945dp => values-w1024dp-h640dp}/dimens.xml | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/main/res/{layout-w945dp => layout-w1024dp-h640dp}/activity_conversations.xml (100%) rename src/main/res/{values-w945dp => values-w1024dp-h640dp}/defaults.xml (100%) rename src/main/res/{values-w945dp => values-w1024dp-h640dp}/dimens.xml (100%) diff --git a/src/main/res/layout-w945dp/activity_conversations.xml b/src/main/res/layout-w1024dp-h640dp/activity_conversations.xml similarity index 100% rename from src/main/res/layout-w945dp/activity_conversations.xml rename to src/main/res/layout-w1024dp-h640dp/activity_conversations.xml diff --git a/src/main/res/values-w945dp/defaults.xml b/src/main/res/values-w1024dp-h640dp/defaults.xml similarity index 100% rename from src/main/res/values-w945dp/defaults.xml rename to src/main/res/values-w1024dp-h640dp/defaults.xml diff --git a/src/main/res/values-w945dp/dimens.xml b/src/main/res/values-w1024dp-h640dp/dimens.xml similarity index 100% rename from src/main/res/values-w945dp/dimens.xml rename to src/main/res/values-w1024dp-h640dp/dimens.xml From a3f9d56ae3f21c38e3c4e067524b40eaa78c995a Mon Sep 17 00:00:00 2001 From: solokot Date: Thu, 17 Apr 2025 13:26:27 +0000 Subject: [PATCH 27/33] Translated using Weblate (Russian) Currently translated at 100.0% (1076 of 1076 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/ru/ --- src/main/res/values-ru/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 8c4efe55f09178db11cd39275267a3e4315b3640..3be0abeb349ac952711c12f5213f994109c39fbe 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -1170,4 +1170,7 @@ Копировать адрес почты Копировать URI Адрес электронной почты скопирован в буфер обмена + Сервис не работает (известная проблема) + Запланированный простой + Сервис должен заработать %s From 422357a499dd8682dcc2b7d774cb98fb4153560c Mon Sep 17 00:00:00 2001 From: SomeTr Date: Fri, 18 Apr 2025 18:32:31 +0000 Subject: [PATCH 28/33] Translated using Weblate (Ukrainian) Currently translated at 100.0% (87 of 87 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/uk/ --- fastlane/metadata/android/uk/changelogs/4214204.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/uk/changelogs/4214204.txt diff --git a/fastlane/metadata/android/uk/changelogs/4214204.txt b/fastlane/metadata/android/uk/changelogs/4214204.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0231a9fc252dfacaccdcd67351f6db0eb576637 --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/4214204.txt @@ -0,0 +1,2 @@ +* Підтримка стану «Сервіс не працює» +* Незначні виправлення безпеки для розбору кількох тіл (body), occupant-id, та stanza-id From ff7285e00468f1a7d76ad195d25f1c68b772f1d6 Mon Sep 17 00:00:00 2001 From: Outbreak2096 Date: Fri, 18 Apr 2025 15:47:48 +0000 Subject: [PATCH 29/33] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (87 of 87 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/zh_Hans/ --- fastlane/metadata/android/zh-CN/changelogs/4214204.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/zh-CN/changelogs/4214204.txt diff --git a/fastlane/metadata/android/zh-CN/changelogs/4214204.txt b/fastlane/metadata/android/zh-CN/changelogs/4214204.txt new file mode 100644 index 0000000000000000000000000000000000000000..7ac68f1922125d90ddf09b55b1b4686ea59cc044 --- /dev/null +++ b/fastlane/metadata/android/zh-CN/changelogs/4214204.txt @@ -0,0 +1,2 @@ +* 支持“服务中断状态” +* 针对解析多消息体、occupant-id 和 stanza-id 的小型安全修复‌ From 049cfcd3a15d07fe7a3271d7e2a4a1fa4e0c3bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Fri, 18 Apr 2025 17:04:20 +0000 Subject: [PATCH 30/33] Translated using Weblate (Estonian) Currently translated at 100.0% (87 of 87 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/et/ --- fastlane/metadata/android/et/changelogs/4214204.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/et/changelogs/4214204.txt diff --git a/fastlane/metadata/android/et/changelogs/4214204.txt b/fastlane/metadata/android/et/changelogs/4214204.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac0c026e5ffac907b2ed9c6114429b478d319bf5 --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/4214204.txt @@ -0,0 +1,2 @@ +* „Service Outage Status“ tugi +* Väiksemad turvaparandused, mis seonduvad sõnumi sisu ja occupant-id ja stanza-id töötlemisega From a817dbde4a4df94b1ff1349b0f21f7d8d99b7eff Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sat, 19 Apr 2025 08:11:40 +0000 Subject: [PATCH 31/33] Translated using Weblate (German) Currently translated at 100.0% (87 of 87 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/de/ --- fastlane/metadata/android/de-DE/changelogs/4214204.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/de-DE/changelogs/4214204.txt diff --git a/fastlane/metadata/android/de-DE/changelogs/4214204.txt b/fastlane/metadata/android/de-DE/changelogs/4214204.txt new file mode 100644 index 0000000000000000000000000000000000000000..93227845a63012f65f532474c61eaa4f6d8f89bf --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/4214204.txt @@ -0,0 +1,2 @@ +* Unterstützung des "Dienstausfallstatus" +* Geringfügige Sicherheitskorrekturen für das Analysieren mehrerer Body-Elemente, Teilnehmer-IDs und Stanza-ID From 8f7271031e298b561c0670032254232830451536 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 19 Apr 2025 11:01:09 +0200 Subject: [PATCH 32/33] disabling autofill hints programatically seems to have no effect --- .../eu/siacs/conversations/ui/EditAccountActivity.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java index c5603e42c85578ff16324f25e3980a337e5f66d6..02e3963b966be2843d45b597db96f066c4ec2e06 100644 --- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java @@ -8,7 +8,6 @@ import android.content.IntentSender; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; @@ -1177,10 +1176,6 @@ public class EditAccountActivity extends OmemoActivity this.binding.namePort.setVisibility(mShowOptions ? View.VISIBLE : View.GONE); } - if (!mInitMode && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - this.binding.accountPassword.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO); - } - final boolean editable = !mAccount.isOptionSet(Account.OPTION_LOGGED_IN_SUCCESSFULLY) && !mAccount.isOptionSet(Account.OPTION_FIXED_USERNAME) @@ -1207,10 +1202,6 @@ public class EditAccountActivity extends OmemoActivity this.binding.accountPassword.setFocusableInTouchMode(editPassword); this.binding.accountPassword.setCursorVisible(editPassword); this.binding.accountPassword.setEnabled(editPassword); - if (!editPassword && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - this.binding.accountJid.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO); - this.binding.accountPassword.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO); - } if (!mInitMode) { this.binding.avater.setVisibility(View.VISIBLE); From e8ecd090c42d11ee7c5dc30b79217079bd8d6c4d Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 21 Apr 2025 09:34:38 +0200 Subject: [PATCH 33/33] amend changelog for 2.18.2 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49959e6af02a6f323b9425d5a9cadae1b28404fd..6e41547d4e87ce517d5b3d71f8644d714f2f650b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Version 2.18.2 * Support 'Service Outage Status' +* Fix Backup Import * Minor security fixes for parsing multiple bodies, occupant-ids and stanza-id ### Version 2.18.1