From 06fc43a4543d47ba484ea6e61d765c805c177cbb Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Tue, 9 Dec 2025 14:20:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gamedog/vididin/beans/ZeroBuyResp.kt | 3 ++ .../vididin/features/zero/ZeroItemAdapter.kt | 41 ++++++++++++++++++- app/src/main/res/layout/activity_zerobuy.xml | 2 +- .../main/res/layout/layout_item_zerobuy.xml | 2 + .../architecture/widget/CustomTitleBar.kt | 11 +++-- 5 files changed, 53 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt b/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt index 6df0581..b2c41ea 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt @@ -28,6 +28,9 @@ data class ZeroBuyItem ( val winners: List? = null, val redeem_code: String? = null, val completed: Boolean = false, + + // Not from server + var mCountDownTimeStr: String = "" ) diff --git a/app/src/main/java/com/gamedog/vididin/features/zero/ZeroItemAdapter.kt b/app/src/main/java/com/gamedog/vididin/features/zero/ZeroItemAdapter.kt index c3b100d..a91c40b 100644 --- a/app/src/main/java/com/gamedog/vididin/features/zero/ZeroItemAdapter.kt +++ b/app/src/main/java/com/gamedog/vididin/features/zero/ZeroItemAdapter.kt @@ -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 { + return SpUtil.instance().getList(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?) { + 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(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 } } } diff --git a/app/src/main/res/layout/activity_zerobuy.xml b/app/src/main/res/layout/activity_zerobuy.xml index 8d5d080..378a8f3 100644 --- a/app/src/main/res/layout/activity_zerobuy.xml +++ b/app/src/main/res/layout/activity_zerobuy.xml @@ -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" > 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) }