feat: banner and cover for airing notifications
This commit is contained in:
parent
66805bdf05
commit
039e3d63fe
6 changed files with 18 additions and 10 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue