From 74e35445265098ae87277236331a2651dba3cc7f Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Mon, 22 Sep 2025 20:11:55 +0200 Subject: [PATCH] fix crash when parsing null subtitles in yt-dlp --- .../ytdl/ui/more/settings/MainSettingsFragment.kt | 2 +- .../com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt | 9 ++++++--- app/src/main/res/layout/search_suggestion_item.xml | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) 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 8804b6ea..700544d7 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 @@ -492,7 +492,7 @@ class MainSettingsFragment : PreferenceFragmentCompat() { val builder = MaterialAlertDialogBuilder(requireContext()) builder.setTitle(getString(R.string.restore)) - builder.setMessage("${getString(R.string.restore_complete)}\n$restoreDataMessage") + builder.setMessage("${getString(R.string.restore_complete)}\n\n$restoreDataMessage") builder.setCancelable(false) builder.setPositiveButton( getString(R.string.ok) 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 bf689c5c..e4dac5f2 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 @@ -261,7 +261,9 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co val availableSubtitles = mutableListOf() if (jsonObject.has("subtitles")) { - availableSubtitles.addAll(jsonObject.getJSONObject("subtitles").keys().asSequence().toList()) + runCatching { + availableSubtitles.addAll(jsonObject.getJSONObject("subtitles").keys().asSequence().toList()) + } } val res = ResultItem(0, @@ -795,7 +797,8 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co if (aria2) { request.addOption("--downloader", "libaria2c.so") //request.addOption("--external-downloader-args", "aria2c:\"--summary-interval=1\"") - request.addOption("--external-downloader-args", "aria2c:\"--check-certificate=false\"") + request.addOption("--no-check-certificates") + //request.addOption("--external-downloader-args", "aria2c:\"--check-certificate=false\"") } val concurrentFragments = sharedPreferences.getInt("concurrent_fragments", 1) @@ -831,7 +834,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } } - if (sharedPreferences.getBoolean("no_check_certificates", false)) { + if (sharedPreferences.getBoolean("no_check_certificates", false) && !request.toString().contains("--no-check-certificates")) { request.addOption("--no-check-certificates") } diff --git a/app/src/main/res/layout/search_suggestion_item.xml b/app/src/main/res/layout/search_suggestion_item.xml index b0e99751..56978a5a 100644 --- a/app/src/main/res/layout/search_suggestion_item.xml +++ b/app/src/main/res/layout/search_suggestion_item.xml @@ -27,7 +27,7 @@ android:ellipsize="end" android:focusable="true" android:gravity="center_vertical" - android:maxLines="1" + android:maxLines="2" android:paddingEnd="20dp" android:textSize="16sp" android:textStyle="bold"