Skip to content
Snippets Groups Projects
Commit 55d3e74c authored by Taras's avatar Taras
Browse files

Image view holders, ui, binding

parent 38e84807
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,9 @@ import androidx.media3.exoplayer.ExoPlayer
import org.futo.circles.core.model.Post
import org.futo.circles.core.model.PostContentType
import org.futo.circles.core.model.TimelineLoadingItem
import org.futo.circles.feature.direct.timeline.list.holder.DmMyImageMessageViewHolder
import org.futo.circles.feature.direct.timeline.list.holder.DmMyTextMessageViewHolder
import org.futo.circles.feature.direct.timeline.list.holder.DmOtherImageMessageViewHolder
import org.futo.circles.feature.direct.timeline.list.holder.DmOtherTextMessageViewHolder
import org.futo.circles.feature.timeline.base.BaseTimelineAdapter
import org.futo.circles.feature.timeline.base.TimelineListItemViewHolder
......@@ -51,8 +53,8 @@ class DMTimelineAdapter(
return when (DmTimelineViewType.entries[viewType]) {
DmTimelineViewType.MY_TEXT -> DmMyTextMessageViewHolder(parent)
DmTimelineViewType.OTHER_TEXT -> DmOtherTextMessageViewHolder(parent)
DmTimelineViewType.MY_IMAGE -> TODO()
DmTimelineViewType.OTHER_IMAGE -> TODO()
DmTimelineViewType.MY_IMAGE -> DmMyImageMessageViewHolder(parent)
DmTimelineViewType.OTHER_IMAGE -> DmOtherImageMessageViewHolder(parent)
DmTimelineViewType.MY_VIDEO -> TODO()
DmTimelineViewType.OTHER_VIDEO -> TODO()
DmTimelineViewType.OTHER -> OtherEventPostViewHolder(parent, postOptionsListener)
......
package org.futo.circles.feature.direct.timeline.list.holder
import android.text.format.DateFormat
import android.view.ViewGroup
import org.futo.circles.core.base.list.ViewBindingHolder
import org.futo.circles.core.model.MediaContent
import org.futo.circles.core.model.Post
import org.futo.circles.core.model.PostListItem
import org.futo.circles.databinding.ListItemMyImageDmBinding
import org.futo.circles.feature.timeline.base.TimelineListItemViewHolder
import org.futo.circles.feature.timeline.list.holder.MediaViewHolder
import java.util.Date
class DmMyImageMessageViewHolder(parent: ViewGroup) : TimelineListItemViewHolder(
inflate(parent, ListItemMyImageDmBinding::inflate)
), MediaViewHolder {
private companion object : ViewBindingHolder
private val binding = baseBinding as ListItemMyImageDmBinding
override fun bind(item: PostListItem) {
val post = (item as? Post) ?: return
val content = post.content as? MediaContent ?: return
bindMediaCover(content, binding.ivMediaContent)
binding.tvTime.text =
DateFormat.format("MMM dd, h:mm a", Date(post.postInfo.getLastModifiedTimestamp()))
}
}
\ No newline at end of file
package org.futo.circles.feature.direct.timeline.list.holder
import android.text.format.DateFormat
import android.view.ViewGroup
import org.futo.circles.core.base.list.ViewBindingHolder
import org.futo.circles.core.model.MediaContent
import org.futo.circles.core.model.Post
import org.futo.circles.core.model.PostListItem
import org.futo.circles.databinding.ListItemOtherImageDmBinding
import org.futo.circles.feature.timeline.base.TimelineListItemViewHolder
import org.futo.circles.feature.timeline.list.holder.MediaViewHolder
import java.util.Date
class DmOtherImageMessageViewHolder(parent: ViewGroup) : TimelineListItemViewHolder(
inflate(parent, ListItemOtherImageDmBinding::inflate)
), MediaViewHolder {
private companion object : ViewBindingHolder
private val binding = baseBinding as ListItemOtherImageDmBinding
override fun bind(item: PostListItem) {
val post = (item as? Post) ?: return
val content = post.content as? MediaContent ?: return
bindMediaCover(content, binding.ivMediaContent)
binding.tvTime.text =
DateFormat.format("MMM dd, h:mm a", Date(post.postInfo.getLastModifiedTimestamp()))
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="36dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/ivBackground"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/chip_selected_color"
app:layout_constraintBottom_toBottomOf="@id/tvTime"
app:layout_constraintEnd_toEndOf="@id/ivMediaContent"
app:layout_constraintStart_toStartOf="@id/ivMediaContent"
app:layout_constraintTop_toTopOf="@id/ivMediaContent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.Message.My" />
<ImageView
android:id="@+id/ivMediaContent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/media_post_background"
android:foreground="?attr/selectableItemBackground"
android:padding="8dp"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvTime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:paddingBottom="4dp"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivMediaContent"
tools:text="sadasdasdasdasdasdasdasdasdasd" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="36dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/ivBackground"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/post_card_background_color"
app:layout_constraintBottom_toBottomOf="@id/tvTime"
app:layout_constraintEnd_toEndOf="@id/ivMediaContent"
app:layout_constraintStart_toStartOf="@id/ivMediaContent"
app:layout_constraintTop_toTopOf="@id/ivMediaContent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.Message.Other" />
<ImageView
android:id="@+id/ivMediaContent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/media_post_background"
android:foreground="?attr/selectableItemBackground"
android:padding="8dp"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvTime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:paddingBottom="4dp"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivMediaContent"
tools:text="sadasdasdasdasdasdasdasdasdasd" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment