Fix fullscreen action bar reappearing

This commit is contained in:
jarnedemeulemeester 2021-08-12 15:16:15 +02:00
parent 19c8b916e1
commit 09589cd813
No known key found for this signature in database
GPG key ID: 60884A0C1EBA43E5

View file

@ -2,11 +2,9 @@ package dev.jdtech.jellyfin
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.view.View
import android.view.WindowManager import android.view.WindowManager
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.navigation.navArgs import androidx.navigation.navArgs
import com.google.android.exoplayer2.ui.StyledPlayerView import com.google.android.exoplayer2.ui.StyledPlayerView
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -45,23 +43,14 @@ class PlayerActivity : AppCompatActivity() {
hideSystemUI() hideSystemUI()
} }
override fun onDestroy() { @Suppress("DEPRECATION")
super.onDestroy()
Timber.d("Destroying player activity")
showSystemUI()
}
private fun hideSystemUI() { private fun hideSystemUI() {
WindowCompat.setDecorFitsSystemWindows(window, false) // These methods are deprecated but we still use them because the new WindowInsetsControllerCompat has a bug which makes the action bar reappear
WindowInsetsControllerCompat(window, playerView).let { controller -> window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
controller.hide(WindowInsetsCompat.Type.systemBars()) View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)
}
} window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
private fun showSystemUI() {
WindowCompat.setDecorFitsSystemWindows(window, true)
WindowInsetsControllerCompat(window, playerView).show(WindowInsetsCompat.Type.systemBars())
} }
} }