From 7b702e98dae92d997754acf196bbe0c754d629bd Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Sat, 6 Aug 2022 17:28:49 +0300 Subject: [PATCH] Swapped rating and state fields on details screen --- .../kotatsu/details/ui/DetailsFragment.kt | 38 +++++++++---------- .../koitharu/kotatsu/utils/ext/TextViewExt.kt | 9 ++++- .../main/res/drawable/ic_state_finished.xml | 4 +- .../main/res/drawable/ic_state_ongoing.xml | 4 +- .../res/layout-w600dp/fragment_details.xml | 17 +++++---- app/src/main/res/layout/fragment_details.xml | 20 +++++----- .../main/res/layout/layout_details_info.xml | 27 +++++-------- 7 files changed, 61 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt index b60e41679..ff5924c7b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt @@ -104,20 +104,11 @@ class DetailsFragment : textViewTitle.text = manga.title textViewSubtitle.textAndVisible = manga.altTitle textViewAuthor.textAndVisible = manga.author - when (manga.state) { - MangaState.FINISHED -> { - textViewState.apply { - textAndVisible = resources.getString(R.string.state_finished) - drawableStart = ContextCompat.getDrawable(context, R.drawable.ic_state_finished) - } - } - MangaState.ONGOING -> { - textViewState.apply { - textAndVisible = resources.getString(R.string.state_ongoing) - drawableStart = ContextCompat.getDrawable(context, R.drawable.ic_state_ongoing) - } - } - else -> textViewState.isVisible = false + if (manga.hasRating) { + ratingBar.rating = manga.rating * ratingBar.numStars + ratingBar.isVisible = true + } else { + ratingBar.isVisible = false } // Info containers @@ -132,11 +123,20 @@ class DetailsFragment : chapters.size, ) } - if (manga.hasRating) { - infoLayout.textViewRating.text = String.format("%.1f", manga.rating * 5) - infoLayout.ratingContainer.isVisible = true - } else { - infoLayout.ratingContainer.isVisible = false + when (manga.state) { + MangaState.FINISHED -> { + infoLayout.textViewState.apply { + textAndVisible = resources.getString(R.string.state_finished) + drawableTop = ContextCompat.getDrawable(context, R.drawable.ic_state_finished) + } + } + MangaState.ONGOING -> { + infoLayout.textViewState.apply { + textAndVisible = resources.getString(R.string.state_ongoing) + drawableTop = ContextCompat.getDrawable(context, R.drawable.ic_state_ongoing) + } + } + else -> infoLayout.textViewState.isVisible = false } if (manga.source == MangaSource.LOCAL) { infoLayout.textViewSource.isVisible = false diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/TextViewExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/TextViewExt.kt index bca90a845..e053cd5a2 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/TextViewExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/TextViewExt.kt @@ -28,6 +28,13 @@ var TextView.drawableEnd: Drawable? setCompoundDrawablesRelativeWithIntrinsicBounds(dr[0], dr[1], value, dr[3]) } +var TextView.drawableTop: Drawable? + inline get() = compoundDrawablesRelative[1] + set(value) { + val dr = compoundDrawablesRelative + setCompoundDrawablesRelativeWithIntrinsicBounds(dr[0], value, dr[2], dr[3]) + } + fun TextView.setTextAndVisible(@StringRes textResId: Int) { if (textResId == 0) { text = null @@ -40,4 +47,4 @@ fun TextView.setTextAndVisible(@StringRes textResId: Int) { fun TextView.setTextColorAttr(@AttrRes attrResId: Int) { setTextColor(context.getThemeColorStateList(attrResId)) -} \ No newline at end of file +} diff --git a/app/src/main/res/drawable/ic_state_finished.xml b/app/src/main/res/drawable/ic_state_finished.xml index 7538f9a93..1e3e29125 100644 --- a/app/src/main/res/drawable/ic_state_finished.xml +++ b/app/src/main/res/drawable/ic_state_finished.xml @@ -1,7 +1,7 @@ diff --git a/app/src/main/res/drawable/ic_state_ongoing.xml b/app/src/main/res/drawable/ic_state_ongoing.xml index 353aa32d1..b713feaa4 100644 --- a/app/src/main/res/drawable/ic_state_ongoing.xml +++ b/app/src/main/res/drawable/ic_state_ongoing.xml @@ -1,7 +1,7 @@ diff --git a/app/src/main/res/layout-w600dp/fragment_details.xml b/app/src/main/res/layout-w600dp/fragment_details.xml index 36e2064a4..0a849ccbd 100644 --- a/app/src/main/res/layout-w600dp/fragment_details.xml +++ b/app/src/main/res/layout-w600dp/fragment_details.xml @@ -84,17 +84,18 @@ android:textStyle="bold" tools:text="@tools:sample/full_names" /> - + android:isIndicator="true" + android:max="1" + android:numStars="5" + android:stepSize="0.5" + tools:rating="4" /> - + tools:rating="4" /> + app:constraint_referenced_ids="imageView_cover,rating_bar" /> - - - - - + tools:drawableTopCompat="@drawable/ic_state_finished" + tools:text="Completed" + tools:visibility="visible" /> - \ No newline at end of file +