diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
index 8acf18d9b..656d1aa2e 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
@@ -68,6 +68,8 @@ class MangaInfoHeaderAdapter(
private var initialLoad: Boolean = true
+ private val maxLines = 3
+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HeaderViewHolder {
binding = MangaInfoHeaderBinding.inflate(LayoutInflater.from(parent.context), parent, false)
updateCoverPosition()
@@ -381,7 +383,10 @@ class MangaInfoHeaderAdapter(
binding.mangaSummaryText.text = if (manga.description.isNullOrBlank()) {
view.context.getString(R.string.unknown)
} else {
- manga.description
+ // Max lines of 3 with a blank line looks whack so we remove
+ // any line breaks that is 2 or more and replace it with 1
+ manga.description!!
+ .replace(Regex("[\\r\\n]{2,}", setOf(RegexOption.MULTILINE)), "\n")
}
// SY -->
@@ -443,7 +448,7 @@ class MangaInfoHeaderAdapter(
}
// Refreshes will change the state and it needs to be set to correct state to display correctly
- if (binding.mangaSummaryText.maxLines == 2) {
+ if (binding.mangaSummaryText.maxLines == maxLines) {
binding.mangaSummarySection.transitionToState(R.id.start)
} else {
binding.mangaSummarySection.transitionToState(R.id.end)
@@ -456,7 +461,7 @@ class MangaInfoHeaderAdapter(
}
private fun toggleMangaInfo() {
- val isCurrentlyExpanded = binding.mangaSummaryText.maxLines != 2
+ val isCurrentlyExpanded = binding.mangaSummaryText.maxLines != maxLines
if (isCurrentlyExpanded) {
binding.mangaSummarySection.transitionToStart()
@@ -465,7 +470,7 @@ class MangaInfoHeaderAdapter(
}
binding.mangaSummaryText.maxLines = if (isCurrentlyExpanded) {
- 2
+ maxLines
} else {
Int.MAX_VALUE
}
diff --git a/app/src/main/res/drawable/manga_backdrop_gradient.xml b/app/src/main/res/drawable/manga_backdrop_gradient.xml
new file mode 100644
index 000000000..02692a50b
--- /dev/null
+++ b/app/src/main/res/drawable/manga_backdrop_gradient.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/manga_info_gradient.xml b/app/src/main/res/drawable/manga_info_gradient.xml
index 02692a50b..35e6c06ea 100644
--- a/app/src/main/res/drawable/manga_info_gradient.xml
+++ b/app/src/main/res/drawable/manga_info_gradient.xml
@@ -4,8 +4,9 @@
+ android:endColor="#00000000"
+ android:centerColor="#CC000000"
+ android:startColor="#E6000000" />
diff --git a/app/src/main/res/drawable/manga_info_more_gradient.xml b/app/src/main/res/drawable/manga_info_more_gradient.xml
index eed17e090..503ea5359 100644
--- a/app/src/main/res/drawable/manga_info_more_gradient.xml
+++ b/app/src/main/res/drawable/manga_info_more_gradient.xml
@@ -3,9 +3,12 @@
android:shape="rectangle">
+ android:type="radial"
+ android:gradientRadius="18dp"
+ android:startColor="#CC000000"
+ android:centerColor="#CC000000"
+ android:endColor="#0D000000" />
+
-
\ No newline at end of file
+
+
diff --git a/app/src/main/res/layout-sw720dp/manga_info_header.xml b/app/src/main/res/layout-sw720dp/manga_info_header.xml
index 9c9a8280f..56b552e93 100644
--- a/app/src/main/res/layout-sw720dp/manga_info_header.xml
+++ b/app/src/main/res/layout-sw720dp/manga_info_header.xml
@@ -27,7 +27,7 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:alpha="1"
- android:background="@drawable/manga_info_gradient"
+ android:background="@drawable/manga_backdrop_gradient"
android:backgroundTint="?android:attr/colorBackground"
app:layout_constraintBottom_toBottomOf="@+id/backdrop"
app:layout_constraintEnd_toEndOf="parent"
@@ -211,51 +211,61 @@
style="@style/TextAppearance.Regular.Body1.Secondary"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
+ android:layout_marginStart="16dp"
android:clickable="true"
android:focusable="true"
- android:maxLines="2"
+ android:maxLines="3"
+ android:ellipsize="end"
android:textIsSelectable="false"
- app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/manga_cover"
- tools:text="Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content" />
+ tools:text="Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content" />
+
+
+ app:layout_constraintBottom_toBottomOf="@+id/manga_summary_text"
+ app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more"
+ app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" />
+ android:background="@drawable/ic_expand_more_24dp"
+ android:backgroundTint="?android:attr/textColorPrimary"
+ app:layout_constraintBottom_toBottomOf="@+id/manga_info_toggle_more"
+ app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more"
+ app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" />
@@ -267,7 +277,7 @@
android:scrollbars="none"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/manga_summary_text">
+ app:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_more">
@@ -201,59 +201,68 @@
android:layout_height="wrap_content"
app:layoutDescription="@xml/manga_summary_section_scene"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/metadata_view">
+ app:layout_constraintStart_toStartOf="parent">
+
+
+ app:layout_constraintBottom_toBottomOf="@+id/manga_summary_text"
+ app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more"
+ app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" />
+ android:background="@drawable/ic_expand_more_24dp"
+ android:backgroundTint="?android:attr/textColorPrimary"
+ app:layout_constraintBottom_toBottomOf="@+id/manga_info_toggle_more"
+ app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more"
+ app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" />
@@ -265,7 +274,7 @@
android:scrollbars="none"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/manga_summary_text">
+ app:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_more">
-
+ motion:layout_constraintEnd_toEndOf="parent"
+ motion:layout_constraintStart_toStartOf="parent"
+ motion:layout_constraintBottom_toBottomOf="@id/manga_summary_text"
+ android:layout_marginBottom="-4dp" />
+ motion:layout_constraintStart_toStartOf="parent"
+ motion:layout_constraintTop_toBottomOf="@id/manga_summary_text" />
-