mirror of
https://github.com/rebelonion/Dantotsu.git
synced 2026-01-11 18:06:16 +00:00
feat: banner and cover for airing notifications
This commit is contained in:
@@ -111,6 +111,8 @@ data class Notification(
|
||||
val thread: Thread? = null,
|
||||
@SerialName("comment")
|
||||
val comment: ThreadComment? = null,
|
||||
val image: String? = null,
|
||||
val banner: String? = null,
|
||||
) : java.io.Serializable
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -146,7 +146,8 @@ class SubscriptionHelper {
|
||||
val isAdult: Boolean,
|
||||
val id: Int,
|
||||
val name: String,
|
||||
val image: String?
|
||||
val image: String?,
|
||||
val banner: String? = null
|
||||
) : java.io.Serializable
|
||||
|
||||
private const val SUBSCRIPTIONS = "subscriptions"
|
||||
@@ -188,7 +189,8 @@ class SubscriptionHelper {
|
||||
media.isAdult,
|
||||
media.id,
|
||||
media.userPreferredName,
|
||||
media.cover
|
||||
media.cover,
|
||||
media.banner
|
||||
)
|
||||
data[media.id] = new
|
||||
}
|
||||
|
||||
@@ -122,7 +122,9 @@ class SubscriptionNotificationTask : Task {
|
||||
SubscriptionStore(
|
||||
media.name,
|
||||
text.first,
|
||||
media.id
|
||||
media.id,
|
||||
image = media.image,
|
||||
banner = media.banner
|
||||
)
|
||||
)
|
||||
PrefManager.setVal(PrefName.UnreadCommentNotifications,
|
||||
@@ -238,9 +240,7 @@ class SubscriptionNotificationTask : Task {
|
||||
if (newStore.size >= 100) {
|
||||
newStore.remove(newStore.minByOrNull { it.time })
|
||||
}
|
||||
if (newStore.any { it.title == notification.title && it.content == notification.content}) {
|
||||
return
|
||||
}
|
||||
|
||||
newStore.add(notification)
|
||||
PrefManager.setVal(PrefName.SubscriptionNotificationStore, newStore)
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ data class SubscriptionStore(
|
||||
val mediaId: Int,
|
||||
val type: String = "SUBSCRIPTION",
|
||||
val time: Long = System.currentTimeMillis(),
|
||||
val image: String? = "",
|
||||
val banner: String? = "",
|
||||
) : java.io.Serializable {
|
||||
companion object {
|
||||
private const val serialVersionUID = 1L
|
||||
|
||||
@@ -235,6 +235,8 @@ class NotificationActivity : AppCompatActivity() {
|
||||
notificationType = it.type,
|
||||
context = it.title + ": " + it.content,
|
||||
createdAt = (it.time / 1000L).toInt(),
|
||||
image = it.image,
|
||||
banner = it.banner
|
||||
)
|
||||
newNotifications += notification
|
||||
}
|
||||
|
||||
@@ -32,12 +32,12 @@ class NotificationItem(
|
||||
return ItemNotificationBinding.bind(view)
|
||||
}
|
||||
|
||||
private fun image(user: Boolean = false, commentNotification: Boolean = false) {
|
||||
private fun image(user: Boolean = false, commentNotification: Boolean = false, newRelease: Boolean = false) {
|
||||
|
||||
val cover = if (user) notification.user?.bannerImage
|
||||
?: notification.user?.avatar?.medium else notification.media?.bannerImage
|
||||
?: notification.media?.coverImage?.large
|
||||
blurImage(binding.notificationBannerImage, cover)
|
||||
blurImage(binding.notificationBannerImage, if (newRelease) notification.banner else cover)
|
||||
|
||||
val defaultHeight = 153.toPx
|
||||
|
||||
@@ -64,7 +64,7 @@ class NotificationItem(
|
||||
binding.notificationCover.visibility = View.VISIBLE
|
||||
binding.notificationCoverUser.visibility = View.VISIBLE
|
||||
binding.notificationCoverUserContainer.visibility = View.GONE
|
||||
binding.notificationCover.loadImage(notification.media?.coverImage?.large)
|
||||
binding.notificationCover.loadImage(if (newRelease) notification.image else notification.media?.coverImage?.large)
|
||||
binding.notificationBannerImage.layoutParams.height = defaultHeight
|
||||
binding.notificationGradiant.layoutParams.height = defaultHeight
|
||||
(binding.notificationTextContainer.layoutParams as ViewGroup.MarginLayoutParams).marginStart =
|
||||
@@ -334,7 +334,7 @@ class NotificationItem(
|
||||
}
|
||||
|
||||
NotificationType.SUBSCRIPTION -> {
|
||||
image(user = true, commentNotification = true)
|
||||
image(newRelease = true)
|
||||
binding.notificationCoverUser.setOnClickListener {
|
||||
clickCallback(
|
||||
notification.mediaId ?: 0, null, NotificationClickType.MEDIA
|
||||
|
||||
Reference in New Issue
Block a user