diff --git a/app/src/main/java/io/legado/app/ui/welcome/BookFolderFragment.kt b/app/src/main/java/io/legado/app/ui/welcome/BookFolderFragment.kt new file mode 100644 index 000000000..60b2032a7 --- /dev/null +++ b/app/src/main/java/io/legado/app/ui/welcome/BookFolderFragment.kt @@ -0,0 +1,37 @@ +package io.legado.app.ui.welcome + +import android.os.Bundle +import android.view.View +import io.legado.app.R +import io.legado.app.base.BaseFragment +import io.legado.app.databinding.FragmentBookFolderBinding +import io.legado.app.help.config.AppConfig +import io.legado.app.ui.file.HandleFileContract +import io.legado.app.utils.viewbindingdelegate.viewBinding + +class BookFolderFragment : BaseFragment(R.layout.fragment_book_folder) { + + private val binding by viewBinding(FragmentBookFolderBinding::bind) + + private val selectBookFolder = registerForActivityResult(HandleFileContract()) { result -> + result.uri?.let { treeUri -> + AppConfig.defaultBookTreeUri = treeUri.toString() + updatePathText() + } + } + + override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { + binding.btnSelectFolder.setOnClickListener { + selectBookFolder.launch { + title = getString(R.string.select_book_folder) + mode = HandleFileContract.DIR_SYS + } + } + updatePathText() + } + + private fun updatePathText() { + binding.tvFolderPath.text = + AppConfig.defaultBookTreeUri ?: getString(R.string.welcome_book_folder_not_selected) + } +} diff --git a/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt b/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt index f7e3050c7..56679d44e 100644 --- a/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt +++ b/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt @@ -19,6 +19,7 @@ class WelcomeActivity : BaseActivity() { private val pages = listOf( PrivacyFragment(), WebDavFragment(), + BookFolderFragment(), ThemeFragment() ) @@ -54,11 +55,13 @@ class WelcomeActivity : BaseActivity() { binding.tvTitle.text = when (position) { 0 -> "欢迎!" // PrivacyFragment 1 -> "备份与恢复" + 2 -> "书籍文件夹" else -> "主题样式" } binding.tvSummary.text = when (position) { 0 -> "请先阅读应用的服务条款与用户协议。" 1 -> "此处可设置云同步与恢复应用备份。" + 2 -> "请选择保存本地书籍的文件夹。" else -> "在这里设置您喜爱的样式。" } updateProgress(position) diff --git a/app/src/main/res/layout/fragment_book_folder.xml b/app/src/main/res/layout/fragment_book_folder.xml new file mode 100644 index 000000000..5920d0413 --- /dev/null +++ b/app/src/main/res/layout/fragment_book_folder.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 4daeea624..431fe481e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1248,6 +1248,8 @@ 清除所有 欢迎! 请先阅读应用的服务条款与用户协议。 + 设置本地书籍保存目录,后续也可在设置中修改。 + 未选择文件夹 配置底部按钮 紧凑网格 封面网格 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index c012db7d3..949c18740 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1214,4 +1214,6 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 设置本地书籍保存目录,后续也可在设置中修改。 + 未选择文件夹 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 04d2146cd..c904b6037 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1216,4 +1216,6 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 设置本地书籍保存目录,后续也可在设置中修改。 + 未选择文件夹 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 87d0eef28..eebd1ae68 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1251,6 +1251,8 @@ Clear All Welcome! Please read the Terms of Service and User Agreement first. + Set where local books are stored. You can change it later in Settings. + No folder selected Configure Bottom Buttons Compact Grid Cover Grid