Merge pull request #2253 from Xie-Jason/master

[feature] 阅读界面Popup工具栏更多自定义项
pull/2268/head
kunfei 3 years ago committed by GitHub
commit 0f663af2fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      app/src/main/java/io/legado/app/constant/PreferKey.kt
  2. 11
      app/src/main/java/io/legado/app/help/config/AppConfig.kt
  3. 5
      app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt
  4. 50
      app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt
  5. 4
      app/src/main/java/io/legado/app/ui/book/read/config/MoreConfigDialog.kt
  6. 19
      app/src/main/java/io/legado/app/ui/widget/TitleBar.kt
  7. 1
      app/src/main/res/layout/view_read_menu.xml
  8. 2
      app/src/main/res/values-es-rES/strings.xml
  9. 2
      app/src/main/res/values-ja-rJP/strings.xml
  10. 2
      app/src/main/res/values-pt-rBR/strings.xml
  11. 2
      app/src/main/res/values-zh-rHK/strings.xml
  12. 2
      app/src/main/res/values-zh-rTW/strings.xml
  13. 2
      app/src/main/res/values-zh/strings.xml
  14. 2
      app/src/main/res/values/strings.xml
  15. 9
      app/src/main/res/xml/pref_config_read.xml
  16. 2
      gradle.properties

@ -125,5 +125,7 @@ object PreferKey {
const val cNBBackground = "colorBottomBackgroundNight"
const val bgImageN = "backgroundImageNight"
const val bgImageNBlurring = "backgroundImageNightBlurring"
const val showReadTitleAddition = "showReadTitleAddition"
const val readBarStyleFollowPage = "readBarStyleFollowPage"
const val updateReadActionBar = "updateReadActionBar"
}

@ -348,5 +348,16 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
set(value) {
appCtx.putPrefInt(PreferKey.bitmapCacheSize, value)
}
var showReadTitleBarAddition : Boolean
get() = appCtx.getPrefBoolean(PreferKey.showReadTitleAddition, true)
set(value) {
appCtx.putPrefBoolean(PreferKey.showReadTitleAddition, value)
}
var readBarStyleFollowPage : Boolean
get() = appCtx.getPrefBoolean(PreferKey.readBarStyleFollowPage, false)
set(value) {
appCtx.putPrefBoolean(PreferKey.readBarStyleFollowPage, value)
}
}

@ -229,6 +229,7 @@ class ReadBookActivity : BaseReadBookActivity(),
setOnMenuItemClickListener(this@ReadBookActivity)
}.show()
}
binding.readMenu.refreshMenuColorFilter()
return super.onCompatCreateOptionsMenu(menu)
}
@ -1222,6 +1223,7 @@ class ReadBookActivity : BaseReadBookActivity(),
} else {
readView.upContent(resetPageOffset = false)
}
binding.readMenu.reset()
}
observeEvent<Int>(EventBus.ALOUD_STATE) {
if (it == Status.STOP || it == Status.PAUSE) {
@ -1259,6 +1261,9 @@ class ReadBookActivity : BaseReadBookActivity(),
observeEvent<List<SearchResult>>(EventBus.SEARCH_RESULT) {
viewModel.searchResultList = it
}
observeEvent<Boolean>(PreferKey.updateReadActionBar){
binding.readMenu.reset()
}
}
private fun upScreenTimeOut() {

@ -3,6 +3,7 @@ package io.legado.app.ui.book.read
import android.annotation.SuppressLint
import android.content.Context
import android.content.res.ColorStateList
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.util.AttributeSet
import android.view.Gravity
@ -14,8 +15,7 @@ import android.view.animation.Animation
import android.widget.FrameLayout
import android.widget.SeekBar
import androidx.appcompat.widget.PopupMenu
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.core.view.*
import io.legado.app.R
import io.legado.app.constant.PreferKey
import io.legado.app.databinding.ViewReadMenuBinding
@ -55,12 +55,24 @@ class ReadMenu @JvmOverloads constructor(
private val menuBottomOut: Animation by lazy {
loadAnimation(context, R.anim.anim_readbook_bottom_out)
}
private val bgColor: Int = context.bottomBackground
private val textColor: Int = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
private val bottomBackgroundList: ColorStateList = Selector.colorBuild()
.setDefaultColor(bgColor)
.setPressedColor(ColorUtils.darkenColor(bgColor))
.create()
private val bgColor: Int
get() = if(AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0){
Color.parseColor(ReadBookConfig.durConfig.curBgStr())
}else{
context.bottomBackground
}
private val textColor: Int
get() = if(AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0){
ReadBookConfig.durConfig.curTextColor()
}else{
context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
}
private val bottomBackgroundList: ColorStateList
get() = Selector.colorBuild()
.setDefaultColor(bgColor)
.setPressedColor(ColorUtils.darkenColor(bgColor))
.create()
private var onMenuOutEnd: (() -> Unit)? = null
private val showBrightnessView
get() = context.getPrefBoolean(
@ -145,6 +157,15 @@ class ReadMenu @JvmOverloads constructor(
fabNightTheme.setImageResource(R.drawable.ic_brightness)
}
initAnimation()
val bgColor = this@ReadMenu.bgColor
val textColor = this@ReadMenu.textColor
val bottomBackgroundList = this@ReadMenu.bottomBackgroundList
val lightTextColor = ColorUtils.withAlpha(ColorUtils.lightenColor(textColor),0.75f)
titleBar.setTextColor(textColor)
titleBar.setBackgroundColor(bgColor)
titleBar.setColorFilter(textColor)
tvChapterName.setTextColor(lightTextColor)
tvChapterUrl.setTextColor(lightTextColor)
val brightnessBackground = GradientDrawable()
brightnessBackground.cornerRadius = 5F.dpToPx()
brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f))
@ -173,6 +194,19 @@ class ReadMenu @JvmOverloads constructor(
seekBrightness.post {
seekBrightness.progress = AppConfig.readBrightness
}
if(AppConfig.showReadTitleBarAddition){
titleBarAddition.visible()
}else{
titleBarAddition.gone()
}
}
fun reset(){
initView()
}
fun refreshMenuColorFilter(){
binding.titleBar.setColorFilter(textColor)
}
fun upBrightnessState() {

@ -133,6 +133,10 @@ class MoreConfigDialog : DialogFragment() {
ChapterProvider.upLayout()
ReadBook.loadContent(false)
}
PreferKey.showReadTitleAddition,
PreferKey.readBarStyleFollowPage -> {
postEvent(PreferKey.updateReadActionBar,true)
}
}
}

@ -3,12 +3,16 @@ package io.legado.app.ui.widget
import android.content.Context
import android.content.res.ColorStateList
import android.graphics.Color
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.util.AttributeSet
import android.view.Menu
import android.view.View
import android.widget.ImageView
import androidx.annotation.ColorInt
import androidx.annotation.StyleRes
import androidx.appcompat.widget.Toolbar
import androidx.core.view.children
import com.google.android.material.appbar.AppBarLayout
import io.legado.app.R
import io.legado.app.lib.theme.elevation
@ -192,6 +196,21 @@ class TitleBar @JvmOverloads constructor(
toolbar.setSubtitleTextAppearance(context, resId)
}
fun setTextColor(@ColorInt color: Int){
setTitleTextColor(color)
setSubTitleTextColor(color)
}
fun setColorFilter(@ColorInt color: Int){
val colorFilter = PorterDuffColorFilter(color,PorterDuff.Mode.SRC_ATOP)
toolbar.children.firstOrNull { it is ImageView }?.background?.colorFilter = colorFilter
toolbar.navigationIcon?.colorFilter = colorFilter
toolbar.overflowIcon?.colorFilter = colorFilter
toolbar.menu.children.forEach{
it.icon?.colorFilter = colorFilter
}
}
fun transparent() {
elevation = 0f
setBackgroundColor(Color.TRANSPARENT)

@ -22,6 +22,7 @@
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/title_bar_addition"
android:layout_width="match_parent"
android:layout_height="wrap_content">

@ -1023,4 +1023,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">show read title addition area</string>
<string name="read_bar_style_follow_page">read bar style follow page</string>
</resources>

@ -1026,4 +1026,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">show read title addition area</string>
<string name="read_bar_style_follow_page">read bar style follow page</string>
</resources>

@ -1026,4 +1026,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">show read title addition area</string>
<string name="read_bar_style_follow_page">read bar style follow page</string>
</resources>

@ -1023,4 +1023,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">展示顶部工具栏附加区域</string>
<string name="read_bar_style_follow_page">工具栏样式跟随页面</string>
</resources>

@ -1025,4 +1025,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">展示顶部工具栏附加区域</string>
<string name="read_bar_style_follow_page">工具栏样式跟随页面</string>
</resources>

@ -1025,4 +1025,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">展示顶部工具栏附加区域</string>
<string name="read_bar_style_follow_page">工具栏样式跟随页面</string>
</resources>

@ -1026,4 +1026,6 @@
<string name="delete_review_url">删除段评URL(deleteUrl)</string>
<string name="tag_explore_enabled">标志:发现已启用</string>
<string name="tag_explore_disabled">标志:发现已禁用</string>
<string name="show_read_title_addition">show read title addition area</string>
<string name="read_bar_style_follow_page">read bar style follow page</string>
</resources>

@ -146,4 +146,13 @@
app:iconSpaceReserved="false"
app:isBottomBackground="true" />
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="true"
android:key="showReadTitleAddition"
android:title="@string/show_read_title_addition"/>
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="false"
android:key="readBarStyleFollowPage"
android:title="@string/read_bar_style_follow_page"/>
</androidx.preference.PreferenceScreen>

@ -27,3 +27,5 @@ android.experimental.enableNewResourceShrinker.preciseShrinking=true
android.nonTransitiveRClass=true
#https://chromiumdash.appspot.com/releases?platform=Android
CronetVersion=105.0.5195.79
android.injected.testOnly=false
Loading…
Cancel
Save