This commit is contained in:
kunfei
2023-05-20 23:42:06 +08:00
parent 56d1a20a07
commit cd039751ce
13 changed files with 74 additions and 13 deletions
@@ -128,6 +128,7 @@ object PreferKey {
const val showLastUpdateTime = "showLastUpdateTime" const val showLastUpdateTime = "showLastUpdateTime"
const val clearWebViewData = "clearWebViewData" const val clearWebViewData = "clearWebViewData"
const val onlyLatestBackup = "onlyLatestBackup" const val onlyLatestBackup = "onlyLatestBackup"
const val brightnessVwPos = "brightnessVwPos"
const val cPrimary = "colorPrimary" const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent" const val cAccent = "colorAccent"
@@ -451,6 +451,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
appCtx.putPrefBoolean(PreferKey.audioPlayWakeLock, value) appCtx.putPrefBoolean(PreferKey.audioPlayWakeLock, value)
} }
var brightnessVwPos: Boolean
get() = appCtx.getPrefBoolean(PreferKey.brightnessVwPos)
set(value) {
appCtx.putPrefBoolean(PreferKey.brightnessVwPos, value)
}
fun detectClickArea() { fun detectClickArea() {
if (clickActionTL * clickActionTC * clickActionTR if (clickActionTL * clickActionTC * clickActionTR
* clickActionML * clickActionMC * clickActionMR * clickActionML * clickActionMC * clickActionMR
@@ -16,6 +16,7 @@ import android.view.animation.Animation
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.SeekBar import android.widget.SeekBar
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.view.isGone import androidx.core.view.isGone
import androidx.core.view.isVisible import androidx.core.view.isVisible
import io.legado.app.R import io.legado.app.R
@@ -208,6 +209,7 @@ class ReadMenu @JvmOverloads constructor(
} else { } else {
titleBarAddition.gone() titleBarAddition.gone()
} }
upBrightnessVwPos()
} }
fun reset() { fun reset() {
@@ -366,7 +368,10 @@ class ReadMenu @JvmOverloads constructor(
} }
}) })
vwBrightnessPosAdjust.setOnClickListener {
AppConfig.brightnessVwPos = !AppConfig.brightnessVwPos
upBrightnessVwPos()
}
//阅读进度 //阅读进度
seekReadPage.setOnSeekBarChangeListener(object : SeekBarChangeListener { seekReadPage.setOnSeekBarChangeListener(object : SeekBarChangeListener {
@@ -492,6 +497,7 @@ class ReadMenu @JvmOverloads constructor(
progress = ReadBook.durPageIndex progress = ReadBook.durPageIndex
} }
} }
"chapter" -> { "chapter" -> {
max = ReadBook.chapterSize - 1 max = ReadBook.chapterSize - 1
progress = ReadBook.durChapterIndex progress = ReadBook.durChapterIndex
@@ -515,6 +521,20 @@ class ReadMenu @JvmOverloads constructor(
fabAutoPage.setColorFilter(textColor) fabAutoPage.setColorFilter(textColor)
} }
private fun upBrightnessVwPos() {
if (AppConfig.brightnessVwPos) {
binding.root.modify()
.clear(R.id.ll_brightness, ConstraintSet.LEFT)
.rightToRightOf(R.id.ll_brightness, R.id.vw_menu_root)
.commit()
} else {
binding.root.modify()
.clear(R.id.ll_brightness, ConstraintSet.RIGHT)
.leftToLeftOf(R.id.ll_brightness, R.id.vw_menu_root)
.commit()
}
}
interface CallBack { interface CallBack {
fun autoPage() fun autoPage()
fun openReplaceRule() fun openReplaceRule()
@@ -18,9 +18,8 @@ fun ConstraintLayout.modify(withAnim: Boolean = false): ConstraintModify.Constra
class ConstraintModify(private val constraintLayout: ConstraintLayout) { class ConstraintModify(private val constraintLayout: ConstraintLayout) {
val begin: ConstraintBegin by lazy { val begin: ConstraintBegin by lazy {
ConstraintBegin(constraintLayout, applyConstraintSet).apply { applyConstraintSet.clone(constraintLayout)
applyConstraintSet.clone(constraintLayout) ConstraintBegin(constraintLayout, applyConstraintSet)
}
} }
private val applyConstraintSet = ConstraintSet() private val applyConstraintSet = ConstraintSet()
private val resetConstraintSet = ConstraintSet() private val resetConstraintSet = ConstraintSet()
@@ -75,8 +74,8 @@ class ConstraintModify(private val constraintLayout: ConstraintLayout) {
/** /**
* 清除某个控件的,某个关系 * 清除某个控件的,某个关系
* @param viewId * @param viewId 控件ID
* @param anchor * @param anchor 要解除的关系
* @return * @return
*/ */
fun clear(viewId: Int, anchor: Int): ConstraintBegin { fun clear(viewId: Int, anchor: Int): ConstraintBegin {
@@ -275,7 +274,9 @@ class ConstraintModify(private val constraintLayout: ConstraintLayout) {
* 提交应用生效 * 提交应用生效
*/ */
fun commit() { fun commit() {
applyConstraintSet.applyTo(constraintLayout) constraintLayout.post {
applyConstraintSet.applyTo(constraintLayout)
}
} }
} }
@@ -0,0 +1,10 @@
<vector android:height="24dp"
android:tint="#000000"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="@android:color/white"
android:pathData="M6.99,11L3,15l3.99,4v-3H14v-2H6.99v-3zM21,9l-3.99,-4v3H10v2h7.01v3L21,9z" />
</vector>
+22 -6
View File
@@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/vw_menu_root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
@@ -73,10 +74,11 @@
android:id="@+id/ll_brightness" android:id="@+id/ll_brightness"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginLeft="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical" android:orientation="vertical"
android:background="@color/transparent30"
app:layout_constraintBottom_toTopOf="@+id/bottom_menu" app:layout_constraintBottom_toTopOf="@+id/bottom_menu"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_bar" app:layout_constraintTop_toBottomOf="@+id/title_bar"
@@ -93,7 +95,8 @@
<io.legado.app.ui.widget.seekbar.VerticalSeekBarWrapper <io.legado.app.ui.widget.seekbar.VerticalSeekBarWrapper
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent"> android:layout_height="0dp"
android:layout_weight="1">
<io.legado.app.ui.widget.seekbar.VerticalSeekBar <io.legado.app.ui.widget.seekbar.VerticalSeekBar
android:id="@+id/seek_brightness" android:id="@+id/seek_brightness"
@@ -104,6 +107,15 @@
</io.legado.app.ui.widget.seekbar.VerticalSeekBarWrapper> </io.legado.app.ui.widget.seekbar.VerticalSeekBarWrapper>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/vw_brightness_pos_adjust"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_margin="8dp"
android:contentDescription="@string/adjust_pos"
android:src="@drawable/ic_swap_horiz"
app:tint="@color/white" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@@ -294,7 +306,8 @@
android:contentDescription="@string/chapter_list" android:contentDescription="@string/chapter_list"
android:focusable="true" android:focusable="true"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="7dp"> android:paddingBottom="7dp"
tools:ignore="VisualLintBounds">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_catalog" android:id="@+id/iv_catalog"
@@ -335,7 +348,8 @@
android:contentDescription="@string/read_aloud" android:contentDescription="@string/read_aloud"
android:focusable="true" android:focusable="true"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="7dp"> android:paddingBottom="7dp"
tools:ignore="VisualLintBounds">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_read_aloud" android:id="@+id/iv_read_aloud"
@@ -376,7 +390,8 @@
android:contentDescription="@string/interface_setting" android:contentDescription="@string/interface_setting"
android:focusable="true" android:focusable="true"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="7dp"> android:paddingBottom="7dp"
tools:ignore="VisualLintBounds">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_font" android:id="@+id/iv_font"
@@ -417,7 +432,8 @@
android:contentDescription="@string/setting" android:contentDescription="@string/setting"
android:focusable="true" android:focusable="true"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="7dp"> android:paddingBottom="7dp"
tools:ignore="VisualLintBounds">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_setting" android:id="@+id/iv_setting"
@@ -1103,4 +1103,5 @@
<string name="load_word_count">Cargar palabras del libro</string> <string name="load_word_count">Cargar palabras del libro</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>
@@ -1106,4 +1106,5 @@
<string name="load_word_count">Load word count</string> <string name="load_word_count">Load word count</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>
@@ -1106,4 +1106,5 @@
<string name="load_word_count">Carregar os palavras do livro</string> <string name="load_word_count">Carregar os palavras do livro</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>
@@ -1103,4 +1103,5 @@
<string name="load_word_count">加載字數</string> <string name="load_word_count">加載字數</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>
@@ -1105,4 +1105,5 @@
<string name="load_word_count">加載字數</string> <string name="load_word_count">加載字數</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>
+1
View File
@@ -1105,4 +1105,5 @@
<string name="load_word_count">加载字数</string> <string name="load_word_count">加载字数</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>
+1
View File
@@ -1106,4 +1106,5 @@
<string name="load_word_count">Load word count</string> <string name="load_word_count">Load word count</string>
<string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string> <string name="replace_exclude_scope">排除范围,选填书名或者书源 URL</string>
<string name="format_js_rule">格式化规则(formatJs)</string> <string name="format_js_rule">格式化规则(formatJs)</string>
<string name="adjust_pos">调整位置</string>
</resources> </resources>