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.View
import android.view.ViewGroup
import android.content.res.Configuration;
import android.widget.PopupMenu
import android.widget.TextView
import android.widget.Toast
@ -36,6 +37,7 @@ import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import android.content.pm.ActivityInfo
import androidx.navigation.findNavController
import androidx.navigation.fragment.navArgs
import androidx.preference.PreferenceManager
@ -255,6 +257,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
true
}
R.id.menu_rotate_screen -> {
rotateScreen()
true
}
R.id.menu_amiibo -> {
showAmiiboMenu()
true
@ -412,6 +419,14 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
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() {
if(emulationState.isPaused) {
emulationState.unpause()

View File

@ -17,6 +17,11 @@
android:icon="@drawable/ic_controller"
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
android:id="@+id/menu_amiibo"
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_edit_layout">Editar Estilo</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_control_scale">Ajustar Escala</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_edit_layout">Edit Layout</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_control_scale">Adjust Scale</string>
<string name="emulation_control_scale_global">Global Scale</string>