2023-01-31 21:13:39 +05:30
|
|
|
package com.github.libretube.helpers
|
2023-01-17 02:38:08 +05:30
|
|
|
|
2023-03-06 10:56:42 +05:30
|
|
|
import android.app.Activity
|
2023-01-17 02:38:08 +05:30
|
|
|
import android.os.Build
|
|
|
|
import android.view.WindowManager
|
|
|
|
import androidx.core.view.WindowCompat
|
|
|
|
import androidx.core.view.WindowInsetsCompat
|
|
|
|
import androidx.core.view.WindowInsetsControllerCompat
|
|
|
|
|
2023-03-06 10:56:42 +05:30
|
|
|
object WindowHelper {
|
|
|
|
fun toggleFullscreen(activity: Activity, isFullscreen: Boolean) {
|
|
|
|
val window = activity.window
|
2023-01-17 02:38:08 +05:30
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
2023-03-06 10:56:42 +05:30
|
|
|
window.attributes.layoutInDisplayCutoutMode = if (isFullscreen) {
|
2023-01-17 02:38:08 +05:30
|
|
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
2023-03-06 10:56:42 +05:30
|
|
|
} else {
|
|
|
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
|
|
|
|
}
|
2023-01-17 02:38:08 +05:30
|
|
|
}
|
|
|
|
|
2023-03-06 10:56:42 +05:30
|
|
|
WindowCompat.setDecorFitsSystemWindows(window, !isFullscreen)
|
2023-01-17 02:38:08 +05:30
|
|
|
|
2023-03-06 10:56:42 +05:30
|
|
|
val controller = WindowCompat.getInsetsController(window, window.decorView)
|
|
|
|
val flags = WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.navigationBars()
|
|
|
|
if (isFullscreen) {
|
|
|
|
controller.hide(flags)
|
|
|
|
} else {
|
|
|
|
controller.show(flags)
|
2023-01-17 02:38:08 +05:30
|
|
|
}
|
|
|
|
|
2023-03-06 10:56:42 +05:30
|
|
|
controller.systemBarsBehavior = if (isFullscreen) {
|
|
|
|
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
|
|
|
} else {
|
|
|
|
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_TOUCH
|
2023-01-17 02:38:08 +05:30
|
|
|
}
|
|
|
|
|
2023-03-06 10:56:42 +05:30
|
|
|
val layoutFlag = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
|
|
|
|
if (isFullscreen) {
|
|
|
|
window.setFlags(layoutFlag, layoutFlag)
|
|
|
|
} else {
|
|
|
|
window.clearFlags(layoutFlag)
|
|
|
|
}
|
2023-01-20 23:30:49 +05:30
|
|
|
}
|
2023-01-17 02:38:08 +05:30
|
|
|
}
|