summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/res/layout
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/res/layout')
-rw-r--r--src/android/app/src/main/res/layout/activity_cheats.xml22
-rw-r--r--src/android/app/src/main/res/layout/activity_emulation.xml17
-rw-r--r--src/android/app/src/main/res/layout/activity_main.xml27
-rw-r--r--src/android/app/src/main/res/layout/activity_settings.xml5
-rw-r--r--src/android/app/src/main/res/layout/card_game.xml81
-rw-r--r--src/android/app/src/main/res/layout/dialog_checkbox.xml16
-rw-r--r--src/android/app/src/main/res/layout/dialog_progress_bar.xml26
-rw-r--r--src/android/app/src/main/res/layout/dialog_seekbar.xml37
-rw-r--r--src/android/app/src/main/res/layout/filepicker_toolbar.xml32
-rw-r--r--src/android/app/src/main/res/layout/fragment_cheat_details.xml163
-rw-r--r--src/android/app/src/main/res/layout/fragment_cheat_list.xml27
-rw-r--r--src/android/app/src/main/res/layout/fragment_emulation.xml47
-rw-r--r--src/android/app/src/main/res/layout/fragment_grid.xml33
-rw-r--r--src/android/app/src/main/res/layout/fragment_settings.xml12
-rw-r--r--src/android/app/src/main/res/layout/list_item_cheat.xml38
-rw-r--r--src/android/app/src/main/res/layout/list_item_setting.xml43
-rw-r--r--src/android/app/src/main/res/layout/list_item_setting_checkbox.xml52
-rw-r--r--src/android/app/src/main/res/layout/list_item_settings_header.xml19
-rw-r--r--src/android/app/src/main/res/layout/premium_item_setting.xml43
-rw-r--r--src/android/app/src/main/res/layout/sysclock_datetime_picker.xml22
20 files changed, 762 insertions, 0 deletions
diff --git a/src/android/app/src/main/res/layout/activity_cheats.xml b/src/android/app/src/main/res/layout/activity_cheats.xml
new file mode 100644
index 000000000..b9414ab6d
--- /dev/null
+++ b/src/android/app/src/main/res/layout/activity_cheats.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.slidingpanelayout.widget.SlidingPaneLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sliding_pane_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.fragment.app.FragmentContainerView
+ android:layout_width="320dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:id="@+id/cheat_list"
+ android:name="org.citra.citra_emu.features.cheats.ui.CheatListFragment" />
+
+ <androidx.fragment.app.FragmentContainerView
+ android:layout_width="320dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:id="@+id/cheat_details"
+ android:name="org.citra.citra_emu.features.cheats.ui.CheatDetailsFragment" />
+
+</androidx.slidingpanelayout.widget.SlidingPaneLayout>
diff --git a/src/android/app/src/main/res/layout/activity_emulation.xml b/src/android/app/src/main/res/layout/activity_emulation.xml
new file mode 100644
index 000000000..7d7f36925
--- /dev/null
+++ b/src/android/app/src/main/res/layout/activity_emulation.xml
@@ -0,0 +1,17 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/frame_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <FrameLayout
+ android:id="@+id/frame_emulation_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+ <ImageView
+ android:id="@+id/image_icon"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:transitionName="image_game_icon" />
+
+</FrameLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/activity_main.xml b/src/android/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 000000000..cea0922a7
--- /dev/null
+++ b/src/android/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/coordinator_main"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <FrameLayout
+ android:id="@+id/games_platform_frame"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior" />
+
+ <com.google.android.material.appbar.AppBarLayout
+ android:id="@+id/appbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <androidx.appcompat.widget.Toolbar
+ android:id="@+id/toolbar_main"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?colorPrimary"/>
+
+ </com.google.android.material.appbar.AppBarLayout>
+
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/src/android/app/src/main/res/layout/activity_settings.xml b/src/android/app/src/main/res/layout/activity_settings.xml
new file mode 100644
index 000000000..11b91c45f
--- /dev/null
+++ b/src/android/app/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/frame_content" />
diff --git a/src/android/app/src/main/res/layout/card_game.xml b/src/android/app/src/main/res/layout/card_game.xml
new file mode 100644
index 000000000..217f02d34
--- /dev/null
+++ b/src/android/app/src/main/res/layout/card_game.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView 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="wrap_content"
+ android:clickable="true"
+ android:focusable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ android:transitionName="card_game"
+ tools:layout_width="match_parent">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/linearLayout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="8dp">
+
+ <ImageView
+ android:id="@+id/image_game_screen"
+ android:layout_width="56dp"
+ android:layout_height="56dp"
+ android:adjustViewBounds="false"
+ android:cropToPadding="false"
+ android:scaleType="fitCenter"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:scaleType="fitCenter" />
+
+ <TextView
+ android:id="@+id/text_game_title"
+ style="@android:style/TextAppearance.Material.Subhead"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="8dp"
+ android:baselineAligned="false"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:lines="1"
+ android:maxLines="1"
+ android:textAlignment="viewStart"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/image_game_screen"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="The Legend of Zelda\nOcarina of Time 3D"
+ android:textColor="@color/header_text" />
+
+ <TextView
+ android:id="@+id/text_company"
+ style="@android:style/TextAppearance.Material.Caption"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:lines="1"
+ android:maxLines="1"
+ app:layout_constraintBottom_toBottomOf="@+id/image_game_screen"
+ app:layout_constraintStart_toStartOf="@+id/text_game_title"
+ app:layout_constraintTop_toBottomOf="@+id/text_game_title"
+ app:layout_constraintVertical_bias="0.842"
+ tools:text="Nintendo"
+ android:textColor="@color/header_subtext" />
+
+ <TextView
+ android:id="@+id/text_filename"
+ style="@android:style/TextAppearance.Material.Caption"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:lines="1"
+ android:maxLines="1"
+ app:layout_constraintBottom_toBottomOf="@+id/image_game_screen"
+ app:layout_constraintStart_toStartOf="@+id/text_game_title"
+ app:layout_constraintTop_toBottomOf="@+id/text_game_title"
+ app:layout_constraintVertical_bias="0.0"
+ tools:text="Pilotwings_Resort.cxi"
+ android:textColor="@color/header_subtext" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.cardview.widget.CardView>
diff --git a/src/android/app/src/main/res/layout/dialog_checkbox.xml b/src/android/app/src/main/res/layout/dialog_checkbox.xml
new file mode 100644
index 000000000..c0f307117
--- /dev/null
+++ b/src/android/app/src/main/res/layout/dialog_checkbox.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:paddingTop="5dp"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"
+ android:paddingBottom="0dp"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <CheckBox
+ android:id="@+id/checkBox"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/do_not_show_this_again" />
+</LinearLayout>
diff --git a/src/android/app/src/main/res/layout/dialog_progress_bar.xml b/src/android/app/src/main/res/layout/dialog_progress_bar.xml
new file mode 100644
index 000000000..a81157a29
--- /dev/null
+++ b/src/android/app/src/main/res/layout/dialog_progress_bar.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <ProgressBar
+ android:id="@+id/progress_bar"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/spacing_large"
+ android:layout_marginRight="@dimen/spacing_large"
+ android:layout_alignParentEnd="true"
+ android:layout_below="@+id/progress_text"
+ android:layout_alignParentStart="true"/>
+
+ <TextView
+ android:id="@+id/progress_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/spacing_large"
+ android:layout_marginRight="@dimen/spacing_large"
+ android:gravity="right"
+ android:text="1/100" />
+</LinearLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/dialog_seekbar.xml b/src/android/app/src/main/res/layout/dialog_seekbar.xml
new file mode 100644
index 000000000..35abecfcb
--- /dev/null
+++ b/src/android/app/src/main/res/layout/dialog_seekbar.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <SeekBar
+ android:id="@+id/seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/spacing_large"
+ android:layout_marginRight="@dimen/spacing_large"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentStart="true"
+ android:layout_below="@+id/text_value"
+ android:layout_marginBottom="@dimen/spacing_medlarge" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:text="75"
+ android:id="@+id/text_value"
+ android:layout_alignParentTop="true"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="@dimen/spacing_medlarge"
+ android:layout_marginBottom="@dimen/spacing_medlarge" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:text="%"
+ android:id="@+id/text_units"
+ android:layout_alignTop="@+id/text_value"
+ android:layout_toEndOf="@+id/text_value" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/filepicker_toolbar.xml b/src/android/app/src/main/res/layout/filepicker_toolbar.xml
new file mode 100644
index 000000000..644934171
--- /dev/null
+++ b/src/android/app/src/main/res/layout/filepicker_toolbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/nnf_picker_toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
+ android:background="?attr/colorPrimary"
+ android:minHeight="?attr/actionBarSize"
+ android:theme="?nnf_toolbarTheme">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/filepicker_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="start"
+ android:singleLine="true"
+ android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" />
+
+ <TextView
+ android:id="@+id/nnf_current_dir"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="start"
+ android:singleLine="true"
+ android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle" />
+ </LinearLayout>
+</androidx.appcompat.widget.Toolbar>
diff --git a/src/android/app/src/main/res/layout/fragment_cheat_details.xml b/src/android/app/src/main/res/layout/fragment_cheat_details.xml
new file mode 100644
index 000000000..25b1a268a
--- /dev/null
+++ b/src/android/app/src/main/res/layout/fragment_cheat_details.xml
@@ -0,0 +1,163 @@
+<?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"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/root"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ScrollView
+ android:id="@+id/scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/barrier">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:id="@+id/label_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/TextAppearance.MaterialComponents.Headline5"
+ android:textSize="18sp"
+ android:text="@string/cheats_name"
+ android:layout_margin="@dimen/spacing_large"
+ android:labelFor="@id/edit_name"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/edit_name" />
+
+ <EditText
+ android:id="@+id/edit_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="48dp"
+ android:layout_marginHorizontal="@dimen/spacing_large"
+ android:importantForAutofill="no"
+ android:inputType="text"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/label_name"
+ app:layout_constraintBottom_toTopOf="@id/label_notes"
+ tools:text="Max Lives after losing 1" />
+
+ <TextView
+ android:id="@+id/label_notes"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/TextAppearance.MaterialComponents.Headline5"
+ android:textSize="18sp"
+ android:text="@string/cheats_notes"
+ android:layout_margin="@dimen/spacing_large"
+ android:labelFor="@id/edit_notes"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/edit_name"
+ app:layout_constraintBottom_toTopOf="@id/edit_notes" />
+
+ <EditText
+ android:id="@+id/edit_notes"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="48dp"
+ android:layout_marginHorizontal="@dimen/spacing_large"
+ android:importantForAutofill="no"
+ android:inputType="textMultiLine"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/label_notes"
+ app:layout_constraintBottom_toTopOf="@id/label_code" />
+
+ <TextView
+ android:id="@+id/label_code"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/TextAppearance.MaterialComponents.Headline5"
+ android:textSize="18sp"
+ android:text="@string/cheats_code"
+ android:layout_margin="@dimen/spacing_large"
+ android:labelFor="@id/edit_code"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/edit_notes"
+ app:layout_constraintBottom_toTopOf="@id/edit_code" />
+
+ <EditText
+ android:id="@+id/edit_code"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="108sp"
+ android:layout_marginHorizontal="@dimen/spacing_large"
+ android:importantForAutofill="no"
+ android:inputType="textMultiLine"
+ android:typeface="monospace"
+ android:gravity="start"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/label_code"
+ app:layout_constraintBottom_toBottomOf="parent"
+ tools:text="D3000000 00000000\n00138C78 E1C023BE" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ </ScrollView>
+
+ <androidx.constraintlayout.widget.Barrier
+ android:id="@+id/barrier"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:barrierDirection="top"
+ app:constraint_referenced_ids="button_delete,button_edit,button_cancel,button_ok" />
+
+ <Button
+ android:id="@+id/button_delete"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/spacing_large"
+ android:text="@string/cheats_delete"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/button_edit"
+ app:layout_constraintTop_toBottomOf="@id/barrier"
+ app:layout_constraintBottom_toBottomOf="parent" />
+
+ <Button
+ android:id="@+id/button_edit"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/spacing_large"
+ android:text="@string/cheats_edit"
+ app:layout_constraintStart_toEndOf="@id/button_delete"
+ app:layout_constraintEnd_toStartOf="@id/button_cancel"
+ app:layout_constraintTop_toBottomOf="@id/barrier"
+ app:layout_constraintBottom_toBottomOf="parent" />
+
+ <Button
+ android:id="@+id/button_cancel"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/spacing_large"
+ android:text="@android:string/cancel"
+ app:layout_constraintStart_toEndOf="@id/button_edit"
+ app:layout_constraintEnd_toStartOf="@id/button_ok"
+ app:layout_constraintTop_toBottomOf="@id/barrier"
+ app:layout_constraintBottom_toBottomOf="parent" />
+
+ <Button
+ android:id="@+id/button_ok"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/spacing_large"
+ android:text="@android:string/ok"
+ app:layout_constraintStart_toEndOf="@id/button_cancel"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/barrier"
+ app:layout_constraintBottom_toBottomOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/src/android/app/src/main/res/layout/fragment_cheat_list.xml b/src/android/app/src/main/res/layout/fragment_cheat_list.xml
new file mode 100644
index 000000000..679a49c28
--- /dev/null
+++ b/src/android/app/src/main/res/layout/fragment_cheat_list.xml
@@ -0,0 +1,27 @@
+<?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:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/cheat_list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent" />
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_add"
+ android:contentDescription="@string/cheats_add"
+ android:layout_margin="16dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml
new file mode 100644
index 000000000..d6e47e1e4
--- /dev/null
+++ b/src/android/app/src/main/res/layout/fragment_emulation.xml
@@ -0,0 +1,47 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:keepScreenOn="true"
+ tools:context="org.citra.citra_emu.fragments.EmulationFragment">
+
+ <!-- This is what everything is rendered to during emulation -->
+ <SurfaceView
+ android:id="@+id/surface_emulation"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:focusable="false"
+ android:focusableInTouchMode="false" />
+
+ <!-- This is the onscreen input overlay -->
+ <org.citra.citra_emu.overlay.InputOverlay
+ android:id="@+id/surface_input_overlay"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:focusable="true"
+ android:focusableInTouchMode="true" />
+
+ <TextView
+ android:id="@+id/show_fps_text"
+ android:layout_marginStart="8dp"
+ android:layout_marginTop="2dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:linksClickable="false"
+ android:longClickable="false"
+ android:shadowColor="@android:color/black"
+ android:textColor="@android:color/white"
+ android:textSize="12sp" />
+
+ <Button
+ android:id="@+id/done_control_config"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:padding="@dimen/spacing_small"
+ android:background="@color/citra_orange"
+ android:text="@string/emulation_done"
+ android:visibility="gone" />
+
+</FrameLayout>
diff --git a/src/android/app/src/main/res/layout/fragment_grid.xml b/src/android/app/src/main/res/layout/fragment_grid.xml
new file mode 100644
index 000000000..f5b6c2e19
--- /dev/null
+++ b/src/android/app/src/main/res/layout/fragment_grid.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+ android:id="@+id/refresh_grid_games"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <TextView
+ android:id="@+id/gamelist_empty_text"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="@string/empty_gamelist"
+ android:visibility="gone"
+ android:textSize="18sp"
+ android:gravity="center" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/grid_games"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:listitem="@layout/card_game" />
+ </RelativeLayout>
+
+ </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+</FrameLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/fragment_settings.xml b/src/android/app/src/main/res/layout/fragment_settings.xml
new file mode 100644
index 000000000..4c5d597c1
--- /dev/null
+++ b/src/android/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<org.citra.citra_emu.features.settings.ui.SettingsFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/list_settings"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/card_view_background" />
+
+</org.citra.citra_emu.features.settings.ui.SettingsFrameLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/list_item_cheat.xml b/src/android/app/src/main/res/layout/list_item_cheat.xml
new file mode 100644
index 000000000..c0b5f982f
--- /dev/null
+++ b/src/android/app/src/main/res/layout/list_item_cheat.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"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/root"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:focusable="true"
+ android:nextFocusRight="@id/checkbox">
+
+ <TextView
+ android:id="@+id/text_name"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:textColor="@color/header_text"
+ android:textSize="16sp"
+ android:layout_margin="@dimen/spacing_large"
+ style="@style/TextAppearance.AppCompat.Headline"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/checkbox"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ tools:text="Max Lives after losing 1" />
+
+ <CheckBox
+ android:id="@+id/checkbox"
+ android:layout_width="48dp"
+ android:layout_height="64dp"
+ android:focusable="true"
+ android:gravity="center"
+ android:nextFocusLeft="@id/root"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/text_name"
+ app:layout_constraintTop_toTopOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/src/android/app/src/main/res/layout/list_item_setting.xml b/src/android/app/src/main/res/layout/list_item_setting.xml
new file mode 100644
index 000000000..df83684f7
--- /dev/null
+++ b/src/android/app/src/main/res/layout/list_item_setting.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:minHeight="72dp"
+ android:paddingTop="@dimen/spacing_large"
+ android:paddingBottom="@dimen/spacing_large">
+
+ <TextView
+ android:id="@+id/text_setting_name"
+ style="@style/TextAppearance.AppCompat.Headline"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentEnd="true"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:textColor="@color/header_text"
+ android:textSize="16sp"
+ tools:text="Setting Name" />
+
+ <TextView
+ android:id="@+id/text_setting_description"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/text_setting_name"
+ android:layout_alignStart="@+id/text_setting_name"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentEnd="true"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginTop="@dimen/spacing_small"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:visibility="visible"
+ tools:text="@string/app_disclaimer"
+ android:textColor="@color/header_subtext" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml b/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml
new file mode 100644
index 000000000..86ba83f11
--- /dev/null
+++ b/src/android/app/src/main/res/layout/list_item_setting_checkbox.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="72dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:focusable="true"
+ android:clickable="true">
+
+ <TextView
+ android:id="@+id/text_setting_name"
+ style="@style/TextAppearance.AppCompat.Headline"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginTop="@dimen/spacing_large"
+ android:layout_toStartOf="@+id/checkbox"
+ android:textColor="@color/header_text"
+ android:textSize="16sp"
+ tools:text="@string/frame_limit_enable" />
+
+ <TextView
+ android:id="@+id/text_setting_description"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignStart="@+id/text_setting_name"
+ android:layout_below="@+id/text_setting_name"
+ android:layout_marginBottom="@dimen/spacing_large"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginTop="@dimen/spacing_small"
+ android:layout_toStartOf="@+id/checkbox"
+ android:textAlignment="textStart"
+ android:textColor="@color/header_subtext"
+ tools:text="@string/frame_limit_enable_description" />
+
+ <CheckBox
+ android:id="@+id/checkbox"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_centerVertical="true"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:focusable="false"
+ android:clickable="false" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/list_item_settings_header.xml b/src/android/app/src/main/res/layout/list_item_settings_header.xml
new file mode 100644
index 000000000..d220dfd61
--- /dev/null
+++ b/src/android/app/src/main/res/layout/list_item_settings_header.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="48dp">
+
+ <TextView
+ android:id="@+id/text_header_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginBottom="@dimen/spacing_small"
+ android:layout_marginTop="@dimen/spacing_small"
+ android:textColor="?android:colorAccent"
+ android:textStyle="bold"
+ tools:text="CPU Settings" />
+
+</FrameLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/premium_item_setting.xml b/src/android/app/src/main/res/layout/premium_item_setting.xml
new file mode 100644
index 000000000..17d5a13b2
--- /dev/null
+++ b/src/android/app/src/main/res/layout/premium_item_setting.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:minHeight="72dp"
+ android:paddingTop="@dimen/spacing_large"
+ android:paddingBottom="@dimen/spacing_large">
+
+ <TextView
+ android:id="@+id/text_setting_name"
+ style="@style/TextAppearance.AppCompat.Headline"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentEnd="true"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:textColor="?android:colorAccent"
+ android:textStyle="bold"
+ tools:text="Setting Name" />
+
+ <TextView
+ android:id="@+id/text_setting_description"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/text_setting_name"
+ android:layout_alignStart="@+id/text_setting_name"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentEnd="true"
+ android:layout_marginStart="@dimen/spacing_large"
+ android:layout_marginTop="@dimen/spacing_small"
+ android:layout_marginEnd="@dimen/spacing_large"
+ android:visibility="visible"
+ tools:text="@string/app_disclaimer"
+ android:textColor="@color/header_subtext" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/src/android/app/src/main/res/layout/sysclock_datetime_picker.xml b/src/android/app/src/main/res/layout/sysclock_datetime_picker.xml
new file mode 100644
index 000000000..d082f5283
--- /dev/null
+++ b/src/android/app/src/main/res/layout/sysclock_datetime_picker.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="8dp"
+ android:gravity="center">
+
+ <DatePicker
+ android:id="@+id/date_picker"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:calendarViewShown="false"
+ android:datePickerMode="spinner"
+ android:spinnersShown="true" />
+
+ <TimePicker
+ android:id="@+id/time_picker"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:timePickerMode="spinner" />
+</LinearLayout>