diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt index ee3cca31d..53c5fb3c9 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt @@ -44,7 +44,7 @@ class ReadRssActivity : VMBaseActivity private val saveImage = registerForActivityResult(HandleFileContract()) { it.uri?.let { uri -> ACache.get(this).put(imagePathKey, uri.toString()) - viewModel.saveImage(webPic, uri.toString()) + viewModel.saveImage(webPic, uri) } } @@ -155,7 +155,7 @@ class ReadRssActivity : VMBaseActivity if (path.isNullOrEmpty()) { selectSaveFolder() } else { - viewModel.saveImage(webPic, path) + viewModel.saveImage(webPic, Uri.parse(path)) } } diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt index 41be659fa..3e3b776dc 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt @@ -131,19 +131,19 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application), } } - fun saveImage(webPic: String?, path: String) { + fun saveImage(webPic: String?, uri: Uri) { webPic ?: return execute { val fileName = "${AppConst.fileNameFormat.format(Date(System.currentTimeMillis()))}.jpg" webData2bitmap(webPic)?.let { biteArray -> - if (path.isContentScheme()) { - val uri = Uri.parse(path) + if (uri.isContentScheme()) { DocumentFile.fromTreeUri(context, uri)?.let { doc -> DocumentUtils.createFileIfNotExist(doc, fileName) ?.writeBytes(context, biteArray) } } else { - val file = FileUtils.createFileIfNotExist(File(path), fileName) + val file = + FileUtils.createFileIfNotExist(File(uri.path ?: uri.toString()), fileName) file.writeBytes(biteArray) } } ?: throw Throwable("NULL")