From b394a6b93740bfe7c32958cde14d7241baa5e81d Mon Sep 17 00:00:00 2001
From: Abandoned Cart <twistedumbrella@gmail.com>
Date: Sat, 3 Jun 2023 15:16:25 -0400
Subject: [PATCH] android: Replace deprecated and Java code

---
 .../yuzu_emu/activities/EmulationActivity.kt  | 45 ++++++++-----------
 1 file changed, 19 insertions(+), 26 deletions(-)

diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index 81474b824..1382ae29f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -5,7 +5,6 @@ package org.yuzu.yuzu_emu.activities
 
 import android.app.Activity
 import android.content.Context
-import android.content.DialogInterface
 import android.content.Intent
 import android.content.res.Configuration
 import android.graphics.Rect
@@ -13,22 +12,22 @@ import android.hardware.Sensor
 import android.hardware.SensorEvent
 import android.hardware.SensorEventListener
 import android.hardware.SensorManager
+import android.hardware.display.DisplayManager
 import android.os.Bundle
+import android.view.Display
 import android.view.InputDevice
 import android.view.KeyEvent
 import android.view.MotionEvent
 import android.view.Surface
 import android.view.View
-import android.view.WindowManager
 import android.view.inputmethod.InputMethodManager
 import androidx.appcompat.app.AppCompatActivity
-import androidx.preference.PreferenceManager
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
-import com.google.android.material.slider.Slider.OnChangeListener
+import androidx.core.content.getSystemService
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.core.view.WindowInsetsControllerCompat
 import org.yuzu.yuzu_emu.NativeLibrary
 import org.yuzu.yuzu_emu.R
-import org.yuzu.yuzu_emu.databinding.DialogSliderBinding
-import org.yuzu.yuzu_emu.features.settings.model.Settings
 import org.yuzu.yuzu_emu.fragments.EmulationFragment
 import org.yuzu.yuzu_emu.model.Game
 import org.yuzu.yuzu_emu.utils.ControllerMappingHelper
@@ -44,7 +43,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
     private var controllerMappingHelper: ControllerMappingHelper? = null
 
     var isActivityRecreated = false
-    private var menuVisible = false
     private var emulationFragment: EmulationFragment? = null
     private lateinit var nfcReader: NfcReader
     private lateinit var inputHandler: InputHandler
@@ -241,20 +239,20 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
     override fun onAccuracyChanged(sensor: Sensor, i: Int) {}
 
     private fun getAdjustedRotation():Int {
-        val rotation = windowManager.defaultDisplay.rotation;
+        val rotation = getSystemService<DisplayManager>()!!.getDisplay(Display.DEFAULT_DISPLAY).rotation
         val config: Configuration = resources.configuration
 
         if ((config.screenLayout and Configuration.SCREENLAYOUT_LONG_YES) != 0 ||
             (config.screenLayout and Configuration.SCREENLAYOUT_LONG_NO) == 0) {
-            return rotation;
+            return rotation
         }
         when (rotation) {
-            Surface.ROTATION_0 -> return Surface.ROTATION_90;
-            Surface.ROTATION_90 -> return Surface.ROTATION_0;
-            Surface.ROTATION_180 -> return Surface.ROTATION_270;
-            Surface.ROTATION_270 -> return Surface.ROTATION_180;
+            Surface.ROTATION_0 -> return Surface.ROTATION_90
+            Surface.ROTATION_90 -> return Surface.ROTATION_0
+            Surface.ROTATION_180 -> return Surface.ROTATION_270
+            Surface.ROTATION_270 -> return Surface.ROTATION_180
         }
-        return rotation;
+        return rotation
     }
 
     private fun restoreState(savedInstanceState: Bundle) {
@@ -262,18 +260,13 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
     }
 
     private fun enableFullscreenImmersive() {
-        window.attributes.layoutInDisplayCutoutMode =
-            WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
+        WindowCompat.setDecorFitsSystemWindows(window, false)
 
-        window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
-
-        // It would be nice to use IMMERSIVE_STICKY, but that doesn't show the toolbar.
-        window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
-                View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
-                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
-                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
-                View.SYSTEM_UI_FLAG_FULLSCREEN or
-                View.SYSTEM_UI_FLAG_IMMERSIVE
+        WindowInsetsControllerCompat(window, window.decorView).let { controller ->
+            controller.hide(WindowInsetsCompat.Type.systemBars())
+            controller.systemBarsBehavior =
+                WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
+        }
     }
 
     private fun startMotionSensorListener() {