diff --git a/app/src/main/java/emu/skyline/EmulationActivity.kt b/app/src/main/java/emu/skyline/EmulationActivity.kt
index f393dde6..05befd5a 100644
--- a/app/src/main/java/emu/skyline/EmulationActivity.kt
+++ b/app/src/main/java/emu/skyline/EmulationActivity.kt
@@ -91,6 +91,8 @@ class EmulationActivity : AppCompatActivity(), SurfaceHolder.Callback, View.OnTo
*/
private var desiredRefreshRate = 60f
+ private var isEmulatorPaused = false
+
private lateinit var pictureInPictureParamsBuilder : PictureInPictureParams.Builder
private val pauseIntentAction = "$packageName.EMULATOR_PAUSE"
private val muteIntentAction = "$packageName.EMULATOR_MUTE"
@@ -343,18 +345,37 @@ class EmulationActivity : AppCompatActivity(), SurfaceHolder.Callback, View.OnTo
setOnClickListener { binding.onScreenControllerView.isInvisible = !binding.onScreenControllerView.isInvisible }
}
+ binding.onScreenPauseToggle.apply {
+ isGone = binding.onScreenControllerView.isGone
+ setOnClickListener {
+ if (isEmulatorPaused) {
+ resumeEmulator()
+ binding.onScreenPauseToggle.setImageResource(R.drawable.ic_pause)
+ } else {
+ pauseEmulator()
+ binding.onScreenPauseToggle.setImageResource(R.drawable.ic_play)
+ }
+ }
+ }
+
executeApplication(intent!!)
}
+ @SuppressWarnings("WeakerAccess")
fun pauseEmulator() {
+ if (isEmulatorPaused) return
setSurface(null)
changeAudioStatus(false)
+ isEmulatorPaused = true
}
+ @SuppressWarnings("WeakerAccess")
fun resumeEmulator() {
+ if (!isEmulatorPaused) return
gameSurface?.let { setSurface(it) }
if (!emulationSettings.isAudioOutputDisabled)
changeAudioStatus(true)
+ isEmulatorPaused = false
}
override fun onPause() {
@@ -414,6 +435,7 @@ class EmulationActivity : AppCompatActivity(), SurfaceHolder.Callback, View.OnTo
binding.onScreenControllerView.isGone = true
binding.onScreenControllerToggle.isGone = true
+ binding.onScreenPauseToggle.isGone = true
} else {
try {
if (this::pictureInPictureReceiver.isInitialized)
@@ -431,6 +453,9 @@ class EmulationActivity : AppCompatActivity(), SurfaceHolder.Callback, View.OnTo
binding.onScreenControllerToggle.apply {
isGone = binding.onScreenControllerView.isGone
}
+ binding.onScreenPauseToggle.apply {
+ isGone = binding.onScreenControllerView.isGone
+ }
}
}
diff --git a/app/src/main/res/layout/emu_activity.xml b/app/src/main/res/layout/emu_activity.xml
index 117acd51..47db2aec 100644
--- a/app/src/main/res/layout/emu_activity.xml
+++ b/app/src/main/res/layout/emu_activity.xml
@@ -30,6 +30,18 @@
tools:text="60 FPS\n16.6±0.10ms"
android:textColor="@color/colorPerfStatsPrimary" />
+
+