|
@@ -22,7 +22,6 @@ import android.view.View
|
|
|
import android.widget.CheckBox
|
|
import android.widget.CheckBox
|
|
|
import android.widget.LinearLayout
|
|
import android.widget.LinearLayout
|
|
|
import androidx.activity.addCallback
|
|
import androidx.activity.addCallback
|
|
|
-import androidx.activity.viewModels
|
|
|
|
|
import androidx.core.app.ActivityCompat
|
|
import androidx.core.app.ActivityCompat
|
|
|
import androidx.core.app.ActivityOptionsCompat
|
|
import androidx.core.app.ActivityOptionsCompat
|
|
|
import androidx.core.content.ContextCompat
|
|
import androidx.core.content.ContextCompat
|
|
@@ -44,10 +43,7 @@ import io.legado.app.data.entities.BookChapter
|
|
|
import io.legado.app.data.entities.BookSource
|
|
import io.legado.app.data.entities.BookSource
|
|
|
import io.legado.app.databinding.ActivityBookInfoBinding
|
|
import io.legado.app.databinding.ActivityBookInfoBinding
|
|
|
import io.legado.app.databinding.DialogEditTextBinding
|
|
import io.legado.app.databinding.DialogEditTextBinding
|
|
|
-import io.legado.app.exception.NoStackTraceException
|
|
|
|
|
-import io.legado.app.help.AppWebDav
|
|
|
|
|
import io.legado.app.help.book.addType
|
|
import io.legado.app.help.book.addType
|
|
|
-import io.legado.app.help.book.getRemoteUrl
|
|
|
|
|
import io.legado.app.help.book.isAudio
|
|
import io.legado.app.help.book.isAudio
|
|
|
import io.legado.app.help.book.isImage
|
|
import io.legado.app.help.book.isImage
|
|
|
import io.legado.app.help.book.isLocal
|
|
import io.legado.app.help.book.isLocal
|
|
@@ -60,7 +56,6 @@ import io.legado.app.lib.dialogs.alert
|
|
|
import io.legado.app.lib.dialogs.selector
|
|
import io.legado.app.lib.dialogs.selector
|
|
|
import io.legado.app.model.BookCover
|
|
import io.legado.app.model.BookCover
|
|
|
import io.legado.app.model.SourceCallBack
|
|
import io.legado.app.model.SourceCallBack
|
|
|
-import io.legado.app.model.remote.RemoteBookWebDav
|
|
|
|
|
import io.legado.app.ui.about.AppLogDialog
|
|
import io.legado.app.ui.about.AppLogDialog
|
|
|
import io.legado.app.ui.book.audio.AudioPlayActivity
|
|
import io.legado.app.ui.book.audio.AudioPlayActivity
|
|
|
import io.legado.app.ui.book.changecover.ChangeCoverDialog
|
|
import io.legado.app.ui.book.changecover.ChangeCoverDialog
|
|
@@ -101,6 +96,7 @@ import kotlinx.coroutines.Dispatchers.IO
|
|
|
import kotlinx.coroutines.Job
|
|
import kotlinx.coroutines.Job
|
|
|
import kotlinx.coroutines.launch
|
|
import kotlinx.coroutines.launch
|
|
|
import kotlinx.coroutines.withContext
|
|
import kotlinx.coroutines.withContext
|
|
|
|
|
+import org.koin.androidx.viewmodel.ext.android.viewModel
|
|
|
|
|
|
|
|
class BookInfoActivity :
|
|
class BookInfoActivity :
|
|
|
VMBaseActivity<ActivityBookInfoBinding, BookInfoViewModel>(),
|
|
VMBaseActivity<ActivityBookInfoBinding, BookInfoViewModel>(),
|
|
@@ -170,7 +166,7 @@ class BookInfoActivity :
|
|
|
private val book get() = viewModel.getBook(false)
|
|
private val book get() = viewModel.getBook(false)
|
|
|
|
|
|
|
|
override val binding by viewBinding(ActivityBookInfoBinding::inflate)
|
|
override val binding by viewBinding(ActivityBookInfoBinding::inflate)
|
|
|
- override val viewModel by viewModels<BookInfoViewModel>()
|
|
|
|
|
|
|
+ override val viewModel: BookInfoViewModel by viewModel()
|
|
|
|
|
|
|
|
@SuppressLint("PrivateResource")
|
|
@SuppressLint("PrivateResource")
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
@@ -333,14 +329,9 @@ class BookInfoActivity :
|
|
|
R.id.menu_delete_alert -> LocalConfig.bookInfoDeleteAlert = !item.isChecked
|
|
R.id.menu_delete_alert -> LocalConfig.bookInfoDeleteAlert = !item.isChecked
|
|
|
R.id.menu_upload -> {
|
|
R.id.menu_upload -> {
|
|
|
viewModel.getBook()?.let { book ->
|
|
viewModel.getBook()?.let { book ->
|
|
|
- book.getRemoteUrl()?.let {
|
|
|
|
|
- alert(R.string.draw, R.string.sure_upload) {
|
|
|
|
|
- okButton {
|
|
|
|
|
- upLoadBook(book)
|
|
|
|
|
- }
|
|
|
|
|
- cancelButton()
|
|
|
|
|
- }
|
|
|
|
|
- } ?: upLoadBook(book)
|
|
|
|
|
|
|
+ viewModel.uploadBook(book) {
|
|
|
|
|
+ toastOnUi("上传成功")
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -374,17 +365,6 @@ class BookInfoActivity :
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
|
|
|
|
|
-// if (ev.action == MotionEvent.ACTION_DOWN) {
|
|
|
|
|
-// currentFocus?.let {
|
|
|
|
|
-// if (it === binding.tvIntro && binding.tvIntro.hasSelection()) {
|
|
|
|
|
-// it.clearFocus()
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// return super.dispatchTouchEvent(ev)
|
|
|
|
|
-// }
|
|
|
|
|
-
|
|
|
|
|
private fun setupBackCallback() {
|
|
private fun setupBackCallback() {
|
|
|
onBackPressedDispatcher.addCallback(this) {
|
|
onBackPressedDispatcher.addCallback(this) {
|
|
|
if (!viewModel.inBookshelf && AppConfig.showAddToShelfAlert) {
|
|
if (!viewModel.inBookshelf && AppConfig.showAddToShelfAlert) {
|
|
@@ -413,28 +393,6 @@ class BookInfoActivity :
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private fun upLoadBook(
|
|
|
|
|
- book: Book,
|
|
|
|
|
- bookWebDav: RemoteBookWebDav? = AppWebDav.defaultBookWebDav,
|
|
|
|
|
- ) {
|
|
|
|
|
- lifecycleScope.launch {
|
|
|
|
|
- waitDialog.setText("上传中.....")
|
|
|
|
|
- waitDialog.show()
|
|
|
|
|
- try {
|
|
|
|
|
- bookWebDav
|
|
|
|
|
- ?.upload(book)
|
|
|
|
|
- ?: throw NoStackTraceException("未配置webDav")
|
|
|
|
|
- //更新书籍最后更新时间,使之比远程书籍的时间新
|
|
|
|
|
- book.lastCheckTime = System.currentTimeMillis()
|
|
|
|
|
- viewModel.saveBook(book)
|
|
|
|
|
- } catch (e: Exception) {
|
|
|
|
|
- toastOnUi(e.localizedMessage)
|
|
|
|
|
- } finally {
|
|
|
|
|
- waitDialog.dismiss()
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private fun showBook(book: Book) = binding.run {
|
|
private fun showBook(book: Book) = binding.run {
|
|
|
showCover(book)
|
|
showCover(book)
|
|
|
addColorScheme(binding.ivCover.drawable)
|
|
addColorScheme(binding.ivCover.drawable)
|
|
@@ -1172,4 +1130,4 @@ class BookInfoActivity :
|
|
|
toastOnUi("已添加到书架")
|
|
toastOnUi("已添加到书架")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+}
|