|
@@ -182,11 +182,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onDrawerOpened(drawerView: View) {
|
|
override fun onDrawerOpened(drawerView: View) {
|
|
|
- // No op
|
|
|
|
|
|
|
+ binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onDrawerClosed(drawerView: View) {
|
|
override fun onDrawerClosed(drawerView: View) {
|
|
|
- // No op
|
|
|
|
|
|
|
+ binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onDrawerStateChanged(newState: Int) {
|
|
override fun onDrawerStateChanged(newState: Int) {
|
|
@@ -196,6 +196,28 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
|
|
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
|
|
|
binding.inGameMenu.getHeaderView(0).findViewById<TextView>(R.id.text_game_title).text =
|
|
binding.inGameMenu.getHeaderView(0).findViewById<TextView>(R.id.text_game_title).text =
|
|
|
game.title
|
|
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 {
|
|
binding.inGameMenu.setNavigationItemSelectedListener {
|
|
|
when (it.itemId) {
|
|
when (it.itemId) {
|
|
|
R.id.menu_pause_emulation -> {
|
|
R.id.menu_pause_emulation -> {
|
|
@@ -242,6 +264,32 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
true
|
|
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 -> {
|
|
R.id.menu_exit -> {
|
|
|
emulationState.stop()
|
|
emulationState.stop()
|
|
|
emulationViewModel.setIsEmulationStopping(true)
|
|
emulationViewModel.setIsEmulationStopping(true)
|
|
@@ -326,7 +374,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
|
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
|
|
emulationViewModel.emulationStarted.collectLatest {
|
|
emulationViewModel.emulationStarted.collectLatest {
|
|
|
if (it) {
|
|
if (it) {
|
|
|
- binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
|
|
|
|
|
|
|
+ binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
|
|
|
ViewUtils.showView(binding.surfaceInputOverlay)
|
|
ViewUtils.showView(binding.surfaceInputOverlay)
|
|
|
ViewUtils.hideView(binding.loadingIndicator)
|
|
ViewUtils.hideView(binding.loadingIndicator)
|
|
|
|
|
|