feat: 变更文本显示为 string value,删除一些无用的代码引用
This commit is contained in:
@@ -204,12 +204,11 @@ class BookInfoActivity :
|
||||
R.id.menu_upload -> {
|
||||
launch {
|
||||
val uri = Uri.parse(viewModel.bookData.value?.bookUrl.toString())
|
||||
// val doc = DocumentFile.fromTreeUri(appCtx,uri)
|
||||
if (RemoteBookWebDav.upload(uri))
|
||||
toastOnUi(getString(R.string.upload_book_success))
|
||||
else
|
||||
toastOnUi(getString(R.string.upload_book_fail))
|
||||
|
||||
// if (uri.isContentScheme()){
|
||||
// uri.path
|
||||
// }
|
||||
RemoteBookWebDav.upload(uri)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,15 @@ import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.activity.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import io.legado.app.R
|
||||
import io.legado.app.base.VMBaseActivity
|
||||
|
||||
|
||||
import io.legado.app.databinding.ActivityRemoteBookBinding
|
||||
import io.legado.app.utils.toastOnUi
|
||||
|
||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||
import kotlinx.coroutines.flow.conflate
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -28,42 +31,34 @@ class RemoteBookActivity : VMBaseActivity<ActivityRemoteBookBinding,RemoteBookVi
|
||||
// initEvent()
|
||||
initData()
|
||||
// toastOnUi("远程书籍")
|
||||
onFinally()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private fun initView() {
|
||||
binding.recyclerView.layoutManager = LinearLayoutManager(this)
|
||||
binding.recyclerView.adapter = adapter
|
||||
// binding.layTop.setBackgroundColor(backgroundColor)
|
||||
// binding.recyclerView.layoutManager = LinearLayoutManager(this)
|
||||
// binding.recyclerView.adapter = adapter
|
||||
// binding.selectActionBar.setMainActionText(R.string.add_to_shelf)
|
||||
// binding.selectActionBar.inflateMenu(R.menu.import_book_sel)
|
||||
// binding.selectActionBar.setOnMenuItemClickListener(this)
|
||||
// binding.selectActionBar.setCallBack(this)
|
||||
}
|
||||
private fun initData() {
|
||||
// viewModel.getRemoteBooks().observe(this, {
|
||||
// adapter.submitList(it)
|
||||
// })
|
||||
binding.refreshProgressBar.isAutoLoading = true
|
||||
viewModel.loadRemoteBookList()
|
||||
launch {
|
||||
viewModel.dataFlow.collect { remoteBooks ->
|
||||
viewModel.dataFlow.conflate().collect { remoteBooks ->
|
||||
adapter.setItems(remoteBooks)
|
||||
}
|
||||
binding.refreshProgressBar.isAutoLoading = false
|
||||
}
|
||||
|
||||
|
||||
// toastOnUi("1")
|
||||
|
||||
}
|
||||
|
||||
private fun onFinally() {
|
||||
|
||||
}
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
override fun addToBookshelf(remoteBook: RemoteBook) {
|
||||
viewModel.addToBookshelf(remoteBook){
|
||||
toastOnUi(getString(R.string.download_book_fail))
|
||||
adapter.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,8 @@ import android.view.ViewGroup
|
||||
import cn.hutool.core.date.LocalDateTimeUtil
|
||||
import io.legado.app.base.adapter.ItemViewHolder
|
||||
import io.legado.app.base.adapter.RecyclerAdapter
|
||||
import io.legado.app.data.entities.Book
|
||||
import io.legado.app.databinding.ItemRemoteBookBinding
|
||||
import io.legado.app.utils.ConvertUtils
|
||||
import io.legado.app.utils.FileUtils
|
||||
import io.legado.app.utils.toastOnUi
|
||||
import splitties.init.appCtx
|
||||
|
||||
|
||||
/**
|
||||
@@ -38,6 +34,7 @@ class RemoteBookAdapter (context: Context, val callBack: CallBack) :
|
||||
payloads: MutableList<Any>
|
||||
) {
|
||||
binding.run {
|
||||
//Todo:需要判断书籍是否已经加入书架,来改变“下载”按钮的文本,暂时还没有比较好的方案
|
||||
tvName.text = item.filename.substringBeforeLast(".")
|
||||
tvContentType.text = item.contentType
|
||||
tvSize.text = ConvertUtils.formatFileSize(item.size)
|
||||
@@ -48,9 +45,7 @@ class RemoteBookAdapter (context: Context, val callBack: CallBack) :
|
||||
override fun registerListener(holder: ItemViewHolder, binding: ItemRemoteBookBinding) {
|
||||
binding.btnDownload.setOnClickListener {
|
||||
getItem(holder.layoutPosition)?.let {
|
||||
context.toastOnUi("开始加入")
|
||||
callBack.addToBookshelf(it)
|
||||
context.toastOnUi("加入成功")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,30 +2,21 @@ package io.legado.app.ui.book.remote
|
||||
|
||||
import android.app.Application
|
||||
import android.net.Uri
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import io.legado.app.base.BaseViewModel
|
||||
import io.legado.app.constant.PreferKey
|
||||
import io.legado.app.lib.webdav.Authorization
|
||||
import io.legado.app.lib.webdav.WebDav
|
||||
import io.legado.app.model.localBook.LocalBook
|
||||
import io.legado.app.ui.book.remote.manager.RemoteBookWebDav
|
||||
import io.legado.app.utils.FileUtils
|
||||
import io.legado.app.utils.externalFiles
|
||||
import io.legado.app.utils.getPrefString
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.channels.awaitClose
|
||||
import kotlinx.coroutines.flow.callbackFlow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import splitties.init.appCtx
|
||||
import java.io.File
|
||||
import java.nio.charset.Charset
|
||||
import java.util.*
|
||||
|
||||
class RemoteBookViewModel(application: Application): BaseViewModel(application){
|
||||
private val remoteBookFolderName = "book_remote"
|
||||
private var dataCallback : DataCallback? = null
|
||||
var isRemoteBookLiveData = MutableLiveData<Boolean>()
|
||||
var dataFlowStart: (() -> Unit)? = null
|
||||
private var authorization: Authorization? = null
|
||||
|
||||
|
||||
val dataFlow = callbackFlow<List<RemoteBook>> {
|
||||
|
||||
Reference in New Issue
Block a user