feat: 优化代码

pull/106/head
kunfei 5 years ago
parent 1d65ab173a
commit 7abe222dad
  1. 6
      app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
  2. 5
      app/src/main/java/io/legado/app/ui/book/read/page/ContentView.kt
  3. 2
      app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt

@ -11,6 +11,7 @@ import io.legado.app.R
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.help.ReadBookConfig import io.legado.app.help.ReadBookConfig
import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.accentColor
import io.legado.app.ui.book.read.page.entities.TextChar
import io.legado.app.ui.book.read.page.entities.TextPage import io.legado.app.ui.book.read.page.entities.TextPage
import io.legado.app.utils.getCompatColor import io.legado.app.utils.getCompatColor
import io.legado.app.utils.getPrefBoolean import io.legado.app.utils.getPrefBoolean
@ -81,7 +82,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
} }
} }
fun selectText(x: Float, y: Float) { fun selectText(x: Float, y: Float): TextChar? {
textPage?.let { textPage -> textPage?.let { textPage ->
for (textLine in textPage.textLines) { for (textLine in textPage.textLines) {
if (y > textLine.lineTop && y < textLine.lineBottom) { if (y > textLine.lineTop && y < textLine.lineBottom) {
@ -89,12 +90,13 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
if (x > textChar.leftBottomPosition.x && x < textChar.rightTopPosition.x) { if (x > textChar.leftBottomPosition.x && x < textChar.rightTopPosition.x) {
textChar.selected = true textChar.selected = true
invalidate() invalidate()
break return textChar
} }
} }
break break
} }
} }
} }
return null
} }
} }

@ -10,6 +10,7 @@ import io.legado.app.R
import io.legado.app.constant.AppConst.TIME_FORMAT import io.legado.app.constant.AppConst.TIME_FORMAT
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.help.ReadBookConfig import io.legado.app.help.ReadBookConfig
import io.legado.app.ui.book.read.page.entities.TextChar
import io.legado.app.ui.book.read.page.entities.TextPage import io.legado.app.ui.book.read.page.entities.TextPage
import io.legado.app.utils.* import io.legado.app.utils.*
import kotlinx.android.synthetic.main.view_book_page.view.* import kotlinx.android.synthetic.main.view_book_page.view.*
@ -110,9 +111,9 @@ class ContentView : FrameLayout {
content_text_view.selectAble = selectAble content_text_view.selectAble = selectAble
} }
fun selectText(e: MotionEvent) { fun selectText(e: MotionEvent): TextChar? {
val y = e.y - headerHeight val y = e.y - headerHeight
content_text_view.selectText(e.x, y) return content_text_view.selectText(e.x, y)
} }
fun scrollTo(pos: Int?) { fun scrollTo(pos: Int?) {

@ -267,7 +267,7 @@ abstract class PageDelegate(protected val pageView: PageView) :
} }
override fun onLongPress(e: MotionEvent) { override fun onLongPress(e: MotionEvent) {
curPage.selectText(e) val textChar = curPage.selectText(e)
} }
/** /**

Loading…
Cancel
Save