From f4d2859090867a1cad70b952815dca53f2b9c68f Mon Sep 17 00:00:00 2001 From: jarnedemeulemeester Date: Sun, 19 Sep 2021 18:55:27 +0200 Subject: [PATCH] Allow video to extend into the display cutout --- .../dev/jdtech/jellyfin/PlayerActivity.kt | 22 +++++++++++++++++++ .../res/layout/exo_player_control_view.xml | 1 + 2 files changed, 23 insertions(+) diff --git a/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt b/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt index 216b769b..321223ad 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt @@ -1,5 +1,6 @@ package dev.jdtech.jellyfin +import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View @@ -7,6 +8,7 @@ import android.view.WindowManager import android.widget.ImageButton import android.widget.TextView import androidx.activity.viewModels +import androidx.core.view.updatePadding import androidx.navigation.navArgs import com.google.android.exoplayer2.C import com.google.android.exoplayer2.SimpleExoPlayer @@ -35,6 +37,22 @@ class PlayerActivity : AppCompatActivity() { binding.playerView.player = viewModel.player + val playerControls = binding.playerView.findViewById(R.id.player_controls) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + binding.playerView.findViewById(R.id.player_controls) + .setOnApplyWindowInsetsListener { _, windowInsets -> + val cutout = windowInsets.displayCutout + playerControls.updatePadding( + left = cutout?.safeInsetLeft ?: 0, + top = cutout?.safeInsetTop ?: 0, + right = cutout?.safeInsetRight ?: 0, + bottom = cutout?.safeInsetBottom ?: 0, + ) + return@setOnApplyWindowInsetsListener windowInsets + } + } + binding.playerView.findViewById(R.id.back_button).setOnClickListener { onBackPressed() } @@ -155,6 +173,10 @@ class PlayerActivity : AppCompatActivity() { View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + window.attributes.layoutInDisplayCutoutMode = + WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES + } } private fun isRendererType( diff --git a/app/src/main/res/layout/exo_player_control_view.xml b/app/src/main/res/layout/exo_player_control_view.xml index 06c6f37f..20a57760 100644 --- a/app/src/main/res/layout/exo_player_control_view.xml +++ b/app/src/main/res/layout/exo_player_control_view.xml @@ -2,6 +2,7 @@