From 5ea0c4654ffb5938dde22949a45c69a732b6a841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20=C3=87erri?= <64997243+deniscerri@users.noreply.github.com> Date: Sat, 18 Feb 2023 12:20:19 +0100 Subject: [PATCH] added ability to upgrade to nightly builds of yt-dlp --- .idea/assetWizardSettings.xml | 4 ++-- .../deniscerri/ytdlnis/ui/settings/SettingsFragment.kt | 10 ++++++++++ .../java/com/deniscerri/ytdlnis/util/UpdateUtil.kt | 6 +++++- app/src/main/res/drawable/ic_nightly.xml | 6 ++++++ app/src/main/res/values/strings.xml | 3 ++- app/src/main/res/xml/root_preferences.xml | 7 +++++++ build.gradle | 2 +- 7 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/drawable/ic_nightly.xml diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml index eb14f89a..5740639a 100644 --- a/.idea/assetWizardSettings.xml +++ b/.idea/assetWizardSettings.xml @@ -320,7 +320,7 @@ @@ -330,7 +330,7 @@ diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/settings/SettingsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/settings/SettingsFragment.kt index dd814029..9a827700 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/settings/SettingsFragment.kt @@ -33,6 +33,7 @@ class SettingsFragment : PreferenceFragmentCompat() { private var audioQuality: SeekBarPreference? = null private var videoQuality: ListPreference? = null private var updateYTDL: Preference? = null + private var updateNightlyYTDL: SwitchPreferenceCompat? = null private var updateApp: SwitchPreferenceCompat? = null private var version: Preference? = null private var updateUtil: UpdateUtil? = null @@ -69,6 +70,7 @@ class SettingsFragment : PreferenceFragmentCompat() { audioQuality = findPreference("audio_quality") videoQuality = findPreference("video_quality") updateYTDL = findPreference("update_ytdl") + updateNightlyYTDL = findPreference("nightly_ytdl") updateApp = findPreference("update_app") version = findPreference("version") version!!.summary = BuildConfig.VERSION_NAME @@ -97,6 +99,7 @@ class SettingsFragment : PreferenceFragmentCompat() { editor.putString("video_format", videoFormat!!.value) editor.putInt("audio_quality", audioQuality!!.value) editor.putString("video_quality", videoQuality!!.value) + editor.putBoolean("nightly_ytdl", updateNightlyYTDL!!.isChecked) editor.putBoolean("update_app", updateApp!!.isChecked) editor.apply() } @@ -252,6 +255,13 @@ class SettingsFragment : PreferenceFragmentCompat() { updateUtil!!.updateYoutubeDL() true } + updateNightlyYTDL!!.onPreferenceChangeListener = + Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any -> + val enable = newValue as Boolean + editor.putBoolean("nightly_ytdl", enable) + editor.apply() + true + } updateApp!!.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any -> val enable = newValue as Boolean diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt index 918fdda9..8526bdb0 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/UpdateUtil.kt @@ -1,5 +1,6 @@ package com.deniscerri.ytdlnis.util +import android.app.Activity import android.app.DownloadManager import android.content.Context import android.content.DialogInterface @@ -29,6 +30,7 @@ class UpdateUtil(var context: Context) { private val tag = "UpdateUtil" private val downloadManager: DownloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager private val compositeDisposable = CompositeDisposable() + private val ytdlpNightly = "https://api.github.com/repos/ytdl-patched/yt-dlp/releases/latest" fun updateApp(): Boolean { if (updatingApp) { @@ -140,6 +142,8 @@ class UpdateUtil(var context: Context) { } fun updateYoutubeDL() { + val sharedPreferences = + context.getSharedPreferences("root_preferences", Activity.MODE_PRIVATE) if (updatingYTDL) { Toast.makeText( context, @@ -156,7 +160,7 @@ class UpdateUtil(var context: Context) { updatingYTDL = true val disposable = Observable.fromCallable { YoutubeDL.getInstance().updateYoutubeDL( - context + context, if (sharedPreferences.getBoolean("nightly_ytdl", false) ) ytdlpNightly else null ) } .subscribeOn(Schedulers.newThread()) diff --git a/app/src/main/res/drawable/ic_nightly.xml b/app/src/main/res/drawable/ic_nightly.xml new file mode 100644 index 00000000..49881800 --- /dev/null +++ b/app/src/main/res/drawable/ic_nightly.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7debea7c..0dbdd857 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,7 +14,7 @@ Video Folder Updating Useful if you have problems downloading - Install new version of youtube-dl + Install new version of yt-dlp About Source Code Search from YouTube @@ -166,4 +166,5 @@ Logs Commands Date added + Download Nightly Version of yt-dlp \ No newline at end of file diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index a8d77d3d..022eee8c 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -171,6 +171,13 @@ app:summary="@string/ytdl_update_hint" app:title="@string/update_ytdl" /> + +