diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt
index 57bef553a..2af78b02c 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt
@@ -28,6 +28,9 @@ import org.yuzu.yuzu_emu.features.settings.model.Settings
import org.yuzu.yuzu_emu.model.HomeViewModel
import org.yuzu.yuzu_emu.model.SetupPage
import org.yuzu.yuzu_emu.ui.main.MainActivity
+import org.yuzu.yuzu_emu.utils.DirectoryInitialization
+import org.yuzu.yuzu_emu.utils.GameHelper
+import java.io.File
class SetupFragment : Fragment() {
private var _binding: FragmentSetupBinding? = null
@@ -101,7 +104,8 @@ class SetupFragment : Fragment() {
true,
R.string.install_prod_keys_warning,
R.string.install_prod_keys_warning_description,
- R.string.install_prod_keys_warning_help
+ R.string.install_prod_keys_warning_help,
+ { File(DirectoryInitialization.userDirectory + "/keys/prod.keys").exists() }
),
SetupPage(
R.drawable.ic_controller,
@@ -114,7 +118,12 @@ class SetupFragment : Fragment() {
true,
R.string.add_games_warning,
R.string.add_games_warning_description,
- 0
+ R.string.add_games_warning_help,
+ {
+ val preferences =
+ PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
+ preferences.getString(GameHelper.KEY_GAME_PATH, "")!!.isNotEmpty()
+ }
),
SetupPage(
R.drawable.ic_check,
@@ -158,16 +167,25 @@ class SetupFragment : Fragment() {
binding.buttonNext.setOnClickListener {
val index = binding.viewPager2.currentItem
val currentPage = pages[index]
- if (currentPage.hasWarning && !hasBeenWarned[index]) {
- SetupWarningDialogFragment.newInstance(
- currentPage.warningTitleId,
- currentPage.warningDescriptionId,
- currentPage.warningHelpLinkId,
- index
- ).show(childFragmentManager, SetupWarningDialogFragment.TAG)
- } else {
- pageForward()
+
+ // Checks if the user has completed the task on the current page
+ if (currentPage.hasWarning) {
+ if (currentPage.taskCompleted.invoke()) {
+ pageForward()
+ return@setOnClickListener
+ }
+
+ if (!hasBeenWarned[index]) {
+ SetupWarningDialogFragment.newInstance(
+ currentPage.warningTitleId,
+ currentPage.warningDescriptionId,
+ currentPage.warningHelpLinkId,
+ index
+ ).show(childFragmentManager, SetupWarningDialogFragment.TAG)
+ return@setOnClickListener
+ }
}
+ pageForward()
}
binding.buttonBack.setOnClickListener { pageBackward() }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt
index abe572a02..a0c878e1c 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt
@@ -14,5 +14,6 @@ data class SetupPage(
val hasWarning: Boolean,
val warningTitleId: Int = 0,
val warningDescriptionId: Int = 0,
- val warningHelpLinkId: Int = 0
+ val warningHelpLinkId: Int = 0,
+ val taskCompleted: () -> Boolean = { true }
)
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 6448a8d3f..5df65d084 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -31,6 +31,7 @@
Select your games folder
Skip selecting games folder?
Games won\'t be displayed in the Games list if a folder isn\'t selected.
+ https://yuzu-emu.org/help/quickstart/#dumping-games
Search Games
Games directory selected
Install Prod.keys