This commit is contained in:
renhaoting 2025-12-09 14:20:09 +08:00
parent a0ee013152
commit 06fc43a454
5 changed files with 53 additions and 6 deletions

View File

@ -28,6 +28,9 @@ data class ZeroBuyItem (
val winners: List<Int>? = null,
val redeem_code: String? = null,
val completed: Boolean = false,
// Not from server
var mCountDownTimeStr: String = ""
)

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.zero
import android.os.CountDownTimer
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.view.isVisible
@ -27,6 +28,42 @@ class ZeroItemAdapter(private val joinCallback: (itemId: Int)->Unit) : ListAdapt
holder.bind(getItem(position))
}
private fun getJoinedIdList(): List<Int> {
return SpUtil.instance().getList<Int>(SpUtil.KEY_ZEROBUY_JOINED_ACTIVITY_IDS)
}
private fun startCountDownTimer(targetTimeMs: Long) {
val countDownDuration = targetTimeMs - System.currentTimeMillis()
val mCountDownTimer = object : CountDownTimer(countDownDuration, 1000) {
override fun onTick(millisUntilFinished: Long) {
val joinedIds = getJoinedIdList()
currentList.forEach { item->
if (joinedIds.contains(item.id) && !item.completed) {
var remainSec = (item.end_time - System.currentTimeMillis()) / 1000
//item.mCountDownTimeStr =
}
}
/*long totalSeconds = millisUntilFinished / 1000;
long minutes = totalSeconds / 60;
long seconds = totalSeconds % 60;
String timeText = String . format ("%02d:%02d", minutes, seconds);
*/
}
override fun onFinish() {
}
}
mCountDownTimer.start()
}
override fun submitList(list: List<ZeroBuyItem?>?) {
val sortedList = list?.sortedBy { it?.end_time }
super.submitList(sortedList)
}
inner class ViewHolder(private val binding: ViewBinding) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: ZeroBuyItem) {
binding.tvTitle.text = item.title
@ -50,12 +87,12 @@ class ZeroItemAdapter(private val joinCallback: (itemId: Int)->Unit) : ListAdapt
// judge state
val joinedIds = SpUtil.instance().getList<Int>(SpUtil.KEY_ZEROBUY_JOINED_ACTIVITY_IDS)
val joinedIds = getJoinedIdList()
val hasJoined = joinedIds.contains(item.id)
val hasCompleted = item.completed
flBottomBut.isVisible = !hasJoined
tvParticipateAlready.isVisible = hasJoined
tvRemainTime.isVisible = hasJoined && !hasCompleted
//tvRemainTime.isVisible = hasJoined && !hasCompleted
}
}
}

View File

@ -74,7 +74,7 @@ android:layout_height="wrap_content" >
android:paddingTop="15dp"
android:background="@drawable/zero_bg_4_items"
android:layout_marginHorizontal="15dp"
android:layout_marginBottom="20dp"
android:layout_marginBottom="10dp"
>
<!--第一行两个-->
<androidx.recyclerview.widget.RecyclerView

View File

@ -99,6 +99,7 @@
android:textStyle="bold"
android:textSize="14sp"
android:text="@string/participar_ed"
android:layout_marginTop="10dp"
/>
<androidx.appcompat.widget.AppCompatTextView
@ -109,6 +110,7 @@
android:textStyle="bold"
android:textSize="12sp"
android:text="@string/remain_time"
android:visibility="gone"
/>
<FrameLayout

View File

@ -94,18 +94,23 @@ class CustomTitleBar @JvmOverloads constructor(
layoutParam.marginEnd = 15.dp
layoutParam.gravity = Gravity.CENTER_VERTICAL
newImageView.isClickable = true
newImageView.setOnClickListener { onClicked }
mBinding.llRightRoot.addView(newImageView, layoutParam)
}
fun addRightText(textRes: Int, onClicked: ()->Unit) {
val newImageView = AppCompatTextView(context)
newImageView.text = ResUtil.getString(textRes)
val newTextView = AppCompatTextView(context)
newTextView.text = ResUtil.getString(textRes)
var layoutParam = LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)
layoutParam.marginEnd = 15.dp
layoutParam.gravity = Gravity.CENTER_VERTICAL
newTextView.isClickable = true
newTextView.setOnClickListener { onClicked }
mBinding.llRightRoot.addView(newImageView, layoutParam)
mBinding.llRightRoot.addView(newTextView, layoutParam)
}