From e0e6ffb6d8e55ea2834360485ed822fab86295b0 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 12 Jul 2021 14:05:13 -0400 Subject: [PATCH] Fixed bottom sheets in recents/browse ignoring insets on lower devices --- .../tachiyomi/ui/recents/RecentsController.kt | 14 +++++++++----- .../kanade/tachiyomi/ui/source/BrowseController.kt | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt index b92c82cf0a..ad5718d65e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt @@ -44,6 +44,7 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.recents.options.TabbedRecentsOptionsSheet import eu.kanade.tachiyomi.ui.source.browse.ProgressItem import eu.kanade.tachiyomi.util.system.dpToPx +import eu.kanade.tachiyomi.util.system.getBottomGestureInsets import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.spToPx import eu.kanade.tachiyomi.util.system.toInt @@ -172,6 +173,9 @@ class RecentsController(bundle: Bundle? = null) : topMargin = headerHeight bottomMargin = activityBinding?.bottomNav?.height ?: it.systemWindowInsetBottom } + if (activityBinding?.bottomNav == null) { + setBottomPadding() + } }, onBottomNavUpdate = { setBottomPadding() @@ -368,6 +372,8 @@ class RecentsController(bundle: Bundle? = null) : } setPadding(binding.downloadBottomSheet.dlBottomSheet.sheetBehavior?.isHideable == true) requestFilePermissionsSafe(301, presenter.preferences) + + binding.downloadBottomSheet.root.sheetBehavior?.isGestureInsetBottomIgnored = true } fun updateTitleAndMenu() { @@ -378,13 +384,11 @@ class RecentsController(bundle: Bundle? = null) : } private fun setBottomPadding() { - val bottomBar = activityBinding?.bottomNav ?: return - val pad = bottomBar.translationY - bottomBar.height + val bottomBar = activityBinding?.bottomNav + val pad = bottomBar?.translationY?.minus(bottomBar.height) ?: 0f val padding = max( (-pad).toInt(), - if (binding.downloadBottomSheet.dlBottomSheet.sheetBehavior.isExpanded()) 0 else { - view?.rootWindowInsets?.systemWindowInsetBottom ?: 0 - } + view?.rootWindowInsets?.getBottomGestureInsets() ?: 0 ) binding.shadow2.translationY = pad binding.downloadBottomSheet.dlBottomSheet.sheetBehavior?.peekHeight = 48.spToPx + padding diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt index ee34033787..fd2782e594 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt @@ -39,6 +39,7 @@ import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController import eu.kanade.tachiyomi.ui.source.global_search.GlobalSearchController import eu.kanade.tachiyomi.ui.source.latest.LatestUpdatesController import eu.kanade.tachiyomi.util.system.dpToPx +import eu.kanade.tachiyomi.util.system.getBottomGestureInsets import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.openInBrowser import eu.kanade.tachiyomi.util.system.spToPx @@ -144,6 +145,9 @@ class BrowseController : top = headerHeight, bottom = (activityBinding?.bottomNav?.height ?: 0) + 58.spToPx ) + if (activityBinding?.bottomNav == null) { + setBottomPadding() + } }, onBottomNavUpdate = { setBottomPadding() @@ -163,6 +167,8 @@ class BrowseController : requestFilePermissionsSafe(301, preferences) binding.bottomSheet.root.onCreate(this) + binding.bottomSheet.root.sheetBehavior?.isGestureInsetBottomIgnored = true + binding.shadow.alpha = if (binding.bottomSheet.root.sheetBehavior?.state == BottomSheetBehavior.STATE_COLLAPSED) shadowAlpha else 0f @@ -278,13 +284,11 @@ class BrowseController : } private fun setBottomPadding() { - val bottomBar = activityBinding?.bottomNav ?: return - val pad = bottomBar.translationY - bottomBar.height + val bottomBar = activityBinding?.bottomNav + val pad = bottomBar?.translationY?.minus(bottomBar.height) ?: 0f val padding = max( (-pad).toInt(), - if (binding.bottomSheet.root.sheetBehavior.isExpanded()) 0 else { - view?.rootWindowInsets?.systemWindowInsetBottom ?: 0 - } + view?.rootWindowInsets?.getBottomGestureInsets() ?: 0 ) binding.shadow2.translationY = pad binding.bottomSheet.root.sheetBehavior?.peekHeight = 56.spToPx + padding