diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 0857fa339..891e1c30a 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -299,7 +299,7 @@ public class DownloadDialog extends DialogFragment } dialogBinding.fileName.setText(FilenameUtils.createFilename(getContext(), - currentInfo.getName())); + getFileName())); selectedAudioIndex = ListHelper.getDefaultAudioFormat(getContext(), getWrappedAudioStreams().getStreamsList()); @@ -612,7 +612,7 @@ public class DownloadDialog extends DialogFragment } private void onItemSelectedSetFileName() { - final String fileName = FilenameUtils.createFilename(getContext(), currentInfo.getName()); + final String fileName = FilenameUtils.createFilename(getContext(), getFileName()); final String prevFileName = Optional.ofNullable(dialogBinding.fileName.getText()) .map(Object::toString) .orElse(""); @@ -743,7 +743,24 @@ public class DownloadDialog extends DialogFragment final String str = Objects.requireNonNull(dialogBinding.fileName.getText()).toString() .trim(); - return FilenameUtils.createFilename(context, str.isEmpty() ? currentInfo.getName() : str); + return FilenameUtils.createFilename(context, str.isEmpty() ? getFileName() : str); + } + + private String getFileName() { + final SharedPreferences sharedPreferences = PreferenceManager + .getDefaultSharedPreferences(context); + + final boolean includeUploader = sharedPreferences.getBoolean( + context.getString(R.string.settings_file_name_include_uploader_key), false); + + final String name = currentInfo.getName(); + if (includeUploader) { + final String uploader = currentInfo.getUploaderName(); + if (uploader != null && !uploader.isEmpty()) { + return name + " - " + uploader; + } + } + return name; } private void showFailedDialog(@StringRes final int msg) { diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index b99209f0f..dc1606ba6 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -118,6 +118,8 @@ Erlaubte Zeichen im Dateinamen Ungültige Zeichen werden durch dieses Zeichen ersetzt Ersetzungszeichen + Name des Uploaders an den Dateinamen anhängen + Uploader im Dateinamen Buchstaben und Zahlen Abonnieren Abonniert diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 352e4cec1..e97475911 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -432,6 +432,7 @@ file_rename_charset file_replacement_character _ + file_include_uploader_name CHARSET_LETTERS_AND_DIGITS diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 147c88938..9e134a5bd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -365,6 +365,8 @@ Allowed characters in filenames Invalid characters are replaced with this value Replacement character + Append uploader name to filename + Uploader in filename Letters and digits Most special characters diff --git a/app/src/main/res/xml/download_settings.xml b/app/src/main/res/xml/download_settings.xml index 27513d259..75278b4b2 100644 --- a/app/src/main/res/xml/download_settings.xml +++ b/app/src/main/res/xml/download_settings.xml @@ -53,6 +53,14 @@ app:singleLineTitle="false" app:iconSpaceReserved="false" /> + +