Просмотр исходного кода

android: Prevent deleting the settings file while a game is running

Charles Lombardo 3 лет назад
Родитель
Сommit
fdd200d33f

+ 1 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt

@@ -6,6 +6,7 @@ package org.yuzu.yuzu_emu.features.settings.model.view
 class RunnableSetting(
     titleId: Int,
     descriptionId: Int,
+    val isRuntimeRunnable: Boolean,
     val runnable: () -> Unit
 ) : SettingsItem(null, titleId, descriptionId) {
     override val type = TYPE_RUNNABLE

+ 2 - 1
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt

@@ -115,7 +115,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
             add(
                 RunnableSetting(
                     R.string.reset_to_default,
-                    0
+                    0,
+                    false
                 ) {
                     ResetSettingsDialogFragment().show(
                         settingsActivity.supportFragmentManager,

+ 4 - 1
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt

@@ -4,6 +4,7 @@
 package org.yuzu.yuzu_emu.features.settings.ui.viewholder
 
 import android.view.View
+import org.yuzu.yuzu_emu.NativeLibrary
 import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
 import org.yuzu.yuzu_emu.features.settings.model.view.RunnableSetting
 import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
@@ -25,7 +26,9 @@ class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA
     }
 
     override fun onClick(clicked: View) {
-        setting.runnable.invoke()
+        if (!setting.isRuntimeRunnable && !NativeLibrary.isRunning()) {
+            setting.runnable.invoke()
+        }
     }
 
     override fun onLongClick(clicked: View): Boolean {