From af31324bb7af557bdf87ea4c3d070fbd591fcd6d Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 24 Feb 2020 13:28:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/service/help/ReadBook.kt | 4 ++-- .../io/legado/app/ui/book/read/ReadBookActivity.kt | 4 ++-- .../legado/app/ui/book/read/page/ContentTextView.kt | 3 +++ .../io/legado/app/ui/book/read/page/ContentView.kt | 11 +++++------ .../java/io/legado/app/ui/book/read/page/PageView.kt | 7 +++---- app/src/main/res/layout/dialog_read_aloud.xml | 4 ++-- app/src/main/res/values/strings.xml | 1 + 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/io/legado/app/service/help/ReadBook.kt b/app/src/main/java/io/legado/app/service/help/ReadBook.kt index 4e718a09c..ecbeb74a1 100644 --- a/app/src/main/java/io/legado/app/service/help/ReadBook.kt +++ b/app/src/main/java/io/legado/app/service/help/ReadBook.kt @@ -133,7 +133,7 @@ object ReadBook { curPageChanged() } - fun curPageChanged() { + private fun curPageChanged() { callBack?.upPageProgress() if (BaseReadAloudService.isRun) { readAloud(!BaseReadAloudService.pause) @@ -312,7 +312,7 @@ object ReadBook { } interface CallBack { - fun upContent(position: Int = 0) + fun upContent(relativePosition: Int = 0, resetScrollOffset: Boolean = true) fun upView() fun upPageProgress() fun contentLoadFinish() diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index a10e21f74..fec5bfa27 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -456,9 +456,9 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo /** * 更新内容 */ - override fun upContent(position: Int) { + override fun upContent(relativePosition: Int, resetScrollOffset: Boolean) { launch { - page_view.upContent(position) + page_view.upContent(relativePosition) } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt index eec3b5cb2..fc0576f60 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt @@ -160,10 +160,12 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at pageFactory.moveToPrev() textPage = pageFactory.currentPage ?: TextPage().format() pageOffset -= textPage.height + callBack.upContent(0, false) } else if (pageOffset < -textPage.height) { pageOffset += textPage.height pageFactory.moveToNext() textPage = pageFactory.currentPage ?: TextPage().format() + callBack.upContent(0, false) } invalidate() } @@ -301,6 +303,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at } interface CallBack { + fun upContent(relativePosition: Int, resetScrollOffset: Boolean) fun upSelectedStart(x: Float, y: Float) fun upSelectedEnd(x: Float, y: Float) fun onCancelSelect() diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ContentView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ContentView.kt index d6ae6eb3a..d0d6ac377 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ContentView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ContentView.kt @@ -91,12 +91,15 @@ class ContentView(context: Context) : FrameLayout(context) { tv_top_right.text = context.getString(R.string.battery_show, battery) } - fun setContent(textPage: TextPage?) { + fun setContent(textPage: TextPage?, resetScrollOffset: Boolean = true) { if (textPage != null) { - content_text_view.setContent(textPage) tv_bottom_left.text = textPage.title pageSize = textPage.pageSize setPageIndex(textPage.index) + if (resetScrollOffset) { + content_text_view.resetPageOffset() + content_text_view.setContent(textPage) + } } } @@ -111,10 +114,6 @@ class ContentView(context: Context) : FrameLayout(context) { content_text_view.onScroll(offset) } - fun resetPageOffset() { - content_text_view.resetPageOffset() - } - fun upSelectAble(selectAble: Boolean) { content_text_view.selectAble = selectAble } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt index 7ebb215ce..076462d0a 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt @@ -98,12 +98,11 @@ class PageView(context: Context, attrs: AttributeSet) : upContent() } - fun upContent(position: Int = 0) { + fun upContent(relativePosition: Int = 0, resetScrollOffset: Boolean = true) { if (ReadBookConfig.isScroll) { - curPage.resetPageOffset() - curPage.setContent(pageFactory.currentPage) + curPage.setContent(pageFactory.currentPage, resetScrollOffset) } else { - when (position) { + when (relativePosition) { -1 -> prevPage.setContent(pageFactory.prevPage) 1 -> nextPage.setContent(pageFactory.nextPage) else -> { diff --git a/app/src/main/res/layout/dialog_read_aloud.xml b/app/src/main/res/layout/dialog_read_aloud.xml index 282f9cdfe..ea04696d4 100644 --- a/app/src/main/res/layout/dialog_read_aloud.xml +++ b/app/src/main/res/layout/dialog_read_aloud.xml @@ -154,8 +154,8 @@ android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:background="?android:attr/selectableItemBackgroundBorderless" - android:tooltipText="@string/other_setting" - android:contentDescription="@string/other_setting" + android:tooltipText="@string/other_aloud_setting" + android:contentDescription="@string/other_aloud_setting" android:src="@drawable/ic_settings" android:tint="@color/tv_text_default" tools:ignore="UnusedAttribute" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3b121d53f..f64f60c5a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -626,4 +626,5 @@ 更多菜单 + 其它朗读设置