This commit is contained in:
Horis
2024-08-28 11:49:57 +08:00
parent 1df71ec5fd
commit 5a024d2d02
11 changed files with 53 additions and 40 deletions
@@ -32,7 +32,7 @@ import splitties.init.appCtx
import java.io.FileOutputStream
class BookInfoEditActivity :
VMBaseActivity<ActivityBookInfoEditBinding, BookInfoEditViewModel>(fullScreen = false),
VMBaseActivity<ActivityBookInfoEditBinding, BookInfoEditViewModel>(),
ChangeCoverDialog.CallBack {
private val selectCover = registerForActivityResult(SelectImageContract()) {
@@ -5,14 +5,13 @@ import android.app.DatePickerDialog
import android.content.pm.ActivityInfo
import android.os.Build
import android.os.Bundle
import android.view.Gravity
import android.view.KeyEvent
import android.view.View
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.WindowInsets
import android.view.WindowManager
import android.widget.FrameLayout
import androidx.activity.viewModels
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
@@ -43,8 +42,6 @@ import io.legado.app.utils.find
import io.legado.app.utils.getPrefString
import io.legado.app.utils.gone
import io.legado.app.utils.isTv
import io.legado.app.utils.navigationBarGravity
import io.legado.app.utils.navigationBarHeight
import io.legado.app.utils.setLightStatusBar
import io.legado.app.utils.setNavigationBarColorAuto
import io.legado.app.utils.showDialogFragment
@@ -86,6 +83,13 @@ abstract class BaseReadBookActivity :
setOrientation()
upLayoutInDisplayCutoutMode()
super.onCreate(savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
binding.navigationBar.run {
layoutParams = layoutParams.apply { height = insets.bottom }
}
windowInsets
}
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
@@ -213,7 +217,7 @@ abstract class BaseReadBookActivity :
}
override fun upNavigationBarColor() {
// upNavigationBar()
upNavigationBar()
when {
binding.readMenu.isVisible -> super.upNavigationBarColor()
bottomDialog > 0 -> super.upNavigationBarColor()
@@ -226,30 +230,30 @@ abstract class BaseReadBookActivity :
private fun upNavigationBar() {
binding.navigationBar.run {
if (bottomDialog > 0 || binding.readMenu.isVisible) {
val navigationBarHeight =
if (ReadBookConfig.hideNavigationBar) navigationBarHeight else 0
when (navigationBarGravity) {
Gravity.BOTTOM -> layoutParams =
(layoutParams as FrameLayout.LayoutParams).apply {
height = navigationBarHeight
width = MATCH_PARENT
gravity = Gravity.BOTTOM
}
Gravity.LEFT -> layoutParams =
(layoutParams as FrameLayout.LayoutParams).apply {
height = MATCH_PARENT
width = navigationBarHeight
gravity = Gravity.LEFT
}
Gravity.RIGHT -> layoutParams =
(layoutParams as FrameLayout.LayoutParams).apply {
height = MATCH_PARENT
width = navigationBarHeight
gravity = Gravity.RIGHT
}
}
// val navigationBarHeight =
// if (ReadBookConfig.hideNavigationBar) navigationBarHeight else 0
// when (navigationBarGravity) {
// Gravity.BOTTOM -> layoutParams =
// (layoutParams as FrameLayout.LayoutParams).apply {
// height = navigationBarHeight
// width = MATCH_PARENT
// gravity = Gravity.BOTTOM
// }
//
// Gravity.LEFT -> layoutParams =
// (layoutParams as FrameLayout.LayoutParams).apply {
// height = MATCH_PARENT
// width = navigationBarHeight
// gravity = Gravity.LEFT
// }
//
// Gravity.RIGHT -> layoutParams =
// (layoutParams as FrameLayout.LayoutParams).apply {
// height = MATCH_PARENT
// width = navigationBarHeight
// gravity = Gravity.RIGHT
// }
// }
visible()
} else {
gone()
@@ -55,7 +55,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class BookSourceEditActivity :
VMBaseActivity<ActivityBookSourceEditBinding, BookSourceEditViewModel>(false),
VMBaseActivity<ActivityBookSourceEditBinding, BookSourceEditViewModel>(),
KeyboardToolPop.CallBack,
VariableDialog.Callback {
@@ -23,7 +23,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
* 编辑替换规则
*/
class ReplaceEditActivity :
VMBaseActivity<ActivityReplaceEditBinding, ReplaceEditViewModel>(false),
VMBaseActivity<ActivityReplaceEditBinding, ReplaceEditViewModel>(),
KeyboardToolPop.CallBack {
companion object {
@@ -67,7 +67,7 @@ import java.util.regex.PatternSyntaxException
/**
* rss阅读界面
*/
class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>(false) {
class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>() {
override val binding by viewBinding(ActivityRssReadBinding::inflate)
override val viewModel by viewModels<ReadRssViewModel>()
@@ -44,7 +44,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class RssSourceEditActivity :
VMBaseActivity<ActivityRssSourceEditBinding, RssSourceEditViewModel>(false),
VMBaseActivity<ActivityRssSourceEditBinding, RssSourceEditViewModel>(),
KeyboardToolPop.CallBack,
VariableDialog.Callback {
@@ -9,11 +9,19 @@ import android.widget.FrameLayout
import androidx.annotation.MenuRes
import androidx.annotation.StringRes
import androidx.appcompat.widget.PopupMenu
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import io.legado.app.R
import io.legado.app.databinding.ViewSelectActionBarBinding
import io.legado.app.lib.theme.*
import io.legado.app.lib.theme.TintHelper
import io.legado.app.lib.theme.accentColor
import io.legado.app.lib.theme.bottomBackground
import io.legado.app.lib.theme.elevation
import io.legado.app.lib.theme.getPrimaryTextColor
import io.legado.app.lib.theme.getSecondaryDisabledTextColor
import io.legado.app.utils.ColorUtils
import io.legado.app.utils.visible
import splitties.views.bottomPadding
@Suppress("unused")
@@ -46,6 +54,11 @@ class SelectActionBar @JvmOverloads constructor(
binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() }
binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() }
binding.ivMenuMore.setOnClickListener { selMenu?.show() }
ViewCompat.setOnApplyWindowInsetsListener(this) { _, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
binding.root.bottomPadding = insets.bottom
windowInsets
}
}
}