diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f988cad4e..da94ce43d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -356,6 +356,8 @@ + + @@ -372,14 +374,13 @@ - - + - - + - - + + + diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 540cc7756..2da67c7c8 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -501,7 +501,7 @@ object ReadBook : CoroutineScope by MainScope() { interface CallBack { fun upMenuView() - fun loadChapterList(book: Book, callback: (() -> Unit)? = null) + fun loadChapterList(book: Book) fun upContent( relativePosition: Int = 0, diff --git a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt index 877f6ae05..acfdd69ab 100644 --- a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt +++ b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt @@ -154,7 +154,7 @@ object LocalBook { val bookUrl: String val updateTime: Long //这个变量不要修改,否则会导致读取不到缓存 - val fileName = (if (uri.isContentScheme()) { + val fileName = if (uri.isContentScheme()) { bookUrl = uri.toString() val doc = DocumentFile.fromSingleUri(appCtx, uri)!! updateTime = doc.lastModified() @@ -164,7 +164,7 @@ object LocalBook { val file = File(bookUrl) updateTime = file.lastModified() file.name - }) + } var book = appDb.bookDao.getBook(bookUrl) if (book == null) { val nameAuthor = analyzeNameAuthor(fileName) diff --git a/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt b/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt index cf3b96bd6..bd3e04b41 100644 --- a/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt +++ b/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt @@ -1,6 +1,7 @@ package io.legado.app.ui.association import android.net.Uri +import android.os.Build import android.os.Bundle import androidx.activity.viewModels import androidx.documentfile.provider.DocumentFile @@ -104,7 +105,9 @@ class FileAssociationActivity : } } intent.data?.let { data -> - if (!data.isContentScheme()) { + if (data.isContentScheme()) { + viewModel.dispatchIndent(data) + } else if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { PermissionsCompat.Builder(this) .addPermissions(*Permissions.Group.STORAGE) .rationale(R.string.tip_perm_request_storage) @@ -112,7 +115,7 @@ class FileAssociationActivity : viewModel.dispatchIndent(data) }.request() } else { - viewModel.dispatchIndent(data) + toastOnUi("由于安卓系统限制,请使用系统文件管理重新打开。") } } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 6b700b8bc..11558542d 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -750,9 +750,9 @@ class ReadBookActivity : BaseReadBookActivity(), } } - override fun loadChapterList(book: Book, callback: (() -> Unit)?) { + override fun loadChapterList(book: Book) { ReadBook.upMsg(getString(R.string.toc_updateing)) - viewModel.loadChapterList(book, callback) + viewModel.loadChapterList(book) } /** diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index fa2e820c4..aeb31f6fc 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -134,7 +134,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { /** * 加载目录 */ - fun loadChapterList(book: Book, callback: (() -> Unit)? = null) { + fun loadChapterList(book: Book) { if (book.isLocal) { execute { LocalBook.getChapterList(book).let { @@ -156,8 +156,6 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { ReadBook.upMsg("LoadTocError:${it.localizedMessage}") } } - }.onFinally { - callback?.invoke() } } else { ReadBook.bookSource?.let { @@ -177,8 +175,6 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { ReadBook.loadContent(resetPageOffset = true) }.onError { ReadBook.upMsg(context.getString(R.string.error_load_toc)) - }.onFinally { - callback?.invoke() } } }