优化
This commit is contained in:
@@ -162,6 +162,7 @@ object PreferKey {
|
|||||||
const val readAloudByMediaButton = "readAloudByMediaButton"
|
const val readAloudByMediaButton = "readAloudByMediaButton"
|
||||||
const val showMangaUi = "showMangaUi"
|
const val showMangaUi = "showMangaUi"
|
||||||
const val disableMangaScale = "disableMangaScale"
|
const val disableMangaScale = "disableMangaScale"
|
||||||
|
const val paddingDisplayCutouts = "paddingDisplayCutouts"
|
||||||
|
|
||||||
const val cPrimary = "colorPrimary"
|
const val cPrimary = "colorPrimary"
|
||||||
const val cAccent = "colorAccent"
|
const val cAccent = "colorAccent"
|
||||||
|
|||||||
@@ -513,6 +513,9 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
|||||||
val mouseWheelPage
|
val mouseWheelPage
|
||||||
get() = appCtx.getPrefBoolean(PreferKey.mouseWheelPage, true)
|
get() = appCtx.getPrefBoolean(PreferKey.mouseWheelPage, true)
|
||||||
|
|
||||||
|
val paddingDisplayCutouts
|
||||||
|
get() = appCtx.getPrefBoolean(PreferKey.paddingDisplayCutouts, false)
|
||||||
|
|
||||||
var searchScope: String
|
var searchScope: String
|
||||||
get() = appCtx.getPrefString("searchScope") ?: ""
|
get() = appCtx.getPrefString("searchScope") ?: ""
|
||||||
set(value) {
|
set(value) {
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ import io.legado.app.utils.LogUtils
|
|||||||
import io.legado.app.utils.activityPendingIntent
|
import io.legado.app.utils.activityPendingIntent
|
||||||
import io.legado.app.utils.broadcastPendingIntent
|
import io.legado.app.utils.broadcastPendingIntent
|
||||||
import io.legado.app.utils.getPrefBoolean
|
import io.legado.app.utils.getPrefBoolean
|
||||||
import io.legado.app.utils.isVivoDevice
|
|
||||||
import io.legado.app.utils.isSamsungDevice
|
import io.legado.app.utils.isSamsungDevice
|
||||||
|
import io.legado.app.utils.isVivoDevice
|
||||||
import io.legado.app.utils.observeEvent
|
import io.legado.app.utils.observeEvent
|
||||||
import io.legado.app.utils.observeSharedPreferences
|
import io.legado.app.utils.observeSharedPreferences
|
||||||
import io.legado.app.utils.postEvent
|
import io.legado.app.utils.postEvent
|
||||||
@@ -467,37 +467,47 @@ abstract class BaseReadAloudService : BaseService(),
|
|||||||
override fun onPlay() {
|
override fun onPlay() {
|
||||||
resumeReadAloud()
|
resumeReadAloud()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
pauseReadAloud()
|
pauseReadAloud()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSkipToNext() {
|
override fun onSkipToNext() {
|
||||||
if (getPrefBoolean("mediaButtonPerNext", false)) {
|
if (getPrefBoolean("mediaButtonPerNext", false)) {
|
||||||
nextChapter()
|
nextChapter()
|
||||||
} else{
|
} else {
|
||||||
nextP()
|
nextP()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSkipToPrevious() {
|
override fun onSkipToPrevious() {
|
||||||
if (getPrefBoolean("mediaButtonPerNext", false)) {
|
if (getPrefBoolean("mediaButtonPerNext", false)) {
|
||||||
prevChapter()
|
prevChapter()
|
||||||
} else{
|
} else {
|
||||||
prevP()
|
prevP()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
stopSelf()
|
stopSelf()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCustomAction(action: String, extras: Bundle?) {
|
override fun onCustomAction(action: String, extras: Bundle?) {
|
||||||
if (action == "ACTION_ADD_TIMER") addTimer()
|
if (action == "ACTION_ADD_TIMER") addTimer()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean {
|
override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean {
|
||||||
return MediaButtonReceiver.handleIntent(this@BaseReadAloudService, mediaButtonEvent)
|
return MediaButtonReceiver.handleIntent(
|
||||||
|
this@BaseReadAloudService, mediaButtonEvent
|
||||||
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
mediaSessionCompat.setCallback(object : MediaSessionCompat.Callback() {
|
mediaSessionCompat.setCallback(object : MediaSessionCompat.Callback() {
|
||||||
override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean {
|
override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean {
|
||||||
return MediaButtonReceiver.handleIntent(this@BaseReadAloudService, mediaButtonEvent)
|
return MediaButtonReceiver.handleIntent(
|
||||||
|
this@BaseReadAloudService, mediaButtonEvent
|
||||||
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,6 +169,10 @@ class MoreConfigDialog : BasePrefDialogFragment() {
|
|||||||
ReadBook.callBack?.upPageAnim(true)
|
ReadBook.callBack?.upPageAnim(true)
|
||||||
ReadBook.loadContent(false)
|
ReadBook.loadContent(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PreferKey.paddingDisplayCutouts -> {
|
||||||
|
postEvent(EventBus.UP_CONFIG, arrayListOf(2))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,15 +2,20 @@ package io.legado.app.ui.book.read.page
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.graphics.drawable.LayerDrawable
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
import androidx.core.graphics.drawable.toDrawable
|
||||||
|
import androidx.core.view.ViewCompat
|
||||||
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
import androidx.core.view.isInvisible
|
import androidx.core.view.isInvisible
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.AppConst.timeFormat
|
import io.legado.app.constant.AppConst.timeFormat
|
||||||
import io.legado.app.data.entities.Bookmark
|
import io.legado.app.data.entities.Bookmark
|
||||||
import io.legado.app.databinding.ViewBookPageBinding
|
import io.legado.app.databinding.ViewBookPageBinding
|
||||||
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.help.config.ReadBookConfig
|
import io.legado.app.help.config.ReadBookConfig
|
||||||
import io.legado.app.help.config.ReadTipConfig
|
import io.legado.app.help.config.ReadTipConfig
|
||||||
import io.legado.app.model.ReadBook
|
import io.legado.app.model.ReadBook
|
||||||
@@ -25,6 +30,7 @@ import io.legado.app.utils.applyNavigationBarPadding
|
|||||||
import io.legado.app.utils.applyStatusBarPadding
|
import io.legado.app.utils.applyStatusBarPadding
|
||||||
import io.legado.app.utils.dpToPx
|
import io.legado.app.utils.dpToPx
|
||||||
import io.legado.app.utils.gone
|
import io.legado.app.utils.gone
|
||||||
|
import io.legado.app.utils.setOnApplyWindowInsetsListenerCompat
|
||||||
import io.legado.app.utils.setTextIfNotEqual
|
import io.legado.app.utils.setTextIfNotEqual
|
||||||
import splitties.views.backgroundColor
|
import splitties.views.backgroundColor
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
@@ -95,6 +101,7 @@ class PageView(context: Context) : FrameLayout(context) {
|
|||||||
vwBottomDivider.backgroundColor = tipDividerColor
|
vwBottomDivider.backgroundColor = tipDividerColor
|
||||||
upStatusBar()
|
upStatusBar()
|
||||||
upNavigationBar()
|
upNavigationBar()
|
||||||
|
upPaddingDisplayCutouts()
|
||||||
llHeader.setPadding(
|
llHeader.setPadding(
|
||||||
it.headerPaddingLeft.dpToPx(),
|
it.headerPaddingLeft.dpToPx(),
|
||||||
it.headerPaddingTop.dpToPx(),
|
it.headerPaddingTop.dpToPx(),
|
||||||
@@ -126,6 +133,24 @@ class PageView(context: Context) : FrameLayout(context) {
|
|||||||
binding.vwNavigationBar.isGone = ReadBookConfig.hideNavigationBar
|
binding.vwNavigationBar.isGone = ReadBookConfig.hideNavigationBar
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun upPaddingDisplayCutouts() {
|
||||||
|
if (AppConfig.paddingDisplayCutouts) {
|
||||||
|
binding.vwRoot.setOnApplyWindowInsetsListenerCompat { _, windowInsets ->
|
||||||
|
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
||||||
|
binding.vwRoot.setPadding(
|
||||||
|
insets.left,
|
||||||
|
if (binding.vwStatusBar.isGone) insets.top else 0,
|
||||||
|
insets.right,
|
||||||
|
insets.bottom
|
||||||
|
)
|
||||||
|
windowInsets
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ViewCompat.setOnApplyWindowInsetsListener(binding.vwRoot, null)
|
||||||
|
binding.vwRoot.setPadding(0, 0, 0, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新阅读信息
|
* 更新阅读信息
|
||||||
*/
|
*/
|
||||||
@@ -240,8 +265,12 @@ class PageView(context: Context) : FrameLayout(context) {
|
|||||||
* 更新背景
|
* 更新背景
|
||||||
*/
|
*/
|
||||||
fun upBg() {
|
fun upBg() {
|
||||||
binding.vwRoot.backgroundColor = ReadBookConfig.bgMeanColor
|
binding.vwRoot.background = LayerDrawable(
|
||||||
binding.vwBg.background = ReadBookConfig.bg
|
arrayOf(
|
||||||
|
ReadBookConfig.bgMeanColor.toDrawable(),
|
||||||
|
ReadBookConfig.bg
|
||||||
|
)
|
||||||
|
)
|
||||||
upBgAlpha()
|
upBgAlpha()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +278,8 @@ class PageView(context: Context) : FrameLayout(context) {
|
|||||||
* 更新背景透明度
|
* 更新背景透明度
|
||||||
*/
|
*/
|
||||||
fun upBgAlpha() {
|
fun upBgAlpha() {
|
||||||
binding.vwBg.alpha = ReadBookConfig.bgAlpha / 100f
|
ReadBookConfig.bg?.alpha = (ReadBookConfig.bgAlpha / 100f * 255).toInt()
|
||||||
|
binding.vwRoot.invalidate()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,11 +8,6 @@
|
|||||||
android:background="@color/background"
|
android:background="@color/background"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/vw_bg"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/vw_status_bar"
|
android:id="@+id/vw_status_bar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -1215,4 +1215,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1218,4 +1218,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1218,4 +1218,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1214,4 +1214,5 @@ Còn </string>
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1210,4 +1210,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">填充刘海区域</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1212,4 +1212,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">填充刘海区域</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1217,4 +1217,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">填充刘海区域</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1218,4 +1218,5 @@
|
|||||||
<string name="manga_color_filter">滤镜</string>
|
<string name="manga_color_filter">滤镜</string>
|
||||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||||
<string name="refresh_explore">刷新发现</string>
|
<string name="refresh_explore">刷新发现</string>
|
||||||
|
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -27,6 +27,13 @@
|
|||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
app:isBottomBackground="true" />
|
app:isBottomBackground="true" />
|
||||||
|
|
||||||
|
<io.legado.app.lib.prefs.SwitchPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="hideNavigationBar"
|
||||||
|
android:title="@string/pt_hide_navigation_bar"
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:isBottomBackground="true" />
|
||||||
|
|
||||||
<io.legado.app.lib.prefs.SwitchPreference
|
<io.legado.app.lib.prefs.SwitchPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="readBodyToLh"
|
android:key="readBodyToLh"
|
||||||
@@ -36,8 +43,8 @@
|
|||||||
|
|
||||||
<io.legado.app.lib.prefs.SwitchPreference
|
<io.legado.app.lib.prefs.SwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="hideNavigationBar"
|
android:key="paddingDisplayCutouts"
|
||||||
android:title="@string/pt_hide_navigation_bar"
|
android:title="@string/padding_display_cutouts"
|
||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
app:isBottomBackground="true" />
|
app:isBottomBackground="true" />
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user