From aeb2aec13b3e15c9c059e91ee37a08360e95bee0 Mon Sep 17 00:00:00 2001 From: Aleksandr Popovich Date: Fri, 4 Jul 2025 20:24:03 +0000 Subject: [PATCH] [android] fix firmware overlay multiple updates (#252) Signed-off-by: Aleksandr Popovich Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/252 Co-authored-by: Aleksandr Popovich Co-committed-by: Aleksandr Popovich --- .../main/java/org/yuzu/yuzu_emu/dialogs/NetPlayDialog.kt | 2 +- .../features/settings/ui/SettingsFragmentPresenter.kt | 3 +-- .../settings/ui/viewholder/SwitchSettingViewHolder.kt | 1 + .../java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | 4 +++- src/android/app/src/main/jni/android_settings.h | 8 ++++---- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/NetPlayDialog.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/NetPlayDialog.kt index dc8d5e5761..ede2cfafa4 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/NetPlayDialog.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/NetPlayDialog.kt @@ -361,7 +361,7 @@ class NetPlayDialog(context: Context) : BottomSheetDialog(context) { // setup listeners etc val roomNameWatcher = object : TextValidatorWatcher( - binding.btnConfirm, // TODO(alekpop, crueter): Figure out a better way to deal with this? + binding.btnConfirm, binding.layoutRoomName, context.getString( R.string.multiplayer_room_name_error diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index a6110a354a..0cf7be74d3 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -56,6 +56,7 @@ class SettingsFragmentPresenter( } val pairedSettingKey = item.setting.pairedSettingKey + if (pairedSettingKey.isNotEmpty()) { val pairedSettingValue = NativeConfig.getBoolean( pairedSettingKey, @@ -220,7 +221,6 @@ class SettingsFragmentPresenter( private fun addGraphicsSettings(sl: ArrayList) { sl.apply { - // TODO(crueter): reorganize this, this is awful add(HeaderSetting(R.string.backend)) add(IntSetting.RENDERER_ACCURACY.key) @@ -436,7 +436,6 @@ class SettingsFragmentPresenter( } } - // TODO(alekpop): sort these into headers. private fun addEdenVeilSettings(sl: ArrayList) { sl.apply { add(HeaderSetting(R.string.veil_extensions)) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt index e5763264a4..e4a2a82c9a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt @@ -22,6 +22,7 @@ class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter binding.textSettingDescription.setVisible(setting.description.isNotEmpty()) binding.textSettingDescription.text = setting.description + // TODO(alekpop): A race condition occurs here if the button is clicked too fast binding.switchWidget.setOnCheckedChangeListener(null) binding.switchWidget.isChecked = setting.getIsChecked(setting.needsRuntimeGlobal) binding.switchWidget.setOnCheckedChangeListener { _: CompoundButton, _: Boolean -> diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt index 641522de4d..9ba2d9e625 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt @@ -105,6 +105,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { private var isInFoldableLayout = false private lateinit var gpuModel: String + private lateinit var fwVersion: String override fun onAttach(context: Context) { super.onAttach(context) @@ -186,6 +187,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { } gpuModel = GpuDriverHelper.getGpuModel().toString() + fwVersion = NativeLibrary.firmwareVersion() binding.surfaceEmulation.holder.addCallback(this) binding.doneControlConfig.setOnClickListener { stopConfiguringControls() } @@ -755,7 +757,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { if (BooleanSetting.SHOW_FW_VERSION.getBoolean(NativeConfig.isPerGameConfigLoaded())) { if (sb.isNotEmpty()) sb.append(" | ") - sb.append(NativeLibrary.firmwareVersion()) + sb.append(fwVersion) } binding.showSocOverlayText.text = sb.toString() diff --git a/src/android/app/src/main/jni/android_settings.h b/src/android/app/src/main/jni/android_settings.h index 67d70a6adc..e7401a8947 100644 --- a/src/android/app/src/main/jni/android_settings.h +++ b/src/android/app/src/main/jni/android_settings.h @@ -127,22 +127,22 @@ namespace AndroidSettings { Settings::Setting show_device_model{linkage, true, "show_device_model", Settings::Category::Overlay, Settings::Specialization::Default, true, true, - &show_performance_overlay}; + &show_soc_overlay}; Settings::Setting show_gpu_model{linkage, true, "show_gpu_model", Settings::Category::Overlay, Settings::Specialization::Default, true, true, - &show_performance_overlay}; + &show_soc_overlay}; Settings::Setting show_soc_model{linkage, true, "show_soc_model", Settings::Category::Overlay, Settings::Specialization::Default, true, true, - &show_performance_overlay}; + &show_soc_overlay}; Settings::Setting show_fw_version{linkage, true, "show_firmware_version", Settings::Category::Overlay, Settings::Specialization::Default, true, true, - &show_performance_overlay}; + &show_soc_overlay}; Settings::Setting soc_overlay_background{linkage, false, "soc_overlay_background", Settings::Category::Overlay,