From a7f0f753fd7e3c789150505727b0f9e037ac76ba Mon Sep 17 00:00:00 2001 From: adbenitez Date: Sat, 5 Oct 2024 16:16:32 +0200 Subject: [PATCH 1/3] allow to set proxies from QRs --- .../org/thoughtcrime/securesms/qr/QrCodeHandler.java | 12 ++++++++++++ src/main/res/values/strings.xml | 1 + 2 files changed, 13 insertions(+) diff --git a/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java b/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java index 34a0361bc..94a929fbe 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java @@ -89,6 +89,18 @@ public class QrCodeHandler { BackupTransferActivity.appendSSID(activity, alertDialog.findViewById(android.R.id.message)); return; + case DcContext.DC_QR_PROXY: + builder.setTitle(R.string.proxy_use_proxy); + builder.setMessage(activity.getString(R.string.proxy_use_proxy_confirm, qrParsed.getText1())); + builder.setPositiveButton(R.string.proxy_use_proxy, (dlg, btn) -> { + dcContext.setConfigFromQr(rawString); + dcContext.stopIo(); + dcContext.startIo(); + }); + builder.setNegativeButton(R.string.cancel, null); + builder.setCancelable(false); + break; + case DcContext.DC_QR_WEBRTC: builder.setMessage(activity.getString(R.string.videochat_instance_from_qr, qrParsed.getText1())); builder.setPositiveButton(R.string.ok, (dialog, which) -> { diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 4b8e7042e..e01148928 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -615,6 +615,7 @@ Saved Proxies Delete Proxy Are you sure you want to delete \"%1$s\"? + Do you want to use \"%1$s\" proxy? SOCKS5 From 30580366fda4f426fd93d87771e2da3f9e7819ed Mon Sep 17 00:00:00 2001 From: adbenitez Date: Sat, 5 Oct 2024 18:11:26 +0200 Subject: [PATCH 2/3] add restartIo() to DcContext --- src/main/java/com/b44t/messenger/DcContext.java | 5 +++++ .../securesms/proxy/ProxySettingsActivity.java | 14 ++++---------- .../thoughtcrime/securesms/qr/QrCodeHandler.java | 3 +-- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/b44t/messenger/DcContext.java b/src/main/java/com/b44t/messenger/DcContext.java index fd537691f..1cbb6c65f 100644 --- a/src/main/java/com/b44t/messenger/DcContext.java +++ b/src/main/java/com/b44t/messenger/DcContext.java @@ -278,6 +278,11 @@ public class DcContext { return oauth2url.startsWith("https://accounts.google.com/"); } + public void restartIo() { + stopIo(); + startIo(); + } + /** * @return true if at least one chat has location streaming enabled */ diff --git a/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java b/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java index 3dcb023e3..60310f3e0 100644 --- a/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java @@ -58,7 +58,7 @@ public class ProxySettingsActivity extends BaseActionBarActivity showAddProxyDialog(); } else { DcHelper.set(this, CONFIG_PROXY_ENABLED, proxySwitch.isChecked()? "1" : "0"); - restartIO(); + DcHelper.getContext(this).restartIo(); } }); @@ -96,7 +96,7 @@ public class ProxySettingsActivity extends BaseActionBarActivity @Override public void onItemClick(String proxyUrl) { if (DcHelper.getContext(this).setConfigFromQr(proxyUrl)) { - restartIO(); + DcHelper.getContext(this).restartIo(); adapter.setSelectedProxy(proxyUrl); proxySwitch.setChecked(DcHelper.getInt(this, CONFIG_PROXY_ENABLED) == 1); } else { @@ -137,7 +137,7 @@ public class ProxySettingsActivity extends BaseActionBarActivity } String proxyUrls = String.join("\n", proxies); DcHelper.set(this, CONFIG_PROXY_URL, proxyUrls); - restartIO(); + DcHelper.getContext(this).restartIo(); adapter.changeData(proxyUrls); } @@ -156,7 +156,7 @@ public class ProxySettingsActivity extends BaseActionBarActivity final DcLot qrParsed = dcContext.checkQr(newProxy); if (qrParsed.getState() == DcContext.DC_QR_PROXY) { dcContext.setConfigFromQr(newProxy); - restartIO(); + DcHelper.getContext(this).restartIo(); adapter.changeData(DcHelper.get(this, CONFIG_PROXY_URL)); } else { Toast.makeText(this, R.string.proxy_invalid, Toast.LENGTH_LONG).show(); @@ -173,12 +173,6 @@ public class ProxySettingsActivity extends BaseActionBarActivity .show(); } - private void restartIO() { - DcContext dcContext = DcHelper.getContext(this); - dcContext.stopIo(); - dcContext.startIo(); - } - @Override public void handleEvent(@NonNull DcEvent event) { if (event.getId() == DcContext.DC_EVENT_CONNECTIVITY_CHANGED) { diff --git a/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java b/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java index 94a929fbe..98a344986 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java @@ -94,8 +94,7 @@ public class QrCodeHandler { builder.setMessage(activity.getString(R.string.proxy_use_proxy_confirm, qrParsed.getText1())); builder.setPositiveButton(R.string.proxy_use_proxy, (dlg, btn) -> { dcContext.setConfigFromQr(rawString); - dcContext.stopIo(); - dcContext.startIo(); + dcContext.restartIo(); }); builder.setNegativeButton(R.string.cancel, null); builder.setCancelable(false); From 9bbee2db103262b0edafdd5c27fab19c9a74dc18 Mon Sep 17 00:00:00 2001 From: adb Date: Sat, 5 Oct 2024 18:12:13 +0200 Subject: [PATCH 3/3] Update src/main/res/values/strings.xml Co-authored-by: bjoern --- src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index e01148928..e7af8b4e5 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -615,7 +615,7 @@ Saved Proxies Delete Proxy Are you sure you want to delete \"%1$s\"? - Do you want to use \"%1$s\" proxy? + Do you want to use proxy \"%1$s\"? SOCKS5