diff --git a/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java b/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java index daa7158c..d0796bfa 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java +++ b/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java @@ -311,6 +311,8 @@ public class DownloaderService extends Service { } request.addOption("--no-mtime"); + video.setTitle(video.getTitle().replaceAll(":|'|\"|[.]|,", "")); + video.setAuthor(video.getAuthor().replaceAll(":|'|\"|[.]|,", "")); if (type.equals("audio")) { request.addOption("-x"); @@ -355,13 +357,16 @@ public class DownloaderService extends Service { String videoQuality = video.getVideoQuality(); if (videoQuality == null) videoQuality = sharedPreferences.getString("video_quality", ""); String formatArgument = "bestvideo+bestaudio/best"; - if (!videoQuality.isEmpty() && !videoQuality.equals("Best Quality")) { + if(videoQuality.equals("Worst Quality")){ + formatArgument = "worst"; + }else if (!videoQuality.isEmpty() && !videoQuality.equals("Best Quality")) { formatArgument = "bestvideo[height<="+videoQuality.substring(0, videoQuality.length()-1)+"]+bestaudio/best"; } + request.addOption("-f", formatArgument); String format = video.getVideoFormat(); if (format == null) format = sharedPreferences.getString("video_format", ""); - request.addOption("--merge-output-format", format); + if(!format.equals("DEFAULT")) request.addOption("--merge-output-format", format); if(!format.equals("webm")){ boolean embedThumb = sharedPreferences.getBoolean("embed_thumbnail", false); @@ -369,7 +374,7 @@ public class DownloaderService extends Service { request.addOption("--embed-thumbnail"); } } - request.addOption("-o", youtubeDLDir.getAbsolutePath() + "/"+video.getTitle()+"."+format); + request.addOption("-o", youtubeDLDir.getAbsolutePath() + "/"+video.getAuthor() + " - " + video.getTitle()+"."+format); } Disposable disposable = Observable.fromCallable(() -> YoutubeDL.getInstance().execute(request, downloadProcessID, callback)) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/page/HomeFragment.java b/app/src/main/java/com/deniscerri/ytdlnis/page/HomeFragment.java index df3957b5..dfc24a0a 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/page/HomeFragment.java +++ b/app/src/main/java/com/deniscerri/ytdlnis/page/HomeFragment.java @@ -635,6 +635,10 @@ public class HomeFragment extends Fragment implements HomeRecyclerViewAdapter.On String[] audioFormats = context.getResources().getStringArray(R.array.music_formats); TextInputLayout audioFormat = bottomSheet.findViewById(R.id.audio_format); + AutoCompleteTextView autoCompleteTextView = bottomSheet.findViewById(R.id.audio_format_textview); + String preference = sharedPreferences.getString("audio_format", "mp3"); + autoCompleteTextView.setText(preference, false); + ((AutoCompleteTextView)audioFormat.getEditText()).setOnItemClickListener((adapterView, view, i, l) -> { vid.setAudioFormat(audioFormats[i]); editor.putString("audio_format", vid.getAudioFormat()); @@ -664,6 +668,10 @@ public class HomeFragment extends Fragment implements HomeRecyclerViewAdapter.On String[] videoQualities = context.getResources().getStringArray(R.array.video_quality); TextInputLayout videoFormat = bottomSheet.findViewById(R.id.video_format); + AutoCompleteTextView autoCompleteTextView = bottomSheet.findViewById(R.id.video_format_textview); + String preference = sharedPreferences.getString("video_format", "webm"); + autoCompleteTextView.setText(preference, false); + ((AutoCompleteTextView)videoFormat.getEditText()).setOnItemClickListener((adapterView, view, i, l) -> { vid.setVideoFormat(videoFormats[i]); editor.putString("video_format", vid.getVideoFormat()); @@ -671,6 +679,9 @@ public class HomeFragment extends Fragment implements HomeRecyclerViewAdapter.On }); TextInputLayout videoQuality = bottomSheet.findViewById(R.id.video_quality); + autoCompleteTextView = bottomSheet.findViewById(R.id.video_quality_textview); + preference = sharedPreferences.getString("video_quality", "Best Quality"); + autoCompleteTextView.setText(preference, false); ((AutoCompleteTextView)videoQuality.getEditText()).setOnItemClickListener((adapterView, view, i, l) -> { vid.setVideoQuality(videoQualities[i]); editor.putString("video_quality", vid.getVideoQuality()); diff --git a/app/src/main/res/layout/fragment_more.xml b/app/src/main/res/layout/fragment_more.xml index 469c74d4..bdb563f7 100644 --- a/app/src/main/res/layout/fragment_more.xml +++ b/app/src/main/res/layout/fragment_more.xml @@ -43,7 +43,7 @@ tools:ignore="MissingConstraints"> diff --git a/app/src/main/res/layout/home_download_audio_bottom_sheet.xml b/app/src/main/res/layout/home_download_audio_bottom_sheet.xml index 823b506c..aa4c1211 100644 --- a/app/src/main/res/layout/home_download_audio_bottom_sheet.xml +++ b/app/src/main/res/layout/home_download_audio_bottom_sheet.xml @@ -95,6 +95,7 @@ android:hint="@string/audio_format"> + DEFAULT mp4 mkv webm @@ -24,6 +25,7 @@ 720p 480p 360p + Worst Quality \ 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 0c62a1d0..72ebc0ae 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -124,7 +124,7 @@ android:entryValues="@array/video_formats" android:icon="@drawable/ic_code" app:key="video_format" - app:summary="mkv" + app:summary="DEFAULT" app:title="@string/video_format" /> diff --git a/build.gradle b/build.gradle index 4402be6e..7c5a4579 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { def versionMajor = 1 def versionMinor = 4 -def versionPatch = 3 +def versionPatch = 5 def versionBuild = 0 // bump for dogfood builds, public betas, etc. ext {