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 <image src="https://github.com/tuskyapp/Tusky/assets/62137820/7c124183-1a13-4cae-8667-ff82ca99b60c" width="500"/> ## Note I am not good at English so I use machine translation a bit. So, you may find my writing style a little strange...
This commit is contained in:
parent
150d3854bc
commit
3f7480fb73
2 changed files with 19 additions and 1 deletions
|
@ -30,6 +30,7 @@ import com.keylesspalace.tusky.R
|
||||||
import com.keylesspalace.tusky.databinding.ItemAnnouncementBinding
|
import com.keylesspalace.tusky.databinding.ItemAnnouncementBinding
|
||||||
import com.keylesspalace.tusky.entity.Announcement
|
import com.keylesspalace.tusky.entity.Announcement
|
||||||
import com.keylesspalace.tusky.interfaces.LinkListener
|
import com.keylesspalace.tusky.interfaces.LinkListener
|
||||||
|
import com.keylesspalace.tusky.util.AbsoluteTimeFormatter
|
||||||
import com.keylesspalace.tusky.util.BindingHolder
|
import com.keylesspalace.tusky.util.BindingHolder
|
||||||
import com.keylesspalace.tusky.util.EmojiSpan
|
import com.keylesspalace.tusky.util.EmojiSpan
|
||||||
import com.keylesspalace.tusky.util.emojify
|
import com.keylesspalace.tusky.util.emojify
|
||||||
|
@ -51,6 +52,8 @@ class AnnouncementAdapter(
|
||||||
private val animateEmojis: Boolean = false
|
private val animateEmojis: Boolean = false
|
||||||
) : RecyclerView.Adapter<BindingHolder<ItemAnnouncementBinding>>() {
|
) : RecyclerView.Adapter<BindingHolder<ItemAnnouncementBinding>>() {
|
||||||
|
|
||||||
|
private val absoluteTimeFormatter = AbsoluteTimeFormatter()
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindingHolder<ItemAnnouncementBinding> {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindingHolder<ItemAnnouncementBinding> {
|
||||||
val binding = ItemAnnouncementBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
val binding = ItemAnnouncementBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||||
return BindingHolder(binding)
|
return BindingHolder(binding)
|
||||||
|
@ -60,6 +63,8 @@ class AnnouncementAdapter(
|
||||||
override fun onBindViewHolder(holder: BindingHolder<ItemAnnouncementBinding>, position: Int) {
|
override fun onBindViewHolder(holder: BindingHolder<ItemAnnouncementBinding>, position: Int) {
|
||||||
val item = items[position]
|
val item = items[position]
|
||||||
|
|
||||||
|
holder.binding.announcementDate.text = absoluteTimeFormatter.format(item.publishedAt, false)
|
||||||
|
|
||||||
val text = holder.binding.text
|
val text = holder.binding.text
|
||||||
val chips = holder.binding.chipGroup
|
val chips = holder.binding.chipGroup
|
||||||
val addReactionChip = holder.binding.addReactionChip
|
val addReactionChip = holder.binding.addReactionChip
|
||||||
|
|
|
@ -22,7 +22,8 @@
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/text">
|
app:layout_constraintTop_toBottomOf="@id/text"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/announcementDate">
|
||||||
|
|
||||||
<com.google.android.material.chip.Chip
|
<com.google.android.material.chip.Chip
|
||||||
android:id="@+id/addReactionChip"
|
android:id="@+id/addReactionChip"
|
||||||
|
@ -39,4 +40,16 @@
|
||||||
|
|
||||||
</com.google.android.material.chip.ChipGroup>
|
</com.google.android.material.chip.ChipGroup>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/announcementDate"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:lineSpacingMultiplier="1.1"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/chipGroup"
|
||||||
|
/>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
Loading…
Reference in a new issue