From 8f4c146c5561e1e319747910bf864fb47a6a7a6e Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 1 Mar 2023 11:00:52 -0500 Subject: [PATCH] Allow tor in sticker pack download --- .../java/com/cheogram/android/DownloadDefaultStickers.java | 6 +++++- .../eu/siacs/conversations/http/HttpConnectionManager.java | 6 +----- .../eu/siacs/conversations/ui/ConversationsActivity.java | 1 + .../java/eu/siacs/conversations/ui/SettingsActivity.java | 1 + .../java/eu/siacs/conversations/ui/UriHandlerActivity.java | 2 ++ 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/cheogram/java/com/cheogram/android/DownloadDefaultStickers.java b/src/cheogram/java/com/cheogram/android/DownloadDefaultStickers.java index e230636a311d15fb08c8cff5231e2874bc42fc1d..e32d3c8055a6e6de835fcfde20b9e7e0dc97222e 100644 --- a/src/cheogram/java/com/cheogram/android/DownloadDefaultStickers.java +++ b/src/cheogram/java/com/cheogram/android/DownloadDefaultStickers.java @@ -42,6 +42,7 @@ import eu.siacs.conversations.crypto.axolotl.SQLiteAxolotlStore; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; +import eu.siacs.conversations.http.HttpConnectionManager; import eu.siacs.conversations.persistance.DatabaseBackend; import eu.siacs.conversations.persistance.FileBackend; import eu.siacs.conversations.utils.Compatibility; @@ -55,7 +56,7 @@ public class DownloadDefaultStickers extends Service { private DatabaseBackend mDatabaseBackend; private NotificationManager notificationManager; private File mStickerDir; - private OkHttpClient http = new OkHttpClient(); + private OkHttpClient http = null; private HashSet pendingPacks = new HashSet(); @Override @@ -67,6 +68,9 @@ public class DownloadDefaultStickers extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { + if (http == null) { + http = HttpConnectionManager.newBuilder(intent.getBooleanExtra("tor", getResources().getBoolean(R.bool.use_tor))).build(); + } synchronized(pendingPacks) { pendingPacks.add(intent.getData() == null ? Uri.parse("https://stickers.cheogram.com/index.json") : intent.getData()); } diff --git a/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java b/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java index 3a4a7f64af109accfb8371bdd0caa8152ce1f42f..912728f65c6d2495dfd6e839fe2c939250fec86c 100644 --- a/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java +++ b/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java @@ -131,13 +131,9 @@ public class HttpConnectionManager extends AbstractConnectionManager { 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 = OK_HTTP_CLIENT.newBuilder(); - builder.writeTimeout(30, TimeUnit.SECONDS); + final OkHttpClient.Builder builder = newBuilder(mXmppConnectionService.useTorToConnect() || account.isOnion() || onionSlot); builder.readTimeout(readTimeout, TimeUnit.SECONDS); setupTrustManager(builder, interactive); - if (mXmppConnectionService.useTorToConnect() || account.isOnion() || onionSlot) { - builder.proxy(HttpConnectionManager.getProxy()).build(); - } return builder.build(); } diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java index fe893ec81141ecc6f080261f2301929398a22f78..5af53409fb5fbfba05b4e142f59fb3c9a92ef2f4 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java @@ -385,6 +385,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio private void downloadStickers() { Intent intent = new Intent(this, DownloadDefaultStickers.class); + intent.putExtra("tor", xmppConnectionService.useTorToConnect()); ContextCompat.startForegroundService(this, intent); displayToast("Sticker download started"); showDialogsIfMainIsOverview(); diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java index 4e44d167616e3e688dd0537b279da73fed2f30fd..5c133604e4bbf05924651f09320e9d99b552e050 100644 --- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java @@ -639,6 +639,7 @@ public class SettingsActivity extends XmppActivity implements OnSharedPreference private void downloadStickers() { Intent intent = new Intent(this, DownloadDefaultStickers.class); + intent.putExtra("tor", xmppConnectionService.useTorToConnect()); ContextCompat.startForegroundService(this, intent); displayToast("Sticker download started"); } diff --git a/src/main/java/eu/siacs/conversations/ui/UriHandlerActivity.java b/src/main/java/eu/siacs/conversations/ui/UriHandlerActivity.java index 5e5dd5f9f8a1c0f1285388b80ab04c918b6bfc40..76db02b575265559f317598f8ad67f42c5e18932 100644 --- a/src/main/java/eu/siacs/conversations/ui/UriHandlerActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/UriHandlerActivity.java @@ -7,6 +7,7 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.preference.PreferenceManager; import android.util.Log; import android.view.View; import android.widget.Toast; @@ -127,6 +128,7 @@ public class UriHandlerActivity extends AppCompatActivity { private void downloadStickers() { Intent intent = new Intent(this, DownloadDefaultStickers.class); intent.setData(stickers); + intent.putExtra("tor", PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("use_tor", getResources().getBoolean(R.bool.use_tor))); ContextCompat.startForegroundService(this, intent); Toast.makeText(this, "Sticker download started", Toast.LENGTH_SHORT).show(); finish();