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