From 5a024d2d025fc1386e88e9da65ece3433f74cc7f Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Wed, 28 Aug 2024 11:49:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/book/info/edit/BookInfoEditActivity.kt | 2 +- .../app/ui/book/read/BaseReadBookActivity.kt | 64 ++++++++++--------- .../source/edit/BookSourceEditActivity.kt | 2 +- .../ui/replace/edit/ReplaceEditActivity.kt | 2 +- .../legado/app/ui/rss/read/ReadRssActivity.kt | 2 +- .../rss/source/edit/RssSourceEditActivity.kt | 2 +- .../legado/app/ui/widget/SelectActionBar.kt | 15 ++++- .../res/layout/activity_book_source_edit.xml | 1 - .../main/res/layout/activity_replace_edit.xml | 1 - app/src/main/res/layout/activity_rss_read.xml | 1 - .../res/layout/activity_rss_source_edit.xml | 1 - 11 files changed, 53 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt index 242522a6b..bf6f5c85a 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt @@ -32,7 +32,7 @@ import splitties.init.appCtx import java.io.FileOutputStream class BookInfoEditActivity : - VMBaseActivity(fullScreen = false), + VMBaseActivity(), ChangeCoverDialog.CallBack { private val selectCover = registerForActivityResult(SelectImageContract()) { diff --git a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt index 048929fe6..339c16e20 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt @@ -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() diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 091c7cc55..415b2fa95 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -55,7 +55,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class BookSourceEditActivity : - VMBaseActivity(false), + VMBaseActivity(), KeyboardToolPop.CallBack, VariableDialog.Callback { diff --git a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt index 5058159e1..52483085c 100644 --- a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt @@ -23,7 +23,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding * 编辑替换规则 */ class ReplaceEditActivity : - VMBaseActivity(false), + VMBaseActivity(), KeyboardToolPop.CallBack { companion object { diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt index 0e398b843..162328d1d 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt @@ -67,7 +67,7 @@ import java.util.regex.PatternSyntaxException /** * rss阅读界面 */ -class ReadRssActivity : VMBaseActivity(false) { +class ReadRssActivity : VMBaseActivity() { override val binding by viewBinding(ActivityRssReadBinding::inflate) override val viewModel by viewModels() diff --git a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt index 2f0d00e45..e6cb28584 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt @@ -44,7 +44,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class RssSourceEditActivity : - VMBaseActivity(false), + VMBaseActivity(), KeyboardToolPop.CallBack, VariableDialog.Callback { diff --git a/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt b/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt index 34786621c..a2b0abfa8 100644 --- a/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt @@ -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 + } } } diff --git a/app/src/main/res/layout/activity_book_source_edit.xml b/app/src/main/res/layout/activity_book_source_edit.xml index 3f310efaf..5def7e625 100644 --- a/app/src/main/res/layout/activity_book_source_edit.xml +++ b/app/src/main/res/layout/activity_book_source_edit.xml @@ -10,7 +10,6 @@ android:id="@+id/title_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - app:fitStatusBar="false" app:title="@string/edit_book_source" />