@@ -1,102 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<RelativeLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/input_scale"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:clickable="false">
android:layout_height="wrap_content">

<TextView
android:id="@+id/input_scale_name"
style="@style/TextAppearance.MaterialComponents.Headline5"
android:layout_width="match_parent"
android:layout_width="56dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="@dimen/spacing_large"
android:layout_marginTop="@dimen/spacing_large"
android:layout_marginEnd="@dimen/spacing_large"
android:layout_marginStart="24dp"
android:layout_marginEnd="@dimen/spacing_medlarge"
android:text="@string/emulation_control_scale"
android:textSize="16sp"
tools:text="@string/overclock_enable" />
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/input_scale_slider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.google.android.material.slider.Slider
android:id="@+id/input_scale_slider"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@id/input_scale_name"
app:layout_constraintEnd_toStartOf="@id/input_scale_value"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/input_scale_value"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_below="@+id/input_scale_name"
android:layout_alignParentEnd="true"
android:layout_marginStart="@dimen/spacing_small"
android:layout_marginTop="@dimen/spacing_medlarge"
android:layout_marginEnd="@dimen/spacing_large"
android:layout_marginBottom="@dimen/spacing_large"
tools:text="99%"
android:textAlignment="textEnd"/>

<SeekBar
android:id="@+id/input_scale_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/input_scale_name"
android:layout_alignParentStart="true"
android:layout_marginTop="@dimen/spacing_medlarge"
android:layout_marginBottom="@dimen/spacing_large"
android:layout_toStartOf="@id/input_scale_value" />
android:layout_marginStart="@dimen/spacing_medlarge"
android:layout_marginEnd="24dp"
android:gravity="end"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/input_scale_slider"
app:layout_constraintTop_toTopOf="parent"
tools:text="100%" />

</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<RelativeLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/input_opacity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/input_scale"
android:layout_alignParentStart="true"
android:clickable="false">
android:layout_height="wrap_content">

<TextView
android:id="@+id/input_opacity_name"
style="@style/TextAppearance.MaterialComponents.Headline5"
android:layout_width="match_parent"
android:layout_width="56dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="@dimen/spacing_large"
android:layout_marginTop="@dimen/spacing_large"
android:layout_marginEnd="@dimen/spacing_large"
android:layout_marginStart="24dp"
android:layout_marginEnd="@dimen/spacing_medlarge"
android:text="@string/emulation_control_opacity"
android:textSize="16sp"
tools:text="@string/overclock_enable" />
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/input_opacity_slider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.google.android.material.slider.Slider
android:id="@+id/input_opacity_slider"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@id/input_opacity_name"
app:layout_constraintEnd_toStartOf="@id/input_opacity_value"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/input_opacity_value"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_below="@+id/input_opacity_name"
android:layout_alignParentEnd="true"
android:layout_marginStart="@dimen/spacing_small"
android:layout_marginTop="@dimen/spacing_medlarge"
android:layout_marginEnd="@dimen/spacing_large"
android:layout_marginBottom="@dimen/spacing_large"
tools:text="99%"
android:textAlignment="textEnd"/>

<SeekBar
android:id="@+id/input_opacity_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/input_opacity_name"
android:layout_alignParentStart="true"
android:layout_marginTop="@dimen/spacing_medlarge"
android:layout_marginBottom="@dimen/spacing_large"
android:layout_toStartOf="@id/input_opacity_value" />
android:layout_marginStart="@dimen/spacing_medlarge"
android:layout_marginEnd="24dp"
android:gravity="end"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/input_opacity_slider"
app:layout_constraintTop_toTopOf="parent"
tools:text="100%" />

</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

</RelativeLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
@@ -1,19 +1,27 @@
<?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="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<EditText
android:id="@+id/input"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:ems="10"
android:inputType="text"
android:importantForAutofill="no" />
android:layout_height="wrap_content"
android:hint="@string/cheats_name"
android:paddingTop="@dimen/spacing_medlarge"
android:layout_marginHorizontal="@dimen/spacing_large"
android:layout_marginVertical="@dimen/spacing_small">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:importantForAutofill="no"
android:inputType="text"/>

</com.google.android.material.textfield.TextInputLayout>

</LinearLayout>
@@ -1,115 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical">
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:orientation="vertical">

<RelativeLayout
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">

<SeekBar
android:id="@+id/seekbar_width"
android:layout_width="match_parent"
<com.google.android.material.slider.Slider
android:id="@+id/slider_width"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/text_ir_yaw"
android:layout_marginBottom="@dimen/spacing_medlarge"
android:layout_marginLeft="@dimen/spacing_large"
android:layout_marginRight="@dimen/spacing_large"/>
app:layout_constraintEnd_toStartOf="@id/text_ir_yaw"
app:layout_constraintStart_toEndOf="@id/text_ir_yaw_units"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/text_ir_yaw"
android:layout_width="wrap_content"
android:layout_width="26dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/spacing_medlarge"
android:layout_marginTop="@dimen/spacing_medlarge"
tools:text="75"/>
android:layout_marginEnd="24dp"
android:layout_marginStart="@dimen/spacing_medlarge"
android:gravity="end"
app:layout_constraintBottom_toBottomOf="@+id/slider_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/slider_width"
app:layout_constraintTop_toTopOf="@+id/slider_width"
tools:text="100" />

<TextView
android:id="@+id/text_ir_yaw_units"
android:layout_width="wrap_content"
android:layout_width="92dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/text_ir_yaw"
android:layout_toEndOf="@+id/text_ir_yaw"
tools:text="%"/>
</RelativeLayout>
android:gravity="start"
android:layout_marginStart="24dp"
android:layout_marginEnd="@dimen/spacing_medlarge"
app:layout_constraintBottom_toBottomOf="@+id/slider_width"
app:layout_constraintEnd_toStartOf="@id/slider_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/slider_width"
tools:text="Total Yaw" />

<RelativeLayout
android:layout_width="wrap_content"
</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">

<SeekBar
android:id="@+id/seekbar_pitch"
android:layout_width="match_parent"
<com.google.android.material.slider.Slider
android:id="@+id/slider_pitch"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/text_ir_pitch"
android:layout_marginBottom="@dimen/spacing_medlarge"
android:layout_marginLeft="@dimen/spacing_large"
android:layout_marginRight="@dimen/spacing_large"/>
app:layout_constraintEnd_toStartOf="@id/text_ir_pitch"
app:layout_constraintStart_toEndOf="@id/text_ir_pitch_units"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/text_ir_pitch"
android:layout_width="wrap_content"
android:layout_width="26dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/spacing_medlarge"
android:layout_marginTop="@dimen/spacing_medlarge"
tools:text="75"/>
android:layout_marginEnd="24dp"
android:layout_marginStart="@dimen/spacing_medlarge"
android:gravity="end"
app:layout_constraintBottom_toBottomOf="@+id/slider_pitch"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/slider_pitch"
app:layout_constraintTop_toTopOf="@+id/slider_pitch"
tools:text="100" />

<TextView
android:id="@+id/text_ir_pitch_units"
android:layout_width="wrap_content"
android:layout_width="92dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/text_ir_pitch"
android:layout_toEndOf="@+id/text_ir_pitch"
tools:text="%"/>
android:gravity="start"
android:layout_marginStart="24dp"
android:layout_marginEnd="@dimen/spacing_medlarge"
app:layout_constraintBottom_toBottomOf="@+id/slider_pitch"
app:layout_constraintEnd_toStartOf="@id/slider_pitch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/slider_pitch"
tools:text="Total Pitch" />

</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<RelativeLayout
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">

<SeekBar
android:id="@+id/seekbar_vertical_offset"
android:layout_width="match_parent"
<com.google.android.material.slider.Slider
android:id="@+id/slider_vertical_offset"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/text_ir_vertical_offset"
android:layout_marginBottom="@dimen/spacing_medlarge"
android:layout_marginLeft="@dimen/spacing_large"
android:layout_marginRight="@dimen/spacing_large"/>
app:layout_constraintEnd_toStartOf="@id/text_ir_vertical_offset"
app:layout_constraintStart_toEndOf="@id/text_ir_vertical_offset_units"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/text_ir_vertical_offset"
android:layout_width="wrap_content"
android:layout_width="26dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/spacing_medlarge"
android:layout_marginTop="@dimen/spacing_medlarge"
tools:text="75"/>
android:layout_marginEnd="24dp"
android:layout_marginStart="@dimen/spacing_medlarge"
android:gravity="end"
app:layout_constraintBottom_toBottomOf="@+id/slider_vertical_offset"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/slider_vertical_offset"
app:layout_constraintTop_toTopOf="@+id/slider_vertical_offset"
tools:text="100" />

<TextView
android:id="@+id/text_ir_vertical_offset_units"
android:layout_width="wrap_content"
android:layout_width="92dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/text_ir_vertical_offset"
android:layout_toEndOf="@+id/text_ir_vertical_offset"
tools:text="%"/>
android:gravity="start"
android:layout_marginStart="24dp"
android:layout_marginEnd="@dimen/spacing_medlarge"
app:layout_constraintBottom_toBottomOf="@+id/slider_vertical_offset"
app:layout_constraintEnd_toStartOf="@id/slider_vertical_offset"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/slider_vertical_offset"
tools:text="Vertical Offset" />

</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

</LinearLayout>
</LinearLayout>
@@ -0,0 +1,18 @@
<?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"
android:id="@+id/dialog_progress"
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/update_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
app:trackCornerRadius="2dp" />

</androidx.appcompat.widget.LinearLayoutCompat>

This file was deleted.

@@ -0,0 +1,41 @@
<?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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<com.google.android.material.slider.Slider
android:id="@+id/slider"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
app:layout_constraintEnd_toStartOf="@id/text_value"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/text_value"
android:layout_width="26dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_medlarge"
android:gravity="end"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/text_units"
app:layout_constraintStart_toEndOf="@id/slider"
app:layout_constraintTop_toTopOf="parent"
tools:text="100" />

<TextView
android:id="@+id/text_units"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/text_value"
app:layout_constraintTop_toTopOf="parent"
tools:text="%" />

</androidx.constraintlayout.widget.ConstraintLayout>
@@ -20,117 +20,100 @@
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
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:hint="@string/cheats_name"
android:paddingTop="@dimen/spacing_medlarge"
android:layout_marginHorizontal="@dimen/spacing_large"
android:importantForAutofill="no"
android:inputType="text"
android:layout_marginVertical="@dimen/spacing_small"
app:errorEnabled="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_name"
app:layout_constraintBottom_toTopOf="@id/label_creator"
tools:text="Hyrule Field Speed Hack" />
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintBottom_toTopOf="@id/edit_creator">

<TextView
android:id="@+id/label_creator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextAppearance.MaterialComponents.Headline5"
android:textSize="18sp"
android:text="@string/cheats_creator"
android:layout_margin="@dimen/spacing_large"
android:labelFor="@id/edit_creator"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/edit_name"
app:layout_constraintBottom_toTopOf="@id/edit_creator" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_name_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:importantForAutofill="no"
android:inputType="text"
tools:text="Hyrule Field Speed Hack"/>

</com.google.android.material.textfield.TextInputLayout>

<EditText
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edit_creator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:hint="@string/cheats_creator"
android:layout_marginHorizontal="@dimen/spacing_large"
android:importantForAutofill="no"
android:inputType="text"
android:layout_marginBottom="24dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_creator"
app:layout_constraintBottom_toTopOf="@id/label_notes" />
app:layout_constraintTop_toBottomOf="@id/edit_name"
app:layout_constraintBottom_toTopOf="@id/edit_notes">

<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_creator"
app:layout_constraintBottom_toTopOf="@id/edit_notes" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_creator_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:importantForAutofill="no"
android:inputType="text"/>

</com.google.android.material.textfield.TextInputLayout>

<EditText
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edit_notes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:hint="@string/cheats_notes"
android:layout_marginHorizontal="@dimen/spacing_large"
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:layout_marginBottom="24dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_notes"
app:layout_constraintBottom_toTopOf="@id/label_code" />
app:layout_constraintTop_toBottomOf="@id/edit_creator"
app:layout_constraintBottom_toTopOf="@id/edit_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" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_notes_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:importantForAutofill="no"
android:inputType="textMultiLine" />

<EditText
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
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"
android:layout_marginVertical="@dimen/spacing_small"
android:hint="@string/cheats_code"
app:errorEnabled="true"
app:layout_constraintBottom_toBottomOf="parent"
tools:text="0x8003d63c:dword:0x60000000\n0x8003d658:dword:0x60000000" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/edit_notes">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_code_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="108sp"
android:gravity="start"
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:typeface="monospace"
tools:text="0x8003d63c:dword:0x60000000\n0x8003d658:dword:0x60000000" />

</com.google.android.material.textfield.TextInputLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

@@ -23,7 +23,6 @@
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/cheats_open_settings"
android:textColor="@color/dolphin_white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/text_warning"
@@ -27,8 +27,6 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="@dimen/spacing_small"
android:background="@color/dolphin_blue"
android:textColor="@color/lb_tv_white"
android:text="@string/emulation_done"
android:visibility="gone"/>

@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:background="@color/dolphin_blue"
android:background="?attr/colorSurface"
tools:layout_width="250dp">

<TextView
@@ -18,8 +18,8 @@
android:ellipsize="end"
android:letterSpacing="0"
android:maxLines="@integer/game_title_lines"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textColor="?attr/colorOnSurface"
tools:text="The Legend of Zelda: The Wind Waker" />

<ScrollView
@@ -114,7 +114,7 @@
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FFFFFF"
android:background="?attr/colorOnSurfaceVariant"
android:layout_marginTop="24dp"
android:layout_marginBottom="16dp"/>

@@ -29,7 +29,6 @@
android:focusable="true"
android:gravity="center"
android:nextFocusRight="@id/root"
android:buttonTint="@color/dolphin_blue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/text_name"
@@ -12,7 +12,7 @@
tools:text="CPU Settings"
android:layout_marginStart="@dimen/spacing_large"
android:layout_marginBottom="@dimen/spacing_small"
android:textColor="@color/dolphin_blue"
android:textColor="?attr/colorPrimary"
android:textStyle="bold"
android:layout_gravity="start|bottom"/>

@@ -43,7 +43,6 @@
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/spacing_large"
android:buttonTint="@color/dolphin_blue"
android:clickable="false"
android:focusable="false"
android:minHeight="0dp"
@@ -16,7 +16,7 @@

<item
android:id="@+id/menu_open_file"
android:icon="@android:drawable/ic_media_play"
android:icon="@drawable/ic_play"
android:title="@string/grid_menu_open_file"
app:showAsAction="ifRoom"/>

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Dolphin.Main.MaterialYou" parent="Theme.Dolphin.Main">
<item name="colorPrimary">@color/m3_sys_color_dynamic_dark_primary</item>
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_dark_on_primary</item>
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_dark_primary_container</item>
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_dark_on_primary_container</item>
<item name="colorSecondary">@color/m3_sys_color_dynamic_dark_secondary</item>
<item name="colorOnSecondary">@color/m3_sys_color_dynamic_dark_on_secondary</item>
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_dark_secondary_container</item>
<item name="colorOnSecondaryContainer">@color/m3_sys_color_dynamic_dark_on_secondary_container</item>
<item name="colorTertiary">@color/m3_sys_color_dynamic_dark_tertiary</item>
<item name="colorOnTertiary">@color/m3_sys_color_dynamic_dark_on_tertiary</item>
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_dark_tertiary_container</item>
<item name="colorOnTertiaryContainer">@color/m3_sys_color_dynamic_dark_on_tertiary_container</item>
<item name="android:colorBackground">@color/m3_sys_color_dynamic_dark_background</item>
<item name="colorOnBackground">@color/m3_sys_color_dynamic_dark_on_background</item>
<item name="colorSurface">@color/m3_sys_color_dynamic_dark_surface</item>
<item name="colorOnSurface">@color/m3_sys_color_dynamic_dark_on_surface</item>
<item name="colorSurfaceVariant">@color/m3_sys_color_dynamic_dark_surface_variant</item>
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_dark_on_surface_variant</item>
<item name="colorOutline">@color/m3_sys_color_dynamic_dark_outline</item>
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_dark_on_surface_variant</item>
<item name="colorSurfaceInverse">@color/m3_sys_color_dynamic_dark_surface_variant</item>
<item name="colorPrimaryInverse">@color/m3_sys_color_dynamic_dark_inverse_primary</item>

<item name="android:colorControlHighlight">@color/m3_sys_color_dynamic_dark_on_surface_variant</item>
<item name="android:colorEdgeEffect">@color/m3_sys_color_dynamic_dark_secondary</item>

<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>
</resources>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="lightStatusBar">false</bool>
</resources>

This file was deleted.

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="dolphin_primary">#9ECAFF</color>
<color name="dolphin_onPrimary">#003258</color>
<color name="dolphin_primaryContainer">#00497D</color>
<color name="dolphin_onPrimaryContainer">#D1E4FF</color>
<color name="dolphin_secondary">#BBC7DB</color>
<color name="dolphin_onSecondary">#253140</color>
<color name="dolphin_secondaryContainer">#3B4858</color>
<color name="dolphin_onSecondaryContainer">#D7E3F7</color>
<color name="dolphin_tertiary">#D6BEE4</color>
<color name="dolphin_onTertiary">#3B2948</color>
<color name="dolphin_tertiaryContainer">#523F5F</color>
<color name="dolphin_onTertiaryContainer">#F2DAFF</color>
<color name="dolphin_error">#FFB4AB</color>
<color name="dolphin_errorContainer">#93000A</color>
<color name="dolphin_onError">#690005</color>
<color name="dolphin_onErrorContainer">#FFDAD6</color>
<color name="dolphin_background">#1A1C1E</color>
<color name="dolphin_onBackground">#E2E2E6</color>
<color name="dolphin_surface">#1A1C1E</color>
<color name="dolphin_onSurface">#E2E2E6</color>
<color name="dolphin_surfaceVariant">#43474E</color>
<color name="dolphin_onSurfaceVariant">#C3C7CF</color>
<color name="dolphin_outline">#8D9199</color>
<color name="dolphin_inverseOnSurface">#1A1C1E</color>
<color name="dolphin_inverseSurface">#E2E2E6</color>
<color name="dolphin_inversePrimary">#0061A4</color>
<color name="dolphin_shadow">#000000</color>
</resources>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="green_primary">#70DBA8</color>
<color name="green_onPrimary">#003824</color>
<color name="green_primaryContainer">#005236</color>
<color name="green_onPrimaryContainer">#8CF7C3</color>
<color name="green_secondary">#B4CCBC</color>
<color name="green_onSecondary">#20352A</color>
<color name="green_secondaryContainer">#364B3F</color>
<color name="green_onSecondaryContainer">#D0E8D8</color>
<color name="green_tertiary">#A4CDDE</color>
<color name="green_onTertiary">#063543</color>
<color name="green_tertiaryContainer">#234C5A</color>
<color name="green_onTertiaryContainer">#C0E9FA</color>
<color name="green_errorContainer">#93000A</color>
<color name="green_onError">#690005</color>
<color name="green_onErrorContainer">#FFDAD6</color>
<color name="green_background">#191C1A</color>
<color name="green_onBackground">#E1E3DF</color>
<color name="green_surface">#191C1A</color>
<color name="green_onSurface">#E1E3DF</color>
<color name="green_surfaceVariant">#404943</color>
<color name="green_onSurfaceVariant">#C0C9C1</color>
<color name="green_outline">#8A938C</color>
<color name="green_inverseOnSurface">#191C1A</color>
<color name="green_inverseSurface">#E1E3DF</color>
<color name="green_inversePrimary">#006C49</color>
</resources>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="pink_primary">#FFB1C4</color>
<color name="pink_onPrimary">#65002E</color>
<color name="pink_primaryContainer">#8F0044</color>
<color name="pink_onPrimaryContainer">#FFD9E1</color>
<color name="pink_secondary">#E3BDC5</color>
<color name="pink_onSecondary">#422930</color>
<color name="pink_secondaryContainer">#5B3F46</color>
<color name="pink_onSecondaryContainer">#FFD9E1</color>
<color name="pink_tertiary">#EDBD92</color>
<color name="pink_onTertiary">#472A0A</color>
<color name="pink_tertiaryContainer">#61401E</color>
<color name="pink_onTertiaryContainer">#FFDCBF</color>
<color name="pink_errorContainer">#93000A</color>
<color name="pink_onError">#690005</color>
<color name="pink_onErrorContainer">#FFDAD6</color>
<color name="pink_background">#201A1B</color>
<color name="pink_onBackground">#ECE0E1</color>
<color name="pink_surface">#201A1B</color>
<color name="pink_onSurface">#ECE0E1</color>
<color name="pink_surfaceVariant">#514346</color>
<color name="pink_onSurfaceVariant">#D6C2C5</color>
<color name="pink_outline">#9E8C8F</color>
<color name="pink_inverseOnSurface">#201A1B</color>
<color name="pink_inverseSurface">#ECE0E1</color>
<color name="pink_inversePrimary">#B5195B</color>
</resources>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Dolphin.Main.MaterialYou" parent="Theme.Dolphin.Main">
<item name="colorPrimary">@color/m3_sys_color_dynamic_light_primary</item>
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_light_on_primary</item>
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_light_primary_container</item>
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_light_on_primary_container</item>
<item name="colorSecondary">@color/m3_sys_color_dynamic_light_secondary</item>
<item name="colorOnSecondary">@color/m3_sys_color_dynamic_light_on_secondary</item>
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_light_secondary_container</item>
<item name="colorOnSecondaryContainer">@color/m3_sys_color_dynamic_light_on_secondary_container</item>
<item name="colorTertiary">@color/m3_sys_color_dynamic_light_tertiary</item>
<item name="colorOnTertiary">@color/m3_sys_color_dynamic_light_on_tertiary</item>
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_light_tertiary_container</item>
<item name="colorOnTertiaryContainer">@color/m3_sys_color_dynamic_light_on_tertiary_container</item>
<item name="android:colorBackground">@color/m3_sys_color_dynamic_light_background</item>
<item name="colorOnBackground">@color/m3_sys_color_dynamic_light_on_background</item>
<item name="colorSurface">@color/m3_sys_color_dynamic_light_surface</item>
<item name="colorOnSurface">@color/m3_sys_color_dynamic_light_on_surface</item>
<item name="colorSurfaceVariant">@color/m3_sys_color_dynamic_light_surface_variant</item>
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_light_on_surface_variant</item>
<item name="colorOutline">@color/m3_sys_color_dynamic_light_outline</item>
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_light_on_surface_variant</item>
<item name="colorSurfaceInverse">@color/m3_sys_color_dynamic_light_surface_variant</item>
<item name="colorPrimaryInverse">@color/m3_sys_color_dynamic_light_inverse_primary</item>

<item name="android:colorControlHighlight">@color/m3_sys_color_dynamic_light_on_surface_variant</item>
<item name="android:colorEdgeEffect">@color/m3_sys_color_dynamic_light_secondary</item>

<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>
</resources>
@@ -479,6 +479,34 @@
<item>-1</item>
</integer-array>

<!-- Monet must always have a value exclusive to >= API 31 -->
<string-array name="themeEntries">
<item>Default</item>
<item>Material Default</item>
<item>Green</item>
<item>Pink</item>
</string-array>
<integer-array name="themeValues">
<item>0</item>
<item>2</item>
<item>3</item>
<item>4</item>
</integer-array>
<string-array name="themeEntriesA12">
<item>Default</item>
<item>Material You</item>
<item>Material Default</item>
<item>Green</item>
<item>Pink</item>
</string-array>
<integer-array name="themeValuesA12">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</integer-array>

<string-array name="synchronizeGpuThreadEntries">
<item>Never</item>
<item>On Idle Skipping</item>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="lightStatusBar">true</bool>
</resources>

This file was deleted.

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="dolphin_primary">#2196f3</color>
<color name="dolphin_onPrimary">#FFFFFF</color>
<color name="dolphin_primaryContainer">#D1E4FF</color>
<color name="dolphin_onPrimaryContainer">#001D36</color>
<color name="dolphin_secondary">#535F70</color>
<color name="dolphin_onSecondary">#FFFFFF</color>
<color name="dolphin_secondaryContainer">#D7E3F7</color>
<color name="dolphin_onSecondaryContainer">#101C2B</color>
<color name="dolphin_tertiary">#6B5778</color>
<color name="dolphin_onTertiary">#FFFFFF</color>
<color name="dolphin_tertiaryContainer">#F2DAFF</color>
<color name="dolphin_onTertiaryContainer">#251431</color>
<color name="dolphin_error">#BA1A1A</color>
<color name="dolphin_errorContainer">#FFDAD6</color>
<color name="dolphin_onError">#FFFFFF</color>
<color name="dolphin_onErrorContainer">#410002</color>
<color name="dolphin_background">#FDFCFF</color>
<color name="dolphin_onBackground">#1A1C1E</color>
<color name="dolphin_surface">#FDFCFF</color>
<color name="dolphin_onSurface">#1A1C1E</color>
<color name="dolphin_surfaceVariant">#DFE2EB</color>
<color name="dolphin_onSurfaceVariant">#43474E</color>
<color name="dolphin_outline">#73777F</color>
<color name="dolphin_inverseOnSurface">#F1F0F4</color>
<color name="dolphin_inverseSurface">#2F3033</color>
<color name="dolphin_inversePrimary">#9ECAFF</color>
<color name="dolphin_shadow">#000000</color>

<color name="dolphin_blue">#2196f3</color>

<color name="dolphin_filepicker">#2196f3</color>

<color name="dolphin_accent_wii">#9e9e9e</color>
<color name="dolphin_accent_wiiware">#2979ff</color>

<color name="tv_card_unselected">#444444</color>

<color name="invalid_setting_overlay">#36ff0000</color>
</resources>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="green_primary">#006C49</color>
<color name="green_onPrimary">#FFFFFF</color>
<color name="green_primaryContainer">#8CF7C3</color>
<color name="green_onPrimaryContainer">#002113</color>
<color name="green_secondary">#4D6356</color>
<color name="green_onSecondary">#FFFFFF</color>
<color name="green_secondaryContainer">#D0E8D8</color>
<color name="green_onSecondaryContainer">#0A1F15</color>
<color name="green_tertiary">#3D6472</color>
<color name="green_onTertiary">#FFFFFF</color>
<color name="green_tertiaryContainer">#C0E9FA</color>
<color name="green_onTertiaryContainer">#001F28</color>
<color name="green_errorContainer">#FFDAD6</color>
<color name="green_onError">#FFFFFF</color>
<color name="green_onErrorContainer">#410002</color>
<color name="green_background">#FBFDF8</color>
<color name="green_onBackground">#191C1A</color>
<color name="green_surface">#FBFDF8</color>
<color name="green_onSurface">#191C1A</color>
<color name="green_surfaceVariant">#DCE5DD</color>
<color name="green_onSurfaceVariant">#404943</color>
<color name="green_outline">#707973</color>
<color name="green_inverseOnSurface">#EFF1ED</color>
<color name="green_inverseSurface">#2E312F</color>
<color name="green_inversePrimary">#70DBA8</color>
</resources>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="pink_primary">#B5195B</color>
<color name="pink_onPrimary">#FFFFFF</color>
<color name="pink_primaryContainer">#FFD9E1</color>
<color name="pink_onPrimaryContainer">#3F001A</color>
<color name="pink_secondary">#75565D</color>
<color name="pink_onSecondary">#FFFFFF</color>
<color name="pink_secondaryContainer">#FFD9E1</color>
<color name="pink_onSecondaryContainer">#2B151B</color>
<color name="pink_tertiary">#7B5733</color>
<color name="pink_onTertiary">#FFFFFF</color>
<color name="pink_tertiaryContainer">#FFDCBF</color>
<color name="pink_onTertiaryContainer">#2D1600</color>
<color name="pink_errorContainer">#FFDAD6</color>
<color name="pink_onError">#FFFFFF</color>
<color name="pink_onErrorContainer">#410002</color>
<color name="pink_background">#FFFBFF</color>
<color name="pink_onBackground">#201A1B</color>
<color name="pink_surface">#FFFBFF</color>
<color name="pink_onSurface">#201A1B</color>
<color name="pink_surfaceVariant">#F3DDE1</color>
<color name="pink_onSurfaceVariant">#514346</color>
<color name="pink_outline">#847376</color>
<color name="pink_inverseOnSurface">#FAEEEF</color>
<color name="pink_inverseSurface">#352F30</color>
<color name="pink_inversePrimary">#FFB1C4</color>
</resources>
@@ -195,6 +195,7 @@
<string name="download_game_covers">Download Game Covers from GameTDB.com</string>
<string name="show_titles_in_game_list">Show Titles in Game List</string>
<string name="show_titles_in_game_list_description">Show the title and creator below each game cover.</string>
<string name="change_theme">Change App Theme</string>

<!-- Online Update Region Select Fragment -->
<string name="region_select_title">Please select a region</string>
@@ -563,8 +564,8 @@ It can efficiently compress both junk data and encrypted Wii data.
<string name="emulation_done">Done</string>
<string name="emulation_toggle_controls">Toggle Controls</string>
<string name="emulation_toggle_all">Toggle All</string>
<string name="emulation_control_scale">Adjust Scale</string>
<string name="emulation_control_opacity">Adjust Opacity</string>
<string name="emulation_control_scale">Scale</string>
<string name="emulation_control_opacity">Opacity</string>
<string name="emulation_control_adjustments">Adjust Controls</string>
<string name="emulation_control_joystick_rel_center">Relative Stick Center</string>
<string name="emulation_control_rumble">Rumble</string>
@@ -1,36 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DolphinDialogBase" parent="Theme.Material3.DayNight.Dialog.Alert">
<item name="colorSurface">@color/dolphin_blue</item>
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
</style>

<!-- Hax to make Tablayout render icons -->
<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
</style>

<!-- Custom button styles -->
<style name="InGameMenuOption" parent="Widget.Material3.Button.TextButton">
<item name="android:textColor">?attr/colorOnSurface</item>
<item name="android:textSize">16sp</item>
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">false</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">48dp</item>
<item name="android:gravity">center_vertical|left</item>
<item name="android:paddingLeft">32dp</item>
<item name="android:paddingRight">32dp</item>
<item name="android:layout_margin">0dp</item>
<item name="rippleColor">@color/dolphin_blue_secondary</item>
</style>

<style name="OverlayInGameMenuOption" parent="InGameMenuOption">
<item name="android:textColor">@color/button_text_color</item>
<item name="android:padding">8dp</item>
<item name="android:gravity">center</item>
<item name="android:layout_gravity">center</item>
</style>

<style name="DolphinMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="colorPrimary">@color/dolphin_surface</item>
<item name="colorSurface">@color/dolphin_surface</item>
<item name="colorSecondary">@color/dolphin_primary</item>
<item name="buttonBarPositiveButtonStyle">@style/DolphinButton</item>
<item name="buttonBarNegativeButtonStyle">@style/DolphinButton</item>
<item name="buttonBarNeutralButtonStyle">@style/DolphinButton</item>
</style>

<style name="DolphinTVDialog" parent="Theme.Material3.DayNight.Dialog.Alert">
<item name="colorSurface">@color/dolphin_inverseOnSurface</item>
<item name="colorPrimary">@color/dolphin_primary</item>
</style>

<style name="DolphinButton" parent="Widget.Material3.Button.TextButton.Dialog">
<item name="android:textColor">@color/dolphin_primary</item>
<item name="rippleColor">@color/dolphin_secondary</item>
</style>

<style name="DolphinPopup" parent="ThemeOverlay.Material3">
<item name="colorPrimary">@color/dolphin_surface</item>
</style>

<style name="DolphinSlider" parent="Widget.Material3.Slider">
<item name="tickVisible">false</item>
<item name="labelBehavior">gone</item>
</style>
</resources>
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.Dolphin.Splash.Main" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/dolphin_surface</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_dolphin</item>
@@ -14,55 +14,138 @@

<!-- Base theme -->
<style name="Theme.Dolphin.Main" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorSurface">@color/dolphin_blue</item>
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>

<item name="android:colorControlHighlight">?attr/colorAccent</item>

<item name="android:colorEdgeEffect">@color/dolphin_blue_secondary</item>
<item name="colorPrimary">@color/dolphin_primary</item>
<item name="colorOnPrimary">@color/dolphin_onPrimary</item>
<item name="colorPrimaryContainer">@color/dolphin_primary</item>
<item name="colorOnPrimaryContainer">@color/dolphin_onPrimary</item>
<item name="colorSecondary">@color/dolphin_secondary</item>
<item name="colorOnSecondary">@color/dolphin_onSecondary</item>
<item name="colorSecondaryContainer">@color/dolphin_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/dolphin_onSecondaryContainer</item>
<item name="colorTertiary">@color/dolphin_tertiary</item>
<item name="colorOnTertiary">@color/dolphin_onTertiary</item>
<item name="colorTertiaryContainer">@color/dolphin_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/dolphin_onTertiaryContainer</item>
<item name="colorError">@color/dolphin_error</item>
<item name="colorErrorContainer">@color/dolphin_errorContainer</item>
<item name="colorOnError">@color/dolphin_onError</item>
<item name="colorOnErrorContainer">@color/dolphin_onErrorContainer</item>
<item name="android:colorBackground">@color/dolphin_background</item>
<item name="colorOnBackground">@color/dolphin_onBackground</item>
<item name="colorSurface">@color/dolphin_surface</item>
<item name="colorOnSurface">@color/dolphin_onSurface</item>
<item name="colorSurfaceVariant">@color/dolphin_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/dolphin_onSurfaceVariant</item>
<item name="colorOutline">@color/dolphin_outline</item>
<item name="colorOnSurfaceInverse">@color/dolphin_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/dolphin_inverseSurface</item>
<item name="colorPrimaryInverse">@color/dolphin_inversePrimary</item>
<item name="android:shadowColor">@color/dolphin_shadow</item>

<item name="android:colorControlHighlight">@color/dolphin_secondary</item>
<item name="android:colorEdgeEffect">@color/dolphin_onSurfaceVariant</item>

<!-- Enable window content transitions -->
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>

<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
<item name="homeAsUpIndicator">@drawable/ic_back</item>

<item name="android:windowLightStatusBar" tools:targetApi="m">@bool/lightStatusBar</item>

<item name="materialAlertDialogTheme">@style/DolphinMaterialDialog</item>
<item name="popupTheme">@style/DolphinPopup</item>
<item name="sliderStyle">@style/DolphinSlider</item>
</style>

<style name="Theme.Dolphin.Settings" parent="Theme.Material3.DayNight">
<item name="colorSurface">@color/dolphin_blue</item>
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
<style name="Theme.Dolphin.Main.Material" parent="Theme.Dolphin.Main">
<item name="colorPrimaryContainer">@color/dolphin_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/dolphin_onPrimaryContainer</item>

<item name="titleTextColor">@android:color/white</item>
<item name="homeAsUpIndicator">@drawable/ic_back</item>
<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>

<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
<style name="Theme.Dolphin.Main.Green" parent="Theme.Dolphin.Main">
<item name="colorPrimary">@color/green_primary</item>
<item name="colorOnPrimary">@color/green_onPrimary</item>
<item name="colorPrimaryContainer">@color/green_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/green_onPrimaryContainer</item>
<item name="colorSecondary">@color/green_secondary</item>
<item name="colorOnSecondary">@color/green_onSecondary</item>
<item name="colorSecondaryContainer">@color/green_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/green_onSecondaryContainer</item>
<item name="colorTertiary">@color/green_tertiary</item>
<item name="colorOnTertiary">@color/green_onTertiary</item>
<item name="colorTertiaryContainer">@color/green_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/green_onTertiaryContainer</item>
<item name="colorErrorContainer">@color/green_errorContainer</item>
<item name="colorOnError">@color/green_onError</item>
<item name="colorOnErrorContainer">@color/green_onErrorContainer</item>
<item name="android:colorBackground">@color/green_background</item>
<item name="colorOnBackground">@color/green_onBackground</item>
<item name="colorSurface">@color/green_surface</item>
<item name="colorOnSurface">@color/green_onSurface</item>
<item name="colorSurfaceVariant">@color/green_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/green_onSurfaceVariant</item>
<item name="colorOutline">@color/green_outline</item>
<item name="colorOnSurfaceInverse">@color/green_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/green_inverseSurface</item>
<item name="colorPrimaryInverse">@color/green_inversePrimary</item>

<item name="android:colorControlHighlight">@color/green_onSurfaceVariant</item>
<item name="android:colorEdgeEffect">@color/green_secondary</item>

<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>

<style name="Theme.Dolphin.Main.Emulation" parent="Theme.Dolphin.Main">
<item name="android:windowBackground">@android:color/black</item>
<style name="Theme.Dolphin.Main.Pink" parent="Theme.Dolphin.Main">
<item name="colorPrimary">@color/pink_primary</item>
<item name="colorOnPrimary">@color/pink_onPrimary</item>
<item name="colorPrimaryContainer">@color/pink_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/pink_onPrimaryContainer</item>
<item name="colorSecondary">@color/pink_secondary</item>
<item name="colorOnSecondary">@color/pink_onSecondary</item>
<item name="colorSecondaryContainer">@color/pink_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/pink_onSecondaryContainer</item>
<item name="colorTertiary">@color/pink_tertiary</item>
<item name="colorOnTertiary">@color/pink_onTertiary</item>
<item name="colorTertiaryContainer">@color/pink_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/pink_onTertiaryContainer</item>
<item name="colorErrorContainer">@color/pink_errorContainer</item>
<item name="colorOnError">@color/pink_onError</item>
<item name="colorOnErrorContainer">@color/pink_onErrorContainer</item>
<item name="android:colorBackground">@color/pink_background</item>
<item name="colorOnBackground">@color/pink_onBackground</item>
<item name="colorSurface">@color/pink_surface</item>
<item name="colorOnSurface">@color/pink_onSurface</item>
<item name="colorSurfaceVariant">@color/pink_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/pink_onSurfaceVariant</item>
<item name="colorOutline">@color/pink_outline</item>
<item name="colorOnSurfaceInverse">@color/pink_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/pink_inverseSurface</item>
<item name="colorPrimaryInverse">@color/pink_inversePrimary</item>

<item name="android:colorControlHighlight">@color/pink_onSurfaceVariant</item>
<item name="android:colorEdgeEffect">@color/pink_secondary</item>

<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>

<!-- Inherit from a base file picker theme that handles day/night -->
<style name="Theme.Dolphin.FilePicker" parent="FilePickerBaseTheme">
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
<item name="colorPrimary">@color/dolphin_filepicker</item>
<item name="colorPrimaryDark">@color/dolphin_filepicker</item>
<item name="colorAccent">@color/dolphin_filepicker</item>

<!-- Setting a divider is entirely optional -->
<item name="nnf_list_item_divider">?android:attr/listDivider</item>

<!-- If you want to set a specific toolbar theme, do it here -->
<item name="nnf_toolbarTheme">@style/ThemeOverlay.Material3.Dark.ActionBar</item>

<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
</style>

<style name="Theme.Dolphin.TV" parent="Theme.Leanback.Browse">
@@ -74,7 +157,7 @@
<!-- Use CustomTitleView as the leanback title view. -->
<item name="browseTitleViewLayout">@layout/titleview</item>

<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
<!-- Global AlertDialog Theme -->
<item name="alertDialogTheme">@style/DolphinTVDialog</item>
</style>
</resources>
@@ -39,10 +39,10 @@ bool IsSettingSaveable(const Config::Location& config_location)
// TODO: Kill the current Android controller mappings system
if (config_location.section == "Android")
{
static constexpr std::array<const char*, 11> android_setting_saveable = {
static constexpr std::array<const char*, 12> android_setting_saveable = {
"ControlScale", "ControlOpacity", "EmulationOrientation", "JoystickRelCenter",
"LastPlatformTab", "MotionControls", "PhoneRumble", "ShowInputOverlay",
"IRMode", "IRAlwaysRecenter", "ShowGameTitles"};
"IRMode", "IRAlwaysRecenter", "ShowGameTitles", "InterfaceTheme"};

return std::any_of(
android_setting_saveable.cbegin(), android_setting_saveable.cend(),