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.Bus
import io.legado.app.constant.Status import io.legado.app.constant.Status
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.receiver.TimeElectricityReceiver import io.legado.app.receiver.TimeElectricityReceiver
import io.legado.app.service.ReadAloudService import io.legado.app.service.ReadAloudService
import io.legado.app.ui.changesource.ChangeSourceDialog import io.legado.app.ui.changesource.ChangeSourceDialog
import io.legado.app.ui.chapterlist.ChapterListActivity import io.legado.app.ui.chapterlist.ChapterListActivity
import io.legado.app.ui.replacerule.ReplaceRuleActivity import io.legado.app.ui.replacerule.ReplaceRuleActivity
import io.legado.app.ui.widget.page.ChapterProvider
import io.legado.app.utils.* import io.legado.app.utils.*
import kotlinx.android.synthetic.main.activity_read_book.* 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 kotlinx.android.synthetic.main.view_title_bar.*
import org.jetbrains.anko.sdk27.listeners.onClick import org.jetbrains.anko.sdk27.listeners.onClick
import org.jetbrains.anko.startActivity 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 override val viewModel: ReadBookViewModel
get() = getViewModel(ReadBookViewModel::class.java) get() = getViewModel(ReadBookViewModel::class.java)
@ -42,6 +46,7 @@ class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_rea
setSupportActionBar(toolbar) setSupportActionBar(toolbar)
initAnimation() initAnimation()
initView() initView()
viewModel.callBack = this
viewModel.chapterMaxIndex.observe(this, Observer { bookLoadFinish() }) viewModel.chapterMaxIndex.observe(this, Observer { bookLoadFinish() })
viewModel.initData(intent) viewModel.initData(intent)
savedInstanceState?.let { 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) { override fun changeTo(book: Book) {
} }

@ -18,6 +18,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
var bookSource: BookSource? = null var bookSource: BookSource? = null
var chapterMaxIndex = MediatorLiveData<Int>() var chapterMaxIndex = MediatorLiveData<Int>()
var webBook: WebBook? = null var webBook: WebBook? = null
var callBack: CallBack? = null
fun initData(intent: Intent) { fun initData(intent: Intent) {
val bookUrl = intent.getStringExtra("bookUrl") 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 { execute {
App.db.bookChapterDao().getChapter(book.bookUrl, index)?.let { chapter -> App.db.bookChapterDao().getChapter(book.bookUrl, index)?.let { chapter ->
BookHelp.getContent(book, chapter)?.let { BookHelp.getContent(book, chapter)?.let {
success(it) callBack?.loadContentFinish(chapter, it)
} ?: download(book, chapter, success) } ?: download(book, chapter)
} }
} }
} }
fun download(book: Book, chapter: BookChapter, success: ((content: String) -> Unit)? = null) { fun download(book: Book, chapter: BookChapter) {
webBook?.getContent(book, chapter) webBook?.getContent(book, chapter)
?.onSuccess(IO) { content -> ?.onSuccess(IO) { content ->
content?.let { content?.let {
BookHelp.saveContent(book, chapter, it) 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_height="0dp"
android:layout_weight="1"> android:layout_weight="1">
<androidx.appcompat.widget.AppCompatTextView <io.legado.app.ui.widget.page.ContentTextView
android:id="@+id/text_view" android:id="@+id/content_text_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent" />
android:text="233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333233333333333333333333333333333333333333333333333333"/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view" android:id="@+id/recycler_view"

Loading…
Cancel
Save