Fix downloadLocation scheme

This commit is contained in:
tarsin committed 2023-06-02 14:54:15 +08:00
1 parent f284ac71b5
commit 06c3e3c8a0
2 files changed
+17 -22

No files matched your search

@@ -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")
@@ -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()
}