设置里增加书籍文件夹配置,方便切换外部书籍保存文件夹

This commit is contained in:
gedoor
2022-01-04 20:57:25 +08:00
parent e318d8d71a
commit d78b47ecdd
14 changed files with 49 additions and 8 deletions
@@ -244,6 +244,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
appCtx.putPrefString(PreferKey.ttsEngine, value)
}
var webPort: Int
get() = appCtx.getPrefInt(PreferKey.webPort, 1122)
set(value) {
appCtx.putPrefInt(PreferKey.webPort, value)
}
val autoChangeSource: Boolean
get() = appCtx.getPrefBoolean(PreferKey.autoChangeSource, true)
@@ -48,6 +48,7 @@ class FileAssociationActivity :
if (treeUriStr.isNullOrEmpty()) {
localBookTreeSelect.launch {
title = "选择保存书籍的文件夹"
mode = HandleFileContract.DIR_SYS
}
} else {
importBook(Uri.parse(treeUriStr), uri)
@@ -61,7 +61,7 @@ abstract class BaseReadBookActivity :
binding.navigationBar.setBackgroundColor(bottomBackground)
viewModel.permissionDenialLiveData.observe(this) {
selectBookFolderResult.launch {
mode = HandleFileContract.SYS_DIR
mode = HandleFileContract.DIR_SYS
title = "选择书籍所在文件夹"
}
}
@@ -19,6 +19,7 @@ import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.theme.primaryColor
import io.legado.app.receiver.SharedReceiverActivity
import io.legado.app.service.WebService
import io.legado.app.ui.document.HandleFileContract
import io.legado.app.ui.widget.number.NumberPickerDialog
import io.legado.app.utils.*
import splitties.init.appCtx
@@ -32,7 +33,11 @@ class OtherConfigFragment : BasePreferenceFragment(),
appCtx,
SharedReceiverActivity::class.java.name
)
private val webPort get() = getPrefInt(PreferKey.webPort, 1122)
private val localBookTreeSelect = registerForActivityResult(HandleFileContract()) {
it.uri?.let { treeUri ->
AppConfig.defaultBookTreeUri = treeUri.toString()
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
putPrefBoolean(PreferKey.processText, isProcessTextEnabled())
@@ -43,7 +48,10 @@ class OtherConfigFragment : BasePreferenceFragment(),
upPreferenceSummary(PreferKey.userAgent, AppConfig.userAgent)
upPreferenceSummary(PreferKey.preDownloadNum, AppConfig.preDownloadNum.toString())
upPreferenceSummary(PreferKey.threadCount, AppConfig.threadCount.toString())
upPreferenceSummary(PreferKey.webPort, webPort.toString())
upPreferenceSummary(PreferKey.webPort, AppConfig.webPort.toString())
AppConfig.defaultBookTreeUri?.let {
upPreferenceSummary(PreferKey.defaultBookTreeUri, it)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -61,6 +69,10 @@ class OtherConfigFragment : BasePreferenceFragment(),
override fun onPreferenceTreeClick(preference: Preference?): Boolean {
when (preference?.key) {
PreferKey.userAgent -> showUserAgentDialog()
PreferKey.defaultBookTreeUri -> localBookTreeSelect.launch {
title = "选择保存书籍的文件夹"
mode = HandleFileContract.DIR_SYS
}
PreferKey.preDownloadNum -> NumberPickerDialog(requireContext())
.setTitle(getString(R.string.pre_download))
.setMaxValue(9999)
@@ -81,9 +93,9 @@ class OtherConfigFragment : BasePreferenceFragment(),
.setTitle(getString(R.string.web_port_title))
.setMaxValue(60000)
.setMinValue(1024)
.setValue(webPort)
.setValue(AppConfig.webPort)
.show {
putPrefInt(PreferKey.webPort, it)
AppConfig.webPort = it
}
PreferKey.cleanCache -> clearCache()
"uploadRule" -> DirectLinkUploadConfig().show(childFragmentManager, "uploadRuleConfig")
@@ -101,12 +113,15 @@ class OtherConfigFragment : BasePreferenceFragment(),
postEvent(PreferKey.threadCount, "")
}
PreferKey.webPort -> {
upPreferenceSummary(key, webPort.toString())
upPreferenceSummary(key, AppConfig.webPort.toString())
if (WebService.isRun) {
WebService.stop(requireContext())
WebService.start(requireContext())
}
}
PreferKey.defaultBookTreeUri -> {
upPreferenceSummary(key, AppConfig.defaultBookTreeUri)
}
PreferKey.recordLog -> LogUtils.upLevel()
PreferKey.processText -> sharedPreferences?.let {
setProcessTextEnable(it.getBoolean(key, true))
@@ -58,7 +58,7 @@ class HandleFileActivity :
}
val allowExtensions = intent.getStringArrayExtra("allowExtensions")
val selectList: ArrayList<SelectItem<Int>> = when (mode) {
HandleFileContract.SYS_DIR -> getDirActions(true)
HandleFileContract.DIR_SYS -> getDirActions(true)
HandleFileContract.DIR -> getDirActions()
HandleFileContract.FILE -> getFileActions()
HandleFileContract.EXPORT -> arrayListOf(
@@ -46,7 +46,7 @@ class HandleFileContract :
companion object {
const val DIR = 0
const val FILE = 1
const val SYS_DIR = 2
const val DIR_SYS = 2
const val EXPORT = 3
}
@@ -909,5 +909,7 @@
<string name="tts_speech_add">语速加</string>
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
@@ -912,5 +912,7 @@
<string name="tts_speech_add">语速加</string>
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
@@ -912,5 +912,7 @@
<string name="tts_speech_add">语速加</string>
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
@@ -909,5 +909,7 @@
<string name="tts_speech_add">語速加</string>
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
@@ -911,5 +911,7 @@
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="search_content_size">搜索結果</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
+2
View File
@@ -911,5 +911,7 @@
<string name="tts_speech_add">语速加</string>
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
+2
View File
@@ -912,5 +912,7 @@
<string name="tts_speech_add">语速加</string>
<string name="open_sys_dir_picker_error">打开系统文件夹选择器出错,自动打开应用文件夹选择器</string>
<string name="expand_text_menu">展开文本选择菜单</string>
<string name="book_tree_uri_t">书籍保存位置</string>
<string name="book_tree_uri_s">从其它应用打开的书籍保存位置</string>
</resources>
@@ -56,6 +56,11 @@
android:key="userAgent"
android:title="UserAgent" />
<io.legado.app.ui.widget.prefs.Preference
android:key="defaultBookTreeUri"
android:title="@string/book_tree_uri_t"
android:summary="@string/book_tree_uri_s" />
<io.legado.app.ui.widget.prefs.Preference
android:key="uploadRule"
android:title="@string/direct_link_upload_rule"