Draw under navbar in Android 9+

This commit is contained in:
arkon
2020-11-09 17:39:22 -05:00
parent 2351c1b426
commit 122b2b1a8e
5 changed files with 62 additions and 15 deletions

View File

@@ -1,22 +1,42 @@
package eu.kanade.tachiyomi.util.view
import android.graphics.Color
import android.os.Build
import android.view.View
import android.view.Window
import androidx.annotation.RequiresApi
@RequiresApi(Build.VERSION_CODES.P)
fun Window.edgeToEdge(lightSystemUi: Boolean = false) {
decorView.systemUiVisibility = when {
// Handle light status and navigation bars programmatically to avoid duplicate themes
lightSystemUi -> {
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or
View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
}
else -> {
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
}
}
navigationBarColor = Color.TRANSPARENT
}
fun Window.showBar() {
val uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
decorView.systemUiVisibility = uiFlags
}
fun Window.hideBar() {
val uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
decorView.systemUiVisibility = uiFlags
}
fun Window.defaultBar() {