From e2fc5ff24cc341d04ddbad823fe641831b60e916 Mon Sep 17 00:00:00 2001 From: Yuriy Liskov Date: Wed, 14 Jan 2026 05:46:45 +0200 Subject: [PATCH] dev options: add google dns --- MediaServiceCore | 2 +- SharedModules | 2 +- .../common/app/presenters/BrowsePresenter.java | 4 ++-- .../presenters/settings/PlayerSettingsPresenter.java | 12 ++++++++++-- .../common/prefs/PlayerTweaksData.java | 11 +++++++---- common/src/main/res/values-ru/strings.xml | 1 + common/src/main/res/values-tr/strings.xml | 1 + common/src/main/res/values-uk/strings.xml | 1 + common/src/main/res/values/strings.xml | 1 + 9 files changed, 25 insertions(+), 10 deletions(-) diff --git a/MediaServiceCore b/MediaServiceCore index 7183cf2ec..19624eab6 160000 --- a/MediaServiceCore +++ b/MediaServiceCore @@ -1 +1 @@ -Subproject commit 7183cf2ec4046d02d9d4bc89307c2146a0a62475 +Subproject commit 19624eab68f8c1e6ec76ab097f9a5b6061f46556 diff --git a/SharedModules b/SharedModules index 00d7c75c1..3cbd640ff 160000 --- a/SharedModules +++ b/SharedModules @@ -1 +1 @@ -Subproject commit 00d7c75c107adfa4e95642f9f874d19658aaef18 +Subproject commit 3cbd640ff5227cb0592b915a6fbeb19e0ce2df22 diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/BrowsePresenter.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/BrowsePresenter.java index 7e0fa5d14..1ff68e62b 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/BrowsePresenter.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/BrowsePresenter.java @@ -1171,8 +1171,8 @@ public class BrowsePresenter extends BasePresenter implements Sectio // java.net.UnknownHostException: Unable to resolve host "www.youtube.com": No address associated with hostname if (error != null && Helpers.contains(error.getMessage(), "No address associated with hostname")) { PlayerTweaksData playerTweaksData = PlayerTweaksData.instance(getContext()); - if (!playerTweaksData.isIPv4DnsPreferred()) { - playerTweaksData.setIPv4DnsPreferred(true); + if (playerTweaksData.getPreferredDnsType() != PlayerTweaksData.DNS_TYPE_IPV4) { + playerTweaksData.setPreferredDnsType(PlayerTweaksData.DNS_TYPE_IPV4); // Restart app to reinit okhttp internal objects Utils.restartTheApp(getContext()); } diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/settings/PlayerSettingsPresenter.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/settings/PlayerSettingsPresenter.java index b2030457d..668894c65 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/settings/PlayerSettingsPresenter.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/settings/PlayerSettingsPresenter.java @@ -261,13 +261,21 @@ public class PlayerSettingsPresenter extends BasePresenter { }, mPlayerTweaksData.isOculusQuestFixEnabled())); + options.add(UiOptionItem.from(getContext().getString(R.string.prefer_google_dns), + getContext().getString(R.string.prefer_ipv4_desc), + option -> { + mPlayerTweaksData.setPreferredDnsType(option.isSelected() ? PlayerTweaksData.DNS_TYPE_GOOGLE : PlayerTweaksData.DNS_TYPE_SYSTEM); + mRestartApp = true; + }, + mPlayerTweaksData.getPreferredDnsType() == PlayerTweaksData.DNS_TYPE_GOOGLE)); + options.add(UiOptionItem.from(getContext().getString(R.string.prefer_ipv4), getContext().getString(R.string.prefer_ipv4_desc), option -> { - mPlayerTweaksData.setIPv4DnsPreferred(option.isSelected()); + mPlayerTweaksData.setPreferredDnsType(option.isSelected() ? PlayerTweaksData.DNS_TYPE_IPV4 : PlayerTweaksData.DNS_TYPE_SYSTEM); mRestartApp = true; }, - mPlayerTweaksData.isIPv4DnsPreferred())); + mPlayerTweaksData.getPreferredDnsType() == PlayerTweaksData.DNS_TYPE_IPV4)); // Disable long press on buggy controllers. options.add(UiOptionItem.from(getContext().getString(R.string.disable_ok_long_press), diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java index 5219934f8..f2a925781 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java @@ -47,6 +47,9 @@ public class PlayerTweaksData implements ProfileChangeListener { PLAYER_BUTTON_LIKE | PLAYER_BUTTON_DISLIKE | PLAYER_BUTTON_ADD_TO_PLAYLIST | PLAYER_BUTTON_PLAY_PAUSE | PLAYER_BUTTON_REPEAT_MODE | PLAYER_BUTTON_NEXT | PLAYER_BUTTON_PREVIOUS | PLAYER_BUTTON_HIGH_QUALITY | PLAYER_BUTTON_VIDEO_INFO | PLAYER_BUTTON_CHAT; + public static final int DNS_TYPE_SYSTEM = GlobalPreferences.DNS_TYPE_SYSTEM; + public static final int DNS_TYPE_IPV4 = GlobalPreferences.DNS_TYPE_IPV4; + public static final int DNS_TYPE_GOOGLE = GlobalPreferences.DNS_TYPE_GOOGLE; @SuppressLint("StaticFieldLeak") private static PlayerTweaksData sInstance; private final AppPrefs mPrefs; @@ -633,12 +636,12 @@ public class PlayerTweaksData implements ProfileChangeListener { MediaServiceData.instance().setFormatEnabled(MediaServiceData.FORMATS_EXTENDED_HLS, enable); } - public boolean isIPv4DnsPreferred() { - return GlobalPreferences.instance(mPrefs.getContext()).isIPv4DnsPreferred(); + public int getPreferredDnsType() { + return GlobalPreferences.instance(mPrefs.getContext()).getPreferredDnsType(); } - public void setIPv4DnsPreferred(boolean prefer) { - GlobalPreferences.instance(mPrefs.getContext()).setIPv4DnsPreferred(prefer); + public void setPreferredDnsType(int dnsType) { + GlobalPreferences.instance(mPrefs.getContext()).setPreferredDnsType(dnsType); } public boolean isNetworkErrorFixingDisabled() { diff --git a/common/src/main/res/values-ru/strings.xml b/common/src/main/res/values-ru/strings.xml index b154942f8..5c2d3988c 100644 --- a/common/src/main/res/values-ru/strings.xml +++ b/common/src/main/res/values-ru/strings.xml @@ -668,6 +668,7 @@ Полноэкранный режим (без системных панелей) Показывать только плеер, если видео открыто вне приложения Отображать закрепленный канал в виде строк + Предпочитать Google DNS Предпочитать IPv4 DNS Можеть исправить случаи, когда приложение вообще не работает.\nВнимание. На некоторых устройствах могут быть вылеты приложения (особенно на Android 8 и приставке Dune HD) ДЛИТЕЛЬНОЕ НАЖАТИЕ ДЛЯ НАСТРОЕК diff --git a/common/src/main/res/values-tr/strings.xml b/common/src/main/res/values-tr/strings.xml index 8dd429b38..2e9d81f3e 100644 --- a/common/src/main/res/values-tr/strings.xml +++ b/common/src/main/res/values-tr/strings.xml @@ -677,6 +677,7 @@ Tam ekran modu (sistem çubukları olmadan) Video uygulama dışında açılırsa yalnızca oynatıcıyı göster Sabitlenmiş kanalı satır olarak göster + Google DNS tercih et IPv4 DNS tercih et Uygulamanın hiç çalışmadığı durumları düzeltebilir.\nNot: Takılmalara ve çökmelere neden olabilir (özellikle Android 8 cihazlarda ya da Dune HD\'de) AYARLAR İÇİN UZUN BASIN diff --git a/common/src/main/res/values-uk/strings.xml b/common/src/main/res/values-uk/strings.xml index 5784f6e20..c358e5ff2 100644 --- a/common/src/main/res/values-uk/strings.xml +++ b/common/src/main/res/values-uk/strings.xml @@ -668,6 +668,7 @@ Повноекранний режим (без системних панелей) Показувати лише плеєр, якщо відео відкрито поза застосунком Відображати закріплений канал у вигляді рядків + Надавати перевагу Google DNS Надавати перевагу IPv4 DNS Може виправити випадки, коли застосунок взагалі не працює.\nУвага. На деяких пристроях можливі падіння застосунку (особливо на Android 8 та пристроях Dune HD) ТРИВАЛЕ НАТИСКАННЯ ДЛЯ НАЛАШТУВАНЬ diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index a69e7bf71..7b0e546da 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -675,6 +675,7 @@ Fullscreen mode (without system bars) Show only the player if the video is opened outside of the app Show pinned channel as rows + Prefer Google DNS Prefer IPv4 DNS Could fix situations when the app isn\'t working at all.\nNote. May cause hangs and crashes (especially on Android 8 devices or Dune HD) LONG PRESS FOR SETTINGS