This commit is contained in:
kunfei 2022-10-14 12:36:48 +08:00
parent f35ea2fc8e
commit 4f9e8c0840
4 changed files with 35 additions and 15 deletions

View File

@ -33,7 +33,8 @@ class FileAssociationActivity :
AppConfig.defaultBookTreeUri = treeUri.toString()
importBook(treeUri, uri)
} ?: let {
toastOnUi("不选择文件夹重启应用后可能没有权限访问")
val storageHelp = String(assets.open("storageHelp.md").readBytes())
toastOnUi(storageHelp)
viewModel.importBook(uri)
}
}

View File

@ -7,21 +7,33 @@ import io.legado.app.base.VMBaseActivity
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.dialogs.alert
import io.legado.app.ui.document.HandleFileContract
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel>(): VMBaseActivity<VB, VM>() {
abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel> : VMBaseActivity<VB, VM>() {
private var localBookTreeSelectListener: ((Boolean) -> Unit)? = null
private val localBookTreeSelect = registerForActivityResult(HandleFileContract()) {
it.uri?.let { treeUri ->
AppConfig.defaultBookTreeUri = treeUri.toString()
}
localBookTreeSelectListener?.invoke(true)
} ?: localBookTreeSelectListener?.invoke(false)
}
/**
* 设置书籍保存位置
*/
protected fun setBookStorage() {
protected suspend fun setBookStorage() = suspendCoroutine { block ->
AppConfig.defaultBookTreeUri = ""
localBookTreeSelectListener = {
block.resume(it)
}
//测试书籍保存位置是否设置
if (!AppConfig.defaultBookTreeUri.isNullOrBlank()) return
if (!AppConfig.defaultBookTreeUri.isNullOrBlank()) {
block.resume(true)
return@suspendCoroutine
}
//测试读写??
val storageHelp = String(assets.open("storageHelp.md").readBytes())
val hint = getString(R.string.select_book_folder)
@ -33,10 +45,10 @@ abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel>(): VMBas
}
}
noButton {
finish()
block.resume(false)
}
onCancelled {
finish()
block.resume(false)
}
}
}

View File

@ -58,10 +58,12 @@ class ImportBookActivity : BaseImportBookActivity<ActivityImportBookBinding, Imp
override fun onActivityCreated(savedInstanceState: Bundle?) {
binding.titleBar.setTitle(R.string.book_local)
initView()
initEvent()
initData()
setBookStorage()
launch {
setBookStorage()
initView()
initEvent()
initData()
}
}
override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {

View File

@ -38,10 +38,15 @@ class RemoteBookActivity : BaseImportBookActivity<ActivityImportBookBinding, Rem
private var groupMenu: SubMenu? = null
override fun onActivityCreated(savedInstanceState: Bundle?) {
binding.titleBar.setTitle(R.string.remote_book)
initView()
initData()
initEvent()
setBookStorage()
launch {
if (!setBookStorage()) {
finish()
return@launch
}
initView()
initData()
initEvent()
}
}
private fun initView() {