Check nav bar visibility when checking to show top bar in reader

This commit is contained in:
Jays2Kings 2021-10-15 19:37:16 -04:00
parent 1aeb0c03d8
commit b97b1e59ad

View file

@ -25,10 +25,12 @@ import android.view.animation.Animation
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils import androidx.core.graphics.ColorUtils
import androidx.core.graphics.Insets
import androidx.core.view.GestureDetectorCompat import androidx.core.view.GestureDetectorCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.navigationBars
import androidx.core.view.WindowInsetsCompat.Type.statusBars import androidx.core.view.WindowInsetsCompat.Type.statusBars
import androidx.core.view.WindowInsetsCompat.Type.systemBars import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.WindowInsetsControllerCompat
@ -759,12 +761,15 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
var firstPass = true var firstPass = true
binding.readerLayout.doOnApplyWindowInsetsCompat { _, insets, _ -> binding.readerLayout.doOnApplyWindowInsetsCompat { _, insets, _ ->
setNavColor(insets) setNavColor(insets)
val hasNav = insets.getInsetsIgnoringVisibility(navigationBars()) == Insets.NONE
val navVis = if (hasNav) insets.isVisible(navigationBars()) else true
val vis = insets.isVisible(statusBars()) && navVis
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!firstPass && lastVis != insets.isVisible(statusBars()) && preferences.fullscreen().get()) { if (!firstPass && lastVis != vis && preferences.fullscreen().get()) {
onVisibilityChange(insets.isVisible(statusBars())) onVisibilityChange(vis)
} }
firstPass = false firstPass = false
lastVis = insets.isVisible(statusBars()) lastVis = vis
} }
if (!preferences.fullscreen().get() && sheetManageNavColor) { if (!preferences.fullscreen().get() && sheetManageNavColor) {