diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/PrivateRedPackageEditorFragment.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/PrivateRedPackageEditorFragment.kt index 567f94409..25e3a62ec 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/PrivateRedPackageEditorFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/PrivateRedPackageEditorFragment.kt @@ -5,6 +5,8 @@ import androidx.core.view.isVisible import com.chuhai.utils.ktx.addDisableFilter import com.chuhai.utils.ktx.getColorById import com.chuhai.utils.ktx.singleClick +import com.chuhai.utils.ktx.toStringRes +import com.chuhai.utils.log.ILog import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseBindingFragment import com.yizhuan.erban.databinding.RedPackagePrivateFragmentBinding @@ -25,13 +27,16 @@ import com.yizhuan.xchat_android_library.utils.ResUtil import com.yizhuan.xchat_android_library.utils.SingleToastUtil import com.yizhuan.xchat_android_library.utils.codec.DESUtils import okhttp3.internal.toLongOrDefault +import java.math.RoundingMode +import java.text.NumberFormat /** * Created by Max on 2023/10/23 12:14 * Desc: 厅内红包 **/ @ActLayoutRes(R.layout.red_package_private_fragment) -class PrivateRedPackageEditorFragment : BaseBindingFragment() { +class PrivateRedPackageEditorFragment : BaseBindingFragment(), + ILog { private var passWordFragment: GiveGoldPassWordFragment? = null @@ -43,6 +48,7 @@ class PrivateRedPackageEditorFragment : BaseBindingFragment AVRoomActivity.start(context, notifyInfo.getRoomUid(), - AVRoomActivity.FROM_TYPE_ALL_RED, notifyInfo.getSendUserNick(), notifyInfo); - contentContainer.setOnClickListener(v -> { - if (AvRoomDataManager.get().isOwnerOnMic() && AvRoomDataManager.get().getRoomId() != notifyInfo.getRoomUid()) { - new DialogManager(context).showOkCancelDialog(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_05), true, listener); - } else { - listener.onOk(); + } else{ + long endTime; + notifyInfo.getEndTime(); + if (notifyInfo.getEndTime() != null) { + // 2.2.0版本后 新增动态失效时间 + endTime = notifyInfo.getEndTime(); + } else { + // 可能是2.2.0版本前:失效时间固定为30分 + endTime = message.getTime() + halfHour; + } + if (CurrentTimeUtils.getCurrentTime() < endTime) { + tvNickname.setText(notifyInfo.getSendUserNick()); + tvAll.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_03)); + tvAll.setVisibility(View.VISIBLE); + tvTip.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_04)); + contentContainer.setAlpha(1f); + DialogManager.OkCancelDialogListener listener = () -> AVRoomActivity.start(context, notifyInfo.getRoomUid(), + AVRoomActivity.FROM_TYPE_ALL_RED, notifyInfo.getSendUserNick(), notifyInfo); + contentContainer.setOnClickListener(v -> { + if (AvRoomDataManager.get().isOwnerOnMic() && AvRoomDataManager.get().getRoomId() != notifyInfo.getRoomUid()) { + new DialogManager(context).showOkCancelDialog(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_05), true, listener); + } else { + listener.onOk(); + } } - - } - ); - } else {//已失效 - tvNickname.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_06)); - tvAll.setVisibility(View.GONE); - tvTip.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_07)); - contentContainer.setAlpha(0.5f); + ); + } else { + //已失效 + tvNickname.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_06)); + tvAll.setVisibility(View.GONE); + tvTip.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_07)); + contentContainer.setAlpha(0.5f); + } } - } diff --git a/app/src/main/res/layout/red_package_private_fragment.xml b/app/src/main/res/layout/red_package_private_fragment.xml index 707c0cc84..5f6066d5c 100644 --- a/app/src/main/res/layout/red_package_private_fragment.xml +++ b/app/src/main/res/layout/red_package_private_fragment.xml @@ -1,6 +1,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> 搶紅包條件 輸入指定彈幕內容(最多10個字符) 發紅包 - 未搶完的紅包將在12小時後返還你的錢包 + 未搶完的紅包將在%s小時後返還你的錢包 立即生效 限時生效 恭喜發財,大吉大利! diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/RedEnvelopeConfig.java b/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/RedEnvelopeConfig.java index c373296f5..99b14e355 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/RedEnvelopeConfig.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/RedEnvelopeConfig.java @@ -18,6 +18,11 @@ public class RedEnvelopeConfig implements Serializable { private int serverRedEnvelopeMaxNum; private int roomRedEnvelopeMinAmount; private int serverRedEnvelopeMinAmount; + + /** + * 红包结束时间(秒) + */ + private long endSecond; /** * 红包显示开关 */ @@ -51,6 +56,7 @@ public class RedEnvelopeConfig implements Serializable { ", serverRedEnvelopeMaxAmount=" + serverRedEnvelopeMaxAmount + ", roomRedEnvelopeMaxAmount=" + roomRedEnvelopeMaxAmount + ", redEnvelopeSwitch=" + redEnvelopeSwitch + + ", endSecond=" + endSecond + '}'; } } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageModel.kt b/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageModel.kt index 10b91e43d..4963c5826 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageModel.kt +++ b/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageModel.kt @@ -73,7 +73,8 @@ object RedPackageModel { kind = item.kind, beginTime = item.beginTime, redEnvelopeNum = it.size.toLong(), - validityType = item.validityType + validityType = item.validityType, + endTime = item.endTime ) } } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageNotifyInfo.kt b/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageNotifyInfo.kt index b71239dae..a2d4bb783 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageNotifyInfo.kt +++ b/core/src/main/java/com/yizhuan/xchat_android_core/redpackage/RedPackageNotifyInfo.kt @@ -58,4 +58,8 @@ data class RedPackageNotifyInfo( */ var validityType: Int?, + /** + * 失效时间(毫秒) + */ + var endTime: Long? ) : Serializable \ No newline at end of file