diff options
Diffstat (limited to 'src/android/app')
4 files changed, 85 insertions, 54 deletions
| diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt index d3df3bc81..aadc445f9 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt @@ -12,6 +12,7 @@ import androidx.core.content.res.ResourcesCompat  import androidx.recyclerview.widget.RecyclerView  import org.yuzu.yuzu_emu.R  import org.yuzu.yuzu_emu.databinding.CardHomeOptionBinding +import org.yuzu.yuzu_emu.fragments.MessageDialogFragment  import org.yuzu.yuzu_emu.model.HomeSetting  class HomeSettingAdapter(private val activity: AppCompatActivity, var options: List<HomeSetting>) : @@ -34,7 +35,14 @@ class HomeSettingAdapter(private val activity: AppCompatActivity, var options: L      override fun onClick(view: View) {          val holder = view.tag as HomeOptionViewHolder -        holder.option.onClick.invoke() +        if (holder.option.isEnabled.invoke()) { +            holder.option.onClick.invoke() +        } else { +            MessageDialogFragment.newInstance( +                holder.option.disabledTitleId, +                holder.option.disabledMessageId +            ).show(activity.supportFragmentManager, MessageDialogFragment.TAG) +        }      }      inner class HomeOptionViewHolder(val binding: CardHomeOptionBinding) : @@ -65,6 +73,12 @@ class HomeSettingAdapter(private val activity: AppCompatActivity, var options: L                              R.drawable.premium_background                          )              } + +            if (!option.isEnabled.invoke()) { +                binding.optionTitle.alpha = 0.5f +                binding.optionDescription.alpha = 0.5f +                binding.optionIcon.alpha = 0.5f +            }          }      }  } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt index 5a36ffad4..c001af892 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt @@ -73,102 +73,113 @@ class HomeSettingsFragment : Fragment() {                  HomeSetting(                      R.string.advanced_settings,                      R.string.settings_description, -                    R.drawable.ic_settings -                ) { SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") } +                    R.drawable.ic_settings, +                    { SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") } +                )              )              add(                  HomeSetting(                      R.string.open_user_folder,                      R.string.open_user_folder_description, -                    R.drawable.ic_folder_open -                ) { openFileManager() } +                    R.drawable.ic_folder_open, +                    { openFileManager() } +                )              )              add(                  HomeSetting(                      R.string.preferences_theme,                      R.string.theme_and_color_description, -                    R.drawable.ic_palette -                ) { SettingsActivity.launch(requireContext(), Settings.SECTION_THEME, "") } +                    R.drawable.ic_palette, +                    { SettingsActivity.launch(requireContext(), Settings.SECTION_THEME, "") } +                )              ) - -            if (GpuDriverHelper.supportsCustomDriverLoading()) { -                add( -                    HomeSetting( -                        R.string.install_gpu_driver, -                        R.string.install_gpu_driver_description, -                        R.drawable.ic_exit -                    ) { driverInstaller() } +            add( +                HomeSetting( +                    R.string.install_gpu_driver, +                    R.string.install_gpu_driver_description, +                    R.drawable.ic_exit, +                    { driverInstaller() }, +                    { GpuDriverHelper.supportsCustomDriverLoading() }, +                    R.string.custom_driver_not_supported, +                    R.string.custom_driver_not_supported_description                  ) -            } - +            )              add(                  HomeSetting(                      R.string.install_amiibo_keys,                      R.string.install_amiibo_keys_description, -                    R.drawable.ic_nfc -                ) { mainActivity.getAmiiboKey.launch(arrayOf("*/*")) } +                    R.drawable.ic_nfc, +                    { mainActivity.getAmiiboKey.launch(arrayOf("*/*")) } +                )              )              add(                  HomeSetting(                      R.string.install_game_content,                      R.string.install_game_content_description, -                    R.drawable.ic_system_update_alt -                ) { mainActivity.installGameUpdate.launch(arrayOf("*/*")) } +                    R.drawable.ic_system_update_alt, +                    { mainActivity.installGameUpdate.launch(arrayOf("*/*")) } +                )              )              add(                  HomeSetting(                      R.string.select_games_folder,                      R.string.select_games_folder_description, -                    R.drawable.ic_add -                ) { -                    mainActivity.getGamesDirectory.launch( -                        Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data -                    ) -                } +                    R.drawable.ic_add, +                    { +                        mainActivity.getGamesDirectory.launch( +                            Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data +                        ) +                    } +                )              )              add(                  HomeSetting(                      R.string.manage_save_data,                      R.string.import_export_saves_description, -                    R.drawable.ic_save -                ) { -                    ImportExportSavesFragment().show( -                        parentFragmentManager, -                        ImportExportSavesFragment.TAG -                    ) -                } +                    R.drawable.ic_save, +                    { +                        ImportExportSavesFragment().show( +                            parentFragmentManager, +                            ImportExportSavesFragment.TAG +                        ) +                    } +                )              )              add(                  HomeSetting(                      R.string.install_prod_keys,                      R.string.install_prod_keys_description, -                    R.drawable.ic_unlock -                ) { mainActivity.getProdKey.launch(arrayOf("*/*")) } +                    R.drawable.ic_unlock, +                    { mainActivity.getProdKey.launch(arrayOf("*/*")) } +                )              )              add(                  HomeSetting(                      R.string.install_firmware,                      R.string.install_firmware_description, -                    R.drawable.ic_firmware -                ) { mainActivity.getFirmware.launch(arrayOf("application/zip")) } +                    R.drawable.ic_firmware, +                    { mainActivity.getFirmware.launch(arrayOf("application/zip")) } +                )              )              add(                  HomeSetting(                      R.string.share_log,                      R.string.share_log_description, -                    R.drawable.ic_log -                ) { shareLog() } +                    R.drawable.ic_log, +                    { shareLog() } +                )              )              add(                  HomeSetting(                      R.string.about,                      R.string.about_description, -                    R.drawable.ic_info_outline -                ) { -                    exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) -                    parentFragmentManager.primaryNavigationFragment?.findNavController() -                        ?.navigate(R.id.action_homeSettingsFragment_to_aboutFragment) -                } +                    R.drawable.ic_info_outline, +                    { +                        exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) +                        parentFragmentManager.primaryNavigationFragment?.findNavController() +                            ?.navigate(R.id.action_homeSettingsFragment_to_aboutFragment) +                    } +                )              )          } @@ -178,12 +189,13 @@ class HomeSettingsFragment : Fragment() {                  HomeSetting(                      R.string.get_early_access,                      R.string.get_early_access_description, -                    R.drawable.ic_diamond -                ) { -                    exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) -                    parentFragmentManager.primaryNavigationFragment?.findNavController() -                        ?.navigate(R.id.action_homeSettingsFragment_to_earlyAccessFragment) -                } +                    R.drawable.ic_diamond, +                    { +                        exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) +                        parentFragmentManager.primaryNavigationFragment?.findNavController() +                            ?.navigate(R.id.action_homeSettingsFragment_to_earlyAccessFragment) +                    } +                )              )          } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt index 7049f2fa5..522d07c37 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt @@ -7,5 +7,8 @@ data class HomeSetting(      val titleId: Int,      val descriptionId: Int,      val iconId: Int, -    val onClick: () -> Unit +    val onClick: () -> Unit, +    val isEnabled: () -> Boolean = { true }, +    val disabledTitleId: Int = 0, +    val disabledMessageId: Int = 0  ) diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index b3c737979..bfdebd35b 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -113,6 +113,8 @@      <string name="install_game_content_success_install">%1$d installed successfully</string>      <string name="install_game_content_success_overwrite">%1$d overwritten successfully</string>      <string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string> +    <string name="custom_driver_not_supported">Custom drivers not supported</string> +    <string name="custom_driver_not_supported_description">Custom driver loading isn\'t currently supported for this device.\nCheck this option again in the future to see if support was added!</string>      <!-- About screen strings -->      <string name="gaia_is_not_real">Gaia isn\'t real</string> @@ -230,7 +232,7 @@      <!-- ROM loading errors -->      <string name="loader_error_encrypted">Your ROM is encrypted</string> -    <string name="loader_error_encrypted_roms_description"><![CDATA[Please follow the guides to redump your <a href="https://yuzu-emu.org/help/quickstart/#dumping-cartridge-games">game cartidges</a> or <a href="https://yuzu-emu.org/help/quickstart/#dumping-installed-titles-eshop">installed titles</a>.]]></string> +    <string name="loader_error_encrypted_roms_description"><![CDATA[Please follow the guides to redump your <a href="https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards">game cartidges</a> or <a href="https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop">installed titles</a>.]]></string>      <string name="loader_error_encrypted_keys_description"><![CDATA[Please ensure your <a href="https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys">prod.keys</a> file is installed so that games can be decrypted.]]></string>      <string name="loader_error_video_core">An error occurred initializing the video core</string>      <string name="loader_error_video_core_description">This is usually caused by an incompatible GPU driver. Installing a custom GPU driver may resolve this problem.</string> | 
