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" /> -