Merge pull request #644

[优化] 引导增加选择保存书籍文件夹
This commit is contained in:
Kudomaga
2026-02-26 01:28:36 +08:00
committed by GitHub
7 changed files with 109 additions and 0 deletions
@@ -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)
}
}
@@ -19,6 +19,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
private val pages = listOf(
PrivacyFragment(),
WebDavFragment(),
BookFolderFragment(),
ThemeFragment()
)
@@ -54,11 +55,13 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
binding.tvTitle.text = when (position) {
0 -> "欢迎!" // PrivacyFragment
1 -> "备份与恢复"
2 -> "书籍文件夹"
else -> "主题样式"
}
binding.tvSummary.text = when (position) {
0 -> "请先阅读应用的服务条款与用户协议。"
1 -> "此处可设置云同步与恢复应用备份。"
2 -> "请选择保存本地书籍的文件夹。"
else -> "在这里设置您喜爱的样式。"
}
updateProgress(position)
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="16dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/welcome_book_folder_tip"
android:textColor="?attr/colorOnSurfaceVariant"
android:textSize="14sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:cardBackgroundColor="?attr/colorSurfaceContainerLow"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
app:strokeColor="?attr/colorOutlineVariant"
app:strokeWidth="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="14dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/select_book_folder"
android:textColor="?attr/colorOnSurface"
android:textStyle="bold" />
<TextView
android:id="@+id/tvFolderPath"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:maxLines="3"
android:textColor="?attr/colorOnSurfaceVariant"
android:textSize="13sp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnSelectFolder"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/select_folder" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
@@ -1248,6 +1248,8 @@
<string name="clear_all">清除所有</string>
<string name="welcome_title">欢迎!</string>
<string name="first_read">请先阅读应用的服务条款与用户协议。</string>
<string name="welcome_book_folder_tip">设置本地书籍保存目录,后续也可在设置中修改。</string>
<string name="welcome_book_folder_not_selected">未选择文件夹</string>
<string name="config_btn">配置底部按钮</string>
<string name="compact_grid">紧凑网格</string>
<string name="cover_grid">封面网格</string>
@@ -1214,4 +1214,6 @@
<string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
<string name="welcome_book_folder_tip">设置本地书籍保存目录,后续也可在设置中修改。</string>
<string name="welcome_book_folder_not_selected">未选择文件夹</string>
</resources>
@@ -1216,4 +1216,6 @@
<string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
<string name="welcome_book_folder_tip">设置本地书籍保存目录,后续也可在设置中修改。</string>
<string name="welcome_book_folder_not_selected">未选择文件夹</string>
</resources>
+2
View File
@@ -1251,6 +1251,8 @@
<string name="clear_all">Clear All</string>
<string name="welcome_title">Welcome!</string>
<string name="first_read">Please read the Terms of Service and User Agreement first.</string>
<string name="welcome_book_folder_tip">Set where local books are stored. You can change it later in Settings.</string>
<string name="welcome_book_folder_not_selected">No folder selected</string>
<string name="config_btn">Configure Bottom Buttons</string>
<string name="compact_grid">Compact Grid</string>
<string name="cover_grid">Cover Grid</string>