From 3f7480fb7385c39381b1c6c8976a755c901a317d Mon Sep 17 00:00:00 2001 From: sanao Date: Wed, 11 Oct 2023 02:17:06 +0900 Subject: [PATCH] Displayed the date of each announcement. (#4041) ## Issue Close #3967 # What I did - Displayed the date of each announcement. - Date is placed in the lower left corner of the Announcement - Supported date format internationalization using getBestDateTimePattern # Screenshot ## Note I am not good at English so I use machine translation a bit. So, you may find my writing style a little strange... --- .../announcements/AnnouncementAdapter.kt | 5 +++++ app/src/main/res/layout/item_announcement.xml | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt index 657254807..4c903ee81 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt @@ -30,6 +30,7 @@ import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemAnnouncementBinding import com.keylesspalace.tusky.entity.Announcement import com.keylesspalace.tusky.interfaces.LinkListener +import com.keylesspalace.tusky.util.AbsoluteTimeFormatter import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.EmojiSpan import com.keylesspalace.tusky.util.emojify @@ -51,6 +52,8 @@ class AnnouncementAdapter( private val animateEmojis: Boolean = false ) : RecyclerView.Adapter>() { + private val absoluteTimeFormatter = AbsoluteTimeFormatter() + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindingHolder { val binding = ItemAnnouncementBinding.inflate(LayoutInflater.from(parent.context), parent, false) return BindingHolder(binding) @@ -60,6 +63,8 @@ class AnnouncementAdapter( override fun onBindViewHolder(holder: BindingHolder, position: Int) { val item = items[position] + holder.binding.announcementDate.text = absoluteTimeFormatter.format(item.publishedAt, false) + val text = holder.binding.text val chips = holder.binding.chipGroup val addReactionChip = holder.binding.addReactionChip diff --git a/app/src/main/res/layout/item_announcement.xml b/app/src/main/res/layout/item_announcement.xml index 6aa767517..2f059a38b 100644 --- a/app/src/main/res/layout/item_announcement.xml +++ b/app/src/main/res/layout/item_announcement.xml @@ -22,7 +22,8 @@ android:padding="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/text"> + app:layout_constraintTop_toBottomOf="@id/text" + app:layout_constraintBottom_toTopOf="@id/announcementDate"> + +