feat: 优化代码

pull/115/head
kunfei 5 years ago
parent ff4721019c
commit d0ebf38999
  1. 8
      app/src/main/java/io/legado/app/help/ReadBookConfig.kt
  2. 11
      app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt
  3. 15
      app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
  4. 1
      app/src/main/java/io/legado/app/ui/book/read/page/DataSource.kt
  5. 13
      app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt

@ -26,7 +26,6 @@ object ReadBookConfig {
}
val durConfig get() = getConfig(styleSelect)
private val shareConfig get() = getConfig(5)
var styleSelect = App.INSTANCE.getPrefInt(PreferKey.readStyleSelect)
set(value) {
field = value
@ -37,6 +36,13 @@ object ReadBookConfig {
field = value
App.INSTANCE.putPrefBoolean(PreferKey.shareLayout)
}
var pageAnim = App.INSTANCE.getPrefInt(PreferKey.pageAnim)
set(value) {
field = value
isScroll = value == 3
App.INSTANCE.putPrefInt(PreferKey.pageAnim, value)
}
var isScroll = pageAnim == 3
var bg: Drawable? = null
init {

@ -19,7 +19,10 @@ import io.legado.app.lib.theme.primaryColor
import io.legado.app.ui.book.read.Help
import io.legado.app.ui.book.read.ReadBookActivity
import io.legado.app.ui.widget.font.FontSelectDialog
import io.legado.app.utils.*
import io.legado.app.utils.getPrefString
import io.legado.app.utils.postEvent
import io.legado.app.utils.putPrefInt
import io.legado.app.utils.putPrefString
import kotlinx.android.synthetic.main.activity_book_read.*
import kotlinx.android.synthetic.main.dialog_read_book_style.*
import org.jetbrains.anko.sdk27.listeners.onCheckedChange
@ -77,7 +80,7 @@ class ReadStyleDialog : DialogFragment(), FontSelectDialog.CallBack {
private fun initData() {
cb_share_layout.isChecked = ReadBookConfig.shareLayout
requireContext().getPrefInt(PreferKey.pageAnim).let {
ReadBookConfig.pageAnim.let {
if (it >= 0 && it < rg_page_anim.childCount) {
rg_page_anim.check(rg_page_anim[it].id)
}
@ -143,10 +146,10 @@ class ReadStyleDialog : DialogFragment(), FontSelectDialog.CallBack {
rg_page_anim.onCheckedChange { _, checkedId ->
for (i in 0 until rg_page_anim.childCount) {
if (checkedId == rg_page_anim[i].id) {
requireContext().putPrefInt(PreferKey.pageAnim, i)
ReadBookConfig.pageAnim = i
val activity = activity
if (activity is ReadBookActivity) {
activity.page_view.upPageAnim(i)
activity.page_view.upPageAnim()
}
break
}

@ -60,6 +60,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
if (textPage.textLines.isEmpty()) {
drawMsg(canvas, textPage.text)
} else {
@ -117,19 +118,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
offset = -maxScrollOffset
}
if (!isLastPage || offset < 0) {
pageOffset += offset
isLastPage = false
}
// 首页
if (pageOffset < 0 && !pageFactory.hasPrev()) {
pageOffset = 0f
}
val cHeight = if (textPage.height > 0) textPage.height else height
if (offset > 0 && pageOffset > cHeight) {
}
pageOffset += offset
}
fun resetPageOffset() {

@ -3,7 +3,6 @@ package io.legado.app.ui.book.read.page
import io.legado.app.ui.book.read.page.entities.TextChapter
interface DataSource {
val isScrollDelegate: Boolean
val pageIndex: Int

@ -6,13 +6,11 @@ import android.graphics.Canvas
import android.util.AttributeSet
import android.view.MotionEvent
import android.widget.FrameLayout
import io.legado.app.constant.PreferKey
import io.legado.app.help.ReadBookConfig
import io.legado.app.service.help.ReadBook
import io.legado.app.ui.book.read.page.delegate.*
import io.legado.app.ui.book.read.page.entities.TextChapter
import io.legado.app.utils.activity
import io.legado.app.utils.getPrefInt
class PageView(context: Context, attrs: AttributeSet) :
FrameLayout(context, attrs),
@ -37,7 +35,7 @@ class PageView(context: Context, attrs: AttributeSet) :
upBg()
setWillNotDraw(false)
pageFactory = TextPageFactory(this)
upPageAnim(context.getPrefInt(PreferKey.pageAnim))
upPageAnim()
}
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
@ -87,10 +85,10 @@ class PageView(context: Context, attrs: AttributeSet) :
}
}
fun upPageAnim(pageAnim: Int) {
fun upPageAnim() {
pageDelegate?.onDestroy()
pageDelegate = null
pageDelegate = when (pageAnim) {
pageDelegate = when (ReadBookConfig.pageAnim) {
0 -> CoverPageDelegate(this)
1 -> SlidePageDelegate(this)
2 -> SimulationPageDelegate(this)
@ -101,7 +99,7 @@ class PageView(context: Context, attrs: AttributeSet) :
}
fun upContent(position: Int = 0) {
if (isScrollDelegate) {
if (ReadBookConfig.isScroll) {
curPage.setContent(pageFactory.currentPage())
} else {
when (position) {
@ -165,9 +163,6 @@ class PageView(context: Context, attrs: AttributeSet) :
nextPage.upBattery(battery)
}
override val isScrollDelegate: Boolean
get() = pageDelegate is ScrollPageDelegate
override val pageIndex: Int
get() = ReadBook.durChapterPos()

Loading…
Cancel
Save