diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt
index 069ed7b99..47a5c7c64 100644
--- a/app/src/main/java/io/legado/app/constant/PreferKey.kt
+++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt
@@ -128,6 +128,7 @@ object PreferKey {
const val showLastUpdateTime = "showLastUpdateTime"
const val clearWebViewData = "clearWebViewData"
const val onlyLatestBackup = "onlyLatestBackup"
+ const val brightnessVwPos = "brightnessVwPos"
const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent"
diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt
index b00b5f496..dec18efa9 100644
--- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt
+++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt
@@ -451,6 +451,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
appCtx.putPrefBoolean(PreferKey.audioPlayWakeLock, value)
}
+ var brightnessVwPos: Boolean
+ get() = appCtx.getPrefBoolean(PreferKey.brightnessVwPos)
+ set(value) {
+ appCtx.putPrefBoolean(PreferKey.brightnessVwPos, value)
+ }
+
fun detectClickArea() {
if (clickActionTL * clickActionTC * clickActionTR
* clickActionML * clickActionMC * clickActionMR
diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt
index 79b06fcbf..be737de2d 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt
@@ -16,6 +16,7 @@ import android.view.animation.Animation
import android.widget.FrameLayout
import android.widget.SeekBar
import androidx.appcompat.widget.PopupMenu
+import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.view.isGone
import androidx.core.view.isVisible
import io.legado.app.R
@@ -208,6 +209,7 @@ class ReadMenu @JvmOverloads constructor(
} else {
titleBarAddition.gone()
}
+ upBrightnessVwPos()
}
fun reset() {
@@ -366,7 +368,10 @@ class ReadMenu @JvmOverloads constructor(
}
})
-
+ vwBrightnessPosAdjust.setOnClickListener {
+ AppConfig.brightnessVwPos = !AppConfig.brightnessVwPos
+ upBrightnessVwPos()
+ }
//阅读进度
seekReadPage.setOnSeekBarChangeListener(object : SeekBarChangeListener {
@@ -492,6 +497,7 @@ class ReadMenu @JvmOverloads constructor(
progress = ReadBook.durPageIndex
}
}
+
"chapter" -> {
max = ReadBook.chapterSize - 1
progress = ReadBook.durChapterIndex
@@ -515,6 +521,20 @@ class ReadMenu @JvmOverloads constructor(
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 {
fun autoPage()
fun openReplaceRule()
diff --git a/app/src/main/java/io/legado/app/utils/ConstraintModify.kt b/app/src/main/java/io/legado/app/utils/ConstraintModify.kt
index 7a6291bfe..286a58c1b 100644
--- a/app/src/main/java/io/legado/app/utils/ConstraintModify.kt
+++ b/app/src/main/java/io/legado/app/utils/ConstraintModify.kt
@@ -18,9 +18,8 @@ fun ConstraintLayout.modify(withAnim: Boolean = false): ConstraintModify.Constra
class ConstraintModify(private val constraintLayout: ConstraintLayout) {
val begin: ConstraintBegin by lazy {
- ConstraintBegin(constraintLayout, applyConstraintSet).apply {
- applyConstraintSet.clone(constraintLayout)
- }
+ applyConstraintSet.clone(constraintLayout)
+ ConstraintBegin(constraintLayout, applyConstraintSet)
}
private val applyConstraintSet = ConstraintSet()
private val resetConstraintSet = ConstraintSet()
@@ -75,8 +74,8 @@ class ConstraintModify(private val constraintLayout: ConstraintLayout) {
/**
* 清除某个控件的,某个关系
- * @param viewId
- * @param anchor
+ * @param viewId 控件ID
+ * @param anchor 要解除的关系
* @return
*/
fun clear(viewId: Int, anchor: Int): ConstraintBegin {
@@ -275,7 +274,9 @@ class ConstraintModify(private val constraintLayout: ConstraintLayout) {
* 提交应用生效
*/
fun commit() {
- applyConstraintSet.applyTo(constraintLayout)
+ constraintLayout.post {
+ applyConstraintSet.applyTo(constraintLayout)
+ }
}
}
diff --git a/app/src/main/res/drawable/ic_swap_horiz.xml b/app/src/main/res/drawable/ic_swap_horiz.xml
new file mode 100644
index 000000000..8d80d0b55
--- /dev/null
+++ b/app/src/main/res/drawable/ic_swap_horiz.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/view_read_menu.xml b/app/src/main/res/layout/view_read_menu.xml
index 94a365804..cc4f50b49 100644
--- a/app/src/main/res/layout/view_read_menu.xml
+++ b/app/src/main/res/layout/view_read_menu.xml
@@ -2,6 +2,7 @@
@@ -73,10 +74,11 @@
android:id="@+id/ll_brightness"
android:layout_width="wrap_content"
android:layout_height="0dp"
- android:layout_marginLeft="16dp"
+ android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:orientation="vertical"
+ android:background="@color/transparent30"
app:layout_constraintBottom_toTopOf="@+id/bottom_menu"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_bar"
@@ -93,7 +95,8 @@
+ android:layout_height="0dp"
+ android:layout_weight="1">
+
+
+ android:paddingBottom="7dp"
+ tools:ignore="VisualLintBounds">
+ android:paddingBottom="7dp"
+ tools:ignore="VisualLintBounds">
+ android:paddingBottom="7dp"
+ tools:ignore="VisualLintBounds">
+ android:paddingBottom="7dp"
+ tools:ignore="VisualLintBounds">
Cargar palabras del libro
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 20bb5a5cc..a3d2beb15 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -1106,4 +1106,5 @@
Load word count
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 7db389697..5d1ddc05d 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1106,4 +1106,5 @@
Carregar os palavras do livro
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 6ee53f88d..0394474f2 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -1103,4 +1103,5 @@
加載字數
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index c03850f74..180d998c1 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -1105,4 +1105,5 @@
加載字數
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 80b4d49b5..344b8228f 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -1105,4 +1105,5 @@
加载字数
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8435551e1..cb06feb3e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1106,4 +1106,5 @@
Load word count
排除范围,选填书名或者书源 URL
格式化规则(formatJs)
+ 调整位置