feat: 优化代码

pull/111/head
kunfei 5 years ago
parent 4a3c553c12
commit 1ce3c7c0c1
  1. 7
      app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt
  2. 15
      app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
  3. 4
      app/src/main/java/io/legado/app/ui/book/read/page/ContentView.kt
  4. 5
      app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt

@ -33,6 +33,7 @@ import io.legado.app.ui.book.read.config.*
import io.legado.app.ui.book.read.config.BgTextConfigDialog.Companion.BG_COLOR
import io.legado.app.ui.book.read.config.BgTextConfigDialog.Companion.TEXT_COLOR
import io.legado.app.ui.book.read.page.ChapterProvider
import io.legado.app.ui.book.read.page.ContentTextView
import io.legado.app.ui.book.read.page.PageView
import io.legado.app.ui.book.read.page.delegate.PageDelegate
import io.legado.app.ui.book.read.page.entities.SelectPoint
@ -55,6 +56,7 @@ import org.jetbrains.anko.toast
class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_book_read),
View.OnTouchListener,
PageView.CallBack,
ContentTextView.CallBack,
ReadMenu.CallBack,
ReadAloudDialog.CallBack,
ChangeSourceDialog.CallBack,
@ -326,6 +328,11 @@ class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_boo
return true
}
override fun onCancelSelect() {
cursor_left.invisible()
cursor_right.invisible()
}
/**
* 音量键翻页
*/

@ -166,4 +166,19 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
}
}
fun cancelSelect() {
textPage?.let { textPage ->
textPage.textLines.forEach { textLine ->
textLine.textChars.forEach {
it.selected = false
}
}
invalidate()
}
}
interface CallBack {
fun onCancelSelect()
}
}

@ -133,6 +133,10 @@ class ContentView : FrameLayout {
content_text_view.selectEndMove(x, y)
}
fun cancelSelect() {
content_text_view.cancelSelect()
}
fun scrollTo(pos: Int?) {
if (pos != null) {
content_text_view.post {

@ -71,6 +71,7 @@ abstract class PageDelegate(protected val pageView: PageView) :
var isCancel = false
var isRunning = false
var isStarted = false
var isTextSelected = false
open fun setStartPoint(x: Float, y: Float, invalidate: Boolean = true) {
startX = x
@ -218,6 +219,9 @@ abstract class PageDelegate(protected val pageView: PageView) :
* 按下
*/
override fun onDown(e: MotionEvent): Boolean {
if (isTextSelected) {
curPage.cancelSelect()
}
// abort()
//是否移动
isMoved = false
@ -272,6 +276,7 @@ abstract class PageDelegate(protected val pageView: PageView) :
override fun onLongPress(e: MotionEvent) {
val textChar = curPage.selectText(e)
textChar?.let {
isTextSelected = true
pageView.callBack?.selectText(it)
}
}

Loading…
Cancel
Save