From 06c3e3c8a0dbb1a41253f0dab35c4f2670b819ec Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 2 Jun 2023 14:54:15 +0800 Subject: [PATCH] Fix downloadLocation scheme --- .../main/java/com/hippo/ehviewer/Settings.kt | 35 ++++++++----------- .../ehviewer/ui/fragment/DownloadFragment.kt | 4 +-- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.kt b/app/src/main/java/com/hippo/ehviewer/Settings.kt index a8fcef6f5..7e8b977ff 100755 --- a/app/src/main/java/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/java/com/hippo/ehviewer/Settings.kt @@ -163,28 +163,23 @@ object Settings : DefaultPreferences() { val thumbSize: Int get() = dp2pix(appCtx, thumbSizeDp.toFloat()) - val downloadLocation: UniFile? - get() { - val dir: UniFile? - val builder = Uri.Builder() - builder.scheme(getString(KEY_DOWNLOAD_SAVE_SCHEME, null)) - builder.encodedAuthority(getString(KEY_DOWNLOAD_SAVE_AUTHORITY, null)) - builder.encodedPath(getString(KEY_DOWNLOAD_SAVE_PATH, null)) - builder.encodedQuery(getString(KEY_DOWNLOAD_SAVE_QUERY, null)) - builder.encodedFragment(getString(KEY_DOWNLOAD_SAVE_FRAGMENT, null)) - dir = UniFile.fromUri(appCtx, builder.build()) - return dir ?: UniFile.fromFile(AppConfig.getDefaultDownloadDir()) + var downloadLocation: UniFile + get() = Uri.Builder().apply { + scheme(getString(KEY_DOWNLOAD_SAVE_SCHEME, null)) + encodedAuthority(getString(KEY_DOWNLOAD_SAVE_AUTHORITY, null)) + encodedPath(getString(KEY_DOWNLOAD_SAVE_PATH, null)) + encodedQuery(getString(KEY_DOWNLOAD_SAVE_QUERY, null)) + encodedFragment(getString(KEY_DOWNLOAD_SAVE_FRAGMENT, null)) + }.build().let { UniFile.fromUri(appCtx, it) } ?: UniFile.fromFile(AppConfig.getDefaultDownloadDir())!! + set(value) { + val uri = value.uri + putString(KEY_DOWNLOAD_SAVE_SCHEME, uri.scheme) + putString(KEY_DOWNLOAD_SAVE_AUTHORITY, uri.encodedAuthority) + putString(KEY_DOWNLOAD_SAVE_PATH, uri.encodedPath) + putString(KEY_DOWNLOAD_SAVE_QUERY, uri.encodedQuery) + putString(KEY_DOWNLOAD_SAVE_FRAGMENT, uri.encodedFragment) } - fun putDownloadLocation(location: UniFile) { - val uri = location.uri - putString(KEY_DOWNLOAD_SAVE_SCHEME, uri.scheme) - putString(KEY_DOWNLOAD_SAVE_AUTHORITY, uri.encodedAuthority) - putString(KEY_DOWNLOAD_SAVE_PATH, uri.encodedPath) - putString(KEY_DOWNLOAD_SAVE_QUERY, uri.encodedQuery) - putString(KEY_DOWNLOAD_SAVE_FRAGMENT, uri.encodedFragment) - } - var favCat by stringArrayPref("fav_cat", 10, "Favorites") var favCount by intArrayPref("fav_count", 10) var archivePasswds by stringSetOrNullPref("archive_passwds") diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.kt index 1bdeffa2c..f1723e4da 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.kt @@ -43,7 +43,7 @@ class DownloadFragment : BasePreferenceFragment() { ) val uniFile = UniFile.fromTreeUri(activity, treeUri) if (uniFile != null) { - Settings.putDownloadLocation(uniFile) + Settings.downloadLocation = uniFile lifecycleScope.launchNonCancellable { keepNoMediaFileStatus() } @@ -99,7 +99,7 @@ class DownloadFragment : BasePreferenceFragment() { .setNeutralButton(R.string.reset_download_location) { _, _ -> val uniFile = UniFile.fromFile(AppConfig.getDefaultDownloadDir()) if (uniFile != null) { - Settings.putDownloadLocation(uniFile) + Settings.downloadLocation = uniFile lifecycleScope.launchNonCancellable { keepNoMediaFileStatus() }