From e9e6ef05a9f74fdb7f22a4a17fbd8afbbce974ec Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 20:32:43 +0300 Subject: [PATCH 01/30] [+] add proxy settings strings --- app/src/main/res/values/strings.xml | 18 +++++++++++ app/src/main/res/xml/main_settings.xml | 7 ++++ app/src/main/res/xml/proxy_settings.xml | 43 +++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 app/src/main/res/xml/proxy_settings.xml diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b7a6639a1..cf4f0de06 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -859,6 +859,24 @@ Show more Show less The settings in the export being imported use a vulnerable format that was deprecated since NewPipe 0.27.0. Make sure the export being imported is from a trusted source, and prefer using only exports obtained from NewPipe 0.27.0 or newer in the future. Support for importing settings in this vulnerable format will soon be removed completely, and then old versions of NewPipe will not be able to import settings of exports from new versions anymore. + + Proxy Settings + Enable Proxy + Turn on or off the use of a proxy server for connections. + proxy_enabled + + Proxy Address + Enter the address of the proxy server. + proxy_address + + Proxy Port + Enter the port number of the proxy server. + proxy_port + + Proxy Help + Learn more about how to configure a proxy server. + https://example.com/proxy-help + SponsorBlock Sponsor diff --git a/app/src/main/res/xml/main_settings.xml b/app/src/main/res/xml/main_settings.xml index 8235d5b64..c48647586 100644 --- a/app/src/main/res/xml/main_settings.xml +++ b/app/src/main/res/xml/main_settings.xml @@ -71,4 +71,11 @@ android:key="@string/debug_pref_screen_key" android:title="@string/settings_category_debug_title" app:iconSpaceReserved="false" /> + + + diff --git a/app/src/main/res/xml/proxy_settings.xml b/app/src/main/res/xml/proxy_settings.xml new file mode 100644 index 000000000..e2b49e08e --- /dev/null +++ b/app/src/main/res/xml/proxy_settings.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + From 4b7f7ac0331ccd318adeb7f0705a1e964a019fb8 Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 20:32:59 +0300 Subject: [PATCH 02/30] [+] add proxy settings --- .../settings/ProxySettingsFragment.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java diff --git a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java new file mode 100644 index 000000000..311581419 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java @@ -0,0 +1,79 @@ +package org.schabi.newpipe.settings; + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.Log; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.PreferenceManager; + +import org.schabi.newpipe.App; +import org.schabi.newpipe.R; + +public class ProxySettingsFragment extends PreferenceFragmentCompat { + + @Override + public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) { + // Подключаем preferences файл для Proxy + addPreferencesFromResource(R.xml.proxy_settings); + + // Получаем SharedPreferences + final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences( + App.getApp() + ); + + // Настройка включения прокси + final SwitchPreferenceCompat proxyEnablePref = findPreference( + App.getApp().getString(R.string.proxy_enabled_key) + ); + assert proxyEnablePref != null; + + proxyEnablePref.setOnPreferenceChangeListener((preference, newValue) -> { + final boolean isEnabled = (Boolean) newValue; + Log.d("ProxySettings", "Read proxy_enabled_key: " + isEnabled); + + // Сохраняем новое значение proxy_enabled_key + sharedPreferences.edit().putBoolean( + App.getApp().getString(R.string.proxy_enabled_key), + isEnabled).apply(); + + Log.d("ProxySettings", + "Saved proxy_enabled_key: " + sharedPreferences.getBoolean( + App.getApp().getString(R.string.proxy_enabled_key), false)); + + return true; + }); + + // Настройка адреса прокси + final Preference proxyAddressPref = findPreference( + App.getApp().getString(R.string.proxy_address_key) + ); + assert proxyAddressPref != null; + + proxyAddressPref.setOnPreferenceChangeListener((preference, newValue) -> { + Log.d("ProxySettings", "Read proxy_address_key: " + newValue); + // Сохраняем новое значение IP-адреса + sharedPreferences.edit().putString( + App.getApp().getString(R.string.proxy_address_key), + newValue.toString()).apply(); + return true; + }); + + // Настройка порта прокси + final Preference proxyPortPref = findPreference( + App.getApp().getString(R.string.proxy_port_key) + ); + assert proxyPortPref != null; + + proxyPortPref.setOnPreferenceChangeListener((preference, newValue) -> { + Log.d("ProxySettings", "Read proxy_port_key: " + newValue); + // Сохраняем новое значение порта + sharedPreferences.edit().putString( + App.getApp().getString(R.string.proxy_port_key), + newValue.toString()).apply(); + return true; + }); + } +} + From 56d8935a1d7287bacaebfbf1d9617efe4b2683ac Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 20:33:08 +0300 Subject: [PATCH 03/30] [u] add socks proxy func for video --- .../datasource/YoutubeHttpDataSource.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java b/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java index cf1f03b45..20efe0488 100644 --- a/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java +++ b/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java @@ -25,6 +25,10 @@ import android.net.Uri; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import android.content.SharedPreferences; + +import androidx.preference.PreferenceManager; + import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.PlaybackException; import com.google.android.exoplayer2.upstream.BaseDataSource; @@ -44,6 +48,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import com.google.common.net.HttpHeaders; +import org.schabi.newpipe.App; +import org.schabi.newpipe.R; import org.schabi.newpipe.DownloaderImpl; import java.io.IOException; @@ -61,6 +67,9 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.zip.GZIPInputStream; +import java.net.Proxy; +import java.net.InetSocketAddress; + /** * An {@link HttpDataSource} that uses Android's {@link HttpURLConnection}, based on @@ -713,7 +722,32 @@ public final class YoutubeHttpDataSource extends BaseDataSource implements HttpD * @return an {@link HttpURLConnection} created with the {@code url} */ private HttpURLConnection openConnection(@NonNull final URL url) throws IOException { - return (HttpURLConnection) url.openConnection(); + final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences( + App.getApp() + ); + final boolean isProxyEnabled = sharedPreferences.getBoolean( + App.getApp().getString(R.string.proxy_enabled_key), false); + android.util.Log.d("YoutubeHttpDataSource_ProxySettings", + "Read proxy_enabled_key: " + isProxyEnabled); + if (isProxyEnabled) { + android.util.Log.d("YoutubeHttpDataSource_ProxySettings", + "Update called. proxy_enabled_key on: " + isProxyEnabled); + final String proxyAddress = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_address_key), "192.168.1.1"); + final String proxyPortStr = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_port_key), "1080"); + final int proxyPort = Integer.parseInt(proxyPortStr); + android.util.Log.d("YoutubeHttpDataSource_ProxySettings", + "Proxy enabled with address: " + proxyAddress + " and port: " + proxyPort); + final Proxy proxy = new Proxy(Proxy.Type.SOCKS, + new InetSocketAddress(proxyAddress, proxyPort)); + connection = (HttpURLConnection) url.openConnection(proxy); + } else { + android.util.Log.d("YoutubeHttpDataSource_ProxySettings", + "Update called. proxy_enabled_key off: " + isProxyEnabled); + connection = (HttpURLConnection) url.openConnection(); + } + return connection; } /** From 85b21b608513ad9fb9f1a146e04bc9445fcc1688 Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 20:33:23 +0300 Subject: [PATCH 04/30] [u] add socks proxy func for photo --- .../newpipe/util/image/PicassoHelper.java | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java b/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java index 5a45ca933..3fb5111e7 100644 --- a/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java @@ -6,9 +6,12 @@ import static org.schabi.newpipe.util.image.ImageStrategy.choosePreferredImage; import android.annotation.SuppressLint; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.Bitmap; import android.util.Log; +import androidx.preference.PreferenceManager; + import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -28,6 +31,8 @@ import java.io.File; import java.io.IOException; import java.util.List; import java.util.concurrent.TimeUnit; +import java.net.Proxy; +import java.net.InetSocketAddress; import okhttp3.OkHttpClient; @@ -45,17 +50,39 @@ public final class PicassoHelper { // suppress because terminate() is called in App.onTerminate(), preventing leaks @SuppressLint("StaticFieldLeak") private static Picasso picassoInstance; + private static Proxy proxySet; public static void init(final Context context) { picassoCache = new LruCache(10 * 1024 * 1024); + final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences( + context + ); + final boolean isProxyEnabled = sharedPreferences.getBoolean( + context.getString(R.string.proxy_enabled_key), false); + Log.d("PicassoHelper_ProxySettings", "Read proxy_enabled_key: " + isProxyEnabled); + if (isProxyEnabled) { + Log.d("PicassoHelper_ProxySettings", + "Update called. proxy_enabled_key on: " + isProxyEnabled); + final String proxyAddress = sharedPreferences.getString( + context.getString(R.string.proxy_address_key), "192.168.1.1"); + final String proxyPortStr = sharedPreferences.getString( + context.getString(R.string.proxy_port_key), "1080"); + final int proxyPort = Integer.parseInt(proxyPortStr); + Log.d("PicassoHelper_ProxySettings", + "Proxy enabled with address: " + proxyAddress + " and port: " + proxyPort); + proxySet = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(proxyAddress, proxyPort)); + } else { + Log.d("PicassoHelper_ProxySettings", + "Update called. proxy_enabled_key off: " + isProxyEnabled); + } picassoDownloaderClient = new OkHttpClient.Builder() + .proxy(proxySet) .cache(new okhttp3.Cache(new File(context.getExternalCacheDir(), "picasso"), 50L * 1024L * 1024L)) // this should already be the default timeout in OkHttp3, but just to be sure... .callTimeout(15, TimeUnit.SECONDS) .build(); - picassoInstance = new Picasso.Builder(context) .memoryCache(picassoCache) // memory cache .downloader(new OkHttp3Downloader(picassoDownloaderClient)) // disk cache From d39986ce95612eb281033aec12ffac526caeef6f Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 20:34:27 +0300 Subject: [PATCH 05/30] [u] add socks proxy func for text content --- .../org/schabi/newpipe/DownloaderImpl.java | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 9ddbe96df..8048a9f1d 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -1,6 +1,8 @@ package org.schabi.newpipe; import android.content.Context; +import android.content.SharedPreferences; +import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -22,6 +24,8 @@ import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; +import java.net.Proxy; +import java.net.InetSocketAddress; import okhttp3.OkHttpClient; import okhttp3.RequestBody; @@ -40,11 +44,39 @@ public final class DownloaderImpl extends Downloader { private final OkHttpClient client; private DownloaderImpl(final OkHttpClient.Builder builder) { - this.client = builder - .readTimeout(30, TimeUnit.SECONDS) -// .cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"), -// 16 * 1024 * 1024)) - .build(); + final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences( + App.getApp() + ); + final boolean isProxyEnabled = sharedPreferences.getBoolean( + App.getApp().getString(R.string.proxy_enabled_key), false); + Log.d("DownloaderImpl_ProxySettings", "Read proxy_enabled_key: " + isProxyEnabled); + if (isProxyEnabled) { + Log.d("DownloaderImpl_ProxySettings", + "Update called. proxy_enabled_key on: " + isProxyEnabled); + final String proxyAddress = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_address_key), "192.168.1.1"); + final String proxyPortStr = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_port_key), "1080"); + final int proxyPort = Integer.parseInt(proxyPortStr); + Log.d("DownloaderImpl_ProxySettings", + "Proxy enabled with address: " + proxyAddress + " and port: " + proxyPort); + final Proxy proxy = new Proxy(Proxy.Type.SOCKS, + new InetSocketAddress(proxyAddress, proxyPort)); + this.client = builder + .proxy(proxy) + .readTimeout(30, TimeUnit.SECONDS) + // .cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"), + // 16 * 1024 * 1024)) + .build(); + } else { + Log.d("DownloaderImpl_ProxySettings", + "Update called. proxy_enabled_key off: " + isProxyEnabled); + this.client = builder + .readTimeout(30, TimeUnit.SECONDS) + // .cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"), + // 16 * 1024 * 1024)) + .build(); + } this.mCookies = new HashMap<>(); } From cd3d16ccb4dcfab7705b83ec71081419bfa85e18 Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 20:59:19 +0300 Subject: [PATCH 06/30] [u] update link checkout --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6dda6a9a2..368716d3d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout branch "${{ github.ref_name }}" run: | - git clone --no-checkout https://github.com/polymorphicshade/Tubular.git . + git clone --no-checkout https://github.com/grisha765/Tubular-Proxy.git . git config core.symlinks false git checkout --progress --force ${{ github.ref_name }} From 4c9824645e488aeff788db2ef408b3e5e2f6951f Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 21:01:09 +0300 Subject: [PATCH 07/30] [u] update link checkout --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0ac5e7cb6..09560652b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: steps: - name: Checkout branch "${{ github.ref_name }}" run: | - git clone --no-checkout https://github.com/polymorphicshade/Tubular.git . + git clone --no-checkout https://github.com/grisha765/Tubular-Proxy.git . git config core.symlinks false git checkout --progress --force ${{ github.ref_name }} From 961d31aa5bb1f57e9a91307161116aeb43ee3590 Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 21:25:46 +0300 Subject: [PATCH 08/30] [f] set release grisha765/Tubular-Proxy --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 368716d3d..dbc160d2c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,8 +51,8 @@ jobs: run: | version=$( grep "versionName" app/build.gradle | awk -F'"' '{print $2}' ) gh auth login --with-token <<<"${{ secrets.GITHUB_TOKEN }}" - gh release create "v${version}" --title "${{ inputs.title }}" --notes-file ".github/changelog.md" --prerelease=${{ inputs.is_pre_release }} --repo polymorphicshade/Tubular - gh release upload "v${version}" app/build/outputs/apk/release/*.apk --repo polymorphicshade/Tubular + gh release create "v${version}" --title "${{ inputs.title }}" --notes-file ".github/changelog.md" --prerelease=${{ inputs.is_pre_release }} --repo grisha765/Tubular-Proxy + gh release upload "v${version}" app/build/outputs/apk/release/*.apk --repo grisha765/Tubular-Proxy - name: Archive reports for job uses: actions/upload-artifact@v4 From eb90df805447d1ce6b18b902fc72a85bed99d9a2 Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 23:02:37 +0300 Subject: [PATCH 09/30] [r] update name and id --- app/build.gradle | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 87f964907..529403161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,12 +16,12 @@ android { namespace 'org.schabi.newpipe' defaultConfig { - applicationId "org.polymorphicshade.tubular" - resValue "string", "app_name", "Tubular" + applicationId "org.polymorphicshade.tubular.proxy" + resValue "string", "app_name", "Tubular Proxy" minSdk 21 targetSdk 33 versionCode 999 - versionName "0.27.2" + versionName "0.27.2-P1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -42,19 +42,19 @@ android { if (normalizedWorkingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") { // default values when branch name could not be determined or is master or dev applicationIdSuffix ".debug" - resValue "string", "app_name", "Tubular Debug" + resValue "string", "app_name", "Tubular Proxy Debug" } else { applicationIdSuffix ".debug." + normalizedWorkingBranch - resValue "string", "app_name", "Tubular " + workingBranch - archivesBaseName = 'Tubular_' + normalizedWorkingBranch + resValue "string", "app_name", "Tubular Proxy " + workingBranch + archivesBaseName = 'Tubular_Proxy_' + normalizedWorkingBranch } } release { if (System.properties.containsKey('packageSuffix')) { applicationIdSuffix System.getProperty('packageSuffix') - resValue "string", "app_name", "Tubular " + System.getProperty('packageSuffix') - archivesBaseName = 'Tubular_' + System.getProperty('packageSuffix') + resValue "string", "app_name", "Tubular Proxy " + System.getProperty('packageSuffix') + archivesBaseName = 'Tubular_Proxy_' + System.getProperty('packageSuffix') } minifyEnabled true shrinkResources false // disabled to fix F-Droid's reproducible build From 668d23ebc404d007cfa0b31dfeff4aaa0aec246b Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 16 Sep 2024 23:04:33 +0300 Subject: [PATCH 10/30] [r] update apk name --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dbc160d2c..a1da411b2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,7 +45,7 @@ jobs: version=$( grep "versionName" app/build.gradle | awk -F'"' '{print $2}' ) echo "${KEYSTORE}" | base64 -d > apksign.keystore ${ANDROID_HOME}/build-tools/34.0.0/apksigner sign --ks apksign.keystore --ks-pass env:SIGNING_STORE_PASSWORD "app/build/outputs/apk/release/app-release-unsigned.apk" - mv app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/"tubular_v${version}.apk" + mv app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/"tubular_proxy_v${version}.apk" - name: Create release and upload run: | From f61ae5dc1c7088d51e7127ba50f1b5001fee293d Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:37:57 +0300 Subject: [PATCH 11/30] [-] removed Proxy Help line --- app/src/main/res/values/strings.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cf4f0de06..ef797edb5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -873,9 +873,6 @@ Enter the port number of the proxy server. proxy_port - Proxy Help - Learn more about how to configure a proxy server. - https://example.com/proxy-help SponsorBlock From af39fb958181166d12599996aa2d868a85528106 Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:39:26 +0300 Subject: [PATCH 12/30] [-] removed Proxy Help settings --- app/src/main/res/xml/proxy_settings.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/src/main/res/xml/proxy_settings.xml b/app/src/main/res/xml/proxy_settings.xml index e2b49e08e..26c6010d9 100644 --- a/app/src/main/res/xml/proxy_settings.xml +++ b/app/src/main/res/xml/proxy_settings.xml @@ -32,12 +32,6 @@ android:defaultValue="1080" android:inputType="number" /> - From fad88ba59f7ba8e9f62455d7b5c3c29530fcf886 Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:44:15 +0300 Subject: [PATCH 13/30] [u] updated to dynamic strings --- app/src/main/res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ef797edb5..cd5aa249c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -866,11 +866,11 @@ proxy_enabled Proxy Address - Enter the address of the proxy server. + Current proxy address: %1$s proxy_address Proxy Port - Enter the port number of the proxy server. + Current proxy port: %1$s proxy_port From 6c31d999c912a7ea8eb1336919144adf24e70a0d Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:44:46 +0300 Subject: [PATCH 14/30] [+] add Toast strings --- app/src/main/res/values/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cd5aa249c..98d80182f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -868,11 +868,14 @@ Proxy Address Current proxy address: %1$s proxy_address + Invalid IPv4 address Proxy Port Current proxy port: %1$s proxy_port + Invalid port. Port must be between 1 and 65535 + Please restart the app to apply the proxy settings. SponsorBlock From 35c1533ab01205c310bc620a8bd73fb137dc9846 Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:48:21 +0300 Subject: [PATCH 15/30] [u] add validation --- .../settings/ProxySettingsFragment.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java index 311581419..52c71909c 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java @@ -3,6 +3,8 @@ package org.schabi.newpipe.settings; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; +import android.util.Patterns; +import android.widget.Toast; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.SwitchPreferenceCompat; @@ -52,6 +54,12 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { assert proxyAddressPref != null; proxyAddressPref.setOnPreferenceChangeListener((preference, newValue) -> { + // Валидация IP-адреса + if (!isValidIpAddress(newValue.toString())) { + Toast.makeText(getContext(), + getString(R.string.invalid_ip_address), Toast.LENGTH_SHORT).show(); + return false; // Не сохраняем изменение + } Log.d("ProxySettings", "Read proxy_address_key: " + newValue); // Сохраняем новое значение IP-адреса sharedPreferences.edit().putString( @@ -67,6 +75,12 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { assert proxyPortPref != null; proxyPortPref.setOnPreferenceChangeListener((preference, newValue) -> { + // Валидация порта + if (!isValidPort(newValue.toString())) { + Toast.makeText(getContext(), + getString(R.string.invalid_port), Toast.LENGTH_SHORT).show(); + return false; // Не сохраняем изменение + } Log.d("ProxySettings", "Read proxy_port_key: " + newValue); // Сохраняем новое значение порта sharedPreferences.edit().putString( @@ -74,6 +88,18 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { newValue.toString()).apply(); return true; }); + // Метод для валидации IP-адреса + public boolean isValidIpAddress(final String ipAddress) { + return Patterns.IP_ADDRESS.matcher(ipAddress).matches(); + } + // Метод для валидации порта + public boolean isValidPort(final String port) { + try { + final int portNumber = Integer.parseInt(port); + return portNumber >= 1 && portNumber <= 65535; + } catch (final NumberFormatException e) { + return false; + } } } From bf45ce0f44a6604c01616012265f8aa1b04529a3 Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:56:18 +0300 Subject: [PATCH 16/30] [u] add dynamic update summary --- .../settings/ProxySettingsFragment.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java index 52c71909c..873963217 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java @@ -65,8 +65,19 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { sharedPreferences.edit().putString( App.getApp().getString(R.string.proxy_address_key), newValue.toString()).apply(); + // Обновляем summary с новым адресом + proxyAddressPref.setSummary( + getString(R.string.proxy_address_summary, newValue) + ); return true; }); + // Устанавливаем текущее значение в summary при загрузке настроек + final String currentAddress = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_address_key), "192.168.1.1" + ); + proxyAddressPref.setSummary( + getString(R.string.proxy_address_summary, currentAddress) + ); // Настройка порта прокси final Preference proxyPortPref = findPreference( @@ -86,8 +97,20 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { sharedPreferences.edit().putString( App.getApp().getString(R.string.proxy_port_key), newValue.toString()).apply(); + // Обновляем summary с новым портом + proxyPortPref.setSummary( + getString(R.string.proxy_port_summary, newValue) + ); return true; }); + // Устанавливаем текущее значение в summary при загрузке настроек + final String currentPort = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_port_key), "1080" + ); + proxyPortPref.setSummary( + getString(R.string.proxy_port_summary, currentPort) + ); + } // Метод для валидации IP-адреса public boolean isValidIpAddress(final String ipAddress) { return Patterns.IP_ADDRESS.matcher(ipAddress).matches(); From a311ffc73c6acd08a3e21ea09871abefd1ed1158 Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 21:56:41 +0300 Subject: [PATCH 17/30] [u] add Toast notify --- .../newpipe/settings/ProxySettingsFragment.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java index 873963217..d94107a7a 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java @@ -34,16 +34,16 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { proxyEnablePref.setOnPreferenceChangeListener((preference, newValue) -> { final boolean isEnabled = (Boolean) newValue; Log.d("ProxySettings", "Read proxy_enabled_key: " + isEnabled); - // Сохраняем новое значение proxy_enabled_key sharedPreferences.edit().putBoolean( App.getApp().getString(R.string.proxy_enabled_key), isEnabled).apply(); - Log.d("ProxySettings", "Saved proxy_enabled_key: " + sharedPreferences.getBoolean( App.getApp().getString(R.string.proxy_enabled_key), false)); - + // Сообщаем пользователю, что требуется перезапуск + Toast.makeText(getContext(), + getString(R.string.proxy_restart_required), Toast.LENGTH_LONG).show(); return true; }); @@ -69,6 +69,9 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { proxyAddressPref.setSummary( getString(R.string.proxy_address_summary, newValue) ); + // Сообщаем пользователю, что требуется перезапуск + Toast.makeText(getContext(), + getString(R.string.proxy_restart_required), Toast.LENGTH_LONG).show(); return true; }); // Устанавливаем текущее значение в summary при загрузке настроек @@ -101,6 +104,9 @@ public class ProxySettingsFragment extends PreferenceFragmentCompat { proxyPortPref.setSummary( getString(R.string.proxy_port_summary, newValue) ); + // Сообщаем пользователю, что требуется перезапуск + Toast.makeText(getContext(), + getString(R.string.proxy_restart_required), Toast.LENGTH_LONG).show(); return true; }); // Устанавливаем текущее значение в summary при загрузке настроек From 219c7d3563e00ad884a6e6e061338c131208f23b Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 22:18:22 +0300 Subject: [PATCH 18/30] [u] update readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bd5bcfd65..be5e3c27b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -

Tubular

+

Tubular-Proxy

A fork of NewPipe (Github) that implements SponsorBlock (Github) and ReturnYouTubeDislike (Github).

-

Download the APK here.

+

Download the APK here.

## To Do @@ -15,4 +15,4 @@ Things I'll be working on next (not in any particular order): - [ ] add offline YouTube playback ## License -[![GNU GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png)](https://www.gnu.org/licenses/gpl-3.0.en.html) \ No newline at end of file +[![GNU GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png)](https://www.gnu.org/licenses/gpl-3.0.en.html) From 40fc5f42929182618a98224654a5a2dd571a990a Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 22:52:08 +0300 Subject: [PATCH 19/30] [+] add proxy icon --- app/src/main/res/drawable/ic_key.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 app/src/main/res/drawable/ic_key.xml diff --git a/app/src/main/res/drawable/ic_key.xml b/app/src/main/res/drawable/ic_key.xml new file mode 100644 index 000000000..c61b0f10b --- /dev/null +++ b/app/src/main/res/drawable/ic_key.xml @@ -0,0 +1,12 @@ + + + + + From db727668798e03cdcc4612e4c04ad768aaaf9651 Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 17 Sep 2024 22:52:18 +0300 Subject: [PATCH 20/30] [u] use proxy icon --- app/src/main/res/xml/main_settings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/xml/main_settings.xml b/app/src/main/res/xml/main_settings.xml index c48647586..6951faa14 100644 --- a/app/src/main/res/xml/main_settings.xml +++ b/app/src/main/res/xml/main_settings.xml @@ -65,6 +65,12 @@ android:title="ReturnYouTubeDislike" app:iconSpaceReserved="false" /> + + - - From 56731aeac6e8c5b3f117451c233e7099c956b8f1 Mon Sep 17 00:00:00 2001 From: Grisha Date: Wed, 18 Sep 2024 00:10:14 +0300 Subject: [PATCH 21/30] [f] use base fragment --- .../org/schabi/newpipe/settings/ProxySettingsFragment.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java index d94107a7a..7f4351e9c 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java @@ -6,14 +6,13 @@ import android.util.Log; import android.util.Patterns; import android.widget.Toast; import androidx.preference.Preference; -import androidx.preference.PreferenceFragmentCompat; import androidx.preference.SwitchPreferenceCompat; import androidx.preference.PreferenceManager; import org.schabi.newpipe.App; import org.schabi.newpipe.R; -public class ProxySettingsFragment extends PreferenceFragmentCompat { +public class ProxySettingsFragment extends BasePreferenceFragment { @Override public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) { From d9f2eba5b83f8b18db9f448ef971a069dd620aac Mon Sep 17 00:00:00 2001 From: Grisha Date: Wed, 18 Sep 2024 00:10:39 +0300 Subject: [PATCH 22/30] [f] fix strings --- app/src/main/res/values/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 98d80182f..d2cf97176 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -861,17 +861,17 @@ The settings in the export being imported use a vulnerable format that was deprecated since NewPipe 0.27.0. Make sure the export being imported is from a trusted source, and prefer using only exports obtained from NewPipe 0.27.0 or newer in the future. Support for importing settings in this vulnerable format will soon be removed completely, and then old versions of NewPipe will not be able to import settings of exports from new versions anymore. Proxy Settings - Enable Proxy + Enable\\Disable Proxy Turn on or off the use of a proxy server for connections. proxy_enabled - Proxy Address - Current proxy address: %1$s + IP Address + Current address: %1$s proxy_address Invalid IPv4 address - Proxy Port - Current proxy port: %1$s + Port + Current port: %1$s proxy_port Invalid port. Port must be between 1 and 65535 From 2c4b0050794cf399d89f8e47acc5c3679e44ab39 Mon Sep 17 00:00:00 2001 From: Grisha Date: Wed, 18 Sep 2024 00:10:59 +0300 Subject: [PATCH 23/30] [+] add russian lang --- app/src/main/res/values-ru/strings.xml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d380c8ba6..77edde199 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -840,4 +840,24 @@ Сбросить настройки NewPipe может автоматически проверять наличие обновлений и уведомить вас, когда они будут доступны. \nЖелаете включить эту функцию? - \ No newline at end of file + + + Настройки прокси + + Включить\\Отключить прокси + Включите или отключите использование прокси-сервера. + proxy_enabled + + IP Адрес + Текущий адрес: %1$s + proxy_address + Неверный IPv4 адрес + + Порт + Текущий порт: %1$s + proxy_port + Неверный порт. Порт должен быть от 1 до 65535 + + Перезапустите приложение для применения настроек прокси. + + From 103a33eb1ff6062d3c19fc514203ac5db09ff1eb Mon Sep 17 00:00:00 2001 From: Grisha Date: Wed, 18 Sep 2024 00:11:21 +0300 Subject: [PATCH 24/30] [f] fix title --- app/src/main/res/xml/proxy_settings.xml | 49 +++++++++++-------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/app/src/main/res/xml/proxy_settings.xml b/app/src/main/res/xml/proxy_settings.xml index 26c6010d9..b8bc5061c 100644 --- a/app/src/main/res/xml/proxy_settings.xml +++ b/app/src/main/res/xml/proxy_settings.xml @@ -3,35 +3,30 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:title="@string/proxy_settings_title"> - + - + - + - - - From 3082c7c30273df18a3f95d32737cd569c149729c Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 16 Nov 2024 02:38:52 +0300 Subject: [PATCH 25/30] [u] add new strings --- app/src/main/res/values-ru/strings.xml | 4 ++++ app/src/main/res/values/settings_keys.xml | 12 ++++++++++++ app/src/main/res/values/strings.xml | 4 ++++ 3 files changed, 20 insertions(+) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 77edde199..db5bbd223 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -848,6 +848,10 @@ Включите или отключите использование прокси-сервера. proxy_enabled + Выбрать тип прокси + Тип прокси + proxy_type + IP Адрес Текущий адрес: %1$s proxy_address diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 6858e5d62..7add29d8b 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -1526,4 +1526,16 @@ return_youtube_dislike_override_like_count return_youtube_dislike_override_view_count return_youtube_dislike_show_dislikes_as_percentage + + + + SOCKS Proxy + HTTP Proxy + + + + socks + http + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d2cf97176..0a049453b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -865,6 +865,10 @@ Turn on or off the use of a proxy server for connections. proxy_enabled + Select proxy type + Proxy type + proxy_type + IP Address Current address: %1$s proxy_address From 93211c709162df4562b04d1e00582e7d9540d0d8 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 16 Nov 2024 02:39:12 +0300 Subject: [PATCH 26/30] [u] new parameter proxy type --- app/src/main/res/xml/proxy_settings.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/main/res/xml/proxy_settings.xml b/app/src/main/res/xml/proxy_settings.xml index b8bc5061c..48d840c77 100644 --- a/app/src/main/res/xml/proxy_settings.xml +++ b/app/src/main/res/xml/proxy_settings.xml @@ -10,6 +10,16 @@ android:summary="@string/proxy_enabled_summary" android:defaultValue="false" /> + + Date: Sat, 16 Nov 2024 02:40:05 +0300 Subject: [PATCH 27/30] [u] database implementation for a new parameter --- .../settings/ProxySettingsFragment.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java index 7f4351e9c..bdb912573 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ProxySettingsFragment.java @@ -6,6 +6,7 @@ import android.util.Log; import android.util.Patterns; import android.widget.Toast; import androidx.preference.Preference; +import androidx.preference.ListPreference; import androidx.preference.SwitchPreferenceCompat; import androidx.preference.PreferenceManager; @@ -115,6 +116,35 @@ public class ProxySettingsFragment extends BasePreferenceFragment { proxyPortPref.setSummary( getString(R.string.proxy_port_summary, currentPort) ); + // Настройка типа прокси + final ListPreference proxyTypePref = findPreference( + App.getApp().getString(R.string.proxy_type_key) + ); + assert proxyTypePref != null; + + proxyTypePref.setOnPreferenceChangeListener((preference, newValue) -> { + final String proxyType = newValue.toString(); + Log.d("ProxySettings", "Read proxy_type_key: " + proxyType); + // Сохраняем новое значение типа прокси + sharedPreferences.edit().putString( + App.getApp().getString(R.string.proxy_type_key), + proxyType).apply(); + // Обновляем summary + proxyTypePref.setSummary( + getString(R.string.proxy_type_summary) + ": " + proxyType.toUpperCase() + ); + // Сообщаем пользователю, что требуется перезапуск + Toast.makeText(getContext(), + getString(R.string.proxy_restart_required), Toast.LENGTH_LONG).show(); + return true; + }); + // Устанавливаем текущее значение в summary при загрузке настроек + final String currentProxyType = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_type_key), "socks" + ); + proxyTypePref.setSummary( + getString(R.string.proxy_type_summary) + ": " + currentProxyType.toUpperCase() + ); } // Метод для валидации IP-адреса public boolean isValidIpAddress(final String ipAddress) { From 892e6e776861e4d47a5e21e6c6fb7a068f828652 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 16 Nov 2024 02:41:28 +0300 Subject: [PATCH 28/30] [u] new conditions for the parameter --- .../main/java/org/schabi/newpipe/DownloaderImpl.java | 10 ++++++++-- .../player/datasource/YoutubeHttpDataSource.java | 10 ++++++++-- .../org/schabi/newpipe/util/image/PicassoHelper.java | 10 ++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 8048a9f1d..9ae9fffe6 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -57,10 +57,16 @@ public final class DownloaderImpl extends Downloader { App.getApp().getString(R.string.proxy_address_key), "192.168.1.1"); final String proxyPortStr = sharedPreferences.getString( App.getApp().getString(R.string.proxy_port_key), "1080"); + final String proxyTypeStr = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_type_key), "socks"); + final Proxy.Type proxyType = "http".equalsIgnoreCase(proxyTypeStr) + ? Proxy.Type.HTTP + : Proxy.Type.SOCKS; final int proxyPort = Integer.parseInt(proxyPortStr); Log.d("DownloaderImpl_ProxySettings", - "Proxy enabled with address: " + proxyAddress + " and port: " + proxyPort); - final Proxy proxy = new Proxy(Proxy.Type.SOCKS, + "Proxy enabled with address: " + proxyAddress + + " and port: " + proxyPort + ", type: " + proxyType); + final Proxy proxy = new Proxy(proxyType, new InetSocketAddress(proxyAddress, proxyPort)); this.client = builder .proxy(proxy) diff --git a/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java b/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java index 20efe0488..ce8c64d59 100644 --- a/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java +++ b/app/src/main/java/org/schabi/newpipe/player/datasource/YoutubeHttpDataSource.java @@ -736,10 +736,16 @@ public final class YoutubeHttpDataSource extends BaseDataSource implements HttpD App.getApp().getString(R.string.proxy_address_key), "192.168.1.1"); final String proxyPortStr = sharedPreferences.getString( App.getApp().getString(R.string.proxy_port_key), "1080"); + final String proxyTypeStr = sharedPreferences.getString( + App.getApp().getString(R.string.proxy_type_key), "socks"); + final Proxy.Type proxyType = "http".equalsIgnoreCase(proxyTypeStr) + ? Proxy.Type.HTTP + : Proxy.Type.SOCKS; final int proxyPort = Integer.parseInt(proxyPortStr); android.util.Log.d("YoutubeHttpDataSource_ProxySettings", - "Proxy enabled with address: " + proxyAddress + " and port: " + proxyPort); - final Proxy proxy = new Proxy(Proxy.Type.SOCKS, + "Proxy enabled with address: " + + proxyAddress + " and port: " + proxyPort + ", type: " + proxyType); + final Proxy proxy = new Proxy(proxyType, new InetSocketAddress(proxyAddress, proxyPort)); connection = (HttpURLConnection) url.openConnection(proxy); } else { diff --git a/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java b/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java index 3fb5111e7..5e3318fc5 100644 --- a/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/image/PicassoHelper.java @@ -68,10 +68,16 @@ public final class PicassoHelper { context.getString(R.string.proxy_address_key), "192.168.1.1"); final String proxyPortStr = sharedPreferences.getString( context.getString(R.string.proxy_port_key), "1080"); + final String proxyTypeStr = sharedPreferences.getString( + context.getString(R.string.proxy_type_key), "socks"); + final Proxy.Type proxyType = "http".equalsIgnoreCase(proxyTypeStr) + ? Proxy.Type.HTTP + : Proxy.Type.SOCKS; final int proxyPort = Integer.parseInt(proxyPortStr); Log.d("PicassoHelper_ProxySettings", - "Proxy enabled with address: " + proxyAddress + " and port: " + proxyPort); - proxySet = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(proxyAddress, proxyPort)); + "Proxy enabled with address: " + + proxyAddress + " and port: " + proxyPort + ", type: " + proxyType); + proxySet = new Proxy(proxyType, new InetSocketAddress(proxyAddress, proxyPort)); } else { Log.d("PicassoHelper_ProxySettings", "Update called. proxy_enabled_key off: " + isProxyEnabled); From c304fb1521cd5219554e068f6cc88b6514d82f05 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 16 Nov 2024 02:42:14 +0300 Subject: [PATCH 29/30] [u] version code --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 529403161..d352c795e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ android { resValue "string", "app_name", "Tubular Proxy" minSdk 21 targetSdk 33 - versionCode 999 - versionName "0.27.2-P1" + versionCode 1000 + versionName "0.27.2-P2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" From 332e4bf638778d90708052470d129a9ab207210d Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 16 Nov 2024 03:03:12 +0300 Subject: [PATCH 30/30] [f] fix tags --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index d352c795e..2677c5261 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -205,7 +205,7 @@ dependencies { // name and the commit hash with the commit hash of the (pushed) commit you want to test // This works thanks to JitPack: https://jitpack.io/ implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.polymorphicshade:TubularExtractor:a536f46e99ccbc2b2ae5c32abdaab8b5fa5b9c43' + implementation 'com.github.polymorphicshade:TubularExtractor:a536f46e99' implementation 'com.github.TeamNewPipe:NoNonsense-FilePicker:5.0.0' /** Checkstyle **/