diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index b4ff8332d4..1b6d590af7 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -60,6 +60,11 @@ abstract class SettingsItem( return NativeInput.getStyleIndex(0) != NpadStyleIndex.Handheld } + // Can't edit enable_qlaunch_button if firmware is not available + if (setting.key == BooleanSetting.ENABLE_QLAUNCH_BUTTON.key) { + return NativeLibrary.isFirmwareAvailable() + } + // Can't edit settings that aren't saveable in per-game config even if they are switchable if (NativeConfig.isPerGameConfigLoaded() && !setting.isSaveable) { return false 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 d41b80a009..30452219e0 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 @@ -1195,6 +1195,9 @@ class SettingsFragmentPresenter( add(HeaderSetting(R.string.buttons)) add(BooleanSetting.ENABLE_FOLDER_BUTTON.key) add(BooleanSetting.ENABLE_QLAUNCH_BUTTON.key) + if (!NativeLibrary.isFirmwareAvailable()) { + BooleanSetting.ENABLE_QLAUNCH_BUTTON.setBoolean(false) + } } } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt index cb5afb36c9..27e323182a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt @@ -489,8 +489,16 @@ class GamesFragment : Fragment() { private fun updateButtonsVisibility() { val showQLaunch = BooleanSetting.ENABLE_QLAUNCH_BUTTON.getBoolean() val showFolder = BooleanSetting.ENABLE_FOLDER_BUTTON.getBoolean() + val isFirmwareAvailable = NativeLibrary.isFirmwareAvailable() + + val shouldShowQLaunch = showQLaunch && isFirmwareAvailable + binding.launchQlaunch.visibility = if (shouldShowQLaunch) View.VISIBLE else View.GONE + binding.launchQlaunch.isEnabled = shouldShowQLaunch + + if (showQLaunch && !isFirmwareAvailable) { + binding.launchQlaunch.contentDescription = getString(R.string.applets_error_firmware) + } - binding.launchQlaunch.visibility = if (showQLaunch) View.VISIBLE else View.GONE binding.addDirectory.visibility = if (showFolder) View.VISIBLE else View.GONE }