From 98083ac92bf38c300bb7ab9a5ae9d449c2ba28e2 Mon Sep 17 00:00:00 2001 From: Xwite <82232510+Xwite@users.noreply.github.com> Date: Sun, 2 Oct 2022 17:54:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BD=AF=E4=BB=B6=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E8=AF=B7=E6=B1=82=E8=AE=BE=E7=BD=AE=E4=B9=A6=E7=B1=8D?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=BD=8D=E7=BD=AE=20(#2366)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/storageHelp.md | 2 ++ .../ui/association/FileAssociationActivity.kt | 2 +- .../io/legado/app/ui/main/MainActivity.kt | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 app/src/main/assets/storageHelp.md diff --git a/app/src/main/assets/storageHelp.md b/app/src/main/assets/storageHelp.md new file mode 100644 index 000000000..4f23d2a03 --- /dev/null +++ b/app/src/main/assets/storageHelp.md @@ -0,0 +1,2 @@ +* 由于安卓的存储访问限制,阅读需要设置**公共目录下的子目录**来实现书籍拷贝、下载 +* 如不设置,可能影响本地书籍、webDav书籍的正常阅读 \ No newline at end of file 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 26d986d47..47000187a 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 @@ -121,7 +121,7 @@ class FileAssociationActivity : val treeUriStr = AppConfig.defaultBookTreeUri if (treeUriStr.isNullOrEmpty()) { localBookTreeSelect.launch { - title = "选择保存书籍的文件夹" + title = getString(R.string.select_book_folder) mode = HandleFileContract.DIR_SYS } } else { diff --git a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt index 26d0bcd8c..1ec0cc648 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt @@ -31,6 +31,7 @@ import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.elevation import io.legado.app.lib.theme.primaryColor import io.legado.app.service.BaseReadAloudService +import io.legado.app.ui.document.HandleFileContract import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment import io.legado.app.ui.main.bookshelf.style1.BookshelfFragment1 import io.legado.app.ui.main.bookshelf.style2.BookshelfFragment2 @@ -70,6 +71,12 @@ class MainActivity : VMBaseActivity(), private var bottomMenuCount = 4 private val realPositions = arrayOf(idBookshelf, idExplore, idRss, idMy) + private val localBookTreeSelect = registerForActivityResult(HandleFileContract()) { + it.uri?.let { treeUri -> + AppConfig.defaultBookTreeUri = treeUri.toString() + } + } + override fun onActivityCreated(savedInstanceState: Bundle?) { upBottomMenu() binding.run { @@ -87,6 +94,8 @@ class MainActivity : VMBaseActivity(), super.onPostCreate(savedInstanceState) upVersion() privacyPolicy() + //请求设置书籍保存位置 + setBookStorage() //自动更新书籍 val isAutoRefreshedBook = savedInstanceState?.getBoolean("isAutoRefreshedBook") ?: false if (AppConfig.autoRefreshBook && !isAutoRefreshedBook) { @@ -181,6 +190,25 @@ class MainActivity : VMBaseActivity(), } } + /** + * 设置书籍保存位置 + */ + private fun setBookStorage() { + //测试书籍保存位置是否设置 + if (!AppConfig.defaultBookTreeUri.isNullOrBlank()) return + //测试读写?? + val storageHelp = String(assets.open("storageHelp.md").readBytes()) + alert("设置书籍保存位置", storageHelp) { + yesButton { + localBookTreeSelect.launch { + title = getString(R.string.select_book_folder) + mode = HandleFileContract.DIR_SYS + } + } + noButton() + } + } + override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { event?.let { when (keyCode) {