|
|
@@ -9,7 +9,9 @@ import androidx.activity.viewModels
|
|
|
import androidx.core.view.isGone
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
import io.legado.app.R
|
|
|
+import io.legado.app.data.appDb
|
|
|
import io.legado.app.data.entities.Book
|
|
|
+import io.legado.app.help.config.AppConfig
|
|
|
import io.legado.app.help.config.LocalConfig
|
|
|
import io.legado.app.lib.theme.backgroundColor
|
|
|
import io.legado.app.model.remote.RemoteBook
|
|
|
@@ -17,6 +19,8 @@ import io.legado.app.ui.about.AppLogDialog
|
|
|
import io.legado.app.ui.book.import.BaseImportBookActivity
|
|
|
import io.legado.app.ui.widget.SelectActionBar
|
|
|
import io.legado.app.ui.widget.dialog.TextDialog
|
|
|
+import io.legado.app.utils.FileDoc
|
|
|
+import io.legado.app.utils.find
|
|
|
import io.legado.app.utils.showDialogFragment
|
|
|
import kotlinx.coroutines.delay
|
|
|
import kotlinx.coroutines.flow.conflate
|
|
|
@@ -197,6 +201,41 @@ class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
|
|
|
showDialogFragment(TextDialog(getString(R.string.help), mdText, TextDialog.Mode.MD))
|
|
|
}
|
|
|
|
|
|
- override fun startRead(book: Book) = startReadBook(book.bookUrl)
|
|
|
+ private fun showRemoteBookDownloadAlert(
|
|
|
+ remoteBook: RemoteBook,
|
|
|
+ onDownloadFinish: (() -> Unit)? = null
|
|
|
+ ) {
|
|
|
+ alert(
|
|
|
+ R.string.draw,
|
|
|
+ R.string.archive_not_found
|
|
|
+ ) {
|
|
|
+ okButton {
|
|
|
+ viewModel.addToBookshelf(hashSetOf<RemoteBook>(remoteBook) {
|
|
|
+ onDownloadFinish?.invoke()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ noButton()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun startRead(remoteBook: RemoteBook) {
|
|
|
+ val downloadFileName = remoteBook.filename
|
|
|
+ if (!ArchiveUtils.isArchive(downloadFileName)) {
|
|
|
+ appDb.bookDao.getBookByFileName(downloadFileName)?.let {
|
|
|
+ startReadBook(it.bookUrl)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ AppConfig.defaultBookTreeUri ?: return
|
|
|
+ val downloadArchiveFileDoc = FileDoc.fromUri(Uri.parse(AppConfig.defaultBookTreeUri), true)
|
|
|
+ .find(downloadFileName)
|
|
|
+ if (downloadArchiveFileDoc == null) {
|
|
|
+ showRemoteBookDownloadAlert(remoteBook) {
|
|
|
+ startRead(remoteBook)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ onArchiveFileClick(downloadArchiveFileDoc)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|