From 726ad19cf8d4c55074341376aa9aacf91cadb621 Mon Sep 17 00:00:00 2001
From: deniscerri <64997243+deniscerri@users.noreply.github.com>
Date: Sun, 27 Jul 2025 14:37:45 +0200
Subject: [PATCH] stuff
---
.../more/downloadLogs/DownloadLogFragment.kt | 1 +
.../ui/more/settings/MainSettingsFragment.kt | 27 +++++++------------
.../com/deniscerri/ytdl/util/ThemeUtil.kt | 6 +++++
.../ytdl/util/extractors/YTDLPUtil.kt | 5 ++--
.../deniscerri/ytdl/work/DownloadWorker.kt | 20 +++++++-------
app/src/main/res/values/strings.xml | 2 ++
.../main/res/xml/processing_preferences.xml | 6 ++---
7 files changed, 34 insertions(+), 33 deletions(-)
diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/downloadLogs/DownloadLogFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/downloadLogs/DownloadLogFragment.kt
index 3c4432da..88214bc7 100644
--- a/app/src/main/java/com/deniscerri/ytdl/ui/more/downloadLogs/DownloadLogFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/downloadLogs/DownloadLogFragment.kt
@@ -22,6 +22,7 @@ import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
+import androidx.navigation.fragment.findNavController
import androidx.preference.PreferenceManager
import com.deniscerri.ytdl.MainActivity
import com.deniscerri.ytdl.R
diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/MainSettingsFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/MainSettingsFragment.kt
index 566a6037..a2b2251a 100644
--- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/MainSettingsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/MainSettingsFragment.kt
@@ -49,6 +49,7 @@ import com.deniscerri.ytdl.database.viewmodel.ResultViewModel
import com.deniscerri.ytdl.database.viewmodel.SettingsViewModel
import com.deniscerri.ytdl.ui.more.settings.FolderSettingsFragment.Companion.COMMAND_PATH_CODE
import com.deniscerri.ytdl.util.FileUtil
+import com.deniscerri.ytdl.util.ThemeUtil
import com.deniscerri.ytdl.util.UiUtil
import com.deniscerri.ytdl.util.UpdateUtil
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -492,27 +493,19 @@ class MainSettingsFragment : PreferenceFragmentCompat() {
val builder = MaterialAlertDialogBuilder(requireContext())
builder.setTitle(getString(R.string.restore))
builder.setMessage("${getString(R.string.restore_complete)}\n $restoreDataMessage")
+ builder.setCancelable(false)
builder.setPositiveButton(
- getString(R.string.restart)
- ) { _: DialogInterface?, _: Int ->
- val intent = Intent(requireContext(), MainActivity::class.java)
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
- startActivity(intent)
- requireActivity().finishAffinity()
- if(data.settings != null){
- AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(preferences.getString("app_language", "en")))
- }
- activity?.finishAffinity()
- }
-
- // handle the negative button of the alert dialog
- builder.setNegativeButton(
- getString(R.string.cancel)
+ getString(R.string.ok)
) { _: DialogInterface?, _: Int ->
if(data.settings != null){
- AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(preferences.getString("app_language", "en")))
+ val languageValue = preferences.getString("app_language", "en")
+ if (languageValue == "system") {
+ AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(null))
+ }else{
+ AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(languageValue.toString()))
+ }
}
+ ThemeUtil.recreateAllActivities()
}
val dialog = builder.create()
diff --git a/app/src/main/java/com/deniscerri/ytdl/util/ThemeUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/ThemeUtil.kt
index 5dd97cec..6c37fc24 100644
--- a/app/src/main/java/com/deniscerri/ytdl/util/ThemeUtil.kt
+++ b/app/src/main/java/com/deniscerri/ytdl/util/ThemeUtil.kt
@@ -77,6 +77,12 @@ object ThemeUtil {
activities.firstOrNull { it.javaClass == MainActivity::class.java }?.recreate()
}
+ fun recreateAllActivities() {
+ activities.forEach {
+ it.recreate()
+ }
+ }
+
fun updateThemes() {
activities.forEach {
updateTheme(it)
diff --git a/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt
index 3a5d1a19..940bac1d 100644
--- a/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt
+++ b/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt
@@ -525,6 +525,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co
request.applyDefaultOptionsForFetchingData(url)
if (url.isYoutubeURL()) {
request.setYoutubeExtractorArgs(url)
+ request.addOption("--extractor-args", "youtube:player_skip=webpage,configs,js;player_client=android,web")
}
val youtubeDLResponse = YoutubeDL.getInstance().execute(request)
@@ -1327,9 +1328,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co
}
if (downloadItem.videoPreferences.embedSubs) {
- if (sharedPreferences.getBoolean("write_subs_when_embed_subs", false) && !downloadItem.videoPreferences.writeSubs && !downloadItem.videoPreferences.writeAutoSubs) {
- request.addOption("--write-subs")
- request.addOption("--write-auto-subs")
+ if (sharedPreferences.getBoolean("no_keep_subs", false) && !downloadItem.videoPreferences.writeSubs && !downloadItem.videoPreferences.writeAutoSubs) {
request.addOption("--compat-options", "no-keep-subs")
}
diff --git a/app/src/main/java/com/deniscerri/ytdl/work/DownloadWorker.kt b/app/src/main/java/com/deniscerri/ytdl/work/DownloadWorker.kt
index 18b9be1b..d78a681f 100644
--- a/app/src/main/java/com/deniscerri/ytdl/work/DownloadWorker.kt
+++ b/app/src/main/java/com/deniscerri/ytdl/work/DownloadWorker.kt
@@ -232,8 +232,8 @@ class DownloadWorker(
CoroutineScope(Dispatchers.IO).launch {
if (logDownloads) {
logRepo.update(line, logItem.id)
- logString.append("$line\n")
}
+ logString.append("$line\n")
}
}
}.onSuccess {
@@ -378,17 +378,17 @@ class DownloadWorker(
FileUtil.deleteFile("${cachePath}/${infoJsonName}.info.json")
}
- if(it.message != null){
- if (logDownloads){
- logRepo.update(it.message!!, logItem.id)
- }else{
- logString.append("${it.message}\n")
- logItem.content = logString.toString()
- val logID = logRepo.insert(logItem)
- downloadItem.logID = logID
- }
+
+ if (logDownloads){
+ logRepo.update(it.message ?: "", logItem.id)
+ }else{
+ logString.append("${it.message ?: it.stackTraceToString()}\n")
+ logItem.content = logString.toString()
+ val logID = logRepo.insert(logItem)
+ downloadItem.logID = logID
}
+
tempFileDir.delete()
Log.e(TAG, context.getString(R.string.failed_download), it)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8152f91f..a7ec95a3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -481,4 +481,6 @@
PO Token
Web Client PO Token
Reverse
+ Delete subtitle files after embedding
+ When using both Embed Subtitles and Write Subtitles, don\'t keep the subtitle files after embedding
diff --git a/app/src/main/res/xml/processing_preferences.xml b/app/src/main/res/xml/processing_preferences.xml
index 09fccb88..09870673 100644
--- a/app/src/main/res/xml/processing_preferences.xml
+++ b/app/src/main/res/xml/processing_preferences.xml
@@ -179,9 +179,9 @@
android:widgetLayout="@layout/preferece_material_switch"
app:defaultValue="true"
app:icon="@drawable/ic_subtitles"
- app:key="write_subs_when_embed_subs"
- app:summary="@string/write_subs_when_embed_subs_summary"
- app:title="@string/write_subs_when_embed_subs" />
+ app:key="no_keep_subs"
+ app:summary="@string/no_keep_subs_summary"
+ app:title="@string/no_keep_subs" />