diff --git a/app/sampledata/covers/Forget-me-not Volume 1.jpg b/app/sampledata/covers/Forget-me-not Volume 1.jpg
new file mode 100644
index 000000000..f5bbc36e5
Binary files /dev/null and b/app/sampledata/covers/Forget-me-not Volume 1.jpg differ
diff --git a/app/sampledata/covers/Forget-me-not Volume 2.jpg b/app/sampledata/covers/Forget-me-not Volume 2.jpg
new file mode 100644
index 000000000..fea5eaaba
Binary files /dev/null and b/app/sampledata/covers/Forget-me-not Volume 2.jpg differ
diff --git a/app/sampledata/covers/La Pomme Prisoinniere.jpg b/app/sampledata/covers/La Pomme Prisoinniere.jpg
new file mode 100644
index 000000000..f82af29a7
Binary files /dev/null and b/app/sampledata/covers/La Pomme Prisoinniere.jpg differ
diff --git a/app/sampledata/covers/Momo Kanchou no Himitsu Kichi.jpg b/app/sampledata/covers/Momo Kanchou no Himitsu Kichi.jpg
new file mode 100644
index 000000000..6a5207cf7
Binary files /dev/null and b/app/sampledata/covers/Momo Kanchou no Himitsu Kichi.jpg differ
diff --git a/app/sampledata/covers/Omoide Emanon.jpg b/app/sampledata/covers/Omoide Emanon.jpg
new file mode 100644
index 000000000..b078f670a
Binary files /dev/null and b/app/sampledata/covers/Omoide Emanon.jpg differ
diff --git a/app/sampledata/covers/Sasurai Emanon Volume 1.jpg b/app/sampledata/covers/Sasurai Emanon Volume 1.jpg
new file mode 100644
index 000000000..4a185e835
Binary files /dev/null and b/app/sampledata/covers/Sasurai Emanon Volume 1.jpg differ
diff --git a/app/sampledata/covers/Sasurai Emanon Volume 2.jpg b/app/sampledata/covers/Sasurai Emanon Volume 2.jpg
new file mode 100644
index 000000000..f7f745f23
Binary files /dev/null and b/app/sampledata/covers/Sasurai Emanon Volume 2.jpg differ
diff --git a/app/sampledata/covers/Sasurai Emanon Volume 3.jpg b/app/sampledata/covers/Sasurai Emanon Volume 3.jpg
new file mode 100644
index 000000000..714538ff8
Binary files /dev/null and b/app/sampledata/covers/Sasurai Emanon Volume 3.jpg differ
diff --git a/app/sampledata/covers/Wandering Island Volume 1.jpg b/app/sampledata/covers/Wandering Island Volume 1.jpg
new file mode 100644
index 000000000..2d6edccee
Binary files /dev/null and b/app/sampledata/covers/Wandering Island Volume 1.jpg differ
diff --git a/app/sampledata/covers/Wandering Island Volume 2.jpg b/app/sampledata/covers/Wandering Island Volume 2.jpg
new file mode 100644
index 000000000..52e1e5562
Binary files /dev/null and b/app/sampledata/covers/Wandering Island Volume 2.jpg differ
diff --git a/app/sampledata/genres b/app/sampledata/genres
new file mode 100644
index 000000000..017d3ee73
--- /dev/null
+++ b/app/sampledata/genres
@@ -0,0 +1,10 @@
+Slice of Life, Mystery
+Slice of Life, Mystery
+Psychological, Romance, Comedy, Slice of Life, Supernatural
+Sci-Fi, Comedy
+Reincarnation, Sci-Fi, Historical, Psychological, Drama, Slice of Life, Supernatural, Mystery
+Reincarnation, Sci-Fi, Historical, Psychological, Drama, Slice of Life, Supernatural, Mystery
+Reincarnation, Sci-Fi, Historical, Psychological, Drama, Slice of Life, Supernatural, Mystery
+Reincarnation, Sci-Fi, Historical, Psychological, Drama, Slice of Life, Supernatural, Mystery
+Adventure, Slice of Life, Mystery
+Adventure, Slice of Life, Mystery
diff --git a/app/sampledata/titles b/app/sampledata/titles
new file mode 100644
index 000000000..9bdeb7594
--- /dev/null
+++ b/app/sampledata/titles
@@ -0,0 +1,10 @@
+Forget-me-not Vol. 1
+Forget-me-not Vol. 2
+La Pomme Prisoinniere
+Momo Kanchou no Himitsu Kichi
+Omoide Emanon
+Sasurai Emanon Vol. 1
+Sasurai Emanon Vol. 2
+Sasurai Emanon Vol. 3
+Wandering Island Vol. 1
+Wandering Island Vol. 2
diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/CoilExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/CoilExt.kt
index ac4c32a1c..6d7e49a77 100644
--- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/CoilExt.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/CoilExt.kt
@@ -62,4 +62,4 @@ fun ImageRequest.Builder.crossfade(context: Context?): ImageRequest.Builder {
}
val duration = context.resources.getInteger(R.integer.config_defaultAnimTime) * context.animatorDurationScale
return crossfade(duration.toInt())
-}
\ No newline at end of file
+}
diff --git a/app/src/main/res/layout/fragment_details.xml b/app/src/main/res/layout/fragment_details.xml
index feb410049..deb2c0a2e 100644
--- a/app/src/main/res/layout/fragment_details.xml
+++ b/app/src/main/res/layout/fragment_details.xml
@@ -29,7 +29,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.3"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover"
- tools:background="@tools:sample/backgrounds/scenic"
+ tools:background="@sample/covers[5]"
tools:ignore="ContentDescription,UnusedAttribute" />
+ tools:text="@sample/titles[5]" />
+ tools:src="@sample/covers" />
+ tools:text="@sample/titles" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/item_category.xml b/app/src/main/res/layout/item_category.xml
index 0167891c8..5bf8304b6 100644
--- a/app/src/main/res/layout/item_category.xml
+++ b/app/src/main/res/layout/item_category.xml
@@ -26,7 +26,7 @@
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover.Small"
app:tintMode="src_atop"
tools:backgroundTint="#99FFFFFF"
- tools:src="@tools:sample/backgrounds/scenic"
+ tools:src="@sample/covers"
tools:tint="#99FFFFFF" />
+ tools:src="@sample/covers" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/item_download.xml b/app/src/main/res/layout/item_download.xml
index 980e54799..c81eb505e 100644
--- a/app/src/main/res/layout/item_download.xml
+++ b/app/src/main/res/layout/item_download.xml
@@ -24,7 +24,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover"
- tools:src="@tools:sample/backgrounds/scenic" />
+ tools:src="@sample/covers" />
+ tools:text="@sample/titles" />
+ app:layout_constraintTop_toBottomOf="@id/textView_title"
+ tools:progress="25"/>
+ tools:src="@sample/covers" />
+ tools:text="@sample/titles" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/item_manga_grid.xml b/app/src/main/res/layout/item_manga_grid.xml
index 1d102affe..23dd30c10 100644
--- a/app/src/main/res/layout/item_manga_grid.xml
+++ b/app/src/main/res/layout/item_manga_grid.xml
@@ -24,10 +24,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:scaleType="centerCrop"
+ android:adjustViewBounds="true"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover"
tools:ignore="ContentDescription"
- tools:src="@tools:sample/backgrounds/scenic[3]" />
+ tools:src="@sample/covers[5]" />
+ tools:text="@sample/titles[5]" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/item_manga_list.xml b/app/src/main/res/layout/item_manga_list.xml
index 5694c2289..70e5bf349 100644
--- a/app/src/main/res/layout/item_manga_list.xml
+++ b/app/src/main/res/layout/item_manga_list.xml
@@ -19,7 +19,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover.Small"
- tools:src="@tools:sample/backgrounds/scenic" />
+ tools:src="@sample/covers" />
+ tools:text="@sample/titles" />
+ tools:text="@sample/genres" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/item_manga_list_details.xml b/app/src/main/res/layout/item_manga_list_details.xml
index 2eccf29bc..b23b6e245 100644
--- a/app/src/main/res/layout/item_manga_list_details.xml
+++ b/app/src/main/res/layout/item_manga_list_details.xml
@@ -22,7 +22,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover"
- tools:src="@tools:sample/backgrounds/scenic" />
+ tools:src="@sample/covers" />
+ tools:text="@sample/titles" />
+ tools:text="@sample/genres" />
+ tools:src="@sample/covers" />
+ tools:text="@sample/titles" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/layout_scrobbling_info.xml b/app/src/main/res/layout/layout_scrobbling_info.xml
index 079308b0d..f4b14cb16 100644
--- a/app/src/main/res/layout/layout_scrobbling_info.xml
+++ b/app/src/main/res/layout/layout_scrobbling_info.xml
@@ -22,7 +22,7 @@
android:layout_alignParentTop="true"
android:contentDescription="@null"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover.Small"
- tools:src="@tools:sample/avatars" />
+ tools:src="@sample/covers[7]" />
+ tools:text="@sample/titles[5]" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/sheet_scrobbling.xml b/app/src/main/res/layout/sheet_scrobbling.xml
index af702f81a..05e24fc5a 100644
--- a/app/src/main/res/layout/sheet_scrobbling.xml
+++ b/app/src/main/res/layout/sheet_scrobbling.xml
@@ -32,7 +32,7 @@
app:layout_constraintTop_toBottomOf="@id/dragHandle"
app:layout_constraintWidth_percent="0.3"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Kotatsu.Cover"
- tools:background="@tools:sample/backgrounds/scenic"
+ tools:background="@sample/covers[9]"
tools:ignore="ContentDescription,UnusedAttribute" />
+ tools:text="@sample/titles[9]" />