Avoid crashing if invalid download and backup location is set

Fixes #8252
This commit is contained in:
arkon 2022-10-20 22:34:27 -04:00
parent 824d5e22bc
commit a8ca7b690f
5 changed files with 9 additions and 7 deletions

View File

@ -205,7 +205,7 @@ class AboutScreen : Screen {
BuildConfig.DEBUG -> {
"Debug ${BuildConfig.COMMIT_SHA}".let {
if (withBuildDate) {
"$it (${getFormattedBuildTime()}"
"$it (${getFormattedBuildTime()})"
} else {
it
}

View File

@ -380,8 +380,10 @@ class SettingsBackupScreen : SearchableSettings {
Preference.PreferenceItem.TextPreference(
title = stringResource(R.string.pref_backup_directory),
subtitle = remember(backupDir) {
UniFile.fromUri(context, backupDir.toUri()).filePath!! + "/automatic"
},
(UniFile.fromUri(context, backupDir.toUri())?.filePath)?.let {
"$it/automatic"
}
} ?: stringResource(R.string.invalid_location, backupDir),
onClick = {
try {
pickBackupLocation.launch(null)

View File

@ -102,8 +102,8 @@ class SettingsDownloadScreen : SearchableSettings {
pref = currentDirPref,
title = stringResource(R.string.pref_download_directory),
subtitle = remember(currentDir) {
UniFile.fromUri(context, currentDir.toUri()).filePath!!
},
UniFile.fromUri(context, currentDir.toUri())?.filePath
} ?: stringResource(R.string.invalid_location, currentDir),
entries = mapOf(
defaultDirPair,
customDirEntryKey to stringResource(R.string.custom_dir),

View File

@ -57,7 +57,7 @@ class DownloadProvider(private val context: Context) {
.createDirectory(getMangaDirName(mangaTitle))
} catch (e: Throwable) {
logcat(LogPriority.ERROR, e) { "Invalid download directory" }
throw Exception(context.getString(R.string.invalid_download_dir))
throw Exception(context.getString(R.string.invalid_location, downloadsDir))
}
}

View File

@ -422,6 +422,7 @@
<string name="pref_remove_bookmarked_chapters">Allow deleting bookmarked chapters</string>
<string name="pref_remove_exclude_categories">Excluded categories</string>
<string name="custom_dir">Custom location</string>
<string name="invalid_location">Invalid location: %s</string>
<string name="disabled">Disabled</string>
<string name="last_read_chapter">Last read chapter</string>
<string name="second_to_last">Second to last read chapter</string>
@ -658,7 +659,6 @@
<string name="error_saving_cover">Error saving cover</string>
<string name="error_sharing_cover">Error sharing cover</string>
<string name="confirm_delete_chapters">Are you sure you want to delete the selected chapters?</string>
<string name="invalid_download_dir">Invalid download location</string>
<string name="chapter_settings">Chapter settings</string>
<string name="confirm_set_chapter_settings">Are you sure you want to save these settings as default?</string>
<string name="also_set_chapter_settings_for_library">Also apply to all manga in my library</string>