diff --git a/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/DownloadViewModel.kt b/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/DownloadViewModel.kt index 5c06d216..0f2b4303 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/DownloadViewModel.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/DownloadViewModel.kt @@ -532,19 +532,12 @@ class DownloadViewModel(private val application: Application) : AndroidViewModel fun getFormat(formats: List, type: Type, url: String? = null) : Format { - val sortFormats = sharedPreferences.getBoolean("use_format_sorting", false) - when(type) { Type.audio -> { return cloneFormat ( try { val theFormats = formats.filter { it.vcodec.isBlank() || it.vcodec == "none" } - - if (sortFormats) { - FormatUtil(application).sortAudioFormats(theFormats).first() - }else { - theFormats.first() - } + FormatUtil(application).sortAudioFormats(theFormats).first() }catch (e: Exception){ formatUtil.getGenericAudioFormats(resources).first() } @@ -558,11 +551,7 @@ class DownloadViewModel(private val application: Application) : AndroidViewModel formatUtil.getGenericVideoFormats(resources).sortedByDescending { it.filesize } } - if (sortFormats) { - FormatUtil(application).sortVideoFormats(theFormats).first() - }else { - theFormats.first() - } + FormatUtil(application).sortVideoFormats(theFormats).first() }catch (e: Exception){ formatUtil.getGenericVideoFormats(resources).first() } diff --git a/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt index 3c04bcfa..6a160645 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt @@ -30,31 +30,49 @@ class FormatUtil(private var context: Context) { @SuppressLint("RestrictedApi") fun getAudioFormatImportance() : List { - val itemValues = context.getStringArray(R.array.format_importance_audio_values).toMutableList() - val orderPreferences = sharedPreferences.getString("format_importance_audio", itemValues.joinToString(","))!!.split(",").toMutableList() - if (preferSmallerFormats) { - orderPreferences.remove("file_size") - orderPreferences.add(0,"smallsize") - } + if (sharedPreferences.getBoolean("use_format_sorting", false)) { + val itemValues = context.getStringArray(R.array.format_importance_audio_values).toMutableList() + val orderPreferences = sharedPreferences.getString("format_importance_audio", itemValues.joinToString(","))!!.split(",").toMutableList() + if (preferSmallerFormats) { + orderPreferences.remove("file_size") + orderPreferences.add(0,"smallsize") + } - val preferContainerOverCodec = sharedPreferences.getBoolean("prefer_container_over_codec_audio", false) - if(preferContainerOverCodec) { - orderPreferences.remove("codec") - } + val preferContainerOverCodec = sharedPreferences.getBoolean("prefer_container_over_codec_audio", false) + if(preferContainerOverCodec) { + orderPreferences.remove("codec") + } - return orderPreferences + return orderPreferences + }else { + val formatImportance = mutableListOf("codec", "container", "language") + if (sharedPreferences.getBoolean("prefer_smaller_formats", false)) { + formatImportance.add(0, "smallsize") + } + + return formatImportance + } } @SuppressLint("RestrictedApi") fun getVideoFormatImportance() : List { - val itemValues = context.getStringArray(R.array.format_importance_video_values).toList() - val orderPreferences = sharedPreferences.getString("format_importance_video", itemValues.joinToString(","))!!.split(",").toMutableList() - if (preferSmallerFormats) { - orderPreferences.remove("file_size") - orderPreferences.add(0, "smallsize") - } + if (sharedPreferences.getBoolean("use_format_sorting", false)) { + val itemValues = context.getStringArray(R.array.format_importance_video_values).toList() + val orderPreferences = sharedPreferences.getString("format_importance_video", itemValues.joinToString(","))!!.split(",").toMutableList() + if (preferSmallerFormats) { + orderPreferences.remove("file_size") + orderPreferences.add(0, "smallsize") + } - return orderPreferences + return orderPreferences + }else { + val formatImportance = mutableListOf("resolution", "codec", "container") + if (sharedPreferences.getBoolean("prefer_smaller_formats", false)) { + formatImportance.add(0, "smallsize") + } + + return formatImportance + } } 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 46e2f407..5f56b949 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 @@ -822,16 +822,10 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co val ext = downloadItem.container val formatSorting = mutableListOf() - val formatImportance: MutableList + val formatImportance = formatUtil.getAudioFormatImportance() val useCustomFormatSorting = sharedPreferences.getBoolean("use_format_sorting", false) if (useCustomFormatSorting) { formatSorting.add("hasaud") - formatImportance = formatUtil.getAudioFormatImportance().toMutableList() - }else{ - formatImportance = mutableListOf("codec", "container", "language") - if (sharedPreferences.getBoolean("prefer_smaller_formats", false)) { - formatImportance.add(0, "smallsize") - } } for(order in formatImportance) { @@ -1126,19 +1120,8 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } - val preferredLanguage = sharedPreferences.getString("audio_language","")!! - - val formatImportance : MutableList + val formatImportance = formatUtil.getVideoFormatImportance().toMutableList() val formatSorting = mutableListOf() - val useCustomFormatSorting = sharedPreferences.getBoolean("use_format_sorting", false) - if (useCustomFormatSorting) { - formatImportance = formatUtil.getVideoFormatImportance().toMutableList() - }else { - formatImportance = mutableListOf("resolution", "codec", "container") - if (sharedPreferences.getBoolean("prefer_smaller_formats", false)) { - formatImportance.add(0, "smallsize") - } - } for(order in formatImportance) { when(order) {