From 11d13b6b84762c7c666ffafb0f13555c4cc93510 Mon Sep 17 00:00:00 2001
From: Xwite <1797350009@qq.com>
Date: Sat, 8 Oct 2022 07:18:13 +0800
Subject: [PATCH] refactor: request storage setting when needed
---
app/src/main/AndroidManifest.xml | 6 +--
app/src/main/assets/storageHelp.md | 4 +-
.../legado/app/model/localBook/LocalBook.kt | 4 +-
.../ui/book/import/BaseImportBookActivity.kt | 45 +++++++++++++++++++
.../{ => import}/local/ImportBookActivity.kt | 5 ++-
.../{ => import}/local/ImportBookAdapter.kt | 0
.../{ => import}/local/ImportBookViewModel.kt | 0
.../local/rule/TxtTocRuleActivity.kt | 0
.../local/rule/TxtTocRuleAdapter.kt | 0
.../local/rule/TxtTocRuleViewModel.kt | 0
.../{ => import}/remote/RemoteBookActivity.kt | 5 ++-
.../{ => import}/remote/RemoteBookAdapter.kt | 0
.../{ => import}/remote/RemoteBookSort.kt | 0
.../remote/RemoteBookViewModel.kt | 0
.../book/source/manage/BookSourceActivity.kt | 2 +-
15 files changed, 59 insertions(+), 12 deletions(-)
create mode 100644 app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt
rename app/src/main/java/io/legado/app/ui/book/{ => import}/local/ImportBookActivity.kt (98%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/local/ImportBookAdapter.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/local/ImportBookViewModel.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/local/rule/TxtTocRuleActivity.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/local/rule/TxtTocRuleAdapter.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/local/rule/TxtTocRuleViewModel.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/remote/RemoteBookActivity.kt (96%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/remote/RemoteBookAdapter.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/remote/RemoteBookSort.kt (100%)
rename app/src/main/java/io/legado/app/ui/book/{ => import}/remote/RemoteBookViewModel.kt (100%)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d461e6c76..0f89a8673 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -201,7 +201,7 @@
android:screenOrientation="behind" />
@@ -241,11 +241,11 @@
android:launchMode="singleTop" />
(): VMBaseActivity() {
+
+ private val localBookTreeSelect = registerForActivityResult(HandleFileContract()) {
+ it.uri?.let { treeUri ->
+ AppConfig.defaultBookTreeUri = treeUri.toString()
+ }
+ }
+
+ /**
+ * 设置书籍保存位置
+ */
+ protected fun setBookStorage() {
+ //测试书籍保存位置是否设置
+ if (!AppConfig.defaultBookTreeUri.isNullOrBlank()) return
+ //测试读写??
+ val storageHelp = String(assets.open("storageHelp.md").readBytes())
+ val hint = getString(R.string.select_book_folder)
+ alert(hint, storageHelp) {
+ yesButton {
+ localBookTreeSelect.launch {
+ title = hint
+ mode = HandleFileContract.DIR_SYS
+ }
+ }
+ noButton {
+ finish()
+ }
+ onCancelled {
+ finish()
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt
similarity index 98%
rename from app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt
rename to app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt
index af2a5c4f1..4e9cbb1db 100644
--- a/app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt
@@ -11,7 +11,6 @@ import androidx.appcompat.widget.PopupMenu
import androidx.documentfile.provider.DocumentFile
import androidx.recyclerview.widget.LinearLayoutManager
import io.legado.app.R
-import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.PreferKey
import io.legado.app.data.appDb
import io.legado.app.databinding.ActivityImportBookBinding
@@ -21,6 +20,7 @@ import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.permission.Permissions
import io.legado.app.lib.permission.PermissionsCompat
import io.legado.app.lib.theme.backgroundColor
+import io.legado.app.ui.book.import.BaseImportBookActivity
import io.legado.app.ui.document.HandleFileContract
import io.legado.app.ui.widget.SelectActionBar
import io.legado.app.utils.*
@@ -34,7 +34,7 @@ import java.io.File
/**
* 导入本地书籍界面
*/
-class ImportBookActivity : VMBaseActivity(),
+class ImportBookActivity : BaseImportBookActivity(),
PopupMenu.OnMenuItemClickListener,
ImportBookAdapter.CallBack,
SelectActionBar.CallBack {
@@ -61,6 +61,7 @@ class ImportBookActivity : VMBaseActivity(),
+class RemoteBookActivity : BaseImportBookActivity(),
RemoteBookAdapter.CallBack,
SelectActionBar.CallBack {
override val binding by viewBinding(ActivityImportBookBinding::inflate)
@@ -41,6 +41,7 @@ class RemoteBookActivity : VMBaseActivity