From 3978abea87528cb90791b017bd5beae3729f9e88 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Wed, 17 Apr 2024 17:29:42 +0800 Subject: [PATCH] Fix UniFile.fromUri() for 2 path segments tree uri --- .../com/hippo/ehviewer/ui/settings/DownloadScreen.kt | 1 + .../kotlin/com/hippo/unifile/DocumentsContractApi21.kt | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt index 5b978066b..59c5478a6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt @@ -94,6 +94,7 @@ fun DownloadScreen(navigator: DestinationsNavigator) { keepNoMediaFileStatus(downloadLocationState) } }.onFailure { + logcat(it) launchSnackBar(cannotGetDownloadLocation) } } diff --git a/app/src/main/kotlin/com/hippo/unifile/DocumentsContractApi21.kt b/app/src/main/kotlin/com/hippo/unifile/DocumentsContractApi21.kt index 245d8c38b..3829c6372 100644 --- a/app/src/main/kotlin/com/hippo/unifile/DocumentsContractApi21.kt +++ b/app/src/main/kotlin/com/hippo/unifile/DocumentsContractApi21.kt @@ -33,10 +33,15 @@ object DocumentsContractApi21 { fun createDirectory(self: Uri, displayName: String) = createFile(self, DocumentsContract.Document.MIME_TYPE_DIR, displayName) - fun prepareTreeUri(treeUri: Uri?): Uri { + fun prepareTreeUri(treeUri: Uri): Uri { + val documentId = if (treeUri.pathSegments.size == 2) { + DocumentsContract.getTreeDocumentId(treeUri) + } else { + DocumentsContract.getDocumentId(treeUri) + } return DocumentsContract.buildDocumentUriUsingTree( treeUri, - DocumentsContract.getDocumentId(treeUri), + documentId, ) }