优化Eink主题效果: 1.移除Eink主题时dialog及UI控件阴影; 2.Eink主题时dialog增加边框. (#4386)

* 优化Eink主题效果: 1.移除Eink主题时dialog及UI控件阴影; 2.Eink主题时dialog增加边框.

* fix: 2处与全局不一致的UI效果
This commit is contained in:
wyouflf
2024-11-30 18:18:21 +08:00
committed by GitHub
parent aeaed40933
commit b7db2a0494
25 changed files with 273 additions and 22 deletions
@@ -4,15 +4,22 @@ import android.content.DialogInterface
import android.content.DialogInterface.OnDismissListener import android.content.DialogInterface.OnDismissListener
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.Gravity
import android.view.View import android.view.View
import android.view.WindowManager
import androidx.annotation.LayoutRes import androidx.annotation.LayoutRes
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import io.legado.app.R import io.legado.app.R
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.help.config.AppConfig
import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.coroutine.Coroutine
import io.legado.app.lib.theme.ThemeStore import io.legado.app.lib.theme.ThemeStore
import io.legado.app.utils.dpToPx
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
@@ -34,6 +41,35 @@ abstract class BaseDialogFragment(
if (adaptationSoftKeyboard) { if (adaptationSoftKeyboard) {
dialog?.window?.setBackgroundDrawableResource(R.color.transparent) dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
} }
if (AppConfig.isEInkMode) {
dialog?.window?.let {
it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
val attr = it.attributes
attr.dimAmount = 0.0f
attr.windowAnimations = 0
it.attributes = attr
it.setBackgroundDrawableResource(R.color.transparent)
}
// 修改gravity的时机一般在子类的onStart方法中, 因此需要在onStart之后执行.
this.lifecycle.addObserver(object : LifecycleEventObserver {
override fun onStateChanged(
source: LifecycleOwner,
event: Lifecycle.Event
) {
if (event == Lifecycle.Event.ON_START) {
when (dialog?.window?.attributes?.gravity) {
Gravity.TOP -> view?.setBackgroundResource(R.drawable.bg_eink_border_bottom)
Gravity.BOTTOM -> view?.setBackgroundResource(R.drawable.bg_eink_border_top)
else -> {
val padding = 2.dpToPx();
view?.setPadding(padding, padding, padding, padding)
view?.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
}
}
}
})
}
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@@ -49,7 +85,7 @@ abstract class BaseDialogFragment(
if (adaptationSoftKeyboard) { if (adaptationSoftKeyboard) {
view.findViewById<View>(R.id.vw_bg)?.setOnClickListener(null) view.findViewById<View>(R.id.vw_bg)?.setOnClickListener(null)
view.setOnClickListener { dismiss() } view.setOnClickListener { dismiss() }
} else { } else if (!AppConfig.isEInkMode) {
view.setBackgroundColor(ThemeStore.backgroundColor()) view.setBackgroundColor(ThemeStore.backgroundColor())
} }
onFragmentCreated(view, savedInstanceState) onFragmentCreated(view, savedInstanceState)
@@ -0,0 +1,50 @@
package io.legado.app.base
import android.view.Gravity
import android.view.WindowManager
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import io.legado.app.R
import io.legado.app.help.config.AppConfig
import io.legado.app.utils.dpToPx
abstract class BasePrefDialogFragment(
) : DialogFragment() {
override fun onStart() {
super.onStart()
if (AppConfig.isEInkMode) {
dialog?.window?.let {
it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
val attr = it.attributes
attr.dimAmount = 0.0f
attr.windowAnimations = 0
it.attributes = attr
it.setBackgroundDrawableResource(R.color.transparent)
}
// 修改gravity的时机一般在子类的onStart方法中, 因此需要在onStart之后执行.
this.lifecycle.addObserver(object : LifecycleEventObserver {
override fun onStateChanged(
source: LifecycleOwner,
event: Lifecycle.Event
) {
if (event == Lifecycle.Event.ON_START) {
when (dialog?.window?.attributes?.gravity) {
Gravity.TOP -> view?.setBackgroundResource(R.drawable.bg_eink_border_bottom)
Gravity.BOTTOM -> view?.setBackgroundResource(R.drawable.bg_eink_border_top)
else -> {
val padding = 2.dpToPx();
view?.setPadding(padding, padding, padding, padding)
view?.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
}
}
}
})
}
}
}
@@ -6,6 +6,7 @@ import android.provider.Settings
import androidx.annotation.Keep import androidx.annotation.Keep
import cn.hutool.crypto.digest.DigestUtil import cn.hutool.crypto.digest.DigestUtil
import io.legado.app.BuildConfig import io.legado.app.BuildConfig
import io.legado.app.help.config.AppConfig
import io.legado.app.help.update.AppVariant import io.legado.app.help.update.AppVariant
import splitties.init.appCtx import splitties.init.appCtx
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@@ -51,7 +52,7 @@ object AppConst {
) )
@SuppressLint("PrivateResource") @SuppressLint("PrivateResource")
val sysElevation = appCtx.resources val sysElevation = if (AppConfig.isEInkMode) 0 else appCtx.resources
.getDimension(com.google.android.material.R.dimen.design_appbar_elevation) .getDimension(com.google.android.material.R.dimen.design_appbar_elevation)
.toInt() .toInt()
@@ -290,7 +290,10 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
} }
var elevation: Int var elevation: Int
get() = appCtx.getPrefInt(PreferKey.barElevation, AppConst.sysElevation) get() = if (isEInkMode) 0 else appCtx.getPrefInt(
PreferKey.barElevation,
AppConst.sysElevation
)
set(value) { set(value) {
appCtx.putPrefInt(PreferKey.barElevation, value) appCtx.putPrefInt(PreferKey.barElevation, value)
} }
@@ -497,7 +497,7 @@ object ReadBookConfig {
private var textColorNight: String = "#ADADAD",//夜间文字颜色 private var textColorNight: String = "#ADADAD",//夜间文字颜色
private var textColorEInk: String = "#000000", private var textColorEInk: String = "#000000",
private var pageAnim: Int = 0,//翻页动画 private var pageAnim: Int = 0,//翻页动画
private var pageAnimEInk: Int = 3, private var pageAnimEInk: Int = 4,
var textFont: String = "",//字体 var textFont: String = "",//字体
var textBold: Int = 0,//是否粗体字 0:正常, 1:粗体, 2:细体 var textBold: Int = 0,//是否粗体字 0:正常, 1:粗体, 2:细体
var textSize: Int = 20,//文字大小 var textSize: Int = 20,//文字大小
@@ -7,6 +7,8 @@ import android.view.KeyEvent
import android.view.View import android.view.View
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import io.legado.app.utils.applyTint import io.legado.app.utils.applyTint
import io.legado.app.R
import io.legado.app.help.config.AppConfig
internal class AndroidAlertBuilder(override val ctx: Context) : AlertBuilder<AlertDialog> { internal class AndroidAlertBuilder(override val ctx: Context) : AlertBuilder<AlertDialog> {
private val builder = AlertDialog.Builder(ctx) private val builder = AlertDialog.Builder(ctx)
@@ -139,7 +141,21 @@ internal class AndroidAlertBuilder(override val ctx: Context) : AlertBuilder<Ale
} }
} }
override fun build(): AlertDialog = builder.create() override fun build(): AlertDialog {
var dialog = builder.create()
if (AppConfig.isEInkMode) {
dialog.window?.setDimAmount(0f)
dialog.window?.decorView?.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
return dialog
}
override fun show(): AlertDialog = builder.show().applyTint() override fun show(): AlertDialog {
var dialog = builder.show().applyTint()
if (AppConfig.isEInkMode) {
dialog.window?.setDimAmount(0f)
dialog.window?.decorView?.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
return dialog
}
} }
@@ -2,11 +2,16 @@ package io.legado.app.lib.prefs
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.preference.EditTextPreferenceDialogFragmentCompat import androidx.preference.EditTextPreferenceDialogFragmentCompat
import androidx.preference.PreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat
import io.legado.app.R
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.accentColor
import io.legado.app.lib.theme.filletBackground import io.legado.app.lib.theme.filletBackground
import io.legado.app.utils.dpToPx
class EditTextPreferenceDialog : EditTextPreferenceDialogFragmentCompat() { class EditTextPreferenceDialog : EditTextPreferenceDialogFragmentCompat() {
@@ -35,4 +40,27 @@ class EditTextPreferenceDialog : EditTextPreferenceDialogFragmentCompat() {
return dialog return dialog
} }
override fun onStart() {
super.onStart()
if (AppConfig.isEInkMode) {
dialog?.window?.let {
it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
val attr = it.attributes
attr.dimAmount = 0.0f
attr.windowAnimations = 0
it.attributes = attr
it.setBackgroundDrawableResource(R.color.transparent)
when (attr.gravity) {
Gravity.TOP -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_bottom)
Gravity.BOTTOM -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_top)
else -> {
val padding = 2.dpToPx();
it.decorView.setPadding(padding, padding, padding, padding)
it.decorView.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
}
}
}
}
} }
@@ -2,13 +2,18 @@ package io.legado.app.lib.prefs
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.view.forEach import androidx.core.view.forEach
import androidx.preference.ListPreferenceDialogFragmentCompat import androidx.preference.ListPreferenceDialogFragmentCompat
import androidx.preference.PreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat
import io.legado.app.R
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.accentColor
import io.legado.app.lib.theme.filletBackground import io.legado.app.lib.theme.filletBackground
import io.legado.app.utils.applyTint import io.legado.app.utils.applyTint
import io.legado.app.utils.dpToPx
class ListPreferenceDialog : ListPreferenceDialogFragmentCompat() { class ListPreferenceDialog : ListPreferenceDialogFragmentCompat() {
@@ -40,4 +45,27 @@ class ListPreferenceDialog : ListPreferenceDialogFragmentCompat() {
return dialog return dialog
} }
override fun onStart() {
super.onStart()
if (AppConfig.isEInkMode) {
dialog?.window?.let {
it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
val attr = it.attributes
attr.dimAmount = 0.0f
attr.windowAnimations = 0
it.attributes = attr
it.setBackgroundDrawableResource(R.color.transparent)
when (attr.gravity) {
Gravity.TOP -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_bottom)
Gravity.BOTTOM -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_top)
else -> {
val padding = 2.dpToPx();
it.decorView.setPadding(padding, padding, padding, padding)
it.decorView.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
}
}
}
}
} }
@@ -2,13 +2,18 @@ package io.legado.app.lib.prefs
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.view.forEach import androidx.core.view.forEach
import androidx.preference.MultiSelectListPreferenceDialogFragmentCompat import androidx.preference.MultiSelectListPreferenceDialogFragmentCompat
import androidx.preference.PreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat
import io.legado.app.R
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.accentColor
import io.legado.app.lib.theme.filletBackground import io.legado.app.lib.theme.filletBackground
import io.legado.app.utils.applyTint import io.legado.app.utils.applyTint
import io.legado.app.utils.dpToPx
class MultiSelectListPreferenceDialog : MultiSelectListPreferenceDialogFragmentCompat() { class MultiSelectListPreferenceDialog : MultiSelectListPreferenceDialogFragmentCompat() {
@@ -42,5 +47,27 @@ class MultiSelectListPreferenceDialog : MultiSelectListPreferenceDialogFragmentC
return dialog return dialog
} }
override fun onStart() {
super.onStart()
if (AppConfig.isEInkMode) {
dialog?.window?.let {
it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
val attr = it.attributes
attr.dimAmount = 0.0f
attr.windowAnimations = 0
it.attributes = attr
it.setBackgroundDrawableResource(R.color.transparent)
when (attr.gravity) {
Gravity.TOP -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_bottom)
Gravity.BOTTOM -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_top)
else -> {
val padding = 2.dpToPx();
it.decorView.setPadding(padding, padding, padding, padding)
it.decorView.setBackgroundResource(R.drawable.bg_eink_border_dialog)
}
}
}
}
}
} }
@@ -1,12 +1,14 @@
package io.legado.app.lib.theme.view package io.legado.app.lib.theme.view
import android.content.Context import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import com.google.android.material.bottomnavigation.BottomNavigationItemView import android.view.ViewGroup
import com.google.android.material.bottomnavigation.BottomNavigationMenuView
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import io.legado.app.databinding.ViewNavigationBadgeBinding import io.legado.app.databinding.ViewNavigationBadgeBinding
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.theme.Selector import io.legado.app.lib.theme.Selector
import io.legado.app.lib.theme.ThemeStore import io.legado.app.lib.theme.ThemeStore
import io.legado.app.lib.theme.bottomBackground import io.legado.app.lib.theme.bottomBackground
@@ -27,13 +29,18 @@ class ThemeBottomNavigationVIew(context: Context, attrs: AttributeSet) :
.setSelectedColor(ThemeStore.accentColor(context)).create() .setSelectedColor(ThemeStore.accentColor(context)).create()
itemIconTintList = colorStateList itemIconTintList = colorStateList
itemTextColor = colorStateList itemTextColor = colorStateList
if (AppConfig.isEInkMode) {
isItemHorizontalTranslationEnabled = false
itemBackground = ColorDrawable(Color.TRANSPARENT)
}
} }
fun addBadgeView(index: Int): BadgeView { fun addBadgeView(index: Int): BadgeView {
//获取底部菜单view //获取底部菜单view
val menuView = getChildAt(0) as BottomNavigationMenuView val menuView = getChildAt(0) as ViewGroup
//获取第index个itemView //获取第index个itemView
val itemView = menuView.getChildAt(index) as BottomNavigationItemView val itemView = menuView.getChildAt(index) as ViewGroup
val badgeBinding = ViewNavigationBadgeBinding.inflate(LayoutInflater.from(context)) val badgeBinding = ViewNavigationBadgeBinding.inflate(LayoutInflater.from(context))
itemView.addView(badgeBinding.root) itemView.addView(badgeBinding.root)
return badgeBinding.viewBadge return badgeBinding.viewBadge
@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.BaseDialogFragment import io.legado.app.base.BaseDialogFragment
import io.legado.app.constant.AppConst
import io.legado.app.constant.BookType import io.legado.app.constant.BookType
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.data.appDb import io.legado.app.data.appDb
@@ -122,6 +123,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_
binding.toolBar.subtitle = viewModel.author binding.toolBar.subtitle = viewModel.author
binding.toolBar.navigationIcon = binding.toolBar.navigationIcon =
getCompatDrawable(androidx.appcompat.R.drawable.abc_ic_ab_back_material) getCompatDrawable(androidx.appcompat.R.drawable.abc_ic_ab_back_material)
binding.toolBar.elevation = AppConfig.elevation.toFloat()
} }
private fun initMenu() { private fun initMenu() {
@@ -156,7 +156,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c
binding.ivHideToc.setOnClickListener { binding.ivHideToc.setOnClickListener {
binding.clToc.gone() binding.clToc.gone()
} }
binding.flHideToc.elevation = requireContext().elevation binding.flHideToc.elevation = if (AppConfig.isEInkMode) 0f else requireContext().elevation
} }
private fun initRecyclerView() { private fun initRecyclerView() {
@@ -295,7 +295,6 @@ abstract class BaseReadBookActivity :
ReadBook.book?.let { book -> ReadBook.book?.let { book ->
alert(titleResource = R.string.offline_cache) { alert(titleResource = R.string.offline_cache) {
val alertBinding = DialogDownloadChoiceBinding.inflate(layoutInflater).apply { val alertBinding = DialogDownloadChoiceBinding.inflate(layoutInflater).apply {
root.setBackgroundColor(root.context.backgroundColor)
editStart.setText((book.durChapterIndex + 1).toString()) editStart.setText((book.durChapterIndex + 1).toString())
editEnd.setText(book.totalChapterNum.toString()) editEnd.setText(book.totalChapterNum.toString())
} }
@@ -100,7 +100,7 @@ class ReadMenu @JvmOverloads constructor(
private val showBrightnessView private val showBrightnessView
get() = context.getPrefBoolean( get() = context.getPrefBoolean(
PreferKey.showBrightnessView, PreferKey.showBrightnessView,
true !AppConfig.isEInkMode
) )
private val sourceMenu by lazy { private val sourceMenu by lazy {
PopupMenu(context, binding.tvSourceAction).apply { PopupMenu(context, binding.tvSourceAction).apply {
@@ -202,7 +202,12 @@ class ReadMenu @JvmOverloads constructor(
brightnessBackground.cornerRadius = 5F.dpToPx() brightnessBackground.cornerRadius = 5F.dpToPx()
brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f)) brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f))
llBrightness.background = brightnessBackground llBrightness.background = brightnessBackground
llBottomBg.setBackgroundColor(bgColor) if(AppConfig.isEInkMode) {
titleBar.setBackgroundResource(R.drawable.bg_eink_border_bottom)
llBottomBg.setBackgroundResource(R.drawable.bg_eink_border_top)
} else {
llBottomBg.setBackgroundColor(bgColor)
}
fabSearch.backgroundTintList = bottomBackgroundList fabSearch.backgroundTintList = bottomBackgroundList
fabSearch.setColorFilter(textColor) fabSearch.setColorFilter(textColor)
fabAutoPage.backgroundTintList = bottomBackgroundList fabAutoPage.backgroundTintList = bottomBackgroundList
@@ -11,9 +11,9 @@ import android.view.ViewConfiguration
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.fragment.app.DialogFragment
import androidx.preference.Preference import androidx.preference.Preference
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.BasePrefDialogFragment
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
@@ -30,7 +30,7 @@ import io.legado.app.utils.getPrefBoolean
import io.legado.app.utils.postEvent import io.legado.app.utils.postEvent
import io.legado.app.utils.setEdgeEffectColor import io.legado.app.utils.setEdgeEffectColor
class MoreConfigDialog : DialogFragment() { class MoreConfigDialog : BasePrefDialogFragment() {
private val readPreferTag = "readPreferenceFragment" private val readPreferTag = "readPreferenceFragment"
override fun onStart() { override fun onStart() {
@@ -6,10 +6,10 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.fragment.app.DialogFragment
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.BasePrefDialogFragment
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.data.appDb import io.legado.app.data.appDb
@@ -30,7 +30,7 @@ import io.legado.app.utils.setEdgeEffectColor
import io.legado.app.utils.setLayout import io.legado.app.utils.setLayout
import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showDialogFragment
class ReadAloudConfigDialog : DialogFragment() { class ReadAloudConfigDialog : BasePrefDialogFragment() {
private val readAloudPreferTag = "readAloudPreferTag" private val readAloudPreferTag = "readAloudPreferTag"
override fun onStart() { override fun onStart() {
@@ -98,6 +98,11 @@ class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style),
} }
} }
} }
if(AppConfig.isEInkMode) {
binding.vwBgFg1.visibility = View.INVISIBLE
binding.llBgTs.visibility = View.GONE
binding.rvStyle.visibility = View.GONE
}
} }
private fun initData() { private fun initData() {
@@ -31,7 +31,7 @@ class TipConfigDialog : BaseDialogFragment(R.layout.dialog_tip_config) {
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT)
} }
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
@@ -96,6 +96,9 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
bottomNavigationView.elevation = elevation bottomNavigationView.elevation = elevation
bottomNavigationView.setOnNavigationItemSelectedListener(this@MainActivity) bottomNavigationView.setOnNavigationItemSelectedListener(this@MainActivity)
bottomNavigationView.setOnNavigationItemReselectedListener(this@MainActivity) bottomNavigationView.setOnNavigationItemReselectedListener(this@MainActivity)
if (AppConfig.isEInkMode) {
bottomNavigationView.setBackgroundResource(R.drawable.bg_eink_border_top)
}
} }
upHomePage() upHomePage()
viewModel.deleteNotShelfBook() viewModel.deleteNotShelfBook()
@@ -109,7 +112,7 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
return@addCallback return@addCallback
} }
} }
if (System.currentTimeMillis() - exitTime > 2000) { if (!AppConfig.isEInkMode && System.currentTimeMillis() - exitTime > 2000) {
toastOnUi(R.string.double_click_exit) toastOnUi(R.string.double_click_exit)
exitTime = System.currentTimeMillis() exitTime = System.currentTimeMillis()
} else { } else {
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<!-- 边框颜色 -->
<solid android:color="@color/divider" />
</shape>
</item>
<!-- 边框位置和粗细 -->
<item android:bottom="1dp">
<shape>
<!-- 背景颜色 -->
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke
android:width="1dp"
android:color="@color/divider" />
<corners android:radius="2dp" />
</shape>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<!-- 边框颜色 -->
<solid android:color="@color/divider" />
</shape>
</item>
<!-- 边框位置和粗细 -->
<item android:top="1dp">
<shape>
<!-- 背景颜色 -->
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
@@ -4,7 +4,6 @@
android:id="@+id/ll_content" android:id="@+id/ll_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/background"
android:gravity="center" android:gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
android:padding="16dp"> android:padding="16dp">
@@ -267,6 +267,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:id="@+id/ll_bg_ts"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
+2 -1
View File
@@ -1,6 +1,7 @@
#Tue Aug 27 18:19:17 CST 2024 #Tue Aug 27 18:19:17 CST 2024
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip #distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.9-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists