diff options
Diffstat (limited to 'src/android/app/src/main/res')
12 files changed, 274 insertions, 2 deletions
diff --git a/src/android/app/src/main/res/drawable/ic_arrow_forward.xml b/src/android/app/src/main/res/drawable/ic_arrow_forward.xml new file mode 100644 index 000000000..3b85a3e2c --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_arrow_forward.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:autoMirrored="true" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorControlNormal" + android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_check.xml b/src/android/app/src/main/res/drawable/ic_check.xml new file mode 100644 index 000000000..04b89abf2 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_check.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorOnSurface" + android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_controller.xml b/src/android/app/src/main/res/drawable/ic_controller.xml index 2359c35be..060cd9ae2 100644 --- a/src/android/app/src/main/res/drawable/ic_controller.xml +++ b/src/android/app/src/main/res/drawable/ic_controller.xml @@ -4,6 +4,6 @@ android:viewportHeight="24" android:viewportWidth="24"> <path - android:fillColor="?attr/colorControlNormal" + android:fillColor="?attr/colorOnSurface" android:pathData="M21,6L3,6c-1.1,0 -2,0.9 -2,2v8c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,8c0,-1.1 -0.9,-2 -2,-2zM11,13L8,13v3L6,16v-3L3,13v-2h3L6,8h2v3h3v2zM15.5,15c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM19.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S18.67,9 19.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z" /> </vector> diff --git a/src/android/app/src/main/res/drawable/ic_key.xml b/src/android/app/src/main/res/drawable/ic_key.xml new file mode 100644 index 000000000..a3943634f --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_key.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/colorOnSurface" + android:pathData="M21,10h-8.35C11.83,7.67 9.61,6 7,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6c2.61,0 4.83,-1.67 5.65,-4H13l2,2l2,-2l2,2l4,-4.04L21,10zM7,15c-1.65,0 -3,-1.35 -3,-3c0,-1.65 1.35,-3 3,-3s3,1.35 3,3C10,13.65 8.65,15 7,15z" /> +</vector> diff --git a/src/android/app/src/main/res/drawable/ic_yuzu_title.xml b/src/android/app/src/main/res/drawable/ic_yuzu_title.xml new file mode 100644 index 000000000..b733e5248 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_yuzu_title.xml @@ -0,0 +1,24 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="340.97dp" + android:height="389.85dp" + android:viewportWidth="340.97" + android:viewportHeight="389.85"> + <path + android:fillColor="?attr/colorOnSurface" + android:pathData="M341,268.68v73c0,14.5 -2.24,25.24 -6.83,32.82 -5.92,10.15 -16.21,15.32 -30.54,15.32S279,384.61 273,374.27c-4.56,-7.64 -6.8,-18.42 -6.8,-32.92V268.68a4.52,4.52 0,0 1,4.51 -4.51H273a4.5,4.5 0,0 1,4.5 4.51v72.5c0,33.53 14.88,37.4 26.07,37.4 12.14,0 26.08,-4.17 26.08,-36.71V268.68a4.52,4.52 0,0 1,4.52 -4.51h2.27A4.5,4.5 0,0 1,341 268.68Z" /> + <path + android:fillColor="?attr/colorOnSurface" + android:pathData="M246.49,389.85H178.6c-2.35,0 -4.72,-1.88 -4.72,-6.08a8.28,8.28 0,0 1,1.33 -4.48l60.33,-104.47H186a4.51,4.51 0,0 1,-4.51 -4.51v-1.58a4.51,4.51 0,0 1,4.48 -4.51h0.8c58.69,-0.11 59.12,0 59.67,0.07a5.19,5.19 0,0 1,4 5.8,8.69 8.69,0 0,1 -1.33,3.76l-60.6,104.77h58a4.51,4.51 0,0 1,4.51 4.51v2.21A4.51,4.51 0,0 1,246.49 389.85Z" /> + <path + android:fillColor="?attr/colorOnSurface" + android:pathData="M73.6,268.68v82.06c0,26 -11.8,38.44 -37.12,39.09h-0.12a4.51,4.51 0,0 1,-4.51 -4.51V383a4.51,4.51 0,0 1,4.48 -4.5c18.49,-0.15 26,-8.23 26,-27.9v-2.37A32.34,32.34 0,0 1,59 351.46c-6.39,5.5 -14.5,8.29 -24.07,8.29C12.09,359.75 0,347.34 0,323.86V268.68a4.52,4.52 0,0 1,4.51 -4.51H6.73a4.52,4.52 0,0 1,4.5 4.51v55c0,7.6 1.82,14.22 5,18.18 3.57,4.56 9.17,6.49 18.75,6.49 10.13,0 17.32,-3.76 22,-11.5 3.61,-5.92 5.43,-13.66 5.43,-23V268.68a4.52,4.52 0,0 1,4.51 -4.51h2.22A4.52,4.52 0,0 1,73.6 268.68Z" /> + <path + android:fillColor="?attr/colorOnSurface" + android:pathData="M163.27,268.68v73c0,14.5 -2.24,25.24 -6.84,32.82 -5.92,10.15 -16.2,15.32 -30.53,15.32s-24.62,-5.23 -30.58,-15.57c-4.56,-7.64 -6.79,-18.42 -6.79,-32.92V268.68A4.51,4.51 0,0 1,93 264.17h2.28a4.51,4.51 0,0 1,4.51 4.51v72.5c0,33.53 14.88,37.4 26.07,37.4 12.14,0 26.08,-4.17 26.08,-36.71V268.68a4.51,4.51 0,0 1,4.51 -4.51h2.27A4.51,4.51 0,0 1,163.27 268.68Z" /> + <path + android:fillColor="#ff3c28" + android:pathData="M181.2,42.83V214.17a85.67,85.67 0,0 0,0 -171.34M197.93,61.6a69,69 0,0 1,0 133.8V61.6" /> + <path + android:fillColor="#0ab9e6" + android:pathData="M159.78,0a85.67,85.67 0,1 0,0 171.33ZM143.05,18.77v133.8A69,69 0,0 1,111 36.92a68.47,68.47 0,0 1,32 -18.15" /> +</vector> diff --git a/src/android/app/src/main/res/layout-w600dp/fragment_setup.xml b/src/android/app/src/main/res/layout-w600dp/fragment_setup.xml new file mode 100644 index 000000000..e05af9bdd --- /dev/null +++ b/src/android/app/src/main/res/layout-w600dp/fragment_setup.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/setup_root" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.viewpager2.widget.ViewPager2 + android:id="@+id/viewPager2" + android:layout_width="0dp" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.button.MaterialButton + style="@style/Widget.Material3.Button.TextButton" + android:id="@+id/button_next" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="16dp" + android:text="@string/next" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> + + <com.google.android.material.button.MaterialButton + android:id="@+id/button_back" + style="@style/Widget.Material3.Button.TextButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="16dp" + android:text="@string/back" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/src/android/app/src/main/res/layout-w600dp/page_setup.xml b/src/android/app/src/main/res/layout-w600dp/page_setup.xml new file mode 100644 index 000000000..e1c26b2f8 --- /dev/null +++ b/src/android/app/src/main/res/layout-w600dp/page_setup.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:layout_weight="1" + android:gravity="center"> + + <ImageView + android:id="@+id/icon" + android:layout_width="260dp" + android:layout_height="260dp" + android:layout_gravity="center" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center"> + + <com.google.android.material.textview.MaterialTextView + style="@style/TextAppearance.Material3.DisplaySmall" + android:id="@+id/text_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAlignment="center" + android:textColor="?attr/colorOnSurface" + android:textStyle="bold" + tools:text="@string/welcome" /> + + <com.google.android.material.textview.MaterialTextView + style="@style/TextAppearance.Material3.TitleLarge" + android:id="@+id/text_description" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:paddingHorizontal="32dp" + android:textAlignment="center" + android:textSize="26sp" + app:lineHeight="40sp" + tools:text="@string/welcome_description" /> + + <com.google.android.material.button.MaterialButton + android:id="@+id/button_action" + android:layout_width="wrap_content" + android:layout_height="56dp" + android:layout_marginTop="32dp" + android:textSize="20sp" + app:iconSize="24sp" + app:iconGravity="end" + tools:text="Get started" /> + + </LinearLayout> + +</LinearLayout> diff --git a/src/android/app/src/main/res/layout/activity_main.xml b/src/android/app/src/main/res/layout/activity_main.xml index 68a3eae46..59812ab8e 100644 --- a/src/android/app/src/main/res/layout/activity_main.xml +++ b/src/android/app/src/main/res/layout/activity_main.xml @@ -24,10 +24,12 @@ android:id="@+id/navigation_bar" android:layout_width="match_parent" android:layout_height="wrap_content" + android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" - app:menu="@menu/menu_navigation" /> + app:menu="@menu/menu_navigation" + tools:visibility="visible" /> <View android:id="@+id/status_bar_shade" diff --git a/src/android/app/src/main/res/layout/fragment_setup.xml b/src/android/app/src/main/res/layout/fragment_setup.xml new file mode 100644 index 000000000..6f8993152 --- /dev/null +++ b/src/android/app/src/main/res/layout/fragment_setup.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/setup_root" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.viewpager2.widget.ViewPager2 + android:id="@+id/viewPager2" + android:layout_width="0dp" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.button.MaterialButton + style="@style/Widget.Material3.Button.TextButton" + android:id="@+id/button_next" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="16dp" + android:text="@string/next" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> + + <com.google.android.material.button.MaterialButton + style="@style/Widget.Material3.Button.TextButton" + android:id="@+id/button_back" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="16dp" + android:text="@string/back" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/src/android/app/src/main/res/layout/page_setup.xml b/src/android/app/src/main/res/layout/page_setup.xml new file mode 100644 index 000000000..965019cdb --- /dev/null +++ b/src/android/app/src/main/res/layout/page_setup.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.appcompat.widget.LinearLayoutCompat + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingBottom="64dp"> + + <ImageView + android:id="@+id/icon" + android:layout_width="220dp" + android:layout_height="220dp" + android:layout_marginTop="64dp" + android:layout_gravity="center" /> + + <com.google.android.material.textview.MaterialTextView + style="@style/TextAppearance.Material3.DisplayMedium" + android:id="@+id/text_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="64dp" + android:textAlignment="center" + android:textColor="?attr/colorOnSurface" + android:textStyle="bold" + tools:text="@string/welcome" /> + + <com.google.android.material.textview.MaterialTextView + style="@style/TextAppearance.Material3.TitleLarge" + android:id="@+id/text_description" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:paddingHorizontal="32dp" + android:textAlignment="center" + android:textSize="26sp" + app:lineHeight="40sp" + tools:text="@string/welcome_description" /> + + <com.google.android.material.button.MaterialButton + android:id="@+id/button_action" + android:layout_width="wrap_content" + android:layout_height="56dp" + android:layout_marginTop="96dp" + android:layout_gravity="center" + android:textSize="20sp" + app:iconSize="24sp" + app:iconGravity="end" + tools:text="Get started" /> + +</androidx.appcompat.widget.LinearLayoutCompat> diff --git a/src/android/app/src/main/res/navigation/home_navigation.xml b/src/android/app/src/main/res/navigation/home_navigation.xml index e85e24a85..5afa901c2 100644 --- a/src/android/app/src/main/res/navigation/home_navigation.xml +++ b/src/android/app/src/main/res/navigation/home_navigation.xml @@ -14,4 +14,13 @@ android:name="org.yuzu.yuzu_emu.fragments.OptionsFragment" android:label="OptionsFragment" /> + <fragment + android:id="@+id/firstTimeSetupFragment" + android:name="org.yuzu.yuzu_emu.fragments.SetupFragment" + android:label="FirstTimeSetupFragment" > + <action + android:id="@+id/action_firstTimeSetupFragment_to_gamesFragment" + app:destination="@id/gamesFragment" /> + </fragment> + </navigation> diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 564bad081..916f516c0 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -9,12 +9,28 @@ <string name="app_notification_channel_description">yuzu Switch emulator notifications</string> <string name="app_notification_running">yuzu is running</string> + <!-- Setup strings --> + <string name="welcome">Welcome!</string> + <string name="welcome_description">Learn how to setup <b>yuzu</b> and jump into emulation.</string> + <string name="get_started">Get started</string> + <string name="keys">Keys</string> + <string name="keys_description">Select your <b>prod.keys</b> file with the button below.</string> + <string name="select_keys">Select Keys</string> + <string name="games">Games</string> + <string name="games_description">Select your <b>Games</b> folder with the button below.</string> + <string name="done">Done</string> + <string name="done_description">You\'re all set.\nEnjoy your games!</string> + <string name="text_continue">Continue</string> + <string name="next">Next</string> + <string name="back">Back</string> + <!-- Home strings --> <string name="home_games">Games</string> <string name="home_options">Options</string> <string name="add_games">Add Games</string> <string name="add_games_description">Select your games folder</string> <string name="home_search_games">Search Games</string> + <string name="games_dir_selected">Games directory selected</string> <string name="install_prod_keys">Install Prod.keys</string> <string name="install_prod_keys_description">Required to decrypt retail games</string> <string name="install_amiibo_keys">Install Amiibo Keys</string> |