aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-07-10 22:12:17 -0400
committerCharles Lombardo <clombardo169@gmail.com>2023-07-10 22:17:19 -0400
commit4b870b28e88eb5ba9e74f39ff342515ddbaa7df1 (patch)
treebea2b85147747a01eec2cf20b9b5630c001005fb
parente32ce6cc6980fd468280f6e8148cfccdb9853990 (diff)
android: Visualize disabled home options
Allow for displaying options in the home options that are disabled with messages that explain why they are disabled. This includes reasoning for the GPU driver installation button.
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt16
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt114
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt5
-rw-r--r--src/android/app/src/main/res/values/strings.xml2
4 files changed, 84 insertions, 53 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 d3df3bc81d..aadc445f98 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 5a36ffad4b..c001af892a 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 7049f2fa54..522d07c37c 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 b3c7379796..b963f01194 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>