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

This commit is contained in:
Charles Lombardo 2023-05-31 02:23:23 -04:00 committed by bunnei
parent 4e87a01db6
commit fdd200d33f
3 changed files with 7 additions and 2 deletions

View File

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

View File

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

View File

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