From a5bd53257090ca22ca081144f185a30601f945da Mon Sep 17 00:00:00 2001 From: aliveoutside <53598473+aliveoutside@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:16:21 +0300 Subject: [PATCH] use a singleton for okhttp so it will reduce OkHttpClients count --- .../vtosters/lite/di/singleton/VtOkHttpClient.java | 13 +++++++++++++ .../main/java/ru/vtosters/lite/foaf/FoafBase.java | 3 ++- .../java/ru/vtosters/lite/hooks/JsonInjectors.java | 3 ++- .../java/ru/vtosters/lite/hooks/PhotoViewer.java | 3 ++- .../ru/vtosters/lite/music/LastFMScrobbler.java | 3 ++- .../java/ru/vtosters/lite/music/M3UDownloader.java | 3 ++- .../music/catalog/inject/CatalogJsonInjector.java | 3 ++- .../java/ru/vtosters/lite/proxy/GithubList.java | 3 ++- .../vtosters/lite/translators/DeepLTranslator.java | 3 ++- .../vtosters/lite/translators/GoogleTranslator.java | 3 ++- .../vtosters/lite/translators/YandexTranslator.java | 3 ++- .../ru/vtosters/lite/ui/dialogs/ServerDialog.java | 3 ++- .../java/ru/vtosters/lite/utils/ImageUtils.java | 3 ++- .../main/java/ru/vtosters/lite/utils/OTAUtils.java | 3 ++- .../java/ru/vtosters/lite/utils/ProfileHider.java | 3 ++- .../ru/vtosters/lite/utils/VTVerifications.java | 3 ++- 16 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/ru/vtosters/lite/di/singleton/VtOkHttpClient.java diff --git a/app/src/main/java/ru/vtosters/lite/di/singleton/VtOkHttpClient.java b/app/src/main/java/ru/vtosters/lite/di/singleton/VtOkHttpClient.java new file mode 100644 index 000000000..cff9f0a72 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/di/singleton/VtOkHttpClient.java @@ -0,0 +1,13 @@ +package ru.vtosters.lite.di.singleton; + +import okhttp3.OkHttpClient; + +public class VtOkHttpClient extends OkHttpClient { + private static class LazyHolder { + private static final VtOkHttpClient instance = new VtOkHttpClient(); + } + + public static VtOkHttpClient getInstance() { + return LazyHolder.instance; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java b/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java index e3e228148..79b39f26e 100644 --- a/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java +++ b/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java @@ -31,6 +31,7 @@ import java.util.regex.Pattern; import okhttp3.Headers; import okhttp3.OkHttpClient; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; import ru.vtosters.lite.net.Request; import ru.vtosters.lite.utils.LifecycleUtils; @@ -38,7 +39,7 @@ public class FoafBase { private static final Pattern FOAF_REGEX = Pattern.compile(" SCROBBLED_UUIDS = new ArrayList<>(); public static void grabMusicTrack(MusicTrack musictrack) { diff --git a/app/src/main/java/ru/vtosters/lite/music/M3UDownloader.java b/app/src/main/java/ru/vtosters/lite/music/M3UDownloader.java index fd4d9a030..2a1fe5f09 100644 --- a/app/src/main/java/ru/vtosters/lite/music/M3UDownloader.java +++ b/app/src/main/java/ru/vtosters/lite/music/M3UDownloader.java @@ -17,6 +17,7 @@ import javax.crypto.NoSuchPaddingException; import java8.util.concurrent.CompletableFuture; import okhttp3.OkHttpClient; import okhttp3.Request; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; import ru.vtosters.lite.music.converter.ts.FFMpeg; import ru.vtosters.lite.music.converter.ts.TSMerger; import ru.vtosters.lite.music.downloader.ThumbnailDownloader; @@ -25,7 +26,7 @@ import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.IOUtils; public class M3UDownloader implements ITrackDownloader { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); public static M3UDownloader getInstance() { return Holder.INSTANCE; diff --git a/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java b/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java index 294208a07..a905a8b45 100644 --- a/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java +++ b/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java @@ -26,12 +26,13 @@ import bruhcollective.itaysonlab.libvkx.client.LibVKXClient; import okhttp3.Headers; import okhttp3.OkHttpClient; import okhttp3.Request; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; import ru.vtosters.lite.music.cache.CacheDatabaseDelegate; import ru.vtosters.lite.utils.AccountManagerUtils; import ru.vtosters.lite.utils.AndroidUtils; public class CatalogJsonInjector { - private static final OkHttpClient mClient = new OkHttpClient(); + private static final OkHttpClient mClient = VtOkHttpClient.getInstance(); public static JSONObject music(JSONObject json) throws JSONException { var catalog = json.optJSONObject("catalog"); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java b/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java index 8cb972556..a8e3f6eda 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java @@ -8,9 +8,10 @@ import java.util.Arrays; import okhttp3.OkHttpClient; import okhttp3.Request; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class GithubList { - private static final OkHttpClient mClient = new OkHttpClient(); + private static final OkHttpClient mClient = VtOkHttpClient.getInstance(); public static ArrayList getProxy(String url, String proxyname) throws IOException { Request link = new Request.a() diff --git a/app/src/main/java/ru/vtosters/lite/translators/DeepLTranslator.java b/app/src/main/java/ru/vtosters/lite/translators/DeepLTranslator.java index d9c0e2262..76e086704 100644 --- a/app/src/main/java/ru/vtosters/lite/translators/DeepLTranslator.java +++ b/app/src/main/java/ru/vtosters/lite/translators/DeepLTranslator.java @@ -16,10 +16,11 @@ import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class DeepLTranslator extends BaseTranslator { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); private static final Pattern pattern = Pattern.compile("[i]"); private static final String REQUEST_BODY_FORMAT = "{\n" + " \"method\": \"LMT_handle_texts\",\n" + diff --git a/app/src/main/java/ru/vtosters/lite/translators/GoogleTranslator.java b/app/src/main/java/ru/vtosters/lite/translators/GoogleTranslator.java index fec710ddf..d15b71342 100644 --- a/app/src/main/java/ru/vtosters/lite/translators/GoogleTranslator.java +++ b/app/src/main/java/ru/vtosters/lite/translators/GoogleTranslator.java @@ -10,10 +10,11 @@ import java.net.URLEncoder; import okhttp3.OkHttpClient; import okhttp3.Request; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class GoogleTranslator extends BaseTranslator { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); private static final String[] devices = new String[]{ "Linux; U; Android 10; Pixel 4", "Linux; U; Android 10; Pixel 4 XL", diff --git a/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java b/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java index 7192727c0..2a0ab534a 100644 --- a/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java +++ b/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java @@ -13,10 +13,11 @@ import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class YandexTranslator extends BaseTranslator { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); private static final String uuid = UUID.randomUUID().toString().replace("-", ""); private static YandexTranslator instance; diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java index 7f47e9d92..ab11b7545 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java @@ -22,10 +22,11 @@ import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; import ru.vtosters.lite.utils.LifecycleUtils; public class ServerDialog { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); public static Boolean showAlert; private static String title; private static String message; diff --git a/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java index fe9d39056..52037fe4c 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java @@ -25,10 +25,11 @@ import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class ImageUtils { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); public static Bitmap bmp = null; diff --git a/app/src/main/java/ru/vtosters/lite/utils/OTAUtils.java b/app/src/main/java/ru/vtosters/lite/utils/OTAUtils.java index 46572ff9e..8405cb487 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/OTAUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/OTAUtils.java @@ -12,12 +12,13 @@ import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class OTAUtils { private static final String LATEST_RELEASE_URL = "https://api.github.com/repositories/473685743/releases/latest"; private static final String LATEST_RELEASE_COMMIT_URL = "https://api.github.com/repositories/473685743/git/ref/tags/%s"; - private final OkHttpClient mClient = new OkHttpClient(); + private final OkHttpClient mClient = VtOkHttpClient.getInstance(); private final OTAListener mListener; private JSONObject mReleaseJson; private JSONObject mCommitJson; diff --git a/app/src/main/java/ru/vtosters/lite/utils/ProfileHider.java b/app/src/main/java/ru/vtosters/lite/utils/ProfileHider.java index 42c72c3e8..b2525e577 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/ProfileHider.java +++ b/app/src/main/java/ru/vtosters/lite/utils/ProfileHider.java @@ -20,10 +20,11 @@ import java.util.HashMap; import okhttp3.OkHttpClient; import okhttp3.Request; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; // Jesus cries public class ProfileHider { - private static final OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = VtOkHttpClient.getInstance(); public static void injectMap(HashMap hashMap) { if (VTVerifications.isServiceAccount(getUserId())) { diff --git a/app/src/main/java/ru/vtosters/lite/utils/VTVerifications.java b/app/src/main/java/ru/vtosters/lite/utils/VTVerifications.java index f3176a014..79970fbb1 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/VTVerifications.java +++ b/app/src/main/java/ru/vtosters/lite/utils/VTVerifications.java @@ -23,13 +23,14 @@ import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +import ru.vtosters.lite.di.singleton.VtOkHttpClient; public class VTVerifications { public static final List sVerifications = new ArrayList<>(); public static final List sPrometheuses = new ArrayList<>(); public static final List sDevelopers = new ArrayList<>(); public static final List sServiceAccounts = new ArrayList<>(); - private static final OkHttpClient sClient = new OkHttpClient(); + private static final OkHttpClient sClient = VtOkHttpClient.getInstance(); public static void load(Context context) { var prefs = context.getSharedPreferences("vt_another_data", 0);