|
|
@@ -19,6 +19,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
|
|
|
import kotlinx.coroutines.Dispatchers.IO
|
|
|
import kotlinx.coroutines.launch
|
|
|
import kotlinx.coroutines.withContext
|
|
|
+import splitties.init.appCtx
|
|
|
|
|
|
import java.io.File
|
|
|
import java.io.FileOutputStream
|
|
|
@@ -45,24 +46,7 @@ class FileAssociationActivity :
|
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
|
|
binding.rotateLoading.show()
|
|
|
viewModel.importBookLiveData.observe(this) { uri ->
|
|
|
- if (uri.isContentScheme()) {
|
|
|
- val treeUriStr = AppConfig.defaultBookTreeUri
|
|
|
- if (treeUriStr.isNullOrEmpty()) {
|
|
|
- localBookTreeSelect.launch {
|
|
|
- title = "选择保存书籍的文件夹"
|
|
|
- mode = HandleFileContract.DIR_SYS
|
|
|
- }
|
|
|
- } else {
|
|
|
- importBook(Uri.parse(treeUriStr), uri)
|
|
|
- }
|
|
|
- } else {
|
|
|
- PermissionsCompat.Builder(this)
|
|
|
- .addPermissions(*Permissions.Group.STORAGE)
|
|
|
- .rationale(R.string.tip_perm_request_storage)
|
|
|
- .onGranted {
|
|
|
- viewModel.importBook(uri)
|
|
|
- }.request()
|
|
|
- }
|
|
|
+ importBook(uri)
|
|
|
}
|
|
|
viewModel.onLineImportLive.observe(this) {
|
|
|
startActivity<OnLineImportActivity> {
|
|
|
@@ -88,7 +72,7 @@ class FileAssociationActivity :
|
|
|
ImportThemeDialog(it.second, true)
|
|
|
)
|
|
|
"txtRule" -> showDialogFragment(
|
|
|
- ImportTxtRuleDialog(it.second, true)
|
|
|
+ ImportTxtTocRuleDialog(it.second, true)
|
|
|
)
|
|
|
}
|
|
|
}
|
|
|
@@ -104,11 +88,43 @@ class FileAssociationActivity :
|
|
|
}
|
|
|
finish()
|
|
|
}
|
|
|
+ viewModel.notSupportedLiveData.observe(this) { data ->
|
|
|
+ appCtx.alert(
|
|
|
+ title = appCtx.getString(R.string.draw),
|
|
|
+ message = appCtx.getString(R.string.file_not_supported, data.second)
|
|
|
+ ) {
|
|
|
+ okButton {
|
|
|
+ importBook(data.first)
|
|
|
+ }
|
|
|
+ cancelButton()
|
|
|
+ }
|
|
|
+ }
|
|
|
intent.data?.let { data ->
|
|
|
viewModel.dispatchIndent(data)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private fun importBook(uri: Uri) {
|
|
|
+ if (uri.isContentScheme()) {
|
|
|
+ val treeUriStr = AppConfig.defaultBookTreeUri
|
|
|
+ if (treeUriStr.isNullOrEmpty()) {
|
|
|
+ localBookTreeSelect.launch {
|
|
|
+ title = "选择保存书籍的文件夹"
|
|
|
+ mode = HandleFileContract.DIR_SYS
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ importBook(Uri.parse(treeUriStr), uri)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ PermissionsCompat.Builder(this)
|
|
|
+ .addPermissions(*Permissions.Group.STORAGE)
|
|
|
+ .rationale(R.string.tip_perm_request_storage)
|
|
|
+ .onGranted {
|
|
|
+ viewModel.importBook(uri)
|
|
|
+ }.request()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private fun importBook(treeUri: Uri, uri: Uri) {
|
|
|
launch {
|
|
|
runCatching {
|
|
|
@@ -162,13 +178,4 @@ class FileAssociationActivity :
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private fun finallyDialog(title: String, msg: String) {
|
|
|
- alert(title, msg) {
|
|
|
- okButton()
|
|
|
- onDismiss {
|
|
|
- finish()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
}
|