pull/32/head
kunfei 5 years ago
parent 9c7e2c7488
commit 4cbfc02dab
  1. 12
      app/src/main/java/io/legado/app/ui/readbook/ReadBookActivity.kt
  2. 16
      app/src/main/java/io/legado/app/ui/readbook/ReadBookViewModel.kt
  3. 10
      app/src/main/res/layout/view_book_page.xml

@ -14,18 +14,22 @@ import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.Bus
import io.legado.app.constant.Status
import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.receiver.TimeElectricityReceiver
import io.legado.app.service.ReadAloudService
import io.legado.app.ui.changesource.ChangeSourceDialog
import io.legado.app.ui.chapterlist.ChapterListActivity
import io.legado.app.ui.replacerule.ReplaceRuleActivity
import io.legado.app.ui.widget.page.ChapterProvider
import io.legado.app.utils.*
import kotlinx.android.synthetic.main.activity_read_book.*
import kotlinx.android.synthetic.main.view_book_page.*
import kotlinx.android.synthetic.main.view_title_bar.*
import org.jetbrains.anko.sdk27.listeners.onClick
import org.jetbrains.anko.startActivity
class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_read_book), ChangeSourceDialog.CallBack {
class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_read_book), ChangeSourceDialog.CallBack,
ReadBookViewModel.CallBack {
override val viewModel: ReadBookViewModel
get() = getViewModel(ReadBookViewModel::class.java)
@ -42,6 +46,7 @@ class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_rea
setSupportActionBar(toolbar)
initAnimation()
initView()
viewModel.callBack = this
viewModel.chapterMaxIndex.observe(this, Observer { bookLoadFinish() })
viewModel.initData(intent)
savedInstanceState?.let {
@ -228,6 +233,11 @@ class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_rea
}
}
override fun loadContentFinish(bookChapter: BookChapter, content: String) {
val textChapter = ChapterProvider().getTextChapter(content_text_view, bookChapter, content)
print(textChapter.pages.size)
}
override fun changeTo(book: Book) {
}

@ -18,6 +18,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
var bookSource: BookSource? = null
var chapterMaxIndex = MediatorLiveData<Int>()
var webBook: WebBook? = null
var callBack: CallBack? = null
fun initData(intent: Intent) {
val bookUrl = intent.getStringExtra("bookUrl")
@ -48,23 +49,28 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
}
fun loadContent(book: Book, index: Int, success: ((content: String) -> Unit)) {
fun loadContent(book: Book, index: Int) {
execute {
App.db.bookChapterDao().getChapter(book.bookUrl, index)?.let { chapter ->
BookHelp.getContent(book, chapter)?.let {
success(it)
} ?: download(book, chapter, success)
callBack?.loadContentFinish(chapter, it)
} ?: download(book, chapter)
}
}
}
fun download(book: Book, chapter: BookChapter, success: ((content: String) -> Unit)? = null) {
fun download(book: Book, chapter: BookChapter) {
webBook?.getContent(book, chapter)
?.onSuccess(IO) { content ->
content?.let {
BookHelp.saveContent(book, chapter, it)
success?.invoke(it)
callBack?.loadContentFinish(chapter, it)
}
}
}
interface CallBack {
fun loadContentFinish(bookChapter: BookChapter, content: String)
}
}

@ -21,12 +21,10 @@
android:layout_height="0dp"
android:layout_weight="1">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333"/>
<io.legado.app.ui.widget.page.ContentTextView
android:id="@+id/content_text_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"

Loading…
Cancel
Save