feat(user-channel): 유저 채널의 라이브 아이템 UI 수정

This commit is contained in:
2025-10-16 19:00:46 +09:00
parent 2b8b581082
commit 9ba053b807
11 changed files with 407 additions and 149 deletions

View File

@@ -14,10 +14,8 @@ import kr.co.vividnext.sodalive.databinding.ItemMyLiveReservationBinding
import kr.co.vividnext.sodalive.databinding.LiveBookingCardBinding
import kr.co.vividnext.sodalive.extensions.dpToPx
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.extensions.parseUtcIsoLocalDateTime
import kr.co.vividnext.sodalive.live.GetRoomListResponse
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.TimeZone
class LiveReservationAdapter(
private val isMain: Boolean = false,
@@ -82,7 +80,7 @@ class LiveReservationAdapter(
@SuppressLint("SetTextI18n")
fun bind(item: GetRoomListResponse) {
val dateMap = parseUtcIsoLocalDateTime(item.beginDateTimeUtc)
val dateMap = item.beginDateTimeUtc.parseUtcIsoLocalDateTime()
Glide
.with(context)
@@ -137,7 +135,7 @@ class LiveReservationAdapter(
View.GONE
}
val dateMap = parseUtcIsoLocalDateTime(item.beginDateTimeUtc)
val dateMap = item.beginDateTimeUtc.parseUtcIsoLocalDateTime()
Glide
.with(context)
@@ -173,32 +171,4 @@ class LiveReservationAdapter(
binding.root.setOnClickListener { onClick(item) }
}
}
private fun parseUtcIsoLocalDateTime(utcString: String): Map<String, String> {
// 1. 서버가 내려준 포맷: "yyyy-MM-dd'T'HH:mm:ss"
val utcFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault())
utcFormat.timeZone = TimeZone.getTimeZone("UTC") // 서버가 UTC 기준으로 보낸 것
// 2. Date 객체 생성
val date = utcFormat.parse(utcString)!!
// 3. 월 (1~12)
val month = SimpleDateFormat("M", Locale.getDefault()).format(date)
// 4. 일 (1~31)
val day = SimpleDateFormat("d", Locale.getDefault()).format(date)
// 5. 요일 (예: "Mon", "목")
val dayOfWeek = SimpleDateFormat("E", Locale.getDefault()).format(date)
// 6. 시간 (예: "AM 05:00")
val time = SimpleDateFormat("a hh:mm", Locale.getDefault()).format(date)
return mapOf(
"month" to month,
"day" to day,
"dayOfWeek" to dayOfWeek,
"time" to time
)
}
}