summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 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
12import androidx.recyclerview.widget.RecyclerView 12import androidx.recyclerview.widget.RecyclerView
13import org.yuzu.yuzu_emu.R 13import org.yuzu.yuzu_emu.R
14import org.yuzu.yuzu_emu.databinding.CardHomeOptionBinding 14import org.yuzu.yuzu_emu.databinding.CardHomeOptionBinding
15import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
15import org.yuzu.yuzu_emu.model.HomeSetting 16import org.yuzu.yuzu_emu.model.HomeSetting
16 17
17class HomeSettingAdapter(private val activity: AppCompatActivity, var options: List<HomeSetting>) : 18class 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>