New setting to include uploader's name in proposed downloaded file name

This commit is contained in:
malania02 2025-11-11 00:20:26 +01:00
parent f836f5e75d
commit 0cddd0e859
5 changed files with 33 additions and 3 deletions

View File

@ -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) {

View File

@ -118,6 +118,8 @@
<string name="settings_file_charset_title">Erlaubte Zeichen im Dateinamen</string>
<string name="settings_file_replacement_character_summary">Ungültige Zeichen werden durch dieses Zeichen ersetzt</string>
<string name="settings_file_replacement_character_title">Ersetzungszeichen</string>
<string name="settings_file_name_include_uploader_key_summary">Name des Uploaders an den Dateinamen anhängen</string>
<string name="settings_file_name_include_uploader_key_title">Uploader im Dateinamen</string>
<string name="charset_letters_and_digits">Buchstaben und Zahlen</string>
<string name="subscribe_button_title">Abonnieren</string>
<string name="subscribed_button_title">Abonniert</string>

View File

@ -432,6 +432,7 @@
<string name="settings_file_charset_key">file_rename_charset</string>
<string name="settings_file_replacement_character_key">file_replacement_character</string>
<string name="settings_file_replacement_character_default_value">_</string>
<string name="settings_file_name_include_uploader_key">file_include_uploader_name</string>
<string name="charset_letters_and_digits_value">CHARSET_LETTERS_AND_DIGITS</string>

View File

@ -365,6 +365,8 @@
<string name="settings_file_charset_title">Allowed characters in filenames</string>
<string name="settings_file_replacement_character_summary">Invalid characters are replaced with this value</string>
<string name="settings_file_replacement_character_title">Replacement character</string>
<string name="settings_file_name_include_uploader_key_summary">Append uploader name to filename</string>
<string name="settings_file_name_include_uploader_key_title">Uploader in filename</string>
<string name="charset_letters_and_digits">Letters and digits</string>
<string name="charset_most_special_characters">Most special characters</string>
<!-- About -->

View File

@ -53,6 +53,14 @@
app:singleLineTitle="false"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="@string/settings_file_name_include_uploader_key"
android:summary="@string/settings_file_name_include_uploader_key_summary"
android:title="@string/settings_file_name_include_uploader_key_title"
app:singleLineTitle="false"
app:iconSpaceReserved="false" />
<ListPreference
android:defaultValue="@string/downloads_maximum_retry_default"
android:entries="@array/downloads_maximum_retry_list"