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 import java.io.FileOutputStream
class BookInfoEditActivity : class BookInfoEditActivity :
VMBaseActivity<ActivityBookInfoEditBinding, BookInfoEditViewModel>(fullScreen = false), VMBaseActivity<ActivityBookInfoEditBinding, BookInfoEditViewModel>(),
ChangeCoverDialog.CallBack { ChangeCoverDialog.CallBack {
private val selectCover = registerForActivityResult(SelectImageContract()) { private val selectCover = registerForActivityResult(SelectImageContract()) {
@@ -5,14 +5,13 @@ import android.app.DatePickerDialog
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.Gravity
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View import android.view.View
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.WindowInsets import android.view.WindowInsets
import android.view.WindowManager import android.view.WindowManager
import android.widget.FrameLayout
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.VMBaseActivity 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.getPrefString
import io.legado.app.utils.gone import io.legado.app.utils.gone
import io.legado.app.utils.isTv 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.setLightStatusBar
import io.legado.app.utils.setNavigationBarColorAuto import io.legado.app.utils.setNavigationBarColorAuto
import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showDialogFragment
@@ -86,6 +83,13 @@ abstract class BaseReadBookActivity :
setOrientation() setOrientation()
upLayoutInDisplayCutoutMode() upLayoutInDisplayCutoutMode()
super.onCreate(savedInstanceState) 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?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
@@ -213,7 +217,7 @@ abstract class BaseReadBookActivity :
} }
override fun upNavigationBarColor() { override fun upNavigationBarColor() {
// upNavigationBar() upNavigationBar()
when { when {
binding.readMenu.isVisible -> super.upNavigationBarColor() binding.readMenu.isVisible -> super.upNavigationBarColor()
bottomDialog > 0 -> super.upNavigationBarColor() bottomDialog > 0 -> super.upNavigationBarColor()
@@ -226,30 +230,30 @@ abstract class BaseReadBookActivity :
private fun upNavigationBar() { private fun upNavigationBar() {
binding.navigationBar.run { binding.navigationBar.run {
if (bottomDialog > 0 || binding.readMenu.isVisible) { if (bottomDialog > 0 || binding.readMenu.isVisible) {
val navigationBarHeight = // val navigationBarHeight =
if (ReadBookConfig.hideNavigationBar) navigationBarHeight else 0 // if (ReadBookConfig.hideNavigationBar) navigationBarHeight else 0
when (navigationBarGravity) { // when (navigationBarGravity) {
Gravity.BOTTOM -> layoutParams = // Gravity.BOTTOM -> layoutParams =
(layoutParams as FrameLayout.LayoutParams).apply { // (layoutParams as FrameLayout.LayoutParams).apply {
height = navigationBarHeight // height = navigationBarHeight
width = MATCH_PARENT // width = MATCH_PARENT
gravity = Gravity.BOTTOM // gravity = Gravity.BOTTOM
} // }
//
Gravity.LEFT -> layoutParams = // Gravity.LEFT -> layoutParams =
(layoutParams as FrameLayout.LayoutParams).apply { // (layoutParams as FrameLayout.LayoutParams).apply {
height = MATCH_PARENT // height = MATCH_PARENT
width = navigationBarHeight // width = navigationBarHeight
gravity = Gravity.LEFT // gravity = Gravity.LEFT
} // }
//
Gravity.RIGHT -> layoutParams = // Gravity.RIGHT -> layoutParams =
(layoutParams as FrameLayout.LayoutParams).apply { // (layoutParams as FrameLayout.LayoutParams).apply {
height = MATCH_PARENT // height = MATCH_PARENT
width = navigationBarHeight // width = navigationBarHeight
gravity = Gravity.RIGHT // gravity = Gravity.RIGHT
} // }
} // }
visible() visible()
} else { } else {
gone() gone()
@@ -55,7 +55,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
class BookSourceEditActivity : class BookSourceEditActivity :
VMBaseActivity<ActivityBookSourceEditBinding, BookSourceEditViewModel>(false), VMBaseActivity<ActivityBookSourceEditBinding, BookSourceEditViewModel>(),
KeyboardToolPop.CallBack, KeyboardToolPop.CallBack,
VariableDialog.Callback { VariableDialog.Callback {
@@ -23,7 +23,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
* 编辑替换规则 * 编辑替换规则
*/ */
class ReplaceEditActivity : class ReplaceEditActivity :
VMBaseActivity<ActivityReplaceEditBinding, ReplaceEditViewModel>(false), VMBaseActivity<ActivityReplaceEditBinding, ReplaceEditViewModel>(),
KeyboardToolPop.CallBack { KeyboardToolPop.CallBack {
companion object { companion object {
@@ -67,7 +67,7 @@ import java.util.regex.PatternSyntaxException
/** /**
* rss阅读界面 * rss阅读界面
*/ */
class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>(false) { class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>() {
override val binding by viewBinding(ActivityRssReadBinding::inflate) override val binding by viewBinding(ActivityRssReadBinding::inflate)
override val viewModel by viewModels<ReadRssViewModel>() override val viewModel by viewModels<ReadRssViewModel>()
@@ -44,7 +44,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
class RssSourceEditActivity : class RssSourceEditActivity :
VMBaseActivity<ActivityRssSourceEditBinding, RssSourceEditViewModel>(false), VMBaseActivity<ActivityRssSourceEditBinding, RssSourceEditViewModel>(),
KeyboardToolPop.CallBack, KeyboardToolPop.CallBack,
VariableDialog.Callback { VariableDialog.Callback {
@@ -9,11 +9,19 @@ import android.widget.FrameLayout
import androidx.annotation.MenuRes import androidx.annotation.MenuRes
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import io.legado.app.R import io.legado.app.R
import io.legado.app.databinding.ViewSelectActionBarBinding 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.ColorUtils
import io.legado.app.utils.visible import io.legado.app.utils.visible
import splitties.views.bottomPadding
@Suppress("unused") @Suppress("unused")
@@ -46,6 +54,11 @@ class SelectActionBar @JvmOverloads constructor(
binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() } binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() }
binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() } binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() }
binding.ivMenuMore.setOnClickListener { selMenu?.show() } binding.ivMenuMore.setOnClickListener { selMenu?.show() }
ViewCompat.setOnApplyWindowInsetsListener(this) { _, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
binding.root.bottomPadding = insets.bottom
windowInsets
}
} }
} }
@@ -10,7 +10,6 @@
android:id="@+id/title_bar" android:id="@+id/title_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:fitStatusBar="false"
app:title="@string/edit_book_source" /> app:title="@string/edit_book_source" />
<HorizontalScrollView <HorizontalScrollView
@@ -13,7 +13,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:contentInsetStartWithNavigation="0dp" app:contentInsetStartWithNavigation="0dp"
app:displayHomeAsUp="true" app:displayHomeAsUp="true"
app:fitStatusBar="false"
app:title="@string/replace_rule_edit" /> app:title="@string/replace_rule_edit" />
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
@@ -15,7 +15,6 @@
android:id="@+id/title_bar" android:id="@+id/title_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:fitStatusBar="false"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<io.legado.app.ui.rss.read.VisibleWebView <io.legado.app.ui.rss.read.VisibleWebView
@@ -12,7 +12,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:contentInsetStartWithNavigation="0dp" app:contentInsetStartWithNavigation="0dp"
app:displayHomeAsUp="true" app:displayHomeAsUp="true"
app:fitStatusBar="false"
app:title="@string/rss_source_edit" /> app:title="@string/rss_source_edit" />
<HorizontalScrollView <HorizontalScrollView