From ed451a72d991889849b625c8a11f610ff2dd5fea Mon Sep 17 00:00:00 2001 From: OpenSauce04 Date: Wed, 10 Sep 2025 19:22:24 +0100 Subject: [PATCH] android: Reimplemented performance overlay setting as a regular `BooleanSetting` --- .../features/settings/model/BooleanSetting.kt | 1 + .../settings/ui/SettingsFragmentPresenter.kt | 15 +++------------ .../citra_emu/fragments/EmulationFragment.kt | 11 +++++++---- .../citra_emu/utils/EmulationMenuSettings.kt | 7 ------- 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt index d691994d9..0d37c94ea 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt @@ -19,6 +19,7 @@ enum class BooleanSetting( INSTANT_DEBUG_LOG("instant_debug_log", Settings.SECTION_DEBUG, false), ENABLE_RPC_SERVER("enable_rpc_server", Settings.SECTION_DEBUG, false), CUSTOM_LAYOUT("custom_layout",Settings.SECTION_LAYOUT,false), + OVERLAY_ENABLE("overlay_enable", Settings.SECTION_LAYOUT, false), OVERLAY_SHOW_FPS("overlay_show_fps", Settings.SECTION_LAYOUT, true), OVERLAY_SHOW_FRAMETIME("overlay_show_frame_time", Settings.SECTION_LAYOUT, false), OVERLAY_SHOW_SPEED("overlay_show_speed", Settings.SECTION_LAYOUT, false), diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt index b7f3e96ed..2e6f3c8f7 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -1293,20 +1293,11 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) add( SwitchSetting( - object : AbstractBooleanSetting { - override val key = null - override val section = Settings.SECTION_LAYOUT - override val defaultValue = false - override var boolean: Boolean - get() = EmulationMenuSettings.showPerformanceOverlay - set(value) { EmulationMenuSettings.showPerformanceOverlay = value } - override val isRuntimeEditable = true - override val valueAsString: String get() = boolean.toString() - }, + BooleanSetting.OVERLAY_ENABLE, R.string.performance_overlay_enable, 0, - null, - false + BooleanSetting.OVERLAY_ENABLE.key, + BooleanSetting.OVERLAY_ENABLE.defaultValue ) ) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt index d3625693c..8ba0787f0 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt @@ -66,6 +66,7 @@ import org.citra.citra_emu.display.ScreenAdjustmentUtil import org.citra.citra_emu.display.ScreenLayout import org.citra.citra_emu.features.settings.model.BooleanSetting import org.citra.citra_emu.features.settings.model.IntSetting +import org.citra.citra_emu.features.settings.model.Settings import org.citra.citra_emu.features.settings.model.SettingsViewModel import org.citra.citra_emu.features.settings.ui.SettingsActivity import org.citra.citra_emu.features.settings.utils.SettingsFile @@ -100,6 +101,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram private val emulationViewModel: EmulationViewModel by activityViewModels() private val settingsViewModel: SettingsViewModel by viewModels() + private val settings get() = settingsViewModel.settings private val onPause = Runnable{ togglePause() } private val onShutdown = Runnable{ emulationState.stop() } @@ -158,7 +160,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram retainInstance = true emulationState = EmulationState(game.path) emulationActivity = requireActivity() as EmulationActivity - screenAdjustmentUtil = ScreenAdjustmentUtil(requireContext(), requireActivity().windowManager, settingsViewModel.settings) + screenAdjustmentUtil = ScreenAdjustmentUtil(requireContext(), requireActivity().windowManager, settings) EmulationLifecycleUtil.addPauseResumeHook(onPause) EmulationLifecycleUtil.addShutdownHook(onShutdown) } @@ -671,7 +673,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram popupMenu.menu.apply { findItem(R.id.menu_show_overlay).isChecked = EmulationMenuSettings.showOverlay findItem(R.id.menu_performance_overlay_show).isChecked = - EmulationMenuSettings.showPerformanceOverlay + BooleanSetting.OVERLAY_ENABLE.boolean findItem(R.id.menu_haptic_feedback).isChecked = EmulationMenuSettings.hapticFeedback findItem(R.id.menu_emulation_joystick_rel_center).isChecked = EmulationMenuSettings.joystickRelCenter @@ -688,7 +690,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram } R.id.menu_performance_overlay_show -> { - EmulationMenuSettings.showPerformanceOverlay = !EmulationMenuSettings.showPerformanceOverlay + BooleanSetting.OVERLAY_ENABLE.boolean = !BooleanSetting.OVERLAY_ENABLE.boolean + settings.saveSetting(BooleanSetting.OVERLAY_ENABLE, SettingsFile.FILE_NAME_CONFIG) updateShowPerformanceOverlay() true } @@ -1211,7 +1214,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram perfStatsUpdateHandler.removeCallbacks(perfStatsUpdater!!) } - if (EmulationMenuSettings.showPerformanceOverlay) { + if (BooleanSetting.OVERLAY_ENABLE.boolean) { val SYSTEM_FPS = 0 val FPS = 1 val SPEED = 2 diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/EmulationMenuSettings.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/EmulationMenuSettings.kt index 184964549..6ff08fa37 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/utils/EmulationMenuSettings.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/EmulationMenuSettings.kt @@ -35,13 +35,6 @@ object EmulationMenuSettings { .apply() } - var showPerformanceOverlay: Boolean - get() = preferences.getBoolean("EmulationMenuSettings_showPerformanceOverlay", false) - set(value) { - preferences.edit() - .putBoolean("EmulationMenuSettings_showPerformanceOverlay", value) - .apply() - } var hapticFeedback: Boolean get() = preferences.getBoolean("EmulationMenuSettings_HapticFeedback", true) set(value) {