From 30c9e7399e0188a80c23e09edaf782fc651c364d Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 29 Mar 2021 10:57:56 +0200 Subject: [PATCH 01/16] log track class in onAddTrack --- .../eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java index dca04c000..e518d3d69 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java @@ -164,6 +164,10 @@ public class WebRTCWrapper { public void onAddTrack(RtpReceiver rtpReceiver, MediaStream[] mediaStreams) { final MediaStreamTrack track = rtpReceiver.track(); Log.d(EXTENDED_LOGGING_TAG, "onAddTrack(kind=" + (track == null ? "null" : track.kind()) + ",numMediaStreams=" + mediaStreams.length + ")"); + if (track != null) { + Log.d(EXTENDED_LOGGING_TAG,"onAddTrack(class="+track.getClass().getName()+")"); + } + } @Override From 0fc191d0040e02fd809e4a634f77784b50ebd236 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 29 Mar 2021 10:58:11 +0200 Subject: [PATCH 02/16] migrate hasInternetConnection() to new api Thank you to @ailicic for figuring out the new API. Closes #4050 --- .../services/XmppConnectionService.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 044331698..950860a2a 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -20,6 +20,8 @@ import android.database.ContentObserver; import android.graphics.Bitmap; import android.media.AudioManager; import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.Uri; import android.os.Binder; @@ -1075,11 +1077,20 @@ public class XmppConnectionService extends Service { } public boolean hasInternetConnection() { - final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + final ConnectivityManager cm = ContextCompat.getSystemService(this, ConnectivityManager.class); + if (cm == null) { + return false; + } try { - final NetworkInfo activeNetwork = cm == null ? null : cm.getActiveNetworkInfo(); - return activeNetwork != null && (activeNetwork.isConnected() || activeNetwork.getType() == ConnectivityManager.TYPE_ETHERNET); - } catch (RuntimeException e) { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + final Network activeNetwork = cm.getActiveNetwork(); + final NetworkCapabilities capabilities = activeNetwork == null ? null : cm.getNetworkCapabilities(activeNetwork); + return capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); + } else { + final NetworkInfo networkInfo = cm.getActiveNetworkInfo(); + return networkInfo != null && (networkInfo.isConnected() || networkInfo.getType() == ConnectivityManager.TYPE_ETHERNET); + } + } catch (final RuntimeException e) { Log.d(Config.LOGTAG, "unable to check for internet connection", e); return true; //if internet connection can not be checked it is probably best to just try } From 5e59f206857438acfabdef2314b00520ed320eab Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 3 Apr 2021 09:31:13 +0200 Subject: [PATCH 03/16] delete issue template and contributing guidelines people with half a brain will implicitly follow those guidelines any way and provide the information requested in the issue template. The vast majority of people have ignored the issue template in the past anyway. --- .github/CONTRIBUTING.md | 11 ----------- .github/ISSUE_TEMPLATE.md | 35 ----------------------------------- 2 files changed, 46 deletions(-) delete mode 100644 .github/CONTRIBUTING.md delete mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index c44dd479d..000000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1,11 +0,0 @@ -### Reporting Bugs and getting help - -The issue tracker on Github is for bug reports only. It is not a general support forum. - -**A bug is everything you can reproduce. ie *if I do this that happens but something else should happen instead*.** - -Please search the issue tracker (including closed issues). Your bug might be a server bug that has already been addressed. - -Please fill in the template when creating new issues and provide information about your device and your server. The [adb logcat](https://wiki.cyanogenmod.org/w/Doc:_debugging_with_logcat) can be omitted if you can reproduce the bug under every condition. (ie *click button X and the application crashes*) But the adb logcat is required if the bug happens only under certain conditions or involves network problem (Server not found, messages not arriving) - -**If you are seeking help or are unable to reproduce the exact problem please join our MUC at conversations@conference.siacs.eu** diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index f14554454..000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,35 +0,0 @@ -#### General information - -* **Version:** 2.6.0 -* **Device:** Xiaomi Mi A1 -* **Android Version:** Android 9 (stock) -* **Server name:** conversations.im, jabber.at or self hosted -* **Server software:** ejabberd 19.09.1 or prosody 0.11.3 (if known) -* **Installed server modules:** Stream Managment, CSI, MAM -* **Conversations source:** PlayStore, PlayStore Beta Channel, F-Droid, self build (latest HEAD) - - -#### Steps to reproduce - -1. … -2. … - - -#### Expected result - -What is the expected output? - - -#### Actual result - -What do you see instead? - - -#### Debug output - -Please post the output of adb logcat. The log should begin with the start of Conversations and include all the -steps it takes to reproduce the problem. - -```` -adb logcat -s conversations -```` From fb681dfd6053e837dc3b9497d2de84993754cbd0 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 3 Apr 2021 09:34:09 +0200 Subject: [PATCH 04/16] ammend 2.9.9 changelog --- CHANGELOG.md | 1 + fastlane/metadata/android/en-US/changelogs/42010.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fa67b9e4..89c0b6447 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Version 2.9.9 * Various bug fixes around Tor support +* Improve call compatibility with Dino ### Version 2.9.8 diff --git a/fastlane/metadata/android/en-US/changelogs/42010.txt b/fastlane/metadata/android/en-US/changelogs/42010.txt index b5ef8ac50..3a1c234c1 100644 --- a/fastlane/metadata/android/en-US/changelogs/42010.txt +++ b/fastlane/metadata/android/en-US/changelogs/42010.txt @@ -1 +1,2 @@ * Various bug fixes around Tor support +* Improve call compatibility with Dino From 55b2f2656d92674b3d7a8e986669e3d3e38a4206 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 8 Apr 2021 08:56:58 +0200 Subject: [PATCH 05/16] fix HTTP up/download for users that dont trust system CAs --- .../eu/siacs/conversations/services/MemorizingTrustManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java b/src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java index 9f2a5de36..e94c1c5c0 100644 --- a/src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java +++ b/src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java @@ -619,7 +619,7 @@ public class MemorizingTrustManager { private X509Certificate[] getAcceptedIssuers() { LOGGER.log(Level.FINE, "getAcceptedIssuers()"); - return defaultTrustManager.getAcceptedIssuers(); + return defaultTrustManager == null ? new X509Certificate[0] : defaultTrustManager.getAcceptedIssuers(); } private int createDecisionId(MTMDecision d) { From 5f020af2cce05a7b0543924614f5923f8d9fa856 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 8 Apr 2021 09:34:16 +0200 Subject: [PATCH 06/16] pulled translations from transifex --- src/conversations/res/values-ja/strings.xml | 6 +- src/main/res/values-da-rDK/strings.xml | 11 +- src/main/res/values-gl/strings.xml | 11 +- src/main/res/values-it/strings.xml | 3 +- src/main/res/values-ja/strings.xml | 439 +++++++++++++++++--- src/main/res/values-ml/strings.xml | 131 ++++++ src/main/res/values-pt-rBR/strings.xml | 3 +- src/quicksy/res/values-da-rDK/strings.xml | 2 +- src/quicksy/res/values-ja/strings.xml | 6 +- 9 files changed, 534 insertions(+), 78 deletions(-) create mode 100644 src/main/res/values-ml/strings.xml diff --git a/src/conversations/res/values-ja/strings.xml b/src/conversations/res/values-ja/strings.xml index 0f493a365..2a9af807d 100644 --- a/src/conversations/res/values-ja/strings.xml +++ b/src/conversations/res/values-ja/strings.xml @@ -9,4 +9,8 @@ %1$sへ招待されました。ユーザーネームは既に選択されています。アカウント作成手順をご案内します。 \nほかのプロバイダーのユーザーと会話するには、XMPPのフルアドレスを相手にお知らせください。 サーバーの招待 仮コードの書式が不正です - \ No newline at end of file + 共有ボタンを叩いて、連絡先の %1$s に招待を送信する。 + あなたの連絡先が近くにいる場合は、下のコードをスキャンして、あなたの招待を受け取ることもできます。 + %1$s に参加して私とお話しましょう: %2$s + …で招待を共有 + \ No newline at end of file diff --git a/src/main/res/values-da-rDK/strings.xml b/src/main/res/values-da-rDK/strings.xml index 9bbe133b5..e9e2a1653 100644 --- a/src/main/res/values-da-rDK/strings.xml +++ b/src/main/res/values-da-rDK/strings.xml @@ -281,7 +281,7 @@ Sikkerhed Tillad rettelse af beskeder Tillad dine kontakter at redigere deres beskeder med tilbagevirkende kraft - Ekspert indstillinger + Ekspertindstillinger Være forsigtig med at ændre i disse Om %s Stilletid @@ -533,7 +533,7 @@ Sikkerhedsfejl: Ugyldig filadgang! Ingen app fundet der kan dele URL Del URL med… -
Du tilmelder dig med dit telefonnummer, og Quicksy vil automatisk - baseret på telefonnumre i din adressebog - foreslå mulige kontakter til dig.

Når du tilmelder dig, accepterer du vores privatlispolitik.]]>
+
Du tilmelder dig med dit telefonnummer, og Quicksy vil automatisk - baseret på telefonnumre i din adressebog - foreslå mulige kontakter til dig.

Når du tilmelder dig, accepterer du vores privatlispolitik.]]>
Accepter og fortsætte En guide er oprettet til kontooprettelse på conversations.im.¹\nNår du vælger conversations.im som udbyder, kan du kommunikere med brugere fra andre udbydere ved at give dem din fulde XMPP-adresse. Din fulde XMPP-adresse vil blive: %s @@ -748,10 +748,10 @@ Denne gruppechat er blevet slettet Kinne ikke gemme optagelse Forgrundstjeneste - Denne underretningskategori bruges til at vise en permanent underretning, der angiver, at %1$s kører. + Denne notifikationskategori bruges til at vise en permanent notifikation, der angiver, at %1$s kører. Status Information Forbindelsesproblemer - Denne underretningskategori bruges til at vise en underretning, hvis der er et problem med at oprette forbindelse til en konto. + Denne notifikationskategori bruges til at vise en notifikation, hvis der er et problem med at oprette forbindelse til en konto. Beskeder Opkald Beskeder @@ -959,4 +959,5 @@ Kunne ikke analysere invitation Server understøtter ikke generering af invitationer Ingen aktive konti understøtter denne funktion - + Sikkerhedskopieringen er startet. Du får en notifikation, når den er afsluttet. + diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index 4f8e8e082..ae0cb1abb 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -115,7 +115,7 @@ Xeral Aceptar ficheiros De forma automática aceptar ficheiros menores de… - Engadidos + Complementos Notificación Vibrar Vibra cando chega unha nova mensaxe @@ -402,7 +402,7 @@ Nunca Ate novo aviso Pospor - Respostar + Responder Marcar como lido Entrada Enter envía @@ -730,8 +730,8 @@ Buscar mensaxes GIF Ver conversa - Engadido para Compartir Localización - Utilice o Engadido de Compartir Localización no lugar do mapa incluíndo + Complemento para Compartir Localización + Utiliza o Complemento para Compartir Localización no lugar do mapa incluído Copiar a dirección web Copiar enderezo XMPP Compartición de ficheiro HTTP para S3 @@ -959,4 +959,5 @@ Non se puido enviar o convite O servidor non soporta a creación de convites Ningunha conta activa soporta esta función - + Comezou a creación da copia de apoio. Recibirás unha notificación cando remate. + diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 8a899335a..86114205a 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -959,4 +959,5 @@ Impossibile analizzare l\'invito Il server non supporta la generazione di inviti Nessun account attivo supporta questa funzione - + Il backup è iniziato. Riceverai una notifica una volta completato. + diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 36abf565b..443fd8769 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -2,14 +2,14 @@ 設定 新しい会話 - アカウントの管理 - アカウントの管理 - この会話を閉じる + アカウントを管理 + アカウントを管理 + 会話を閉じる 連絡先の詳細 - 談話室の詳細 + グループチャットの詳細 チャンネルの詳細 アカウントを追加 - 名前の編集 + 名前を編集 アドレス帳に追加 名簿から削除 連絡先をブロック @@ -18,27 +18,31 @@ ドメインのブロックを解除 参加者をブロック 参加者のブロックを解除 - アカウントの管理 + アカウントを管理 設定 会話で共有 - 会話の開始 + 会話を開始 連絡先を選択 - 連絡先の選択 + 連絡先を選択 アカウントで共有 ブロックリスト ちょうど今 1 分前 %d 分前 + + 未読%d件 + + 送信中… - メッセージを復号化しています。しばらくお待ちください… + メッセージを復号しています。しばらくお待ちください… OpenPGP 暗号化メッセージ ニックネームは既に使用されています 正しくないニックネームです 管理者 - オーナー + 所有者 モデレーター 参加者 - ビジター + 訪問者 連絡先リストから %s を削除しますか? この連絡先との会話は削除されません。 %s からあなたに送信されるメッセージをブロックしますか? %s のブロックを解除し、あなたにメッセージを送信できるようにしますか? @@ -64,6 +68,8 @@ ブロックを解除 保存 OK + %1$s がクラッシュしました + あなたの XMPP アカウントを使用してスタックトレースの送信をすることで、 %1$s の継続的な開発を支援します。 今すぐ送信 今後表示しない アカウントに接続できません @@ -91,8 +97,9 @@ OpenPGP 暗号化メッセージを送信 ニックネームが変更されました 暗号化されていない送信 - 復号化に失敗しました。おそらく秘密鍵が正しくないようです。 + 復号に失敗しました。おそらく秘密鍵が正しくないようです。 OpenKeychain + OpenKeychain を利用して、メッセージの暗号化および復号、そしてあなたの公開鍵を管理します。

それは GPLv3+ ライセンスの下で、F-Droid および Google Play から利用可能です。

(後で %1$s を再起動してください。)]]>
再起動 インストール OpenKeychain をインストールしてください @@ -114,6 +121,7 @@ 着信音 通知音 新着メッセージの通知音 + 着信通話の呼出音 猶予期間 別のデバイスでの操作を検知した際に、通知を止める時間の長さ 詳細 @@ -131,8 +139,8 @@ 参加アップデートを送信 参加アップデートを受信 参加アップデートを問合せ - 写真の選択 - 写真の撮影 + 写真を選択 + 写真を撮影 事前にサブスクリプション要求を許可する 選択したファイルは画像ではありません 画像ファイルを変換できません @@ -148,7 +156,7 @@ サーバーが見つかりません 接続エラー 登録に失敗しました - ユーザー名はすでに使用されています + ユーザー名は既に使用されています 登録が完了しました サーバーが登録をサポートしていません トークンが無効です @@ -186,6 +194,7 @@ XEP-0191: ブロッキング コマンド XEP-0237: 名簿バージョニング XEP-0198: ストリーム管理 + XEP-0215: 外部サービスの発見 XEP-0163: PEP (アバター / OMEMO) XEP-0363: HTTP ファイルアップロード XEP-0357: プッシュ @@ -199,7 +208,7 @@ %d 時間前に会いました 1 日前に会いました %d 日前に会いました - 暗号化されたメッセージです。復号化するには OpenKeychain をインストールしてください。 + 暗号化されたメッセージです。復号するには OpenKeychain をインストールしてください。 新しい OpenPGP 暗号化されたメッセージが見つかりました OpenPGP 鍵 ID OMEMO フィンガープリント @@ -208,7 +217,7 @@ OMEMO フィンガープリントを信頼 鍵の取得中… 完了 - 復号化 + 復号 ブックマーク 検索 連絡先を入力 @@ -218,7 +227,7 @@ 連絡先のブロックを解除 作成 選択 - 連絡先はすでに存在します + 連絡先は既に存在します 参加 channel@conference.example.com/nick channel@conference.example.com @@ -228,18 +237,18 @@ チャンネルを破棄する このグループチャットを破棄してもよろしいですか?\n\n警告: グループチャットはサーバーから完全に削除されます。 このチャンネルを破棄してもよろしいですか?\n\n警告: チャンネルはサーバーから完全に削除されます。 - グループチャットを削除できません - チャンネルを削除できません - 談話室の題を編集 + グループチャットを破棄できません + チャンネルを破棄できません + グループチャットの題を編集 トピック - 談話室に参加しています… + グループチャットに参加しています… 退出 連絡先があなたを連絡先リストに追加しました 戻りを追加 %s はここまで読みました %s はここまで読みました %1$s +%2$d 全員ここまで読みました - 全員ここまで読みました + 全員がここまで読みました 公開 アバターをタップしてギャラリーから画像を選択します 公開中… @@ -250,25 +259,25 @@ ご利用のサーバーは、アバターの公開をサポートしていません ささやいた %s へ - プライベートメッセージを %s に送信 + 非公開メッセージを %s に送信 接続 - このアカウントはすでに存在します + このアカウントは既に存在します 次へ セッションが確立 スキップ 通知を無効にする 有効 - 談話室にはパスワードが必要 + グループチャットにはパスワードが必要 パスワードを入力してください 最初に連絡先から参加アップデートを要求してください。\n\nこれは、連絡先が何のクライアントを使用しているかを決めるために使用されます。 今すぐ要求 無視 - 警告: 相互の参加アップデートなしにこれを送信すると、予期しない問題が発生する可能性があります。\n\nあなたの参加サブスクリプションを検証するために、連絡先の詳細に移動します。 + 警告: 相互の参加アップデートなしにこれを送信すると、予期しない問題が発生する可能性があります。\n\nあなたの参加サブスクリプションを検証するために、“連絡先”の詳細に移動します。 セキュリティ メッセージの修正を許可 連絡先が、遡及的に自分のメッセージを編集することを許可します エキスパート設定 - ご利用は注意してください + ご利用には注意してください %s について 消音時間 開始時間 @@ -279,13 +288,14 @@ ブックマークと同期 ブックマークに従って、グループチャットに自動参加します。 OMEMO フィンガープリントをクリップボードにコピーしました - この談話室から締め出されています - この談話室はメンバー制です + このグループチャットから追い出されています + このグループチャットはメンバー制です リソース制約 - この談話室から蹴り出されています + このグループチャットから蹴り出されています このグループチャットは閉鎖されました - 既にこの談話室に参加していません + 既にこのグループチャットに参加していません アカウント %s を使用 + %s 上でホストされた HTTP ホストの %s を確認中 接続されていません。後でもう一度お試しください %s サイズを確認 @@ -310,15 +320,15 @@ オペレーティングシステムが接続を切断するのを防止します バックアップを作成 バックアップファイルは %s に保存されます - バックアップを作成しています + バックアップファイルを作成しています バックアップを作成しました バックアップファイルは %s に保存されました バックアップを復元 バックアップを復元しました アカウントを有効にしてください。 - ファイルの選択 + ファイルを選択 %1$s 受信中 (%2$d%% 完了) - %s のダウンロード + %s をダウンロード %s を削除 ファイル %s を開く @@ -335,20 +345,22 @@ ダイナミック タグ 連絡先の下に、読み取り専用タグを表示します 通知を有効にする - 談話室のサーバーが見つかりませんでした + グループチャットのサーバーが見つかりませんでした グループチャットを作成できません - アカウント アバター + アカウントのアバター OMEMO フィンガープリントをクリップボードにコピー OMEMO 鍵を再生成 デバイスをクリア + OMEMO のアナウンスから他のすべてのデバイスをクリアしてもよろしいですか? お使いのデバイスが次回接続したとき、それらは自分自身を再アナウンスしますが、その間に送信されたメッセージを受信できない場合があります。 この連絡先で使用可能な鍵がありません。\nサーバーから新しい鍵を取得できませんでした。連絡先のサーバーに問題がある可能性があります。 + この連絡先で利用可能な鍵はありません。\n双方に存在サブスクリプションあることを確認してください。 何か問題が発生しました。 サーバーから履歴を取得中 サーバーにこれ以上履歴はありません アップデート中… パスワードを変更しました! パスワードを変更できません - パスワードの変更 + パスワードを変更 現在のパスワード 新しいパスワード パスワードは空にできません @@ -360,18 +372,28 @@ 追放 メンバー 詳細モード + メンバー権限を付与 + メンバー権限を取消 管理者権限を付与 管理者権限を取消 + 所有者権限を付与 + 所有者権限を取消 グループチャットから削除 + チャンネルから削除 %s の所属を変更できません - 談話室から蹴り出す + グループチャットから追い出す チャンネルから追い出す - 今すぐ禁止 + あなたは公開チャンネルから %s を削除しようとしています。その唯一の手段は、そのユーザーを永久に追い出すことです。 + 今すぐ追い出す %s の役割を変更できません - プライベート、メンバーのみ + 非公開グループチャットの環境設定 + 公開チャンネルの環境設定 + 非公開、メンバーのみ + XMPPアドレスを誰でも見れるようにする + チャンネルの調停をする あなたは参加していません - 談話室のオプションが変更されました! - 談話室のオプションを変更できませんでした + グループチャットのオプションが変更されました! + グループチャットのオプションを変更できませんでした なし 通知があるまで スヌーズ @@ -379,9 +401,10 @@ 既読にする 入力 Enter は送信 + メッセージの送信に Enter キーを使用する。このオプションが無効でも、常に Ctrl+Enter でメッセージを送信できます。 Enter キーを表示 絵文字キーを Enter キーに変更 - オーディオ + 音声 ビデオ 画像 PDF 文書 @@ -402,23 +425,28 @@ 位置を表示するアプリケーションが見つかりません 位置 会話が閉じられました + 非公開グループチャットを退出しました + 公開チャンネルを退出しました システムの CA を信頼しない すべての証明書を手動で承認する必要があります 証明書を削除 - 手動で承認された証明書を削除します - 手動で承認された証明書はありません + 手動で承認した証明書を削除します + 手動で承認した証明書はありません 証明書を削除 選択を削除 キャンセル %d 証明書を削除しました + “送信”ボタンをクイックアクションで置き換えます クイックアクション なし 最近使用した - クイックアクションの選択 + クイックアクションを選択 連絡先を検索 - プライベートメッセージを送信 + ブックマークを検索 + 非公開メッセージを送信 + %1$s はグループチャットを退出しました ユーザー名 ユーザー名 これは有効なユーザー名ではありません @@ -428,25 +456,38 @@ ダウンロードに失敗しました: ファイルに書き込みできません Tor ネットワークが利用できません バインド失敗 + サーバーがこのドメインに応答しません 壊れています - 可用性 + 在席状況 + デバイスがロックされたときは離席 + デバイスがロックされたときは離席と表示 + サイレントモード時は取込中 + デバイスがサイレントモードの時は取込中と表示 バイブレートをサイレントモードとして扱う + デバイスがバイブレート時は取込中と表示 拡張接続設定 アカウントを設定するときにホスト名とポートの設定を表示します xmpp.example.com + 証明書でログイン + 証明書を解析できません アーカイブの設定 - サーバーサイドのアーカイブの設定 + サーバー側のアーカイブの設定 アーカイブの設定を取得しています。しばらくお待ちください… + アーカイブの設定を取得できません + キャプチャが要求されました 上の画像からテキストを入力してください + 信頼されていない証明書チェーン + XMPP アドレスが証明書と一致しません 証明書を更新 OMEMO 鍵の取得中にエラー! - OMEMO 鍵の取得中にエラー! + 証明書付きの OMEMO 鍵を検証しました! お使いのデバイスはクライアント証明書の選択をサポートしていません! 接続 Tor 経由で接続 Tor ネットワークを介してすべての接続をトンネルします。 Orbot が必要です ホスト名 ポート + サーバーまたは .onion のアドレス これは有効なポート番号ではありません これは有効なホスト名ではありません %1$d / %2$d アカウントが接続しました @@ -454,25 +495,46 @@ %d メッセージ さらにメッセージをロード + %s でファイル共有 + %s で画像共有 + %s で画像共有 + %s でテキスト共有 + %1$s に外部ストレージへのアクセス権を付与 + %1$s にカメラへのアクセス権を付与 連絡先と同期 + %1$s はあなたのアドレス帳にアクセスして、あなたのXMPP 連絡先リストと照合する権限を求めています。\nこれにより、連絡先のフルネームとアバターが表示されます。\n\n%1$s は、あなたのサーバーに何かをアップロードすることなく、あなたのアドレス帳を読み込んでローカルに照合するだけです。 +
Quicksyは、それらの電話番号のコピーを保存することはありません。\n\n詳細はプライバシーポリシーをご覧ください。

今、連絡先へのアクセス権限を付与するよう求められます。]]>
すべてのメッセージで通知 メンションされたときにのみ通知 通知は無効 通知は一時停止 画像の圧縮 + ヒント: この設定に関係なく、個々の画像を非圧縮で送信する場合は、‘画像を選択’ではなく‘ファイルを選択’を使用してください。 常に - バッテリー最適化が有効 + 大きい画像のみ + 電池最適化が有効 + お使いのデバイスは、%1$s で通知の遅延やメッセージの損失につながる可能性のある、重い電池の最適化を使用しています。\nそれらを無効にすることをお勧めします。 + お使いのデバイスは、%1$s で通知の遅延やメッセージの損失につながる可能性のある、重い電池の最適化を使用しています。\n\n今、それらを無効にするように求められます。 無効 選択した範囲が大きすぎます (アクティベートしたアカウントはありません) - このフィールドは必須です + このフィールドは必須項目です メッセージを修正 修正したメッセージを送信 + あなたは信頼を確認するために、この人の指紋を安全に検証しました。“完了”を選択すると、 %s がこのグループチャットの一員であることを確認したことになります。 このアカウントを無効にしました + セキュリティエラー: 不正なファイルアクセス! + URI を共有するアプリが見つかりません …で URI を共有 +
電話番号を入力して登録すると、アドレス帳に登録されている電話番号をもとに、Quicksyが自動的に連絡先を提案します。

登録すると、我々のプライバシーポリシーに同意することになります。]]>
+ 同意して続行 + conversations.im のアカウント作成のための指南が設定されています。¹\nconversations.im をプロバイダーとして選択した場合、あなたの完全なXMPPアドレスを与えることで、他のプロバイダーのユーザーと連絡をとることができます。 + あなたの完全なXMPPアドレスは: %s アカウントを作成 独自のプロバイダーを使用する ユーザー名を選択 + 在席状況を手動で管理 + ステータスメッセージの編集時に、在席状況を設定します。 ステータスメッセージ いつでもチャットできます オンライン @@ -480,21 +542,27 @@ 利用不可 取込中 安全なパスワードが生成されました - お使いのデバイスはバッテリー最適化の停止をサポートしていません + お使いのデバイスは電池最適化の停止をサポートしていません 登録に失敗しました: 後でもう一度試してください 登録に失敗しました: パスワードが弱すぎます 参加者を選択 - 談話室を作成しています… + グループチャットを作成しています… もう一度招待 無効 + ブロードキャストを使用 + Conversations を使用するとき、連絡先に知らせましょう プライバシー テーマ カラーパレットの選択 + 自動 + ライト + ダーク 緑の背景 受信したメッセージに緑の背景を使用します + OpenKeychain に接続できません このデバイスは、現在使用されていません コンピューター 携帯電話 @@ -502,19 +570,29 @@ Web ブラウザー コンソール 支払が必要です + インターネット使用権限の付与 自分 連絡先が、参加サブスクリプションを問い合わせしています 許可 %s にアクセスする権限がありません リモートサーバーが見つかりません + リモートサーバーのタイムアウト + アカウントを更新できません + この XMPP アドレスをスパムとして報告する。 OMEMO ID を削除 + OMEMO 鍵を再生成します。すべての連絡先を再度確認する必要があります。使用するのは最後の手段のみとしてください。 選択した鍵を削除 アバターを公開するには接続する必要があります。 エラーメッセージを表示 エラーメッセージ データセーバーを有効にしました + お使いのオペレーティングシステムは、%1$s がバックグラウンドのときにインターネットにアクセスすることを制限しています。新しいメッセージの通知を受信するには、“データセーバー”がオンになっているとき、%1$s に無制限のアクセスを許可する必要があります。\n%1$s は可能なときにデータを保存するための努力をします。 + お使いのデバイスは、%1$s のデータセーバーを無効にできません。 + 一時ファイルを作成できません このデバイスは検証済です フィンガープリントをコピー + 所有するすべての OMEMO 鍵を確認完了 + バーコードに、この会話のフィンガープリントが含まれていません。 フィンガープリントを検証しました カメラを使用して連絡先のバーコードをスキャンします キーが取得されるのをお待ちください @@ -522,15 +600,21 @@ XMPP URI として共有 HTTP リンクとして共有 検証前に白紙信託する + 認証されていない連絡先からの新規デバイスを信頼するが、認証されている連絡先からの新規デバイスについては手動での確認を求める。 + OMEMO 鍵を盲目的に信用していた。つまり、他の人かもしれないし、誰かが盗聴しているかもしれない。 信頼されていない 不正な 2D バーコード + キャッシュフォルダーをクリアします (カメラアプリで使用) キャッシュをクリア プライベートストレージをクリア ファイルが保存されているプライベートストレージをクリアします (サーバーから再ダウンロードできます) 信頼できるソースからこのリンクをたどりました リンクをクリックした後、%1$s の OMEMO 鍵を検証しようとしています。 これは、%2$s がこのリンクを公開した、信頼できるソースからこのリンクをたどった場合にのみ安全です。 OMEMO 鍵を検証 + 非アクティブを表示 + 非アクティブを非表示 信頼できないデバイス + このデバイスの検証を削除してよろしいですか?\nこのデバイスとそのデバイスからのメッセージは、“信頼できない”とマークされます。 %d秒 @@ -553,39 +637,60 @@ 設定された期間よりも古いメッセージを、このデバイスから自動的に削除します。 メッセージの暗号化中 ローカル保存期間のためにメッセージを取得しません。 - ビデオの圧縮中 + ビデオを圧縮中 対応する会話が閉じられました。 連絡先をブロックしました 知らない人からの通知 + 知らない人から受信したメッセージと通話を通知します。 知らない人からメッセージを受け取りました 見知らぬ人をブロック ドメイン全体をブロック 今すぐオンライン - 復号化を再試行 + 復号を再試行 セッション失敗 ダウングレードされた SASL メカニズム サーバーはWebサイトでの登録が必要です Webサイトを開く + Webサイトを開くアプリが見つかりません Heads-up 通知 + Heads-up 通知を表示 今日 昨日 DNSSEC でホスト名を検証 検証されたホスト名を含むサーバー証明書は検証済みと見なされます + 証明書は XMPP アドレスを含みません 一時的 ビデオを録画 クリップボードにコピー メッセージをクリップボードにコピーしました メッセージ + 非公開メッセージを無効にしました + 保護されたアプリ + 画面がオフになっている場合でも通知を受信し続けるには、保護されたアプリのリストに Conversations を追加する必要があります。 + 未知の証明書を受け入れますか? + サーバー証明書が既知の認証局によって署名されていません。 + 不一致なサーバー名を受け入れますか? + サーバーは\"%s\"として認証できませんでした。証明書は次の場合にのみ有効です: それでも接続を希望しますか? 証明書の詳細: - 在席状況メッセージを編集 - 在席状況メッセージを編集 + 一度だけ + QR コードスキャナーはカメラにアクセスが必要です + 一番下へスクロール + メッセージ送信後に下へスクロール + ステータスメッセージを編集 + ステータスメッセージを編集 暗号化をしない + %1$s は %2$s に暗号化メッセージを送れません。連絡先が利用しているサーバーが古すぎるか、クライアントが OMEMO を扱えません。 + デバイスのリストを取得できません + 暗号化の鍵を取得できません ヒント: お互いが名簿に加えれば解決するでしょう。 + この会話でOMEMOの暗号化を無効にしてよろしいですか?\n\nこれにより、サーバー管理者がメッセージを読むことが可能になりますが、時代遅れのクライアントを使っている人と連絡をとるには、この方法しかないかもしれません。 + 今すぐ無効化 下書き: OMEMO 暗号化 - OMEMO は1対1の会話とグループチャットで常に使用されます。 + OMEMO は1対1の会話と非公開グループチャットで常に使用されます。 デフォルトで新しい会話で OMEMO を使用します。 + 新しい会話をするためには、OMEMOを明示的にオンにする必要があります。 ショートカットを作成 フォントの大きさ このアプリで使用される相対フォントサイズ @@ -595,28 +700,236 @@ このデバイス向けにメッセージは暗号化されませんでした。 + OMEMO メッセージの復号に失敗しました。 元に戻す + 場所の共有が無効 位置を固定 位置を固定しない 場所をコピー + 位置を共有 + 位置を共有 位置を表示 + 共有 + 録音を開始できません しばらくお待ちください… + %1$s にマイクへのアクセス権を付与 メッセージを検索 GIF + 会話を表示 + 場所共有プラグイン + 場所共有プラグインの代わりに、組み込みの地図を使う ウェブアドレスをコピー XMPP アドレスをコピー - 談話室名 + S3 の HTTP ファイル共有 + 直接検索 + ‘会話の開始’画面でキーボードを開き、検索フィールドにカーソルを置きます + グループチャットのアバター + ホストはグループチャットのアバターをサポートしていません + 所有者だけが、グループチャットのアバターを変更可能です + 連絡先の名前 + ニックネーム + 名前 + 名前の記入は任意です + グループチャット名 + このグループチャットは破棄されました フォアグラウンドサービス + この通知カテゴリーは %1$s が実行されていることを表示する、永続的な通知を表示するために使用されます。 + ステータス情報 + 接続の問題 + この通知カテゴリーは、アカウントへの接続に問題があった場合に、通知を表示するために使用されます。 + この通知グループは、音を鳴らしてはいけない通知を表示するために使用します。例えば、他のデバイスでアクティブになっているときなどです (猶予期間)。 + 配信に失敗 + メッセージ通知設定 + 通話着信の通知設定 + 重要性、音、振動 + ビデオの圧縮 + メディアを表示 + 参加者 + メディアブラウザー + セキュリティ違反のため、ファイルが省略されています。 + ビデオの質 + 質が低い程、ファイルは小さくなります + 中 (360p) + 高 (720p) + あなたは既にメッセージを作成中です。 + 未実装の機能 + 不正な国コード + 国を選択 + 電話番号 + 電話番号を検証 + Quicksy から電話番号を確認するための SMS メッセージ(キャリア料金がかかる場合があります)が送信されます。国番号と電話番号を入力してください: +
%s

これでよろしいでしょうか、それとも番号を編集しますか?]]>
+ %s は有効な電話番号ではありません。 + 電話番号を入力してください。 + 国を検索 + %s を検証 + %sにSMSを送りました。]]> + 6桁のコードを含む別のSMSを送信しました。 + 以下に6桁の pin を入力してください。 + SMS 再送信 + SMS 再送信(%s) + しばらくお待ちください(%s) + 戻る + クリップボードから可能な pin を自動的に貼り付ける。 + 6桁の pin を入力してください。 + 本当に登録手続きを中止してもよろしいのですか? はい いいえ 検証しています… SMSを要求しています… + 入力された pin が正しくありません。 + 送信した pin の有効期限が切れています。 + 未知のネットワークエラー。 + サーバーからの不明な応答。 + サーバーに接続できません。 + 安全な接続を確立できませんでした。 + サーバーが見つかりません。 要求の処理中に、何か問題が発生しました。 + 無効なユーザーの入力 + 一時的に入手不可能です。後でもう一度試してください。 + ネットワーク接続なし。 + %s でもう一度お試しください。 + 上限に到達しました + 試行が多すぎます + あなたはこのアプリの古いバージョンを使用しています。 + アップデート + この電話番号は現在、他のデバイスでログインしています。 + アドレス帳に登録されていない人にあなたのことを知ってもらうために、名前を入力してください。 + あなたの名前 + あなたの名前を入力 + 編集ボタンを使って名前を設定します。 要求を拒否 + Orbot をインストール + Orbot を開始 + マーケットアプリがインストールされていません。 + このチャンネルでは、あなたのXMPPアドレスを公開します + 電子書籍 + 原物(非圧縮) + …で開く Conversations プロフィール写真 + アカウントを選択 + バックアップを復元 + 復元 + バックアップを復元するアカウント %s のパスワードを入力してください。 + インストールの複製(同時実行)を作成する際に、バックアップの復元機能を使用しないでください。バックアップの復元は、移行時や元のデバイスを紛失した場合にのみ使用してください。 + バックアップを復元できません。 + バックアップを復号できません。パスワードは正しいですか? + バックアップ&復元 XMPP アドレスを入力 + グループチャットを作成 + 公開チャンネルに参加 + 非公開グループチャットを作成 + 公開チャンネルを作成 チャンネル名 XMPP アドレス - このチャンネルは既に存在しています + チャンネルの名前をご記入ください + XMPP アドレスをご記入ください + これは XMPP アドレスです。名前をご記入ください。 + 公開チャンネルを作成中… + このチャンネルは既に存在します + 存在しているチャンネルに参加しています + チャンネルの環境設定を保存できません + 誰にでもトピックの編集を許可 + 誰にでも他の人の招待を許可 + 誰でもトピックを編集できます。 + 所有者はトピックを編集できます。 + 管理者はトピックを編集できます。 + 所有者は他の人を招待できます。 + 誰でも他の人を招待できます。 + XMPP アドレスは管理者が見れます。 + XMPP アドレスは誰でも見れます。 + この公開チャンネルには参加者がいません。連絡先を招待したり、共有ボタンを使って XMPP アドレスを配布できます。 + この非公開グループチャットには参加者がいません。 + 権限を管理 + 参加者を検索 + ファイルが大きすぎます + 添付 + チャンネルを発見 + チャンネルを検索 + プライバシー侵害の可能性あり! + search.jabber.networkを利用します。

この機能を使うと、あなたののIPアドレスや検索キーワードがそのサービスに送信されます。詳しくは、プライバシーポリシーをご覧ください。]]>
+ 私は既にアカウントを持っています + 存在するアカウントを追加 + 新しいアカウントを登録 + これはドメインアドレスのようです + とにかく追加 + これはチャンネルアドレスのようです + バックアップファイルを共有 + Conversations のバックアップ + 出来事 + バックアップを開く + 選択したファイルは、 Conversations のバックアップファイルではありません + このアカウントは既に設定されています + このアカウントのパスワートを入力してください + この操作を実行できません + 公開チャンネルに参加… + 共有アプリがこのファイルへのアクセスを許可していませんでした。 + + jabber.network + ローカルサーバー + ほとんどのユーザーは、公開されている XMPP エコシステム全体からより良い提案を得るために、‘jabber.network’を選択するはずです。 + チャンネル発見方法 + アカウントを有効にしてください + 通話をする + 通話着信 + 映像通話着信 + 接続中 + 接続しました + 通話受入 + 通話終了 + 応答 + 解散 + デバイス発見 + 鳴動 取込中 -
+ 通話に接続できません + 接続切断 + 撤回された通話 + ハングアップ + 継続中の通話 + 継続中の映像通話 + 通話するのに Tor を無効にする + 通話着信 + 通話着信・%s + 不在通話着信・%s + 通話発信 + 通話発信・%s + 不在通話着信 + 音声通話 + 映像通話 + 会話に切り替え + マイクが利用できません + 1回につき1回線のみ + 継続中の通話に戻る + カメラを切り替えできません + 最上に留める + 最上から留めるのをやめる + GPX 追跡 + メッセージを修正できません + すべての会話 + この会話 + あなたのアバター + %s のアバター + OMEMO で暗号化 + OpenPGP で暗号化 + 非暗号化 + 終了 + 音声メールを録音 + 音声再生 + 音声一時中断 + 連絡先を追加、作成またはグループチャットに参加、またはチャンネルを発見する + + %1$d人の参加者を表示 + + + 一部のメッセージを配信できませんでした + + 配信に失敗 + 更なるオプション + アプリケーションが見つかりません + 会話に招待 + 招待を解析できません + サーバーは招待をサポートしていません + この機能をサポートするアクティブなアカウントがありません + バックアップを開始しました。 バックアップが完了すると通知が届きます。 + diff --git a/src/main/res/values-ml/strings.xml b/src/main/res/values-ml/strings.xml new file mode 100644 index 000000000..e8687aacc --- /dev/null +++ b/src/main/res/values-ml/strings.xml @@ -0,0 +1,131 @@ + + + ക്രമീകരണങ്ങൾ + പുതിയ സംഭാഷണം + സംഭാഷണം അടയ്ക്കൂ + ചാനൽ വിവരങ്ങൾ + അക്കൗണ്ട് ചേർക്കൂ + പെര് തിരുത്തുക + മേഖല തടയുക + ക്രമീകരണങ്ങൾ + സംഭാഷണം ആരംഭിക്കൂ + ഇപ്പോൾ + 1 മിനിറ്റ് മുമ്പ് + %d മിനിറ്റ് മുമ്പ് + അയയ്ക്കുന്നു... + അഡ്മിൻ + ഉടമ + തടഞ്ഞു + സംഭാഷണം ആരംഭിക്കുക + ക്ഷണിക്കൂ + റദ്ദാക്കൂ + ചേർക്കൂ + തിരുത്തുക + ഇല്ലാതാക്കൂ + തടയുക + സംരക്ഷിക്കൂ + ശരി + %1$s തകർന്നു + ഇപ്പോൾ അയയ്‌ക്കൂ + ഒരിക്കലും ചോദിക്കരുത് + ചരിത്രം മായ്ക്കൂ + സംഭാഷണ ചരിത്രം മായ്ക്കൂ + ഫയൽ ഇല്ലാതാക്കൂ + ഉപകരണം തിരഞ്ഞെടുക്കൂ + സന്ദേശം അയയ്ക്കൂ + OpenKeychain + കാത്തിരിക്കുന്നു... + പൊതുവായവ + അറിയിപ്പ് + LED അറിയിപ്പ് + വിപുലമായ + ഒരിക്കലും ക്രാഷ് റിപ്പോർട്ടുകൾ അയയ്‌ക്കരുത് + സന്ദേശങ്ങൾ ഉറപ്പാക്കൂ + UI + സ്വീകരിക്കുക + നിങ്ങളുടെ അക്കൗണ്ട് + ഫയൽ കണ്ടില്ല + OTR + OpenPGP + അക്കൗണ്ട് ഇല്ലാതാക്കൂ + നിങ്ങള്ക്ക് ഉറപ്പാണോ? + XMPP വിലാസം + XMPP വിലാസം തടയുക + XEP-0313: MAM + ലഭ്യമാണ് + ലഭ്യമല്ല + അവസാനം കണ്ടത് ഇപ്പോൾ + അവസാനമായി കണ്ടത് ഒരു മിനിറ്റ് മുമ്പ് + ചെയ്തു + തിരയുക + സൃഷ്ടിക്കൂ + തിരഞ്ഞെടുക്കൂ + ചേരുക + ഗ്രൂപ്പ് ചാറ്റ് നശിപ്പിക്കൂ + ചാനൽ നശിപ്പിക്കൂ + വിഷയം + ഗ്രൂപ്പ് ചാറ്റിൽ ചേരുന്നു... + %s ഇത് വരെ വായിച്ചിട്ടുണ്ട് + %s ഇത് വരെ വായിച്ചിട്ടുണ്ട് + എല്ലാവരും ഇത് വരെ വായിച്ചിട്ടുണ്ട് + അടുത്തത് + ഒഴിവാക്കൂ + ഒഴിവാക്കൂ + മറ്റുള്ളവ + %s അക്കൗണ്ട് ഉപയോഗിക്കുന്നു + വീണ്ടും അയയ്ക്കൂ + ഫയൽ URL + ഉറപ്പാക്കൂ + വീണ്ടും ശ്രമിക്കുക + ഫയൽ തിരഞ്ഞെടുക്കൂ + %s ഇല്ലാതാക്കൂ + ഫയൽ + %s തുറക്കൂ + ഫയൽ ഇല്ലാതാക്കി + അക്കൗണ്ട് അവതാർ + പുതുക്കുന്നു... + അംഗം + വിപുലമായ മോഡ് + ചാനലിൽ നിന്ന് നിരോധിക്കൂ + ഇപ്പോൾ നിരോധിക്കൂ + ചിത്രം + റദ്ദാക്കൂ + ഉപയോക്തൃനാമം + ഉപയോക്തൃനാമം + ലഭ്യത + xmpp.example.com + + %d സന്ദേശം + %d സന്ദേശങ്ങൾ + + കൂടുതൽ സന്ദേശങ്ങൾ ലഭ്യമാക്കൂ + എപ്പോഴും + വലിയ ചിത്രങ്ങൾ മാത്രം + അക്കൗണ്ട് സൃഷ്ടിക്കൂ + നിങ്ങളുടെ ഉപയോക്തൃനാമം തിരഞ്ഞെടുക്കൂ + വീണ്ടും ക്ഷണിക്കൂ + ഞാൻ + അനുവദിക്കൂ + വെബ്സൈറ്റ് തുറക്കൂ + ഇന്ന് + ഇന്നലെ + ഒരിക്കൽ + പങ്കിടുക + GIF + സന്ദേശങ്ങൾ + സന്ദേശങ്ങൾ + പങ്കെടുക്കുന്നവർ + ഫോൺ നമ്പർ + നിങ്ങളുടെ ഫോൺ നമ്പർ ഉറപ്പാക്കൂ + %s ഉറപ്പാക്കൂ + SMS വീണ്ടും അയയ്ക്കൂ + SMS വീണ്ടും അയയ്ക്കൂ (%s) + അതെ + ഉറപ്പാക്കുന്നു... + അക്കൗണ്ട് തിരഞ്ഞെടുക്കൂ + XMPP വിലാസം നൽകുക + XMPP വിലാസം + നിലവിലുള്ള അക്കൗണ്ട് ചേർക്കുക + സഹായം + GPX ട്രാക്ക് + diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 1e3a518ec..d616984f9 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -959,4 +959,5 @@ Não foi possível processar o convite O servidor não suporta a criação de convites Nenhuma conta ativa suporta esse recurso - + O backup foi iniciado. Você receberá uma notificação assim que ele for concluído. + diff --git a/src/quicksy/res/values-da-rDK/strings.xml b/src/quicksy/res/values-da-rDK/strings.xml index 1be0ee176..0969f1822 100644 --- a/src/quicksy/res/values-da-rDK/strings.xml +++ b/src/quicksy/res/values-da-rDK/strings.xml @@ -3,7 +3,7 @@ Hvor lang tid Quicksy er stille efter at have set aktivitet på en anden enhed Ved at indsende \"stack traces\" hjælper du udviklingen af Quicksy Lad alle dine kontakter vide når du bruger Quicksy - For at modtage underretninger, selv når skærmen er slukket, skal du tilføje Quicksy til listen over beskyttede apps. + For at modtage notifikationer, selv når skærmen er slukket, skal du tilføje Quicksy til listen over beskyttede apps. Quicksy profilbillede Quicksy er ikke tilgængelig i dit land. Kan ikke bekræfte server identitet. diff --git a/src/quicksy/res/values-ja/strings.xml b/src/quicksy/res/values-ja/strings.xml index 9ec6e9b0d..d846cd3df 100644 --- a/src/quicksy/res/values-ja/strings.xml +++ b/src/quicksy/res/values-ja/strings.xml @@ -5,4 +5,8 @@ Quicksy を使用するときに、すべての連絡先に知らせましょう 画面がオフになっている場合でも通知を受信し続けるには、保護されたアプリのリストに Quicksy を追加する必要があります。 Quicksy プロフィール写真 - + Quicksy はあなたの国で利用不可です。 + サーバーの同一性を確認できません。 + 未知のセキュリティエラー。 + サーバーへの接続中にタイムアウトが発生しました。 + From 9fc04c4b1ed23cc2ee157d75a74e45a6bdb867b6 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 8 Apr 2021 10:23:37 +0200 Subject: [PATCH 07/16] when receiving out-of-order session-init in terminal state do not move to terminal again fixes #4049 --- .../xmpp/jingle/JingleRtpConnection.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java index 638fa8cf8..1f9eeb3c4 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java @@ -320,7 +320,16 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web private void receiveSessionInitiate(final JinglePacket jinglePacket) { if (isInitiator()) { Log.d(Config.LOGTAG, String.format("%s: received session-initiate even though we were initiating", id.account.getJid().asBareJid())); - terminateWithOutOfOrder(jinglePacket); + if (isTerminated()) { + Log.d(Config.LOGTAG, String.format( + "%s: got a reason to terminate with out-of-order. but already in state %s", + id.account.getJid().asBareJid(), + getState() + )); + respondWithOutOfOrder(jinglePacket); + } else { + terminateWithOutOfOrder(jinglePacket); + } return; } final RtpContentMap contentMap; From 37ce311764082d48423b5a747de4b492beaeecf5 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 8 Apr 2021 10:53:01 +0200 Subject: [PATCH 08/16] do not attempt to play ringtone if none was found --- .../eu/siacs/conversations/services/NotificationService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java index 1d01b0bd9..a4eec7fb1 100644 --- a/src/main/java/eu/siacs/conversations/services/NotificationService.java +++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java @@ -425,6 +425,10 @@ public class NotificationService { } final Uri uri = Uri.parse(ringtonePreference); this.currentlyPlayingRingtone = RingtoneManager.getRingtone(mXmppConnectionService, uri); + if (this.currentlyPlayingRingtone == null) { + Log.d(Config.LOGTAG,"unable to find ringtone for uri "+uri); + return; + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { this.currentlyPlayingRingtone.setLooping(true); } From 202bde46ed8629442db3bd56596c5560270af508 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 9 Apr 2021 15:49:33 +0200 Subject: [PATCH 09/16] properly error out if upload fails. fixes #4052 --- .../http/HttpUploadConnection.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java b/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java index a6bacfa62..b18157fc7 100644 --- a/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java +++ b/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java @@ -44,7 +44,6 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan private boolean delayed = false; private DownloadableFile file; private final Message message; - private String mime; private SlotRequester.Slot slot; private byte[] key = null; @@ -86,11 +85,14 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan public void cancel() { final ListenableFuture slotFuture = this.slotFuture; if (slotFuture != null && !slotFuture.isDone()) { - slotFuture.cancel(true); + if (slotFuture.cancel(true)) { + Log.d(Config.LOGTAG,"cancelled slot requester"); + } } final Call call = this.mostRecentCall; if (call != null && !call.isCanceled()) { call.cancel(); + Log.d(Config.LOGTAG,"cancelled HTTP request"); } } @@ -102,11 +104,6 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan mXmppConnectionService.markMessage(message, Message.STATUS_SEND_FAILED, cancelled ? Message.ERROR_MESSAGE_CANCELLED : errorMessage); } - private void markAsCancelled() { - finish(); - mXmppConnectionService.markMessage(message, Message.STATUS_SEND_FAILED, Message.ERROR_MESSAGE_CANCELLED); - } - private void finish() { mHttpConnectionManager.finishUploadConnection(this); message.setTransferable(null); @@ -115,10 +112,11 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan public void init(boolean delay) { final Account account = message.getConversation().getAccount(); this.file = mXmppConnectionService.getFileBackend().getFile(message, false); + final String mime; if (message.getEncryption() == Message.ENCRYPTION_PGP || message.getEncryption() == Message.ENCRYPTION_DECRYPTED) { - this.mime = "application/pgp-encrypted"; + mime = "application/pgp-encrypted"; } else { - this.mime = this.file.getMimeType(); + mime = this.file.getMimeType(); } final long originalFileSize = file.getSize(); this.delayed = delay; @@ -136,7 +134,11 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan @Override public void onSuccess(@NullableDecl SlotRequester.Slot result) { HttpUploadConnection.this.slot = result; - HttpUploadConnection.this.upload(); + try { + HttpUploadConnection.this.upload(); + } catch (final Exception e) { + fail(e.getMessage()); + } } @Override @@ -171,7 +173,7 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan } @Override - public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { + public void onResponse(@NotNull Call call, @NotNull Response response) { final int code = response.code(); if (code == 200 || code == 201) { Log.d(Config.LOGTAG, "finished uploading file"); From c469b2dc22a5e8437471dfbb8fdc54bd3b0e722f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 9 Apr 2021 15:50:11 +0200 Subject: [PATCH 10/16] pulled translations from transifex --- src/main/res/values-de/strings.xml | 4 +-- src/main/res/values-ja/strings.xml | 52 +++++++++++++++--------------- src/main/res/values-ml/strings.xml | 5 +++ 3 files changed, 33 insertions(+), 28 deletions(-) diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 9ade14854..7d41aedf5 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -172,7 +172,7 @@ OTR OpenPGP OMEMO - Löschen + Konto löschen Vorübergehend abschalten Avatar veröffentlichen Öffentlichen OpenPGP-Schlüssel veröffentlichen @@ -889,7 +889,7 @@ jabber.network Lokaler Server - Die meisten Benutzer sollten hier ‘jabber.network’ auswählen um bessere Vorschläge aus dem gesamten, öffentlichen XMPP Ökosystem zu bekommen. + Die meisten Benutzer sollten hier ‘jabber.network’ auswählen, um bessere Vorschläge aus dem gesamten, öffentlichen XMPP-Ökosystem zu bekommen. Channelsuchmethode Sicherungskopie Über diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 443fd8769..0ba8b6c53 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -25,7 +25,7 @@ 連絡先を選択 連絡先を選択 アカウントで共有 - ブロックリスト + ブロック一覧 ちょうど今 1 分前 %d 分前 @@ -43,7 +43,7 @@ モデレーター 参加者 訪問者 - 連絡先リストから %s を削除しますか? この連絡先との会話は削除されません。 + 連絡先名簿から %s を削除しますか? この連絡先との会話は削除されません。 %s からあなたに送信されるメッセージをブロックしますか? %s のブロックを解除し、あなたにメッセージを送信できるようにしますか? %s からの連絡をすべてブロックしますか? @@ -76,12 +76,12 @@ 複数のアカウントに接続できません タップしてアカウントを管理 添付ファイル - 連絡先が連絡先リストにありません。追加しますか? + 連絡先が連絡先名簿にありません。追加しますか? 連絡先を追加 配信に失敗しました 転送用画像の準備中 転送用画像の準備中 - フィルを共有しています。しばらくお待ちください… + ファイル共有中。しばらくお待ちください… 履歴をクリア 会話履歴をクリア この会話のすべてのメッセージを削除してもよろしいですか?\n\n警告: 他のデバイスやサーバーに保存されているメッセージのコピーには影響しません。 @@ -174,7 +174,7 @@ アバターを公開 OpenPGP 公開鍵を公開 OpenPGP 公開鍵を削除 - 在席通知から OpenPGP 公開鍵を削除してもよろしいですか?\n連絡先はあなたに OpenPGP 暗号化メッセージを送信できなくなります。 + 在席告知から OpenPGP 公開鍵を削除してもよろしいですか?\n連絡先はあなたに OpenPGP 暗号化メッセージを送信できなくなります。 OpenPGP 公開鍵を公開しました。 アカウントを有効にする よろしいですか? @@ -200,7 +200,7 @@ XEP-0357: プッシュ 利用可能 利用不可 - 公開鍵の通知がありません + 公開鍵の告知がありません ちょうど今会いました 1 分前に会いました %d 分前に会いました @@ -236,14 +236,14 @@ グループチャットを破棄する チャンネルを破棄する このグループチャットを破棄してもよろしいですか?\n\n警告: グループチャットはサーバーから完全に削除されます。 - このチャンネルを破棄してもよろしいですか?\n\n警告: チャンネルはサーバーから完全に削除されます。 + この公開談話室を破棄してもよろしいですか?\n\n警告: チャンネルはサーバーから完全に削除されます。 グループチャットを破棄できません チャンネルを破棄できません グループチャットの題を編集 トピック グループチャットに参加しています… 退出 - 連絡先があなたを連絡先リストに追加しました + 連絡先があなたを連絡先名簿に追加しました 戻りを追加 %s はここまで読みました %s はここまで読みました @@ -312,7 +312,7 @@ ウェブアドレス 2D バーコードをスキャン 2D バーコードを表示 - ブロックリストを表示 + ブロック一覧を表示 アカウントの詳細 確認 再度実行してください @@ -351,7 +351,7 @@ OMEMO フィンガープリントをクリップボードにコピー OMEMO 鍵を再生成 デバイスをクリア - OMEMO のアナウンスから他のすべてのデバイスをクリアしてもよろしいですか? お使いのデバイスが次回接続したとき、それらは自分自身を再アナウンスしますが、その間に送信されたメッセージを受信できない場合があります。 + OMEMO の告知から他のすべてのデバイスをクリアしてもよろしいですか? お使いのデバイスが次回接続したとき、それらは自分自身を再告知しますが、その間に送信されたメッセージを受信できない場合があります。 この連絡先で使用可能な鍵がありません。\nサーバーから新しい鍵を取得できませんでした。連絡先のサーバーに問題がある可能性があります。 この連絡先で利用可能な鍵はありません。\n双方に存在サブスクリプションあることを確認してください。 何か問題が発生しました。 @@ -383,11 +383,11 @@ %s の所属を変更できません グループチャットから追い出す チャンネルから追い出す - あなたは公開チャンネルから %s を削除しようとしています。その唯一の手段は、そのユーザーを永久に追い出すことです。 + あなたは公開談話室から %s を削除しようとしています。その唯一の手段は、そのユーザーを永久に追い出すことです。 今すぐ追い出す %s の役割を変更できません 非公開グループチャットの環境設定 - 公開チャンネルの環境設定 + 公開談話室の環境設定 非公開、メンバーのみ XMPPアドレスを誰でも見れるようにする チャンネルの調停をする @@ -426,7 +426,7 @@ 位置 会話が閉じられました 非公開グループチャットを退出しました - 公開チャンネルを退出しました + 公開談話室を退出しました システムの CA を信頼しない すべての証明書を手動で承認する必要があります 証明書を削除 @@ -502,7 +502,7 @@ %1$s に外部ストレージへのアクセス権を付与 %1$s にカメラへのアクセス権を付与 連絡先と同期 - %1$s はあなたのアドレス帳にアクセスして、あなたのXMPP 連絡先リストと照合する権限を求めています。\nこれにより、連絡先のフルネームとアバターが表示されます。\n\n%1$s は、あなたのサーバーに何かをアップロードすることなく、あなたのアドレス帳を読み込んでローカルに照合するだけです。 + %1$s はあなたのアドレス帳にアクセスして、あなたのXMPP 連絡先名簿と照合する権限を求めています。\nこれにより、連絡先のフルネームとアバターが表示されます。\n\n%1$s は、あなたのサーバーに何かをアップロードすることなく、あなたのアドレス帳を読み込んでローカルに照合するだけです。
Quicksyは、それらの電話番号のコピーを保存することはありません。\n\n詳細はプライバシーポリシーをご覧ください。

今、連絡先へのアクセス権限を付与するよう求められます。]]>
すべてのメッセージで通知 メンションされたときにのみ通知 @@ -595,7 +595,7 @@ バーコードに、この会話のフィンガープリントが含まれていません。 フィンガープリントを検証しました カメラを使用して連絡先のバーコードをスキャンします - キーが取得されるのをお待ちください + 鍵が取得されるのをお待ちください バーコードとして共有 XMPP URI として共有 HTTP リンクとして共有 @@ -640,9 +640,9 @@ ビデオを圧縮中 対応する会話が閉じられました。 連絡先をブロックしました - 知らない人からの通知 - 知らない人から受信したメッセージと通話を通知します。 - 知らない人からメッセージを受け取りました + 見知らぬ人からの通知 + 見知らぬ人から受信したメッセージと通話を通知します。 + 見知らぬ人からメッセージを受け取りました 見知らぬ人をブロック ドメイン全体をブロック 今すぐオンライン @@ -666,7 +666,7 @@ メッセージ 非公開メッセージを無効にしました 保護されたアプリ - 画面がオフになっている場合でも通知を受信し続けるには、保護されたアプリのリストに Conversations を追加する必要があります。 + 画面がオフになっている場合でも通知を受信し続けるには、保護されたアプリの一覧に Conversations を追加する必要があります。 未知の証明書を受け入れますか? サーバー証明書が既知の認証局によって署名されていません。 不一致なサーバー名を受け入れますか? @@ -681,9 +681,9 @@ ステータスメッセージを編集 暗号化をしない %1$s は %2$s に暗号化メッセージを送れません。連絡先が利用しているサーバーが古すぎるか、クライアントが OMEMO を扱えません。 - デバイスのリストを取得できません + デバイスの一覧を取得できません 暗号化の鍵を取得できません - ヒント: お互いが名簿に加えれば解決するでしょう。 + ヒント: お互いが連絡先名簿に加えれば解決するでしょう。 この会話でOMEMOの暗号化を無効にしてよろしいですか?\n\nこれにより、サーバー管理者がメッセージを読むことが可能になりますが、時代遅れのクライアントを使っている人と連絡をとるには、この方法しかないかもしれません。 今すぐ無効化 下書き: @@ -817,15 +817,15 @@ バックアップ&復元 XMPP アドレスを入力 グループチャットを作成 - 公開チャンネルに参加 + 公開談話室に参加 非公開グループチャットを作成 - 公開チャンネルを作成 + 公開談話室を作成 チャンネル名 XMPP アドレス チャンネルの名前をご記入ください XMPP アドレスをご記入ください これは XMPP アドレスです。名前をご記入ください。 - 公開チャンネルを作成中… + 公開談話室を作成中… このチャンネルは既に存在します 存在しているチャンネルに参加しています チャンネルの環境設定を保存できません @@ -838,7 +838,7 @@ 誰でも他の人を招待できます。 XMPP アドレスは管理者が見れます。 XMPP アドレスは誰でも見れます。 - この公開チャンネルには参加者がいません。連絡先を招待したり、共有ボタンを使って XMPP アドレスを配布できます。 + この公開談話室には参加者がいません。連絡先を招待したり、共有ボタンを使って XMPP アドレスを配布できます。 この非公開グループチャットには参加者がいません。 権限を管理 参加者を検索 @@ -862,7 +862,7 @@ このアカウントは既に設定されています このアカウントのパスワートを入力してください この操作を実行できません - 公開チャンネルに参加… + 公開談話室に参加… 共有アプリがこのファイルへのアクセスを許可していませんでした。 jabber.network diff --git a/src/main/res/values-ml/strings.xml b/src/main/res/values-ml/strings.xml index e8687aacc..695df4ed5 100644 --- a/src/main/res/values-ml/strings.xml +++ b/src/main/res/values-ml/strings.xml @@ -32,10 +32,13 @@ സംഭാഷണ ചരിത്രം മായ്ക്കൂ ഫയൽ ഇല്ലാതാക്കൂ ഉപകരണം തിരഞ്ഞെടുക്കൂ + സുരക്ഷിതമല്ലാത്ത സന്ദേശം അയയ്കൂ സന്ദേശം അയയ്ക്കൂ OpenKeychain + സ്ഥാപിക്കൂ കാത്തിരിക്കുന്നു... പൊതുവായവ + ഫയലുകൾ സ്വീകരിക്കൂ അറിയിപ്പ് LED അറിയിപ്പ് വിപുലമായ @@ -44,9 +47,11 @@ UI സ്വീകരിക്കുക നിങ്ങളുടെ അക്കൗണ്ട് + ഫോട്ടോ എടുക്കൂ ഫയൽ കണ്ടില്ല OTR OpenPGP + OMEMO അക്കൗണ്ട് ഇല്ലാതാക്കൂ നിങ്ങള്ക്ക് ഉറപ്പാണോ? XMPP വിലാസം From 331fd30699f5d29f616cf5f319f363b6628b858f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 9 Apr 2021 15:50:19 +0200 Subject: [PATCH 11/16] version bump to 2.9.10 + changelog --- CHANGELOG.md | 3 +++ build.gradle | 4 ++-- fastlane/metadata/android/en-US/changelogs/42012.txt | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/42012.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 89c0b6447..169997c55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +### Version 2.9.10 +* fix HTTP up/download for users that don’t trust system CAs + ### Version 2.9.9 * Various bug fixes around Tor support diff --git a/build.gradle b/build.gradle index 055c7db71..30512a6bc 100644 --- a/build.gradle +++ b/build.gradle @@ -93,8 +93,8 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 29 - versionCode 42010 - versionName "2.9.9" + versionCode 42012 + versionName "2.9.10" archivesBaseName += "-$versionName" applicationId "eu.siacs.conversations" resValue "string", "applicationId", applicationId diff --git a/fastlane/metadata/android/en-US/changelogs/42012.txt b/fastlane/metadata/android/en-US/changelogs/42012.txt new file mode 100644 index 000000000..967fae964 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/42012.txt @@ -0,0 +1 @@ +* fix HTTP up/download for users that don’t trust system CAs From ec22a39538cae8615fa8c591da73fe6daec5a657 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 13 Apr 2021 16:10:36 +0200 Subject: [PATCH 12/16] link to help.conversations.im from feature list in readme fixes #4053 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e2f22efc9..057850a0f 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ * End-to-end encryption with [OMEMO](http://conversations.im/omemo/) or [OpenPGP](http://openpgp.org/about/) * Send and receive images as well as other kind of files -* Encrypted audio and video calls (DTLS-SRTP) +* [Encrypted audio and video calls (DTLS-SRTP)](https://help.conversations.im) * Share your location * Send voice messages * Indication when your contact has read your message From 2760f07307caa6f7bad8bbdf825abbd0056334d7 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 18 Apr 2021 15:46:37 +0200 Subject: [PATCH 13/16] disable read timeout for HTTP Upload fixes #4057 --- .../http/HttpConnectionManager.java | 19 ++++++++++++------- .../http/HttpUploadConnection.java | 1 + 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java b/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java index 5d7f7f6c8..a16242be0 100644 --- a/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java +++ b/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java @@ -41,6 +41,8 @@ public class HttpConnectionManager extends AbstractConnectionManager { public static final Executor EXECUTOR = Executors.newFixedThreadPool(4); + private static final OkHttpClient OK_HTTP_CLIENT = new OkHttpClient(); + public HttpConnectionManager(XmppConnectionService service) { super(service); } @@ -50,8 +52,8 @@ public class HttpConnectionManager extends AbstractConnectionManager { try { localhost = InetAddress.getByAddress(new byte[]{127, 0, 0, 1}); } catch (final UnknownHostException e) { - throw new IllegalStateException(e); - } + throw new IllegalStateException(e); + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(localhost, 9050)); } else { @@ -65,7 +67,7 @@ public class HttpConnectionManager extends AbstractConnectionManager { public void createNewDownloadConnection(final Message message, boolean interactive) { synchronized (this.downloadConnections) { - for(HttpDownloadConnection connection : this.downloadConnections) { + for (HttpDownloadConnection connection : this.downloadConnections) { if (connection.getMessage() == message) { Log.d(Config.LOGTAG, message.getConversation().getAccount().getJid().asBareJid() + ": download already in progress"); return; @@ -104,12 +106,15 @@ public class HttpConnectionManager extends AbstractConnectionManager { } OkHttpClient buildHttpClient(final HttpUrl url, final Account account, boolean interactive) { + return buildHttpClient(url, account, 30, interactive); + } + + OkHttpClient buildHttpClient(final HttpUrl url, final Account account, int readTimeout, boolean interactive) { final String slotHostname = url.host(); final boolean onionSlot = slotHostname.endsWith(".onion"); - final OkHttpClient.Builder builder = new OkHttpClient.Builder(); - //builder.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.HEADERS)); + final OkHttpClient.Builder builder = OK_HTTP_CLIENT.newBuilder(); builder.writeTimeout(30, TimeUnit.SECONDS); - builder.readTimeout(30, TimeUnit.SECONDS); + builder.readTimeout(readTimeout, TimeUnit.SECONDS); setupTrustManager(builder, interactive); if (mXmppConnectionService.useTorToConnect() || account.isOnion() || onionSlot) { builder.proxy(HttpConnectionManager.getProxy()).build(); @@ -138,7 +143,7 @@ public class HttpConnectionManager extends AbstractConnectionManager { } public static InputStream open(final HttpUrl httpUrl, final boolean tor) throws IOException { - final OkHttpClient.Builder builder = new OkHttpClient.Builder(); + final OkHttpClient.Builder builder = OK_HTTP_CLIENT.newBuilder(); if (tor) { builder.proxy(HttpConnectionManager.getProxy()).build(); } diff --git a/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java b/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java index b18157fc7..6611aab2b 100644 --- a/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java +++ b/src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java @@ -155,6 +155,7 @@ public class HttpUploadConnection implements Transferable, AbstractConnectionMan final OkHttpClient client = mHttpConnectionManager.buildHttpClient( slot.put, message.getConversation().getAccount(), + 0, true ); final RequestBody requestBody = AbstractConnectionManager.requestBody(file, this); From ea2acc296375a28a21cb6f67948bf412d383e615 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 18 Apr 2021 15:47:28 +0200 Subject: [PATCH 14/16] use new hasInternet() API only on Android Q+ some VPN apps are broken on Android 7.1 (and below?) fixes #4058 --- .../siacs/conversations/services/XmppConnectionService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 950860a2a..b570330d0 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -1079,10 +1079,10 @@ public class XmppConnectionService extends Service { public boolean hasInternetConnection() { final ConnectivityManager cm = ContextCompat.getSystemService(this, ConnectivityManager.class); if (cm == null) { - return false; + return true; //if internet connection can not be checked it is probably best to just try } try { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { final Network activeNetwork = cm.getActiveNetwork(); final NetworkCapabilities capabilities = activeNetwork == null ? null : cm.getNetworkCapabilities(activeNetwork); return capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); From 8aed58840574958c39857907cf82bde5257c02cf Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 18 Apr 2021 16:09:36 +0200 Subject: [PATCH 15/16] ensure vibration future is canceled when scheduling a new one --- .../eu/siacs/conversations/services/NotificationService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java index a4eec7fb1..6ccd2b74f 100644 --- a/src/main/java/eu/siacs/conversations/services/NotificationService.java +++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java @@ -410,12 +410,16 @@ public class NotificationService { Log.d(Config.LOGTAG,"do not ring or vibrate because interruption filter has been set to "+currentInterruptionFilter); return; } + final ScheduledFuture currentVibrationFuture = this.vibrationFuture; this.vibrationFuture = SCHEDULED_EXECUTOR_SERVICE.scheduleAtFixedRate( new VibrationRunnable(), 0, 3, TimeUnit.SECONDS ); + if (currentVibrationFuture != null) { + currentVibrationFuture.cancel(true); + } final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mXmppConnectionService); final Resources resources = mXmppConnectionService.getResources(); final String ringtonePreference = preferences.getString("call_ringtone", resources.getString(R.string.incoming_call_ringtone)); From f9b292fd6ae34a87ac9e6c41cdfa2325e5af66e8 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 18 Apr 2021 18:46:05 +0200 Subject: [PATCH 16/16] version bump to 2.9.11 + changelog --- CHANGELOG.md | 4 ++++ build.gradle | 4 ++-- fastlane/metadata/android/en-US/changelogs/42013.txt | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/42013.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 169997c55..0c82b957e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### Version 2.9.11 + +* Fixed 'No Connectivity' issues on Android 7.1 + ### Version 2.9.10 * fix HTTP up/download for users that don’t trust system CAs diff --git a/build.gradle b/build.gradle index 30512a6bc..1ce027f3d 100644 --- a/build.gradle +++ b/build.gradle @@ -93,8 +93,8 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 29 - versionCode 42012 - versionName "2.9.10" + versionCode 42013 + versionName "2.9.11" archivesBaseName += "-$versionName" applicationId "eu.siacs.conversations" resValue "string", "applicationId", applicationId diff --git a/fastlane/metadata/android/en-US/changelogs/42013.txt b/fastlane/metadata/android/en-US/changelogs/42013.txt new file mode 100644 index 000000000..8749f0a0f --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/42013.txt @@ -0,0 +1 @@ +* Fixed 'No Connectivity' issues on Android 7.1