|
|
@@ -21,6 +21,8 @@ import io.legado.app.data.entities.Book
|
|
|
import io.legado.app.data.entities.BookGroup
|
|
|
import io.legado.app.data.entities.BookSource
|
|
|
import io.legado.app.databinding.ActivityArrangeBookBinding
|
|
|
+import io.legado.app.databinding.DialogEditTextBinding
|
|
|
+import io.legado.app.help.DirectLinkUpload
|
|
|
import io.legado.app.help.book.contains
|
|
|
import io.legado.app.help.book.isLocal
|
|
|
import io.legado.app.help.config.AppConfig
|
|
|
@@ -31,6 +33,7 @@ import io.legado.app.lib.theme.primaryTextColor
|
|
|
import io.legado.app.ui.book.group.GroupManageDialog
|
|
|
import io.legado.app.ui.book.group.GroupSelectDialog
|
|
|
import io.legado.app.ui.book.info.BookInfoActivity
|
|
|
+import io.legado.app.ui.file.HandleFileContract
|
|
|
import io.legado.app.ui.widget.SelectActionBar
|
|
|
import io.legado.app.ui.widget.dialog.WaitDialog
|
|
|
import io.legado.app.ui.widget.recycler.DragSelectTouchHelper
|
|
|
@@ -70,6 +73,23 @@ class BookshelfManageActivity :
|
|
|
}
|
|
|
private var books: List<Book>? = null
|
|
|
private val waitDialog by lazy { WaitDialog(this) }
|
|
|
+ private val exportDir = registerForActivityResult(HandleFileContract()) {
|
|
|
+ it.uri?.let { uri ->
|
|
|
+ alert(R.string.export_success) {
|
|
|
+ if (uri.toString().isAbsUrl()) {
|
|
|
+ setMessage(DirectLinkUpload.getSummary())
|
|
|
+ }
|
|
|
+ val alertBinding = DialogEditTextBinding.inflate(layoutInflater).apply {
|
|
|
+ editView.hint = getString(R.string.path)
|
|
|
+ editView.setText(uri.toString())
|
|
|
+ }
|
|
|
+ customView { alertBinding.root }
|
|
|
+ okButton {
|
|
|
+ sendToClip(uri.toString())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
|
|
viewModel.groupId = intent.getLongExtra("groupId", -1)
|
|
|
@@ -255,6 +275,17 @@ class BookshelfManageActivity :
|
|
|
adapter.notifyItemRangeChanged(0, adapter.itemCount)
|
|
|
}
|
|
|
|
|
|
+ R.id.menu_export_all_use_book_source -> viewModel.saveAllUseBookSourceToFile { file ->
|
|
|
+ exportDir.launch {
|
|
|
+ mode = HandleFileContract.EXPORT
|
|
|
+ fileData = HandleFileContract.FileData(
|
|
|
+ "bookSource.json",
|
|
|
+ file,
|
|
|
+ "application/json"
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
else -> if (item.groupId == R.id.menu_group) {
|
|
|
viewModel.groupName = item.title.toString()
|
|
|
upTitle()
|