mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
优化
This commit is contained in:
@@ -162,6 +162,7 @@ object PreferKey {
|
||||
const val readAloudByMediaButton = "readAloudByMediaButton"
|
||||
const val showMangaUi = "showMangaUi"
|
||||
const val disableMangaScale = "disableMangaScale"
|
||||
const val paddingDisplayCutouts = "paddingDisplayCutouts"
|
||||
|
||||
const val cPrimary = "colorPrimary"
|
||||
const val cAccent = "colorAccent"
|
||||
|
||||
@@ -513,6 +513,9 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
val mouseWheelPage
|
||||
get() = appCtx.getPrefBoolean(PreferKey.mouseWheelPage, true)
|
||||
|
||||
val paddingDisplayCutouts
|
||||
get() = appCtx.getPrefBoolean(PreferKey.paddingDisplayCutouts, false)
|
||||
|
||||
var searchScope: String
|
||||
get() = appCtx.getPrefString("searchScope") ?: ""
|
||||
set(value) {
|
||||
|
||||
@@ -47,8 +47,8 @@ import io.legado.app.utils.LogUtils
|
||||
import io.legado.app.utils.activityPendingIntent
|
||||
import io.legado.app.utils.broadcastPendingIntent
|
||||
import io.legado.app.utils.getPrefBoolean
|
||||
import io.legado.app.utils.isVivoDevice
|
||||
import io.legado.app.utils.isSamsungDevice
|
||||
import io.legado.app.utils.isVivoDevice
|
||||
import io.legado.app.utils.observeEvent
|
||||
import io.legado.app.utils.observeSharedPreferences
|
||||
import io.legado.app.utils.postEvent
|
||||
@@ -467,37 +467,47 @@ abstract class BaseReadAloudService : BaseService(),
|
||||
override fun onPlay() {
|
||||
resumeReadAloud()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
pauseReadAloud()
|
||||
}
|
||||
|
||||
override fun onSkipToNext() {
|
||||
if (getPrefBoolean("mediaButtonPerNext", false)) {
|
||||
nextChapter()
|
||||
} else{
|
||||
} else {
|
||||
nextP()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSkipToPrevious() {
|
||||
if (getPrefBoolean("mediaButtonPerNext", false)) {
|
||||
prevChapter()
|
||||
} else{
|
||||
} else {
|
||||
prevP()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
stopSelf()
|
||||
}
|
||||
|
||||
override fun onCustomAction(action: String, extras: Bundle?) {
|
||||
if (action == "ACTION_ADD_TIMER") addTimer()
|
||||
}
|
||||
|
||||
override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean {
|
||||
return MediaButtonReceiver.handleIntent(this@BaseReadAloudService, mediaButtonEvent)
|
||||
return MediaButtonReceiver.handleIntent(
|
||||
this@BaseReadAloudService, mediaButtonEvent
|
||||
)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
mediaSessionCompat.setCallback(object : MediaSessionCompat.Callback() {
|
||||
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.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.content.Context
|
||||
import android.graphics.drawable.LayerDrawable
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
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.isInvisible
|
||||
import io.legado.app.R
|
||||
import io.legado.app.constant.AppConst.timeFormat
|
||||
import io.legado.app.data.entities.Bookmark
|
||||
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.ReadTipConfig
|
||||
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.dpToPx
|
||||
import io.legado.app.utils.gone
|
||||
import io.legado.app.utils.setOnApplyWindowInsetsListenerCompat
|
||||
import io.legado.app.utils.setTextIfNotEqual
|
||||
import splitties.views.backgroundColor
|
||||
import java.util.Date
|
||||
@@ -95,6 +101,7 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
vwBottomDivider.backgroundColor = tipDividerColor
|
||||
upStatusBar()
|
||||
upNavigationBar()
|
||||
upPaddingDisplayCutouts()
|
||||
llHeader.setPadding(
|
||||
it.headerPaddingLeft.dpToPx(),
|
||||
it.headerPaddingTop.dpToPx(),
|
||||
@@ -126,6 +133,24 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
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() {
|
||||
binding.vwRoot.backgroundColor = ReadBookConfig.bgMeanColor
|
||||
binding.vwBg.background = ReadBookConfig.bg
|
||||
binding.vwRoot.background = LayerDrawable(
|
||||
arrayOf(
|
||||
ReadBookConfig.bgMeanColor.toDrawable(),
|
||||
ReadBookConfig.bg
|
||||
)
|
||||
)
|
||||
upBgAlpha()
|
||||
}
|
||||
|
||||
@@ -249,7 +278,8 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
* 更新背景透明度
|
||||
*/
|
||||
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:orientation="vertical">
|
||||
|
||||
<View
|
||||
android:id="@+id/vw_bg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/vw_status_bar"
|
||||
android:layout_width="match_parent"
|
||||
@@ -145,4 +140,4 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -1215,4 +1215,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||
</resources>
|
||||
|
||||
@@ -1218,4 +1218,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||
</resources>
|
||||
|
||||
@@ -1218,4 +1218,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||
</resources>
|
||||
|
||||
@@ -1214,4 +1214,5 @@ Còn </string>
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||
</resources>
|
||||
|
||||
@@ -1210,4 +1210,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">填充刘海区域</string>
|
||||
</resources>
|
||||
|
||||
@@ -1212,4 +1212,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">填充刘海区域</string>
|
||||
</resources>
|
||||
|
||||
@@ -1217,4 +1217,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">填充刘海区域</string>
|
||||
</resources>
|
||||
|
||||
@@ -1218,4 +1218,5 @@
|
||||
<string name="manga_color_filter">滤镜</string>
|
||||
<string name="hide_manga_title">隐藏漫画列表标题</string>
|
||||
<string name="refresh_explore">刷新发现</string>
|
||||
<string name="padding_display_cutouts">Padding display cutouts</string>
|
||||
</resources>
|
||||
|
||||
@@ -27,6 +27,13 @@
|
||||
app:iconSpaceReserved="false"
|
||||
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
|
||||
android:defaultValue="true"
|
||||
android:key="readBodyToLh"
|
||||
@@ -36,8 +43,8 @@
|
||||
|
||||
<io.legado.app.lib.prefs.SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="hideNavigationBar"
|
||||
android:title="@string/pt_hide_navigation_bar"
|
||||
android:key="paddingDisplayCutouts"
|
||||
android:title="@string/padding_display_cutouts"
|
||||
app:iconSpaceReserved="false"
|
||||
app:isBottomBackground="true" />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user