Moved the unread badge into a new layout/class

Fixing padding, using unread badge setting again
This commit is contained in:
Jay 2020-02-15 19:51:41 -08:00
parent 214008ac5c
commit 0bc81a8237
14 changed files with 178 additions and 253 deletions

View File

@ -16,6 +16,7 @@ import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.updatePaddingRelative import eu.kanade.tachiyomi.util.view.updatePaddingRelative
import eu.kanade.tachiyomi.widget.StateImageViewTarget import eu.kanade.tachiyomi.widget.StateImageViewTarget
import kotlinx.android.synthetic.main.catalogue_grid_item.* import kotlinx.android.synthetic.main.catalogue_grid_item.*
import kotlinx.android.synthetic.main.unread_download_badge.*
/** /**
* Class used to hold the displayed data of a manga in the library, like the cover or the title. * Class used to hold the displayed data of a manga in the library, like the cover or the title.
@ -42,12 +43,7 @@ class CatalogueGridHolder(
subtitle.gone() subtitle.gone()
title.gone() title.gone()
compact_title.text = manga.currentTitle() compact_title.text = manga.currentTitle()
badge_view.setInLibrary(manga.favorite)
badge_view.visibility = if (manga.favorite) View.VISIBLE else View.GONE
unread_angle.visibility = View.GONE
unread_text.updatePaddingRelative(start = 5.dpToPx)
unread_text.visibility = if (manga.favorite) View.VISIBLE else View.GONE
unread_text.text = itemView.resources.getText(R.string.in_library)
// Update the cover. // Update the cover.
setImage(manga) setImage(manga)

View File

@ -0,0 +1,63 @@
package eu.kanade.tachiyomi.ui.library
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.view.View
import com.google.android.material.card.MaterialCardView
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.getResourceColor
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
import kotlinx.android.synthetic.main.unread_download_badge.view.*
class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null):
MaterialCardView(context, attrs) {
fun setUnreadDownload(unread: Int, downloads: Int) {
// Update the unread count and its visibility.
with(unread_text) {
text = if (unread == -1) "0" else unread.toString()
setTextColor(if (unread == -1) context.getResourceColor(android.R.attr.colorAccent)
else Color.WHITE)
visibility = when {
unread > 0 || unread == -1 -> View.VISIBLE
else -> View.GONE
}
}
// Update the download count or local status and its visibility.
with(download_text) {
visibility = if (downloads == -2 || downloads > 0) View.VISIBLE else View.GONE
text = if (downloads == -2)
resources.getString(R.string.local_source_badge)
else downloads.toString()
}
// Show the bade card if unread or downloads exists
badge_view.visibility = if (download_text.visibility == View.VISIBLE || unread_text
.visibility != View.GONE) View.VISIBLE else View.GONE
// Show the angles divider if both unread and downloads exists
unread_angle.visibility = if (download_text.visibility == View.VISIBLE && unread_text
.visibility != View.GONE) View.VISIBLE else View.GONE
if (unread_angle.visibility == View.VISIBLE) {
download_text.updatePaddingRelative(end = 8.dpToPx)
unread_text.updatePaddingRelative(start = 2.dpToPx)
}
else {
download_text.updatePaddingRelative(end = 5.dpToPx)
unread_text.updatePaddingRelative(start = 5.dpToPx)
}
}
fun setInLibrary(inLibrary: Boolean) {
badge_view.visibility = if (inLibrary) View.VISIBLE else View.GONE
unread_angle.visibility = View.GONE
unread_text.updatePaddingRelative(start = 5.dpToPx)
unread_text.visibility = if (inLibrary) View.VISIBLE else View.GONE
unread_text.text = resources.getText(R.string.in_library)
}
}

View File

@ -241,12 +241,12 @@ class LibraryController(
super.onActivityResumed(activity) super.onActivityResumed(activity)
if (observeLater) { if (observeLater) {
presenter.getLibrary() presenter.getLibrary()
observeLater = false
} }
} }
override fun onActivityPaused(activity: Activity) { override fun onActivityPaused(activity: Activity) {
super.onActivityPaused(activity) super.onActivityPaused(activity)
observeLater = true
presenter.onDestroy() presenter.onDestroy()
} }
@ -674,7 +674,6 @@ class LibraryController(
val chapter = presenter.getFirstUnread(manga) ?: return val chapter = presenter.getFirstUnread(manga) ?: return
val intent = ReaderActivity.newIntent(activity, manga, chapter) val intent = ReaderActivity.newIntent(activity, manga, chapter)
destroyActionModeIfNeeded() destroyActionModeIfNeeded()
observeLater = true
startActivity(intent) startActivity(intent)
} }
} }

View File

@ -1,9 +1,10 @@
package eu.kanade.tachiyomi.ui.library package eu.kanade.tachiyomi.ui.library
import android.view.Gravity
import android.view.View import android.view.View
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import android.widget.FrameLayout
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.signature.ObjectKey import com.bumptech.glide.signature.ObjectKey
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
@ -15,6 +16,7 @@ import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.updatePaddingRelative import eu.kanade.tachiyomi.util.view.updatePaddingRelative
import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.util.view.visible
import kotlinx.android.synthetic.main.catalogue_grid_item.* import kotlinx.android.synthetic.main.catalogue_grid_item.*
import kotlinx.android.synthetic.main.unread_download_badge.*
/** /**
* Class used to hold the displayed data of a manga in the library, like the cover or the title. * Class used to hold the displayed data of a manga in the library, like the cover or the title.
@ -66,42 +68,15 @@ class LibraryGridHolder(
compact_title.text = title.text compact_title.text = title.text
// Update the unread count and its visibility. badge_view.setUnreadDownload(
val unread = item.manga.unread when (item.unreadType) {
1 -> item.manga.unread
with(unread_text) { 0 -> if (item.manga.unread > 0) -1 else -2
text = unread.toString() else -> -2
visibility = if (unread > 0) View.VISIBLE else View.GONE },
} if (item.manga.source == LocalSource.ID) -2 else item.downloadCount)
play_layout.visibility = if (item.manga.unread > 0 && item.unreadType > -1)
// Update the download count or local status and its visibility. View.VISIBLE else View.GONE
with(download_text) {
visibility = if (item.downloadCount > -1 && (item.downloadCount > 0 || item.manga
.source == LocalSource.ID))
View.VISIBLE else View.GONE
text = if (item.manga.source == LocalSource.ID)
itemView.resources.getString(R.string.local_source_badge)
else item.downloadCount.toString()
}
// Show the bade card if unread or downloads exists
badge_view.visibility = if (download_text.visibility == View.VISIBLE || unread_text
.visibility == View.VISIBLE) View.VISIBLE else View.GONE
// Show the angles divider if both unread and downloads exists
unread_angle.visibility = if (download_text.visibility == View.VISIBLE && unread_text
.visibility == View.VISIBLE) View.VISIBLE else View.GONE
if (unread_angle.visibility == View.VISIBLE) {
download_text.updatePaddingRelative(end = 8.dpToPx)
unread_text.updatePaddingRelative(start = 2.dpToPx)
}
else {
download_text.updatePaddingRelative(end = 5.dpToPx)
unread_text.updatePaddingRelative(start = 5.dpToPx)
}
play_layout.visibility = if (unread > 0) View.VISIBLE else View.GONE
play_layout.setOnClickListener { playButtonClicked() } play_layout.setOnClickListener { playButtonClicked() }
if (fixedSize) { if (fixedSize) {
@ -111,6 +86,12 @@ class LibraryGridHolder(
else { else {
compact_title.gone() compact_title.gone()
gradient.gone() gradient.gone()
val playLayout = play_layout.layoutParams as FrameLayout.LayoutParams
val buttonLayout = play_button.layoutParams as FrameLayout.LayoutParams
playLayout.gravity = Gravity.BOTTOM or Gravity.END
buttonLayout.gravity = Gravity.BOTTOM or Gravity.END
play_layout.layoutParams = playLayout
play_button.layoutParams = buttonLayout
} }
// Update the cover. // Update the cover.

View File

@ -46,7 +46,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryLayout: Preference
ViewGroup.LayoutParams.WRAP_CONTENT ViewGroup.LayoutParams.WRAP_CONTENT
) )
val marginParams = card.layoutParams as ConstraintLayout.LayoutParams val marginParams = card.layoutParams as ConstraintLayout.LayoutParams
marginParams.bottomMargin = 10.dpToPx marginParams.bottomMargin = 6.dpToPx
card.layoutParams = marginParams card.layoutParams = marginParams
constraint_layout.minHeight = 0 constraint_layout.minHeight = 0
cover_thumbnail.adjustViewBounds = false cover_thumbnail.adjustViewBounds = false

View File

@ -1,30 +1,16 @@
package eu.kanade.tachiyomi.ui.library package eu.kanade.tachiyomi.ui.library
import android.text.Html
import android.view.View import android.view.View
import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.source.LocalSource
import kotlinx.android.synthetic.main.catalogue_list_item.*
import com.bumptech.glide.signature.ObjectKey import com.bumptech.glide.signature.ObjectKey
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.MangaImpl import eu.kanade.tachiyomi.data.database.models.MangaImpl
import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.util.view.updatePaddingRelative import kotlinx.android.synthetic.main.catalogue_list_item.*
import kotlinx.android.synthetic.main.catalogue_grid_item.*
import kotlinx.android.synthetic.main.catalogue_list_item.badge_view
import kotlinx.android.synthetic.main.catalogue_list_item.cover_thumbnail
import kotlinx.android.synthetic.main.catalogue_list_item.download_text
import kotlinx.android.synthetic.main.catalogue_list_item.play_layout
import kotlinx.android.synthetic.main.catalogue_list_item.subtitle
import kotlinx.android.synthetic.main.catalogue_list_item.title
import kotlinx.android.synthetic.main.catalogue_list_item.unread_angle
import kotlinx.android.synthetic.main.catalogue_list_item.unread_text
import kotlinx.android.synthetic.main.catalogue_list_item.view.* import kotlinx.android.synthetic.main.catalogue_list_item.view.*
import kotlinx.android.synthetic.main.unread_download_badge.*
/** /**
* Class used to hold the displayed data of a manga in the library, like the cover or the title. * Class used to hold the displayed data of a manga in the library, like the cover or the title.
@ -51,63 +37,16 @@ class LibraryListHolder(
// Update the title of the manga. // Update the title of the manga.
title.text = item.manga.currentTitle() title.text = item.manga.currentTitle()
// Update the unread count and its visibility. badge_view.setUnreadDownload(
val unread = item.manga.unread if (item.unreadType == 1) item.manga.unread else (item.unreadType - 1),
if (item.manga.source == LocalSource.ID) -2 else item.downloadCount)
with(unread_text) {
text = unread.toString()
visibility = if (unread > 0) View.VISIBLE else View.GONE
}
// Update the download count or local status and its visibility.
with(download_text) {
visibility = if (item.downloadCount > -1 && (item.downloadCount > 0 || item.manga
.source == LocalSource.ID))
View.VISIBLE else View.GONE
text = if (item.manga.source == LocalSource.ID)
itemView.resources.getString(R.string.local_source_badge)
else item.downloadCount.toString()
}
// Show the bade card if unread or downloads exists
badge_view.visibility = if (download_text.visibility == View.VISIBLE || unread_text
.visibility == View.VISIBLE) View.VISIBLE else View.GONE
// Show the angles divider if both unread and downloads exists
unread_angle.visibility = if (download_text.visibility == View.VISIBLE && unread_text
.visibility == View.VISIBLE) View.VISIBLE else View.GONE
if (unread_angle.visibility == View.VISIBLE) {
download_text.updatePaddingRelative(end = 8.dpToPx)
unread_text.updatePaddingRelative(start = 2.dpToPx)
}
else {
download_text.updatePaddingRelative(end = 5.dpToPx)
unread_text.updatePaddingRelative(start = 5.dpToPx)
}
/* if (item.downloadCount > 0 || item.manga.source == LocalSource.ID) {
val downloadColor = convertColor(ContextCompat.getColor(itemView.context,
if (item.manga.source == LocalSource.ID) R.color.md_teal_500
else R.color.md_red_500))
val unreadColor = convertColor(itemView.context.getResourceColor(R.attr.colorAccent))
when {
unread > 0 && item.unreadType > -1 -> "<font color=" +
"#$downloadColor>$downloadText</font> | " +
"<font color=#$unreadColor>$subtitleText</font>"
subtitleText != null -> "<font color=#$downloadColor>$downloadText</font> | " +
subtitleText
else -> "<font color=#$downloadColor>$downloadText</font>"
}
}*/
/*else {
subtitleText
}*/
subtitle.text = item.manga.originalAuthor()?.trim() subtitle.text = item.manga.originalAuthor()?.trim()
subtitle.visibility = if (!item.manga.originalAuthor().isNullOrBlank()) View.VISIBLE subtitle.visibility = if (!item.manga.originalAuthor().isNullOrBlank()) View.VISIBLE
else View.GONE else View.GONE
play_layout.visibility = if (unread > 0) View.VISIBLE else View.GONE play_layout.visibility = if (item.manga.unread > 0 && item.unreadType > -1)
View.VISIBLE else View.GONE
play_layout.setOnClickListener { playButtonClicked() } play_layout.setOnClickListener { playButtonClicked() }
// Update the cover. // Update the cover.

View File

@ -3,7 +3,7 @@
android:color="@color/fullRippleColor"> android:color="@color/fullRippleColor">
<item android:id="@android:id/mask" <item android:id="@android:id/mask"
android:top="4dp" android:top="4dp"
android:bottom="4dp" android:bottom="0dp"
android:left="2dp" android:left="2dp"
android:right="2dp"> android:right="2dp">
<shape android:shape="rectangle"> <shape android:shape="rectangle">
@ -13,7 +13,7 @@
</item> </item>
<item <item
android:top="4dp" android:top="4dp"
android:bottom="4dp" android:bottom="0dp"
android:left="2dp" android:left="2dp"
android:right="2dp"> android:right="2dp">
<selector> <selector>

View File

@ -179,7 +179,7 @@
android:focusable="true" android:focusable="true"
android:gravity="start|center" android:gravity="start|center"
android:padding="5dp" android:padding="5dp"
android:text="@string/action_display_unread_text" android:text="@string/action_display_unread_badge"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2" android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
android:textSize="15sp" android:textSize="15sp"

View File

@ -179,7 +179,7 @@
android:focusable="true" android:focusable="true"
android:gravity="start|center" android:gravity="start|center"
android:padding="5dp" android:padding="5dp"
android:text="@string/action_display_unread_text" android:text="@string/action_display_unread_badge"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2" android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
android:textSize="15sp" android:textSize="15sp"

View File

@ -63,6 +63,7 @@
android:layout_height="30dp" android:layout_height="30dp"
android:layout_gravity="end" android:layout_gravity="end"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:layout_marginEnd="6dp" android:layout_marginEnd="6dp"
android:background="@drawable/round_play_background" android:background="@drawable/round_play_background"
android:contentDescription="@string/start_reading" android:contentDescription="@string/start_reading"
@ -114,75 +115,11 @@
android:layout_height="10dp" android:layout_height="10dp"
app:layout_constraintTop_toTopOf="@+id/card"/> app:layout_constraintTop_toTopOf="@+id/card"/>
<com.google.android.material.card.MaterialCardView <include layout="@layout/unread_download_badge"
android:id="@+id/badge_view"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="5dp"
android:layout_marginStart="2dp"
android:layout_marginTop="5dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@id/badge_guide" app:layout_constraintBottom_toBottomOf="@id/badge_guide"/>
android:visibility="gone"
tools:visibility="visible">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/download_text"
style="@style/TextAppearance.Regular.Caption.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/pale_green"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/md_black_1000"
android:textSize="13sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="1"
tools:paddingEnd="8dp"
tools:visibility="visible" />
<ImageView
android:id="@+id/unread_angle"
android:layout_width="10dp"
android:scaleType="fitXY"
android:layout_height="0dp"
android:src="@drawable/unread_angled_badge"
app:layout_constraintBottom_toBottomOf="@+id/unread_text"
app:layout_constraintEnd_toStartOf="@id/unread_text"
app:layout_constraintTop_toTopOf="@+id/unread_text" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/unread_text"
style="@style/TextAppearance.Regular.Caption.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/md_white_1000"
android:textSize="13sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/download_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/download_text"
app:layout_constraintTop_toTopOf="@+id/download_text"
tools:text="20"
tools:visibility="visible"
tools:paddingStart="2dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"

View File

@ -113,76 +113,16 @@
app:layout_constraintVertical_bias="0.0" app:layout_constraintVertical_bias="0.0"
tools:text="Manga artist" /> tools:text="Manga artist" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/badge_view" <include layout="@layout/unread_download_badge"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="2dp" android:layout_marginStart="2dp"
android:layout_marginTop="0dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:visibility="gone"
app:cardCornerRadius="10dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:cardElevation="5dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"/>
tools:visibility="visible">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/download_text"
style="@style/TextAppearance.Regular.Caption.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/pale_green"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/md_black_1000"
android:textSize="13sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:paddingEnd="8dp"
tools:text="1"
tools:visibility="visible" />
<ImageView
android:id="@+id/unread_angle"
android:layout_width="10dp"
android:layout_height="0dp"
android:scaleType="fitXY"
android:src="@drawable/unread_angled_badge"
app:layout_constraintBottom_toBottomOf="@+id/unread_text"
app:layout_constraintEnd_toStartOf="@id/unread_text"
app:layout_constraintTop_toTopOf="@+id/unread_text" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/unread_text"
style="@style/TextAppearance.Regular.Caption.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/md_white_1000"
android:textSize="13sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/download_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/download_text"
app:layout_constraintTop_toTopOf="@+id/download_text"
tools:paddingStart="2dp"
tools:text="20"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<androidx.constraintlayout.widget.Barrier <androidx.constraintlayout.widget.Barrier
android:id="@+id/bottom_line" android:id="@+id/bottom_line"

View File

@ -177,7 +177,7 @@
android:focusable="true" android:focusable="true"
android:gravity="start|center" android:gravity="start|center"
android:padding="5dp" android:padding="5dp"
android:text="@string/action_display_unread_text" android:text="@string/action_display_unread_badge"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2" android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
android:textSize="15sp" android:textSize="15sp"

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<eu.kanade.tachiyomi.ui.library.LibraryBadge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/badge_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="5dp"
android:layout_marginStart="2dp"
android:layout_marginTop="5dp"
android:visibility="gone"
tools:visibility="visible">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/download_text"
style="@style/TextAppearance.Regular.Caption.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/pale_green"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/md_black_1000"
android:textSize="13sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="1"
tools:paddingEnd="8dp"
tools:visibility="visible" />
<ImageView
android:id="@+id/unread_angle"
android:layout_width="10dp"
android:scaleType="fitXY"
android:layout_height="0dp"
android:src="@drawable/unread_angled_badge"
app:layout_constraintBottom_toBottomOf="@+id/unread_text"
app:layout_constraintEnd_toStartOf="@id/unread_text"
app:layout_constraintTop_toTopOf="@+id/unread_text" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/unread_text"
style="@style/TextAppearance.Regular.Caption.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/md_white_1000"
android:textSize="13sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/download_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/download_text"
app:layout_constraintTop_toTopOf="@+id/download_text"
tools:text="20"
tools:visibility="visible"
tools:paddingStart="2dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</eu.kanade.tachiyomi.ui.library.LibraryBadge>

View File

@ -94,11 +94,11 @@
<string name="action_add_to_home_screen">Add to home screen</string> <string name="action_add_to_home_screen">Add to home screen</string>
<string name="action_display_mode">Display mode</string> <string name="action_display_mode">Display mode</string>
<string name="action_display">Display</string> <string name="action_display">Display</string>
<string name="action_display_comfy_grid">Comfy Grid</string> <string name="action_display_comfy_grid">Comfortable</string>
<string name="action_display_grid">Compact Grid</string> <string name="action_display_grid">Compact Grid</string>
<string name="action_display_list">List</string> <string name="action_display_list">List</string>
<string name="action_display_download_badge">Download badges</string> <string name="action_display_download_badge">Download badges</string>
<string name="action_display_unread_text">Unread text</string> <string name="action_display_unread_badge">Unread badges</string>
<string name="action_display_all_unread">All unread</string> <string name="action_display_all_unread">All unread</string>
<string name="action_display_any_unread">Any unread</string> <string name="action_display_any_unread">Any unread</string>
<string name="action_display_hide_unread">Hide unread</string> <string name="action_display_hide_unread">Hide unread</string>