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