From 126abbc7b6387f4ca436ee3adf6356964e5f64aa Mon Sep 17 00:00:00 2001 From: lizzie Date: Mon, 20 Oct 2025 07:09:17 +0000 Subject: [PATCH] [android] opinionated UI changes for startup and first-out of the box experience Signed-off-by: lizzie --- .../features/settings/model/Settings.kt | 2 ++ .../yuzu/yuzu_emu/fragments/SetupFragment.kt | 17 +++-------------- .../org/yuzu/yuzu_emu/ui/main/MainActivity.kt | 16 ++++++++++++++-- .../src/main/res/layout/fragment_folders.xml | 2 +- src/android/app/src/main/res/values/strings.xml | 6 +----- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt index 2992ba2e0c..69e8ab4e3c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt @@ -35,6 +35,8 @@ object Settings { const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch" const val PREF_SHOULD_SHOW_DRIVER_WARNING = "ShouldShowDriverWarning" + const val PREF_SHOULD_SHOW_KEYS_MISSING_WARNING = "ShouldShowKeysMissingWarning" + const val PREF_SHOULD_SHOW_EDENS_VEIL_DIALOG = "ShouldShowEdensVeilDialog" const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown" const val SECTION_STATS_OVERLAY = "Stats Overlay" 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 eff96248e0..1aa249c417 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 @@ -96,19 +96,6 @@ class SetupFragment : Fragment() { val pages = mutableListOf() pages.apply { - add( - SetupPage( - R.drawable.ic_yuzu_title, - R.string.welcome, - R.string.welcome_description, - 0, - true, - R.string.get_started, - { pageForward() }, - false - ) - ) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { add( SetupPage( @@ -198,7 +185,7 @@ class SetupFragment : Fragment() { R.string.games_description, R.drawable.ic_add, true, - R.string.add_games, + R.string.add_games_folder, { gamesDirCallback = it getGamesDirectory.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data) @@ -216,6 +203,8 @@ class SetupFragment : Fragment() { } ) ) + + // Needed because finishSetup() add( SetupPage( R.drawable.ic_check, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt index 126d85d715..e52709a0b5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt @@ -202,11 +202,23 @@ class MainActivity : AppCompatActivity(), ThemeProvider { } private fun checkKeys() { - if (!NativeLibrary.areKeysPresent()) { + val shouldDisplayKeysMissingWarning = + PreferenceManager.getDefaultSharedPreferences(applicationContext) + .getBoolean(Settings.PREF_SHOULD_SHOW_KEYS_MISSING_WARNING, true) + if (shouldDisplayKeysMissingWarning && !NativeLibrary.areKeysPresent()) { MessageDialogFragment.newInstance( + this, titleId = R.string.keys_missing, descriptionId = R.string.keys_missing_description, - helpLinkId = R.string.keys_missing_help + helpLinkId = R.string.keys_missing_help, + positiveButtonTitleId = R.string.dont_show_again, + negativeButtonTitleId = R.string.close, + showNegativeButton = true, + positiveAction = { + PreferenceManager.getDefaultSharedPreferences(applicationContext).edit() { + putBoolean(Settings.PREF_SHOULD_SHOW_KEYS_MISSING_WARNING, false) + } + } ).show(supportFragmentManager, MessageDialogFragment.TAG) } } diff --git a/src/android/app/src/main/res/layout/fragment_folders.xml b/src/android/app/src/main/res/layout/fragment_folders.xml index b5c7676d88..00c0c6e2af 100644 --- a/src/android/app/src/main/res/layout/fragment_folders.xml +++ b/src/android/app/src/main/res/layout/fragment_folders.xml @@ -43,7 +43,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" - android:contentDescription="@string/add_games" + android:contentDescription="@string/add_games_folder" app:srcCompat="@drawable/ic_add" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" /> diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 5faf1bb939..7241747beb 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -238,8 +238,6 @@ Unlisted - Welcome! - Learn how to setup <b>Eden</b> and jump into emulation. Get started Keys Select your <b>prod.keys</b> file with the button below. @@ -249,12 +247,10 @@ Select Firmware Games Select your <b>Games</b> folder with the button below. - Done - You\'re all set.\nEnjoy your games! Continue Next Back - Add Games + Add Folder Complete!