Android: Implement emulation rotate screen toggle

This commit is contained in:
Gamer64ytb 2024-04-20 10:28:04 +02:00
parent 274afb7654
commit a68e2f1544
4 changed files with 22 additions and 0 deletions

View File

@ -20,6 +20,7 @@ import android.view.Surface
import android.view.SurfaceHolder import android.view.SurfaceHolder
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.content.res.Configuration;
import android.widget.PopupMenu import android.widget.PopupMenu
import android.widget.TextView import android.widget.TextView
import android.widget.Toast import android.widget.Toast
@ -36,6 +37,7 @@ import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import android.content.pm.ActivityInfo
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
@ -255,6 +257,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
true true
} }
R.id.menu_rotate_screen -> {
rotateScreen()
true
}
R.id.menu_amiibo -> { R.id.menu_amiibo -> {
showAmiiboMenu() showAmiiboMenu()
true true
@ -412,6 +419,14 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
setInsets() setInsets()
} }
private fun rotateScreen() {
if (resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
(context as? EmulationActivity)?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
} else {
(context as? EmulationActivity)?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
}
private fun togglePause() { private fun togglePause() {
if(emulationState.isPaused) { if(emulationState.isPaused) {
emulationState.unpause() emulationState.unpause()

View File

@ -17,6 +17,11 @@
android:icon="@drawable/ic_controller" android:icon="@drawable/ic_controller"
android:title="@string/emulation_overlay_options" /> android:title="@string/emulation_overlay_options" />
<item
android:id="@+id/menu_rotate_screen"
android:icon="@drawable/ic_fit_screen"
android:title="@string/emulation_rotate_screen" />
<item <item
android:id="@+id/menu_amiibo" android:id="@+id/menu_amiibo"
android:icon="@drawable/ic_nfc" android:icon="@drawable/ic_nfc"

View File

@ -313,6 +313,7 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.</string>
<string name="emulation_configure_controls">Configurar Controles</string> <string name="emulation_configure_controls">Configurar Controles</string>
<string name="emulation_edit_layout">Editar Estilo</string> <string name="emulation_edit_layout">Editar Estilo</string>
<string name="emulation_done">Hecho</string> <string name="emulation_done">Hecho</string>
<string name="emulation_rotate_screen">Rotar Pantalla</string>
<string name="emulation_toggle_controls">Activar Controles</string> <string name="emulation_toggle_controls">Activar Controles</string>
<string name="emulation_control_scale">Ajustar Escala</string> <string name="emulation_control_scale">Ajustar Escala</string>
<string name="emulation_control_opacity">Ajustar Opacidad</string> <string name="emulation_control_opacity">Ajustar Opacidad</string>

View File

@ -329,6 +329,7 @@
<string name="emulation_configure_controls">Configure Controls</string> <string name="emulation_configure_controls">Configure Controls</string>
<string name="emulation_edit_layout">Edit Layout</string> <string name="emulation_edit_layout">Edit Layout</string>
<string name="emulation_done">Done</string> <string name="emulation_done">Done</string>
<string name="emulation_rotate_screen">Rotate Screen</string>
<string name="emulation_toggle_controls">Toggle Controls</string> <string name="emulation_toggle_controls">Toggle Controls</string>
<string name="emulation_control_scale">Adjust Scale</string> <string name="emulation_control_scale">Adjust Scale</string>
<string name="emulation_control_scale_global">Global Scale</string> <string name="emulation_control_scale_global">Global Scale</string>