diff options
Diffstat (limited to 'src')
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 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 | |||
| 12 | import androidx.recyclerview.widget.RecyclerView | 12 | import androidx.recyclerview.widget.RecyclerView |
| 13 | import org.yuzu.yuzu_emu.R | 13 | import org.yuzu.yuzu_emu.R |
| 14 | import org.yuzu.yuzu_emu.databinding.CardHomeOptionBinding | 14 | import org.yuzu.yuzu_emu.databinding.CardHomeOptionBinding |
| 15 | import org.yuzu.yuzu_emu.fragments.MessageDialogFragment | ||
| 15 | import org.yuzu.yuzu_emu.model.HomeSetting | 16 | import org.yuzu.yuzu_emu.model.HomeSetting |
| 16 | 17 | ||
| 17 | class HomeSettingAdapter(private val activity: AppCompatActivity, var options: List<HomeSetting>) : | 18 | class HomeSettingAdapter(private val activity: AppCompatActivity, var options: List<HomeSetting>) : |
| @@ -34,7 +35,14 @@ class HomeSettingAdapter(private val activity: AppCompatActivity, var options: L | |||
| 34 | 35 | ||
| 35 | override fun onClick(view: View) { | 36 | override fun onClick(view: View) { |
| 36 | val holder = view.tag as HomeOptionViewHolder | 37 | val holder = view.tag as HomeOptionViewHolder |
| 37 | holder.option.onClick.invoke() | 38 | if (holder.option.isEnabled.invoke()) { |
| 39 | holder.option.onClick.invoke() | ||
| 40 | } else { | ||
| 41 | MessageDialogFragment.newInstance( | ||
| 42 | holder.option.disabledTitleId, | ||
| 43 | holder.option.disabledMessageId | ||
| 44 | ).show(activity.supportFragmentManager, MessageDialogFragment.TAG) | ||
| 45 | } | ||
| 38 | } | 46 | } |
| 39 | 47 | ||
| 40 | inner class HomeOptionViewHolder(val binding: CardHomeOptionBinding) : | 48 | inner class HomeOptionViewHolder(val binding: CardHomeOptionBinding) : |
| @@ -65,6 +73,12 @@ class HomeSettingAdapter(private val activity: AppCompatActivity, var options: L | |||
| 65 | R.drawable.premium_background | 73 | R.drawable.premium_background |
| 66 | ) | 74 | ) |
| 67 | } | 75 | } |
| 76 | |||
| 77 | if (!option.isEnabled.invoke()) { | ||
| 78 | binding.optionTitle.alpha = 0.5f | ||
| 79 | binding.optionDescription.alpha = 0.5f | ||
| 80 | binding.optionIcon.alpha = 0.5f | ||
| 81 | } | ||
| 68 | } | 82 | } |
| 69 | } | 83 | } |
| 70 | } | 84 | } |
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() { | |||
| 73 | HomeSetting( | 73 | HomeSetting( |
| 74 | R.string.advanced_settings, | 74 | R.string.advanced_settings, |
| 75 | R.string.settings_description, | 75 | R.string.settings_description, |
| 76 | R.drawable.ic_settings | 76 | R.drawable.ic_settings, |
| 77 | ) { SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") } | 77 | { SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") } |
| 78 | ) | ||
| 78 | ) | 79 | ) |
| 79 | add( | 80 | add( |
| 80 | HomeSetting( | 81 | HomeSetting( |
| 81 | R.string.open_user_folder, | 82 | R.string.open_user_folder, |
| 82 | R.string.open_user_folder_description, | 83 | R.string.open_user_folder_description, |
| 83 | R.drawable.ic_folder_open | 84 | R.drawable.ic_folder_open, |
| 84 | ) { openFileManager() } | 85 | { openFileManager() } |
| 86 | ) | ||
| 85 | ) | 87 | ) |
| 86 | add( | 88 | add( |
| 87 | HomeSetting( | 89 | HomeSetting( |
| 88 | R.string.preferences_theme, | 90 | R.string.preferences_theme, |
| 89 | R.string.theme_and_color_description, | 91 | R.string.theme_and_color_description, |
| 90 | R.drawable.ic_palette | 92 | R.drawable.ic_palette, |
| 91 | ) { SettingsActivity.launch(requireContext(), Settings.SECTION_THEME, "") } | 93 | { SettingsActivity.launch(requireContext(), Settings.SECTION_THEME, "") } |
| 94 | ) | ||
| 92 | ) | 95 | ) |
| 93 | 96 | add( | |
| 94 | if (GpuDriverHelper.supportsCustomDriverLoading()) { | 97 | HomeSetting( |
| 95 | add( | 98 | R.string.install_gpu_driver, |
| 96 | HomeSetting( | 99 | R.string.install_gpu_driver_description, |
| 97 | R.string.install_gpu_driver, | 100 | R.drawable.ic_exit, |
| 98 | R.string.install_gpu_driver_description, | 101 | { driverInstaller() }, |
| 99 | R.drawable.ic_exit | 102 | { GpuDriverHelper.supportsCustomDriverLoading() }, |
| 100 | ) { driverInstaller() } | 103 | R.string.custom_driver_not_supported, |
| 104 | R.string.custom_driver_not_supported_description | ||
| 101 | ) | 105 | ) |
| 102 | } | 106 | ) |
| 103 | |||
| 104 | add( | 107 | add( |
| 105 | HomeSetting( | 108 | HomeSetting( |
| 106 | R.string.install_amiibo_keys, | 109 | R.string.install_amiibo_keys, |
| 107 | R.string.install_amiibo_keys_description, | 110 | R.string.install_amiibo_keys_description, |
| 108 | R.drawable.ic_nfc | 111 | R.drawable.ic_nfc, |
| 109 | ) { mainActivity.getAmiiboKey.launch(arrayOf("*/*")) } | 112 | { mainActivity.getAmiiboKey.launch(arrayOf("*/*")) } |
| 113 | ) | ||
| 110 | ) | 114 | ) |
| 111 | add( | 115 | add( |
| 112 | HomeSetting( | 116 | HomeSetting( |
| 113 | R.string.install_game_content, | 117 | R.string.install_game_content, |
| 114 | R.string.install_game_content_description, | 118 | R.string.install_game_content_description, |
| 115 | R.drawable.ic_system_update_alt | 119 | R.drawable.ic_system_update_alt, |
| 116 | ) { mainActivity.installGameUpdate.launch(arrayOf("*/*")) } | 120 | { mainActivity.installGameUpdate.launch(arrayOf("*/*")) } |
| 121 | ) | ||
| 117 | ) | 122 | ) |
| 118 | add( | 123 | add( |
| 119 | HomeSetting( | 124 | HomeSetting( |
| 120 | R.string.select_games_folder, | 125 | R.string.select_games_folder, |
| 121 | R.string.select_games_folder_description, | 126 | R.string.select_games_folder_description, |
| 122 | R.drawable.ic_add | 127 | R.drawable.ic_add, |
| 123 | ) { | 128 | { |
| 124 | mainActivity.getGamesDirectory.launch( | 129 | mainActivity.getGamesDirectory.launch( |
| 125 | Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data | 130 | Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data |
| 126 | ) | 131 | ) |
| 127 | } | 132 | } |
| 133 | ) | ||
| 128 | ) | 134 | ) |
| 129 | add( | 135 | add( |
| 130 | HomeSetting( | 136 | HomeSetting( |
| 131 | R.string.manage_save_data, | 137 | R.string.manage_save_data, |
| 132 | R.string.import_export_saves_description, | 138 | R.string.import_export_saves_description, |
| 133 | R.drawable.ic_save | 139 | R.drawable.ic_save, |
| 134 | ) { | 140 | { |
| 135 | ImportExportSavesFragment().show( | 141 | ImportExportSavesFragment().show( |
| 136 | parentFragmentManager, | 142 | parentFragmentManager, |
| 137 | ImportExportSavesFragment.TAG | 143 | ImportExportSavesFragment.TAG |
| 138 | ) | 144 | ) |
| 139 | } | 145 | } |
| 146 | ) | ||
| 140 | ) | 147 | ) |
| 141 | add( | 148 | add( |
| 142 | HomeSetting( | 149 | HomeSetting( |
| 143 | R.string.install_prod_keys, | 150 | R.string.install_prod_keys, |
| 144 | R.string.install_prod_keys_description, | 151 | R.string.install_prod_keys_description, |
| 145 | R.drawable.ic_unlock | 152 | R.drawable.ic_unlock, |
| 146 | ) { mainActivity.getProdKey.launch(arrayOf("*/*")) } | 153 | { mainActivity.getProdKey.launch(arrayOf("*/*")) } |
| 154 | ) | ||
| 147 | ) | 155 | ) |
| 148 | add( | 156 | add( |
| 149 | HomeSetting( | 157 | HomeSetting( |
| 150 | R.string.install_firmware, | 158 | R.string.install_firmware, |
| 151 | R.string.install_firmware_description, | 159 | R.string.install_firmware_description, |
| 152 | R.drawable.ic_firmware | 160 | R.drawable.ic_firmware, |
| 153 | ) { mainActivity.getFirmware.launch(arrayOf("application/zip")) } | 161 | { mainActivity.getFirmware.launch(arrayOf("application/zip")) } |
| 162 | ) | ||
| 154 | ) | 163 | ) |
| 155 | add( | 164 | add( |
| 156 | HomeSetting( | 165 | HomeSetting( |
| 157 | R.string.share_log, | 166 | R.string.share_log, |
| 158 | R.string.share_log_description, | 167 | R.string.share_log_description, |
| 159 | R.drawable.ic_log | 168 | R.drawable.ic_log, |
| 160 | ) { shareLog() } | 169 | { shareLog() } |
| 170 | ) | ||
| 161 | ) | 171 | ) |
| 162 | add( | 172 | add( |
| 163 | HomeSetting( | 173 | HomeSetting( |
| 164 | R.string.about, | 174 | R.string.about, |
| 165 | R.string.about_description, | 175 | R.string.about_description, |
| 166 | R.drawable.ic_info_outline | 176 | R.drawable.ic_info_outline, |
| 167 | ) { | 177 | { |
| 168 | exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) | 178 | exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) |
| 169 | parentFragmentManager.primaryNavigationFragment?.findNavController() | 179 | parentFragmentManager.primaryNavigationFragment?.findNavController() |
| 170 | ?.navigate(R.id.action_homeSettingsFragment_to_aboutFragment) | 180 | ?.navigate(R.id.action_homeSettingsFragment_to_aboutFragment) |
| 171 | } | 181 | } |
| 182 | ) | ||
| 172 | ) | 183 | ) |
| 173 | } | 184 | } |
| 174 | 185 | ||
| @@ -178,12 +189,13 @@ class HomeSettingsFragment : Fragment() { | |||
| 178 | HomeSetting( | 189 | HomeSetting( |
| 179 | R.string.get_early_access, | 190 | R.string.get_early_access, |
| 180 | R.string.get_early_access_description, | 191 | R.string.get_early_access_description, |
| 181 | R.drawable.ic_diamond | 192 | R.drawable.ic_diamond, |
| 182 | ) { | 193 | { |
| 183 | exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) | 194 | exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) |
| 184 | parentFragmentManager.primaryNavigationFragment?.findNavController() | 195 | parentFragmentManager.primaryNavigationFragment?.findNavController() |
| 185 | ?.navigate(R.id.action_homeSettingsFragment_to_earlyAccessFragment) | 196 | ?.navigate(R.id.action_homeSettingsFragment_to_earlyAccessFragment) |
| 186 | } | 197 | } |
| 198 | ) | ||
| 187 | ) | 199 | ) |
| 188 | } | 200 | } |
| 189 | 201 | ||
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( | |||
| 7 | val titleId: Int, | 7 | val titleId: Int, |
| 8 | val descriptionId: Int, | 8 | val descriptionId: Int, |
| 9 | val iconId: Int, | 9 | val iconId: Int, |
| 10 | val onClick: () -> Unit | 10 | val onClick: () -> Unit, |
| 11 | val isEnabled: () -> Boolean = { true }, | ||
| 12 | val disabledTitleId: Int = 0, | ||
| 13 | val disabledMessageId: Int = 0 | ||
| 11 | ) | 14 | ) |
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index b3c737979..b963f0119 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 @@ | |||
| 113 | <string name="install_game_content_success_install">%1$d installed successfully</string> | 113 | <string name="install_game_content_success_install">%1$d installed successfully</string> |
| 114 | <string name="install_game_content_success_overwrite">%1$d overwritten successfully</string> | 114 | <string name="install_game_content_success_overwrite">%1$d overwritten successfully</string> |
| 115 | <string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string> | 115 | <string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string> |
| 116 | <string name="custom_driver_not_supported">Custom drivers not supported</string> | ||
| 117 | <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> | ||
| 116 | 118 | ||
| 117 | <!-- About screen strings --> | 119 | <!-- About screen strings --> |
| 118 | <string name="gaia_is_not_real">Gaia isn\'t real</string> | 120 | <string name="gaia_is_not_real">Gaia isn\'t real</string> |