summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt54
1 files changed, 51 insertions, 3 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index 47767454a..2a97ae14d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -182,11 +182,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
override fun onDrawerOpened(drawerView: View) {
- // No op
+ binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
}
override fun onDrawerClosed(drawerView: View) {
- // No op
+ binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
}
override fun onDrawerStateChanged(newState: Int) {
@@ -196,6 +196,28 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
binding.inGameMenu.getHeaderView(0).findViewById<TextView>(R.id.text_game_title).text =
game.title
+
+ binding.inGameMenu.menu.findItem(R.id.menu_lock_drawer).apply {
+ val lockMode = IntSetting.LOCK_DRAWER.getInt()
+ val titleId = if (lockMode == DrawerLayout.LOCK_MODE_LOCKED_CLOSED) {
+ R.string.unlock_drawer
+ } else {
+ R.string.lock_drawer
+ }
+ val iconId = if (lockMode == DrawerLayout.LOCK_MODE_UNLOCKED) {
+ R.drawable.ic_unlock
+ } else {
+ R.drawable.ic_lock
+ }
+
+ title = getString(titleId)
+ icon = ResourcesCompat.getDrawable(
+ resources,
+ iconId,
+ requireContext().theme
+ )
+ }
+
binding.inGameMenu.setNavigationItemSelectedListener {
when (it.itemId) {
R.id.menu_pause_emulation -> {
@@ -242,6 +264,32 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
true
}
+ R.id.menu_lock_drawer -> {
+ when (IntSetting.LOCK_DRAWER.getInt()) {
+ DrawerLayout.LOCK_MODE_UNLOCKED -> {
+ IntSetting.LOCK_DRAWER.setInt(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
+ it.title = resources.getString(R.string.unlock_drawer)
+ it.icon = ResourcesCompat.getDrawable(
+ resources,
+ R.drawable.ic_lock,
+ requireContext().theme
+ )
+ }
+
+ DrawerLayout.LOCK_MODE_LOCKED_CLOSED -> {
+ IntSetting.LOCK_DRAWER.setInt(DrawerLayout.LOCK_MODE_UNLOCKED)
+ it.title = resources.getString(R.string.lock_drawer)
+ it.icon = ResourcesCompat.getDrawable(
+ resources,
+ R.drawable.ic_unlock,
+ requireContext().theme
+ )
+ }
+ }
+ NativeConfig.saveGlobalConfig()
+ true
+ }
+
R.id.menu_exit -> {
emulationState.stop()
emulationViewModel.setIsEmulationStopping(true)
@@ -326,7 +374,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
repeatOnLifecycle(Lifecycle.State.CREATED) {
emulationViewModel.emulationStarted.collectLatest {
if (it) {
- binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
+ binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
ViewUtils.showView(binding.surfaceInputOverlay)
ViewUtils.hideView(binding.loadingIndicator)