From 61b5b8aa7320cbf5b33b233199a79690c508b396 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 16 Jan 2024 15:17:59 +0200 Subject: [PATCH] Fixes --- .../kotatsu/local/data/importer/SingleMangaImporter.kt | 2 +- .../org/koitharu/kotatsu/local/ui/ImportDialogFragment.kt | 8 ++++++++ .../org/koitharu/kotatsu/reader/domain/PageLoader.kt | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/importer/SingleMangaImporter.kt b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/importer/SingleMangaImporter.kt index b7442c380..02ef9409c 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/importer/SingleMangaImporter.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/importer/SingleMangaImporter.kt @@ -47,7 +47,7 @@ class SingleMangaImporter @Inject constructor( val contentResolver = storageManager.contentResolver val name = contentResolver.resolveName(uri) ?: throw IOException("Cannot fetch name from uri: $uri") if (!hasCbzExtension(name)) { - throw UnsupportedFileException("Unsupported file on $uri") + throw UnsupportedFileException("Unsupported file $name on $uri") } val dest = File(getOutputDir(), name) runInterruptible { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/local/ui/ImportDialogFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/local/ui/ImportDialogFragment.kt index 933348cc8..514b6ad7d 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/local/ui/ImportDialogFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/local/ui/ImportDialogFragment.kt @@ -13,9 +13,14 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.ui.AlertDialogFragment import org.koitharu.kotatsu.core.util.ext.tryLaunch import org.koitharu.kotatsu.databinding.DialogImportBinding +import org.koitharu.kotatsu.local.data.LocalStorageManager +import javax.inject.Inject class ImportDialogFragment : AlertDialogFragment(), View.OnClickListener { + @Inject + lateinit var storageManager: LocalStorageManager + private val importFileCall = registerForActivityResult(ActivityResultContracts.OpenMultipleDocuments()) { startImport(it) } @@ -55,6 +60,9 @@ class ImportDialogFragment : AlertDialogFragment(), View.On if (uris.isEmpty()) { return } + uris.forEach { + storageManager.takePermissions(it) + } val ctx = requireContext() ImportWorker.start(ctx, uris) Toast.makeText(ctx, R.string.import_will_start_soon, Toast.LENGTH_LONG).show() diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/PageLoader.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/PageLoader.kt index c7fa16972..42e5ee65a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/PageLoader.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/PageLoader.kt @@ -201,7 +201,7 @@ class PageLoader @Inject constructor( private suspend fun loadPageImpl(page: MangaPage, progress: MutableStateFlow): Uri = semaphore.withPermit { val pageUrl = getPageUrl(page) - check(pageUrl.isNotBlank()) { "Cannot obtain full image url" } + check(pageUrl.isNotBlank()) { "Cannot obtain full image url for $page" } val uri = Uri.parse(pageUrl) return if (uri.isZipUri()) { if (uri.scheme == URI_SCHEME_ZIP) {