mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-14 05:15:10 +01:00
LibraryBadge clean up (#209)
* adjust badge colors to use color properties specific to badges clean up library badge with existing and new view extensions * fix line that should have been deleted in tracksearch
This commit is contained in:
parent
5e5ab8df6b
commit
d4449c1d03
@ -1,15 +1,17 @@
|
||||
package eu.kanade.tachiyomi.ui.library
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatColor
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import eu.kanade.tachiyomi.util.view.gone
|
||||
import eu.kanade.tachiyomi.util.view.isNotGone
|
||||
import eu.kanade.tachiyomi.util.view.isVisible
|
||||
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
|
||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||
import kotlinx.android.synthetic.main.unread_download_badge.view.*
|
||||
|
||||
class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||
@ -17,39 +19,43 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
||||
|
||||
fun setUnreadDownload(unread: Int, downloads: Int, showTotalChapters: Boolean) {
|
||||
// Update the unread count and its visibility.
|
||||
with(unread_text) {
|
||||
text = if (unread == -1) "0" else unread.toString()
|
||||
setTextColor(if (unread == -1 && !showTotalChapters)
|
||||
context.getResourceColor(android.R.attr.colorAccent)
|
||||
else Color.WHITE)
|
||||
setBackgroundColor(
|
||||
if (showTotalChapters) ContextCompat.getColor(context, R.color.material_deep_purple_500)
|
||||
else context.getResourceColor(android.R.attr.colorAccent))
|
||||
visibility = when {
|
||||
unread > 0 || unread == -1 || showTotalChapters -> View.VISIBLE
|
||||
else -> View.GONE
|
||||
|
||||
val unreadBadgeBackground = when (showTotalChapters) {
|
||||
true -> context.contextCompatColor(R.color.total_badge)
|
||||
false -> context.contextCompatColor(R.color.unread_badge)
|
||||
}
|
||||
|
||||
with(unread_text) {
|
||||
visibleIf(unread > 0 || unread == -1 || showTotalChapters)
|
||||
|
||||
text = if (unread == -1) "0" else unread.toString()
|
||||
setTextColor(
|
||||
when (unread == -1 && !showTotalChapters) {
|
||||
true -> context.contextCompatColor(R.color.unread_badge) // hide the 0 in the badge
|
||||
false -> context.contextCompatColor(R.color.unread_badge_text)
|
||||
}
|
||||
)
|
||||
setBackgroundColor(unreadBadgeBackground)
|
||||
}
|
||||
|
||||
// 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)
|
||||
visibleIf(downloads == -2 || downloads > 0)
|
||||
text = if (downloads == -2) {
|
||||
resources.getString(R.string.local)
|
||||
else downloads.toString()
|
||||
} else {
|
||||
downloads.toString()
|
||||
}
|
||||
}
|
||||
|
||||
// Show the bade card if unread or downloads exists
|
||||
visibility = if (download_text.visibility == View.VISIBLE || unread_text
|
||||
.visibility != View.GONE) View.VISIBLE else View.GONE
|
||||
// Show the badge card if unread or downloads exists
|
||||
this.visibleIf(download_text.isVisible() || unread_text.isNotGone())
|
||||
|
||||
// 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
|
||||
unread_angle.setColorFilter(
|
||||
if (showTotalChapters) ContextCompat.getColor(context, R.color.material_deep_purple_500)
|
||||
else context.getResourceColor(android.R.attr.colorAccent))
|
||||
if (unread_angle.visibility == View.VISIBLE) {
|
||||
unread_angle.visibleIf(download_text.isVisible() && unread_text.isNotGone())
|
||||
|
||||
unread_angle.setColorFilter(unreadBadgeBackground)
|
||||
if (unread_angle.isVisible()) {
|
||||
download_text.updatePaddingRelative(end = 8.dpToPx)
|
||||
unread_text.updatePaddingRelative(start = 2.dpToPx)
|
||||
} else {
|
||||
@ -63,10 +69,10 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
||||
}
|
||||
|
||||
fun setInLibrary(inLibrary: Boolean) {
|
||||
visibility = if (inLibrary) View.VISIBLE else View.GONE
|
||||
unread_angle.visibility = View.GONE
|
||||
this.visibleIf(inLibrary)
|
||||
unread_angle.gone()
|
||||
unread_text.updatePaddingRelative(start = 5.dpToPx)
|
||||
unread_text.visibility = if (inLibrary) View.VISIBLE else View.GONE
|
||||
unread_text.visibleIf(inLibrary)
|
||||
unread_text.text = resources.getText(R.string.in_library)
|
||||
}
|
||||
}
|
||||
|
@ -61,7 +61,6 @@ class TrackSearchDialog : DialogController {
|
||||
val dialog = MaterialDialog(activity!!).apply {
|
||||
customView(viewRes = R.layout.track_search_dialog, scrollable = false)
|
||||
negativeButton(android.R.string.cancel)
|
||||
positiveButton(R.string.clear) { onPositiveButtonClick() }
|
||||
if (wasPreviouslyTracked) {
|
||||
positiveButton(R.string.clear) { onPositiveButtonClick() }
|
||||
}
|
||||
|
@ -97,6 +97,14 @@ inline fun View.gone() {
|
||||
visibility = View.GONE
|
||||
}
|
||||
|
||||
inline fun View.isVisible(): Boolean {
|
||||
return visibility == View.VISIBLE
|
||||
}
|
||||
|
||||
inline fun View.isNotGone(): Boolean {
|
||||
return visibility != View.GONE
|
||||
}
|
||||
|
||||
inline fun View.visibleIf(show: Boolean) {
|
||||
visibility = if (show) View.VISIBLE else View.GONE
|
||||
}
|
||||
|
@ -8,8 +8,8 @@
|
||||
tools:background="@color/red_error">
|
||||
|
||||
<path
|
||||
android:fillColor="@color/colorAccent"
|
||||
android:fillColor="@color/unread_badge"
|
||||
android:pathData="M0 20 L100 0 L100 20 Z"
|
||||
android:strokeColor="@color/colorAccent" />
|
||||
android:strokeColor="@color/unread_badge" />
|
||||
|
||||
</vector>
|
@ -21,12 +21,12 @@
|
||||
style="@style/TextAppearance.Regular.Caption.Light"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/download_badge"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/download_badge_text"
|
||||
android:textSize="13sp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
@ -44,19 +44,20 @@
|
||||
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" />
|
||||
app:layout_constraintTop_toTopOf="@+id/unread_text"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<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:background="@color/unread_badge"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:textColor="@color/unread_badge_text"
|
||||
android:textSize="13sp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/download_text"
|
||||
|
@ -16,6 +16,14 @@
|
||||
<color name="actionModeShadow">@color/md_black_1000_38</color>
|
||||
<color name="gray_button">#404040</color>
|
||||
|
||||
<color name="unread_badge">@color/colorAccent</color>
|
||||
<color name="unread_badge_text">@color/md_white_1000</color>
|
||||
<color name="download_badge">@color/pale_green</color>
|
||||
<color name="download_badge_text">@color/md_black_1000</color>
|
||||
<color name="total_badge">@color/material_deep_purple_500</color>
|
||||
<color name="total_badge_text">@color/md_white_1000</color>
|
||||
|
||||
|
||||
<color name="colorAmoledPrimary">@color/md_black_1000</color>
|
||||
|
||||
<color name="textColorPrimary">@color/md_black_1000_87</color>
|
||||
|
Loading…
Reference in New Issue
Block a user