Explorar o código

android: Save overlay data while using emulation fragment

This should have been fully embraced before but the items within the popup menu and the adjust controls dialog fell through. This ensures that everything related to the overlay is saved during emulation and can't be lost during a crash.
t895 %!s(int64=2) %!d(string=hai) anos
pai
achega
116f76e4b6

+ 0 - 6
src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt

@@ -49,7 +49,6 @@ import org.yuzu.yuzu_emu.utils.ForegroundService
 import org.yuzu.yuzu_emu.utils.InputHandler
 import org.yuzu.yuzu_emu.utils.InputHandler
 import org.yuzu.yuzu_emu.utils.Log
 import org.yuzu.yuzu_emu.utils.Log
 import org.yuzu.yuzu_emu.utils.MemoryUtil
 import org.yuzu.yuzu_emu.utils.MemoryUtil
-import org.yuzu.yuzu_emu.utils.NativeConfig
 import org.yuzu.yuzu_emu.utils.NfcReader
 import org.yuzu.yuzu_emu.utils.NfcReader
 import org.yuzu.yuzu_emu.utils.ThemeHelper
 import org.yuzu.yuzu_emu.utils.ThemeHelper
 import java.text.NumberFormat
 import java.text.NumberFormat
@@ -171,11 +170,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
         stopMotionSensorListener()
         stopMotionSensorListener()
     }
     }
 
 
-    override fun onStop() {
-        super.onStop()
-        NativeConfig.saveGlobalConfig()
-    }
-
     override fun onUserLeaveHint() {
     override fun onUserLeaveHint() {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
             if (BooleanSetting.PICTURE_IN_PICTURE.getBoolean() && !isInPictureInPictureMode) {
             if (BooleanSetting.PICTURE_IN_PICTURE.getBoolean() && !isInPictureInPictureMode) {

+ 4 - 1
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt

@@ -554,6 +554,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
             findItem(R.id.menu_touchscreen).isChecked = BooleanSetting.TOUCHSCREEN.getBoolean()
             findItem(R.id.menu_touchscreen).isChecked = BooleanSetting.TOUCHSCREEN.getBoolean()
         }
         }
 
 
+        popup.setOnDismissListener { NativeConfig.saveGlobalConfig() }
         popup.setOnMenuItemClickListener {
         popup.setOnMenuItemClickListener {
             when (it.itemId) {
             when (it.itemId) {
                 R.id.menu_toggle_fps -> {
                 R.id.menu_toggle_fps -> {
@@ -720,7 +721,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
         MaterialAlertDialogBuilder(requireContext())
         MaterialAlertDialogBuilder(requireContext())
             .setTitle(R.string.emulation_control_adjust)
             .setTitle(R.string.emulation_control_adjust)
             .setView(adjustBinding.root)
             .setView(adjustBinding.root)
-            .setPositiveButton(android.R.string.ok, null)
+            .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int ->
+                NativeConfig.saveGlobalConfig()
+            }
             .setNeutralButton(R.string.slider_default) { _: DialogInterface?, _: Int ->
             .setNeutralButton(R.string.slider_default) { _: DialogInterface?, _: Int ->
                 setControlScale(50)
                 setControlScale(50)
                 setControlOpacity(100)
                 setControlOpacity(100)