summaryrefslogtreecommitdiff
path: root/ui/preferences/src/main/res
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2024-03-23 09:40:40 +0100
committerGitHub <noreply@github.com>2024-03-23 09:40:40 +0100
commitf20ce1fc690788273bb779663a4f3211f47a0973 (patch)
treea1192a00bc1b5153d143fa579b8c6f977111c847 /ui/preferences/src/main/res
parent376c83d200859ef562d6e3de02602ef18de3e7de (diff)
downloadAntennaPod-f20ce1fc690788273bb779663a4f3211f47a0973.zip
Move first batch of preferences code to :ui:preferences (#7010)
Diffstat (limited to 'ui/preferences/src/main/res')
-rw-r--r--ui/preferences/src/main/res/drawable-nodpi/theme_preview_dark.pngbin0 -> 18079 bytes
-rw-r--r--ui/preferences/src/main/res/drawable-nodpi/theme_preview_light.pngbin0 -> 17760 bytes
-rw-r--r--ui/preferences/src/main/res/drawable-nodpi/theme_preview_system.pngbin0 -> 34076 bytes
-rw-r--r--ui/preferences/src/main/res/layout/about_teaser.xml9
-rw-r--r--ui/preferences/src/main/res/layout/alertdialog_sync_provider_chooser.xml24
-rw-r--r--ui/preferences/src/main/res/layout/authentication_dialog.xml61
-rw-r--r--ui/preferences/src/main/res/layout/choose_data_folder_dialog.xml12
-rw-r--r--ui/preferences/src/main/res/layout/choose_data_folder_dialog_entry.xml46
-rw-r--r--ui/preferences/src/main/res/layout/dialog_switch_preference.xml15
-rw-r--r--ui/preferences/src/main/res/layout/gpodnetauth_credentials.xml83
-rw-r--r--ui/preferences/src/main/res/layout/gpodnetauth_device.xml67
-rw-r--r--ui/preferences/src/main/res/layout/gpodnetauth_device_row.xml13
-rw-r--r--ui/preferences/src/main/res/layout/gpodnetauth_dialog.xml31
-rw-r--r--ui/preferences/src/main/res/layout/gpodnetauth_finish.xml29
-rw-r--r--ui/preferences/src/main/res/layout/gpodnetauth_host.xml38
-rw-r--r--ui/preferences/src/main/res/layout/nextcloud_auth_dialog.xml75
-rw-r--r--ui/preferences/src/main/res/layout/proxy_settings.xml90
-rw-r--r--ui/preferences/src/main/res/layout/simple_icon_list_item.xml41
-rw-r--r--ui/preferences/src/main/res/layout/theme_preference.xml123
-rw-r--r--ui/preferences/src/main/res/menu/bug_report_options.xml7
-rw-r--r--ui/preferences/src/main/res/xml/preferences.xml71
-rw-r--r--ui/preferences/src/main/res/xml/preferences_about.xml28
-rw-r--r--ui/preferences/src/main/res/xml/preferences_autodownload.xml34
-rw-r--r--ui/preferences/src/main/res/xml/preferences_downloads.xml69
-rw-r--r--ui/preferences/src/main/res/xml/preferences_import_export.xml45
-rw-r--r--ui/preferences/src/main/res/xml/preferences_notifications.xml19
-rw-r--r--ui/preferences/src/main/res/xml/preferences_playback.xml108
-rw-r--r--ui/preferences/src/main/res/xml/preferences_swipe.xml28
-rw-r--r--ui/preferences/src/main/res/xml/preferences_synchronization.xml31
-rw-r--r--ui/preferences/src/main/res/xml/preferences_user_interface.xml95
30 files changed, 1292 insertions, 0 deletions
diff --git a/ui/preferences/src/main/res/drawable-nodpi/theme_preview_dark.png b/ui/preferences/src/main/res/drawable-nodpi/theme_preview_dark.png
new file mode 100644
index 000000000..b4e1e0376
--- /dev/null
+++ b/ui/preferences/src/main/res/drawable-nodpi/theme_preview_dark.png
Binary files differ
diff --git a/ui/preferences/src/main/res/drawable-nodpi/theme_preview_light.png b/ui/preferences/src/main/res/drawable-nodpi/theme_preview_light.png
new file mode 100644
index 000000000..39ef47b4f
--- /dev/null
+++ b/ui/preferences/src/main/res/drawable-nodpi/theme_preview_light.png
Binary files differ
diff --git a/ui/preferences/src/main/res/drawable-nodpi/theme_preview_system.png b/ui/preferences/src/main/res/drawable-nodpi/theme_preview_system.png
new file mode 100644
index 000000000..cc6403a98
--- /dev/null
+++ b/ui/preferences/src/main/res/drawable-nodpi/theme_preview_system.png
Binary files differ
diff --git a/ui/preferences/src/main/res/layout/about_teaser.xml b/ui/preferences/src/main/res/layout/about_teaser.xml
new file mode 100644
index 000000000..4e7f0454f
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/about_teaser.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ImageView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:adjustViewBounds="true"
+ android:layout_height="wrap_content"
+ app:srcCompat="@drawable/teaser"
+ android:importantForAccessibility="no"/> \ No newline at end of file
diff --git a/ui/preferences/src/main/res/layout/alertdialog_sync_provider_chooser.xml b/ui/preferences/src/main/res/layout/alertdialog_sync_provider_chooser.xml
new file mode 100644
index 000000000..9b4d62804
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/alertdialog_sync_provider_chooser.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:padding="16dp">
+
+ <ImageView
+ android:id="@+id/icon"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ android:layout_marginRight="16dip"
+ android:layout_marginEnd="16dip"
+ android:layout_gravity="center_vertical" />
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text=""
+ android:layout_gravity="center" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/authentication_dialog.xml b/ui/preferences/src/main/res/layout/authentication_dialog.xml
new file mode 100644
index 000000000..0d54420d4
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/authentication_dialog.xml
@@ -0,0 +1,61 @@
+<?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"
+ android:padding="16dp">
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/usernameEditText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/username_label"
+ android:lines="1" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/passwordEditText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/password_label"
+ android:inputType="textPassword"
+ android:lines="1" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <ImageView
+ android:id="@+id/showPasswordButton"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:src="@drawable/ic_eye"
+ android:layout_gravity="center_vertical"
+ android:padding="8dp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:background="?attr/selectableItemBackgroundBorderless"
+ android:alpha="0.6"
+ android:textSize="20sp"
+ android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp" />
+
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/choose_data_folder_dialog.xml b/ui/preferences/src/main/res/layout/choose_data_folder_dialog.xml
new file mode 100644
index 000000000..bac14a108
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/choose_data_folder_dialog.xml
@@ -0,0 +1,12 @@
+<?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">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/recyclerView" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/choose_data_folder_dialog_entry.xml b/ui/preferences/src/main/res/layout/choose_data_folder_dialog_entry.xml
new file mode 100644
index 000000000..addc63f4d
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/choose_data_folder_dialog_entry.xml
@@ -0,0 +1,46 @@
+<?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:id="@+id/root"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:background="?attr/selectableItemBackground">
+
+ <RadioButton
+ android:id="@+id/radio_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
+ android:layout_centerVertical="true"
+ android:padding="4dp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_toEndOf="@+id/radio_button"
+ android:layout_toRightOf="@+id/radio_button"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/path"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:text="/storage/sdcard0" />
+
+ <TextView
+ android:id="@+id/size"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:text="2 GB" />
+
+ <ProgressBar
+ android:id="@+id/used_space"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </LinearLayout>
+
+</RelativeLayout>
diff --git a/ui/preferences/src/main/res/layout/dialog_switch_preference.xml b/ui/preferences/src/main/res/layout/dialog_switch_preference.xml
new file mode 100644
index 000000000..45fe21a90
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/dialog_switch_preference.xml
@@ -0,0 +1,15 @@
+<?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="match_parent"
+ android:padding="24dp">
+
+ <com.google.android.material.materialswitch.MaterialSwitch
+ android:id="@+id/dialogSwitch"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ tools:text="Switch" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/gpodnetauth_credentials.xml b/ui/preferences/src/main/res/layout/gpodnetauth_credentials.xml
new file mode 100644
index 000000000..a5b8c594d
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/gpodnetauth_credentials.xml
@@ -0,0 +1,83 @@
+<?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">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:text="@string/synchronization_credentials_explanation" />
+
+ <TextView
+ android:id="@+id/createAccountWarning"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/gpodnetauth_encryption_warning"
+ android:textColor="?attr/icon_red"
+ android:textStyle="bold"
+ android:visibility="invisible" />
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/etxtUsername"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/username_label"
+ android:inputType="textNoSuggestions"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/etxtPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/password_label"
+ android:inputType="textPassword"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen"
+ android:imeActionLabel="@string/synchronization_login_butLabel" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <ProgressBar
+ android:id="@+id/progBarLogin"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:layout_gravity="right" />
+
+ <TextView
+ android:id="@+id/credentialsError"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="?attr/icon_red"
+ android:textSize="@dimen/text_size_small"
+ android:maxLines="2"
+ android:ellipsize="end"
+ android:gravity="center"
+ android:visibility="gone"
+ tools:text=" message" />
+
+ <Button
+ android:id="@+id/butLogin"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/synchronization_login_butLabel" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/gpodnetauth_device.xml b/ui/preferences/src/main/res/layout/gpodnetauth_device.xml
new file mode 100644
index 000000000..6e051ecf3
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/gpodnetauth_device.xml
@@ -0,0 +1,67 @@
+<?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">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:text="@string/synchronization_selectDevice_explanation" />
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/deviceName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/gpodnetauth_device_name"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <Button
+ android:id="@+id/createDeviceButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right|end"
+ android:text="@string/gpodnetauth_create_device" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:text="@string/gpodnetauth_existing_devices"
+ style="@style/AntennaPod.TextView.Heading" />
+
+ <TextView
+ android:id="@+id/deviceSelectError"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="?attr/icon_red"
+ android:textSize="@dimen/text_size_small"
+ android:visibility="gone"
+ tools:text="Error message"
+ tools:background="@android:color/holo_green_dark" />
+
+ <LinearLayout
+ android:id="@+id/devicesContainer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" />
+
+ <ProgressBar
+ android:id="@+id/progbarCreateDevice"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?attr/icon_red"
+ android:visibility="gone" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/gpodnetauth_device_row.xml b/ui/preferences/src/main/res/layout/gpodnetauth_device_row.xml
new file mode 100644
index 000000000..d39c00571
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/gpodnetauth_device_row.xml
@@ -0,0 +1,13 @@
+<?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="wrap_content"
+ android:paddingTop="8dp">
+
+ <Button
+ android:id="@+id/selectDeviceButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="?attr/materialButtonOutlinedStyle" />
+</FrameLayout> \ No newline at end of file
diff --git a/ui/preferences/src/main/res/layout/gpodnetauth_dialog.xml b/ui/preferences/src/main/res/layout/gpodnetauth_dialog.xml
new file mode 100644
index 000000000..b5814a4e5
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/gpodnetauth_dialog.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:clipToPadding="false">
+
+ <ViewFlipper
+ android:id="@+id/viewflipper"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:measureAllChildren="false"
+ android:inAnimation="@anim/slide_right_in"
+ android:outAnimation="@anim/slide_left_out">
+
+ <include
+ layout="@layout/gpodnetauth_host" />
+
+ <include
+ layout="@layout/gpodnetauth_credentials" />
+
+ <include
+ layout="@layout/gpodnetauth_device" />
+
+ <include
+ layout="@layout/gpodnetauth_finish" />
+
+ </ViewFlipper>
+
+</ScrollView>
diff --git a/ui/preferences/src/main/res/layout/gpodnetauth_finish.xml b/ui/preferences/src/main/res/layout/gpodnetauth_finish.xml
new file mode 100644
index 000000000..8eced7304
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/gpodnetauth_finish.xml
@@ -0,0 +1,29 @@
+<?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"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@id/icon"
+ android:layout_width="64dp"
+ android:layout_height="64dp"
+ app:srcCompat="@drawable/gpodder_icon" />
+
+ <TextView
+ android:id="@+id/txtvDescription"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/gpodnetauth_finish_descr"
+ android:textColor="?android:attr/textColorPrimary" />
+
+ <Button
+ android:id="@+id/butSyncNow"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="@string/gpodnetauth_finish_butsyncnow"/>
+
+</LinearLayout> \ No newline at end of file
diff --git a/ui/preferences/src/main/res/layout/gpodnetauth_host.xml b/ui/preferences/src/main/res/layout/gpodnetauth_host.xml
new file mode 100644
index 000000000..7f2d16f11
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/gpodnetauth_host.xml
@@ -0,0 +1,38 @@
+<?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="wrap_content"
+ android:orientation="vertical"
+ android:clipToPadding="false">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:text="@string/synchronization_host_explanation" />
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/serverUrlText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/synchronization_host_label"
+ android:inputType="textNoSuggestions"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <Button
+ android:id="@+id/chooseHostButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/proceed_to_login_butLabel" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/nextcloud_auth_dialog.xml b/ui/preferences/src/main/res/layout/nextcloud_auth_dialog.xml
new file mode 100644
index 000000000..0f25a271f
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/nextcloud_auth_dialog.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:orientation="vertical"
+ android:clipToPadding="false">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:text="@string/synchronization_host_explanation" />
+
+ <com.google.android.material.textfield.TextInputLayout
+ android:id="@+id/serverUrlTextInput"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:id="@+id/serverUrlText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/synchronization_host_label"
+ android:inputType="textNoSuggestions"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+ <LinearLayout
+ android:id="@+id/loginProgressContainer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:orientation="horizontal"
+ android:layout_gravity="center_vertical">
+
+ <ProgressBar
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="8dp"
+ android:layout_marginRight="8dp" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/synchronization_nextcloud_authenticate_browser" />
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/errorText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:textColor="?attr/icon_red"
+ android:layout_marginBottom="16dp" />
+
+ <Button
+ android:id="@+id/chooseHostButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/proceed_to_login_butLabel" />
+
+ </LinearLayout>
+
+</ScrollView>
diff --git a/ui/preferences/src/main/res/layout/proxy_settings.xml b/ui/preferences/src/main/res/layout/proxy_settings.xml
new file mode 100644
index 000000000..3467291eb
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/proxy_settings.xml
@@ -0,0 +1,90 @@
+<?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="wrap_content"
+ android:orientation="vertical"
+ android:padding="16dp">
+
+ <TextView
+ android:id="@+id/txtvType"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/proxy_type_label"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <Spinner
+ android:id="@+id/spType"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:id="@+id/txtvHost"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="@string/host_label"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <EditText
+ android:id="@+id/etHost"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:inputType="textUri"
+ android:hint="www.example.com" />
+
+ <TextView
+ android:id="@+id/txtvPort"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="@string/port_label"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <EditText
+ android:id="@+id/etPort"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="8080"
+ android:inputType="number" />
+
+ <TextView
+ android:id="@+id/txtvUsername"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:singleLine="true"
+ android:text="@string/username_label"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <EditText
+ android:id="@+id/etUsername"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/optional_hint" />
+
+ <TextView
+ android:id="@+id/txtvPassword"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="@string/password_label"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <EditText
+ android:id="@+id/etPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/optional_hint"
+ android:inputType="textPassword" />
+
+ <TextView
+ android:id="@+id/txtvMessage"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:visibility="invisible"
+ android:gravity="center" />
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/simple_icon_list_item.xml b/ui/preferences/src/main/res/layout/simple_icon_list_item.xml
new file mode 100644
index 000000000..7ed129204
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/simple_icon_list_item.xml
@@ -0,0 +1,41 @@
+<?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="horizontal"
+ android:padding="16dp">
+
+ <ImageView
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:id="@+id/icon"/>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_marginLeft="16dp"
+ android:layout_gravity="center_vertical"
+ android:layout_marginStart="16dp">
+
+ <TextView
+ tools:text="Title"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="16sp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/title"/>
+
+ <TextView
+ tools:text="Subtitle"
+ android:textColor="?android:attr/textColorSecondary"
+ android:textSize="14sp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/subtitle"/>
+
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/layout/theme_preference.xml b/ui/preferences/src/main/res/layout/theme_preference.xml
new file mode 100644
index 000000000..27335fbd3
--- /dev/null
+++ b/ui/preferences/src/main/res/layout/theme_preference.xml
@@ -0,0 +1,123 @@
+<?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"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:background="?android:attr/colorBackground"
+ android:gravity="top"
+ android:padding="8dp">
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/themeSystemCard"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp"
+ android:clickable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ android:layout_weight="1"
+ app:cardElevation="0dp"
+ app:cardCornerRadius="16dp"
+ app:contentPadding="16dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:adjustViewBounds="true"
+ android:src="@drawable/theme_preview_system" />
+
+ <TextView
+ android:id="@+id/themeSystemRadio"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:text="@string/pref_theme_title_automatic"
+ android:clickable="false" />
+
+ </LinearLayout>
+
+ </androidx.cardview.widget.CardView>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/themeLightCard"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp"
+ android:clickable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ android:layout_weight="1"
+ app:cardElevation="0dp"
+ app:cardCornerRadius="16dp"
+ app:contentPadding="16dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:adjustViewBounds="true"
+ android:src="@drawable/theme_preview_light" />
+
+ <TextView
+ android:id="@+id/themeLightRadio"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:text="@string/pref_theme_title_light"
+ android:clickable="false" />
+
+ </LinearLayout>
+
+ </androidx.cardview.widget.CardView>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/themeDarkCard"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp"
+ android:clickable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ android:layout_weight="1"
+ app:cardElevation="0dp"
+ app:cardCornerRadius="16dp"
+ app:contentPadding="16dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:adjustViewBounds="true"
+ android:src="@drawable/theme_preview_dark" />
+
+ <TextView
+ android:id="@+id/themeDarkCardRadio"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:text="@string/pref_theme_title_dark"
+ android:clickable="false" />
+
+ </LinearLayout>
+
+ </androidx.cardview.widget.CardView>
+
+</LinearLayout>
diff --git a/ui/preferences/src/main/res/menu/bug_report_options.xml b/ui/preferences/src/main/res/menu/bug_report_options.xml
new file mode 100644
index 000000000..62963210c
--- /dev/null
+++ b/ui/preferences/src/main/res/menu/bug_report_options.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:id="@+id/export_logcat"
+ android:title="@string/export_logs_menu_title" />
+
+</menu> \ No newline at end of file
diff --git a/ui/preferences/src/main/res/xml/preferences.xml b/ui/preferences/src/main/res/xml/preferences.xml
new file mode 100644
index 000000000..8f3851c09
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:search="http://schemas.android.com/apk/res-auto">
+
+ <com.bytehamster.lib.preferencesearch.SearchPreference
+ android:key="searchPreference"
+ search:textHint="@string/preference_search_hint"
+ search:textNoResults="@string/preference_search_no_results"
+ search:textClearHistory="@string/preference_search_clear_history" />
+
+ <Preference
+ android:key="prefScreenInterface"
+ android:title="@string/user_interface_label"
+ android:summary="@string/user_interface_sum"
+ android:icon="@drawable/ic_appearance" />
+
+ <Preference
+ android:key="prefScreenPlayback"
+ android:title="@string/playback_pref"
+ android:summary="@string/playback_pref_sum"
+ android:icon="@drawable/ic_play_24dp" />
+
+ <Preference
+ android:key="prefScreenDownloads"
+ android:title="@string/downloads_pref"
+ android:summary="@string/downloads_pref_sum"
+ android:icon="@drawable/ic_download" />
+
+ <Preference
+ android:key="prefScreenSynchronization"
+ android:title="@string/synchronization_pref"
+ android:summary="@string/synchronization_sum"
+ android:icon="@drawable/ic_cloud" />
+
+ <Preference
+ android:key="prefScreenImportExport"
+ android:title="@string/import_export_pref"
+ android:summary="@string/import_export_summary"
+ android:icon="@drawable/ic_storage" />
+
+ <Preference
+ android:key="notifications"
+ android:title="@string/notification_pref_fragment"
+ android:icon="@drawable/ic_notifications"/>
+
+ <PreferenceCategory
+ android:key="project"
+ android:title="@string/project_pref">
+ <Preference
+ android:key="prefDocumentation"
+ android:title="@string/documentation_support"
+ android:icon="@drawable/ic_questionmark" />
+ <Preference
+ android:key="prefViewForum"
+ android:title="@string/visit_user_forum"
+ android:icon="@drawable/ic_chat" />
+ <Preference
+ android:key="prefContribute"
+ android:title="@string/pref_contribute"
+ android:icon="@drawable/ic_contribute" />
+ <Preference
+ android:key="prefSendBugReport"
+ android:title="@string/bug_report_title"
+ android:icon="@drawable/ic_bug" />
+ <Preference
+ android:key="prefAbout"
+ android:title="@string/about_pref"
+ android:icon="@drawable/ic_info" />
+ </PreferenceCategory>
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_about.xml b/ui/preferences/src/main/res/xml/preferences_about.xml
new file mode 100644
index 000000000..1312d5466
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_about.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <Preference
+ android:layout="@layout/about_teaser"/>
+ <Preference
+ android:key="about_version"
+ android:title="@string/antennapod_version"
+ android:icon="@drawable/ic_star"
+ android:summary="1.7.2 (asd8qs)"/>
+ <Preference
+ android:key="about_contributors"
+ android:icon="@drawable/ic_settings"
+ android:summary="@string/contributors_summary"
+ android:title="@string/contributors"/>
+ <Preference
+ android:key="about_privacy_policy"
+ android:icon="@drawable/ic_questionmark"
+ android:summary="www.antennapod.org/privacy"
+ android:title="@string/privacy_policy"/>
+ <Preference
+ android:key="about_licenses"
+ android:icon="@drawable/ic_info"
+ android:summary="@string/licenses_summary"
+ android:title="@string/licenses"/>
+
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_autodownload.xml b/ui/preferences/src/main/res/xml/preferences_autodownload.xml
new file mode 100644
index 000000000..339ddc9af
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_autodownload.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
+
+ <de.danoeh.antennapod.ui.preferences.preference.MasterSwitchPreference
+ android:key="prefEnableAutoDl"
+ android:title="@string/pref_automatic_download_title"
+ search:summary="@string/pref_automatic_download_sum"
+ android:defaultValue="false"/>
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:defaultValue="25"
+ android:entries="@array/episode_cache_size_entries"
+ android:key="prefEpisodeCacheSize"
+ android:title="@string/pref_episode_cache_title"
+ android:summary="@string/pref_episode_cache_summary"
+ android:entryValues="@array/episode_cache_size_values"/>
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:defaultValue="-1"
+ android:entries="@array/episode_cleanup_entries"
+ android:key="prefEpisodeCleanup"
+ android:title="@string/pref_episode_cleanup_title"
+ android:summary="@string/pref_episode_cleanup_summary"
+ android:entryValues="@array/episode_cleanup_values"/>
+ <SwitchPreferenceCompat
+ android:key="prefEnableAutoDownloadOnBattery"
+ android:title="@string/pref_automatic_download_on_battery_title"
+ android:summary="@string/pref_automatic_download_on_battery_sum"
+ android:defaultValue="true"/>
+ <SwitchPreferenceCompat
+ android:key="prefEnableAutoDownloadWifiFilter"
+ android:title="@string/pref_autodl_wifi_filter_title"
+ android:summary="@string/pref_autodl_wifi_filter_sum"/>
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_downloads.xml b/ui/preferences/src/main/res/xml/preferences_downloads.xml
new file mode 100644
index 000000000..8a0c2efbe
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_downloads.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
+
+ <Preference
+ android:title="@string/choose_data_directory"
+ android:key="prefChooseDataDir"/>
+
+ <PreferenceCategory android:title="@string/automation">
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:entryValues="@array/feed_refresh_interval_values"
+ android:entries="@array/feed_refresh_interval_entries"
+ android:key="prefAutoUpdateIntervall"
+ android:title="@string/feed_refresh_title"
+ android:summary="@string/feed_refresh_sum"
+ android:defaultValue="12"/>
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:entryValues="@array/globalNewEpisodesActionValues"
+ android:entries="@array/globalNewEpisodesActionItems"
+ android:key="prefNewEpisodesAction"
+ android:title="@string/pref_new_episodes_action_title"
+ android:summary="@string/pref_new_episodes_action_sum"
+ android:defaultValue="1"/>
+ <Preference
+ android:summary="@string/pref_automatic_download_sum"
+ android:key="prefAutoDownloadSettings"
+ android:title="@string/pref_automatic_download_title"
+ search:ignore="true" />
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:enabled="true"
+ android:key="prefAutoDelete"
+ android:summary="@string/pref_auto_delete_sum"
+ android:title="@string/pref_auto_delete_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:enabled="true"
+ android:key="prefAutoDeleteLocal"
+ android:summary="@string/pref_auto_local_delete_sum"
+ android:title="@string/pref_auto_local_delete_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefFavoriteKeepsEpisode"
+ android:summary="@string/pref_favorite_keeps_episodes_sum"
+ android:title="@string/pref_favorite_keeps_episodes_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:enabled="true"
+ android:key="prefDeleteRemovesFromQueue"
+ android:summary="@string/pref_delete_removes_from_queue_sum"
+ android:title="@string/pref_delete_removes_from_queue_title"/>
+ </PreferenceCategory>
+
+ <PreferenceCategory android:title="@string/download_pref_details">
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialMultiSelectListPreference
+ android:defaultValue="@array/mobile_update_default_value"
+ android:entries="@array/mobile_update_entries"
+ android:entryValues="@array/mobile_update_values"
+ android:key="prefMobileUpdateTypes"
+ android:summary="@string/pref_mobileUpdate_sum"
+ android:title="@string/pref_mobileUpdate_title"/>
+ <Preference
+ android:key="prefProxy"
+ android:summary="@string/pref_proxy_sum"
+ android:title="@string/pref_proxy_title"/>
+ </PreferenceCategory>
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_import_export.xml b/ui/preferences/src/main/res/xml/preferences_import_export.xml
new file mode 100644
index 000000000..789c8c216
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_import_export.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
+
+ <PreferenceCategory android:title="@string/database">
+ <Preference
+ android:key="prefDatabaseExport"
+ search:keywords="@string/import_export_search_keywords"
+ android:title="@string/database_export_label"
+ android:summary="@string/database_export_summary"/>
+ <SwitchPreferenceCompat
+ android:key="prefAutomaticDatabaseExport"
+ android:title="@string/automatic_database_export_label"
+ android:summary="@string/automatic_database_export_summary"
+ android:defaultValue="false" />
+ <Preference
+ android:key="prefDatabaseImport"
+ search:keywords="@string/import_export_search_keywords"
+ android:title="@string/database_import_label"
+ android:summary="@string/database_import_summary"/>
+ </PreferenceCategory>
+
+ <PreferenceCategory android:title="@string/opml">
+ <Preference
+ android:key="prefOpmlExport"
+ android:title="@string/opml_export_label"
+ android:summary="@string/opml_export_summary"/>
+ <Preference
+ android:key="prefOpmlImport"
+ android:title="@string/opml_import_label"
+ android:summary="@string/opml_import_summary"/>
+ </PreferenceCategory>
+
+ <PreferenceCategory android:title="@string/html">
+ <Preference
+ android:key="prefHtmlExport"
+ android:title="@string/html_export_label"
+ android:summary="@string/html_export_summary"/>
+ <Preference
+ android:key="prefFavoritesExport"
+ android:title="@string/favorites_export_label"
+ android:summary="@string/favorites_export_summary"/>
+ </PreferenceCategory>
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_notifications.xml b/ui/preferences/src/main/res/xml/preferences_notifications.xml
new file mode 100644
index 000000000..34d327340
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_notifications.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <PreferenceCategory
+ android:title="@string/notification_group_errors">
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefShowDownloadReport"
+ android:summary="@string/notification_channel_download_error_description"
+ android:title="@string/notification_channel_download_error" />
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:key="pref_gpodnet_notifications"
+ android:summary="@string/notification_channel_sync_error_description"
+ android:title="@string/notification_channel_sync_error" />
+ </PreferenceCategory>
+</PreferenceScreen> \ No newline at end of file
diff --git a/ui/preferences/src/main/res/xml/preferences_playback.xml b/ui/preferences/src/main/res/xml/preferences_playback.xml
new file mode 100644
index 000000000..9fff85eba
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_playback.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <PreferenceCategory android:title="@string/interruptions">
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefPauseOnHeadsetDisconnect"
+ android:summary="@string/pref_pauseOnDisconnect_sum"
+ android:title="@string/pref_pauseOnHeadsetDisconnect_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:dependency="prefPauseOnHeadsetDisconnect"
+ android:key="prefUnpauseOnHeadsetReconnect"
+ android:summary="@string/pref_unpauseOnHeadsetReconnect_sum"
+ android:title="@string/pref_unpauseOnHeadsetReconnect_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:enabled="true"
+ android:dependency="prefPauseOnHeadsetDisconnect"
+ android:key="prefUnpauseOnBluetoothReconnect"
+ android:summary="@string/pref_unpauseOnBluetoothReconnect_sum"
+ android:title="@string/pref_unpauseOnBluetoothReconnect_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefPauseForFocusLoss"
+ android:summary="@string/pref_pausePlaybackForFocusLoss_sum"
+ android:title="@string/pref_pausePlaybackForFocusLoss_title"/>
+ </PreferenceCategory>
+
+ <PreferenceCategory android:title="@string/playback_control">
+ <Preference
+ android:key="prefPlaybackFastForwardDeltaLauncher"
+ android:summary="@string/pref_fast_forward_sum"
+ android:title="@string/pref_fast_forward"/>
+ <Preference
+ android:key="prefPlaybackRewindDeltaLauncher"
+ android:summary="@string/pref_rewind_sum"
+ android:title="@string/pref_rewind"/>
+ <Preference
+ android:key="prefPlaybackSpeedLauncher"
+ android:summary="@string/pref_playback_speed_sum"
+ android:title="@string/playback_speed"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="prefPlaybackTimeRespectsSpeed"
+ android:summary="@string/pref_playback_time_respects_speed_sum"
+ android:title="@string/pref_playback_time_respects_speed_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:key="prefStreamOverDownload"
+ android:summary="@string/pref_stream_over_download_sum"
+ android:title="@string/pref_stream_over_download_title"/>
+ </PreferenceCategory>
+
+ <PreferenceCategory android:title="@string/reassign_hardware_buttons">
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:defaultValue="@string/keycode_media_fast_forward"
+ android:entries="@array/button_action_options"
+ android:entryValues="@array/button_action_values"
+ android:key="prefHardwareForwardButton"
+ android:title="@string/pref_hardware_forward_button_title"
+ android:summary="@string/pref_hardware_forward_button_summary"/>
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:defaultValue="@string/keycode_media_rewind"
+ android:entries="@array/button_action_options"
+ android:entryValues="@array/button_action_values"
+ android:key="prefHardwarePreviousButton"
+ android:title="@string/pref_hardware_previous_button_title"
+ android:summary="@string/pref_hardware_previous_button_summary"/>
+ </PreferenceCategory>
+
+ <PreferenceCategory android:title="@string/queue_label">
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefEnqueueDownloaded"
+ android:summary="@string/pref_enqueue_downloaded_summary"
+ android:title="@string/pref_enqueue_downloaded_title" />
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:defaultValue="BACK"
+ android:entries="@array/enqueue_location_options"
+ android:entryValues="@array/enqueue_location_values"
+ android:key="prefEnqueueLocation"
+ android:title="@string/pref_enqueue_location_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefFollowQueue"
+ android:summary="@string/pref_followQueue_sum"
+ android:title="@string/pref_followQueue_title"/>
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:defaultValue="30"
+ android:entries="@array/smart_mark_as_played_values"
+ android:entryValues="@array/smart_mark_as_played_values"
+ android:key="prefSmartMarkAsPlayedSecs"
+ android:summary="@string/pref_smart_mark_as_played_sum"
+ android:title="@string/pref_smart_mark_as_played_title"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefSkipKeepsEpisode"
+ android:summary="@string/pref_skip_keeps_episodes_sum"
+ android:title="@string/pref_skip_keeps_episodes_title"/>
+ </PreferenceCategory>
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_swipe.xml b/ui/preferences/src/main/res/xml/preferences_swipe.xml
new file mode 100644
index 000000000..10ac102dd
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_swipe.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <Preference
+ android:key="prefSwipeQueue"
+ android:title="@string/queue_label"/>
+
+ <Preference
+ android:key="prefSwipeInbox"
+ android:title="@string/inbox_label"/>
+
+ <Preference
+ android:key="prefSwipeEpisodes"
+ android:title="@string/episodes_label"/>
+
+ <Preference
+ android:key="prefSwipeDownloads"
+ android:title="@string/downloads_label"/>
+
+ <Preference
+ android:key="prefSwipeHistory"
+ android:title="@string/playback_history_label"/>
+
+ <Preference
+ android:key="prefSwipeFeed"
+ android:title="@string/individual_subscription"/>
+
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_synchronization.xml b/ui/preferences/src/main/res/xml/preferences_synchronization.xml
new file mode 100644
index 000000000..fbd4ccc79
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_synchronization.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <Preference
+ android:key="preference_synchronization_description"
+ android:icon="@drawable/ic_notification_sync"
+ android:summary="@string/synchronization_summary_unchoosen"/>
+
+ <Preference
+ android:key="pref_gpodnet_setlogin_information"
+ android:title="@string/pref_gpodnet_setlogin_information_title"
+ android:summary="@string/pref_gpodnet_setlogin_information_sum"
+ app:isPreferenceVisible="false"/>
+
+ <Preference
+ android:key="pref_synchronization_sync"
+ android:title="@string/synchronization_sync_changes_title"
+ android:summary="@string/synchronization_sync_summary"/>
+
+ <Preference
+ android:key="pref_synchronization_force_full_sync"
+ android:title="@string/synchronization_full_sync_title"
+ android:summary="@string/synchronization_force_sync_summary"/>
+
+ <Preference
+ android:key="pref_synchronization_logout"
+ android:title="@string/synchronization_logout"/>
+
+</PreferenceScreen>
diff --git a/ui/preferences/src/main/res/xml/preferences_user_interface.xml b/ui/preferences/src/main/res/xml/preferences_user_interface.xml
new file mode 100644
index 000000000..3730ca828
--- /dev/null
+++ b/ui/preferences/src/main/res/xml/preferences_user_interface.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
+
+ <PreferenceCategory android:title="@string/appearance">
+ <de.danoeh.antennapod.ui.preferences.preference.ThemePreference
+ android:key="prefTheme" />
+ <SwitchPreferenceCompat
+ android:title="@string/pref_black_theme_title"
+ android:key="prefThemeBlack"
+ android:summary="@string/pref_black_theme_message"
+ android:defaultValue="false" />
+ <SwitchPreferenceCompat
+ android:title="@string/pref_tinted_theme_title"
+ android:key="prefTintedColors"
+ android:summary="@string/pref_tinted_theme_message"
+ android:defaultValue="false" />
+ <Preference
+ android:key="prefHiddenDrawerItems"
+ android:summary="@string/pref_nav_drawer_items_sum"
+ android:title="@string/pref_nav_drawer_items_title"/>
+ <SwitchPreferenceCompat
+ android:title="@string/pref_episode_cover_title"
+ android:key="prefEpisodeCover"
+ android:summary="@string/pref_episode_cover_summary"
+ android:defaultValue="true"
+ android:enabled="true"/>
+ <SwitchPreferenceCompat
+ android:title="@string/pref_show_remain_time_title"
+ android:key="showTimeLeft"
+ android:summary="@string/pref_show_remain_time_summary"
+ android:defaultValue="false"
+ android:enabled="true"/>
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/subscriptions_label">
+ <Preference
+ android:title="@string/pref_nav_drawer_feed_order_title"
+ android:key="prefDrawerFeedOrder"
+ android:summary="@string/pref_nav_drawer_feed_order_sum"/>
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:entryValues="@array/nav_drawer_feed_counter_values"
+ android:entries="@array/nav_drawer_feed_counter_options"
+ android:title="@string/pref_nav_drawer_feed_counter_title"
+ android:key="prefDrawerFeedIndicator"
+ android:summary="@string/pref_nav_drawer_feed_counter_sum"
+ android:defaultValue="1"/>
+ <Preference
+ android:title="@string/pref_filter_feed_title"
+ android:key="prefSubscriptionsFilter"
+ android:summary="@string/pref_filter_feed_sum" />
+ <SwitchPreferenceCompat
+ android:title="@string/pref_show_subscription_title"
+ android:key="prefSubscriptionTitle"
+ android:summary="@string/pref_show_subscription_title_summary"
+ android:defaultValue="false" />
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/external_elements">
+ <SwitchPreferenceCompat
+ android:defaultValue="false"
+ android:enabled="true"
+ android:key="prefExpandNotify"
+ android:summary="@string/pref_expandNotify_sum"
+ android:title="@string/pref_expandNotify_title"
+ search:ignore="true"/>
+ <SwitchPreferenceCompat
+ android:defaultValue="true"
+ android:enabled="true"
+ android:key="prefPersistNotify"
+ android:summary="@string/pref_persistNotify_sum"
+ android:title="@string/pref_persistNotify_title"/>
+ <Preference
+ android:key="prefFullNotificationButtons"
+ android:summary="@string/pref_full_notification_buttons_sum"
+ android:title="@string/pref_full_notification_buttons_title"/>
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/behavior">
+ <de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
+ android:entryValues="@array/default_page_values"
+ android:entries="@array/default_page_titles"
+ android:key="prefDefaultPage"
+ android:title="@string/pref_default_page"
+ android:summary="@string/pref_default_page_sum"
+ android:defaultValue="HomeFragment"/>
+ <SwitchPreferenceCompat
+ android:key="prefBackButtonOpensDrawer"
+ android:title="@string/pref_back_button_opens_drawer"
+ android:summary="@string/pref_back_button_opens_drawer_summary"
+ android:defaultValue="false"/>
+ <Preference
+ android:key="prefSwipe"
+ android:summary="@string/swipeactions_summary"
+ android:title="@string/swipeactions_label"/>
+ </PreferenceCategory>
+</PreferenceScreen>