fix:红包过期时间动态展示(发布、小秘书)
fix:调整全服红包文案字数限制
This commit is contained in:
@@ -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<RedPackagePrivateFragmentBinding>() {
|
||||
class PrivateRedPackageEditorFragment : BaseBindingFragment<RedPackagePrivateFragmentBinding>(),
|
||||
ILog {
|
||||
|
||||
private var passWordFragment: GiveGoldPassWordFragment? = null
|
||||
|
||||
@@ -43,6 +48,7 @@ class PrivateRedPackageEditorFragment : BaseBindingFragment<RedPackagePrivateFra
|
||||
mBinding.etText.addDisableFilter(" ", "\n")
|
||||
initTypeView()
|
||||
updateTimeView(true)
|
||||
initTips()
|
||||
}
|
||||
|
||||
override fun onSetListener() {
|
||||
@@ -58,6 +64,21 @@ class PrivateRedPackageEditorFragment : BaseBindingFragment<RedPackagePrivateFra
|
||||
}
|
||||
}
|
||||
|
||||
private fun initTips() {
|
||||
val time = InitialModel.get().cacheInitInfo?.redEnvelopeConfig?.endSecond
|
||||
if (time != null) {
|
||||
try {
|
||||
val hour = NumberFormat.getInstance().apply {
|
||||
maximumFractionDigits = 2
|
||||
roundingMode = RoundingMode.FLOOR
|
||||
}.format(time / 3600.0)
|
||||
mBinding.tvTips.text = R.string.red_package_tips_format.toStringRes().format(hour)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initTypeView() {
|
||||
mBinding.recyclerView.addItemDecoration(
|
||||
ColorDecoration(
|
||||
|
@@ -22,6 +22,8 @@ import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
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
|
||||
@@ -33,10 +35,11 @@ class PublicRedPackageEditorFragment : BaseBindingFragment<RedPackagePublicFragm
|
||||
private var passWordFragment: GiveGoldPassWordFragment? = null
|
||||
|
||||
override fun initiate() {
|
||||
initTips()
|
||||
mBinding.etText.addDisableFilter("\n")
|
||||
mBinding.etText.setOnInputChangedListener {
|
||||
mBinding.tvTextLength.text =
|
||||
R.string.red_package_result_count_format.toStringRes().format(this, 20)
|
||||
R.string.red_package_result_count_format.toStringRes().format(this, 10)
|
||||
true
|
||||
}
|
||||
|
||||
@@ -45,6 +48,21 @@ class PublicRedPackageEditorFragment : BaseBindingFragment<RedPackagePublicFragm
|
||||
}
|
||||
}
|
||||
|
||||
private fun initTips() {
|
||||
val time = InitialModel.get().cacheInitInfo?.redEnvelopeConfig?.endSecond
|
||||
if (time != null) {
|
||||
try {
|
||||
val hour = NumberFormat.getInstance().apply {
|
||||
maximumFractionDigits = 2
|
||||
roundingMode = RoundingMode.FLOOR
|
||||
}.format(time / 3600.0)
|
||||
mBinding.tvTips.text = R.string.red_package_tips_format.toStringRes().format(hour)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkSend() {
|
||||
val initInfo = InitialModel.get().cacheInitInfo ?: InitInfo()
|
||||
val minNum = initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum
|
||||
|
@@ -30,6 +30,7 @@ public class MsgViewHolderRedPackage extends MsgViewHolderBase {
|
||||
private TextView tvNickname;
|
||||
private TextView tvAll;
|
||||
private TextView tvTip;
|
||||
@Deprecated(since = "2.2.0版本,红包失效时间是客户端写死的,以后用消息体内的endTime")
|
||||
private int halfHour = 60 * 30 * 1000;
|
||||
|
||||
|
||||
@@ -57,30 +58,40 @@ public class MsgViewHolderRedPackage extends MsgViewHolderBase {
|
||||
tvAll.setVisibility(View.GONE);
|
||||
tvTip.setText(ResUtil.getString(R.string.im_chat_msgviewholderredpackage_02));
|
||||
contentContainer.setAlpha(0.5f);
|
||||
} else if (CurrentTimeUtils.getCurrentTime() - message.getTime() < halfHour) {
|
||||
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{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -212,10 +213,11 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/layout_parameter" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_tips"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/red_package_tips"
|
||||
tools:text="@string/red_package_tips_format"
|
||||
android:textColor="@color/color_94959C"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -127,7 +128,7 @@
|
||||
android:layout_marginTop="24dp"
|
||||
android:background="@drawable/shape_f8f8fa_8"
|
||||
android:gravity="center"
|
||||
android:maxLength="20"
|
||||
android:maxLength="10"
|
||||
android:paddingHorizontal="10dp"
|
||||
android:paddingVertical="10dp"
|
||||
android:hint="@string/red_package_msg_def"
|
||||
@@ -142,7 +143,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="0/20"
|
||||
android:text="0/10"
|
||||
android:textColor="@color/color_94959C"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/et_text"
|
||||
@@ -162,10 +163,11 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/et_text" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_tips"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/red_package_tips"
|
||||
tools:text="@string/red_package_tips_format"
|
||||
android:textColor="@color/color_94959C"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@@ -5161,7 +5161,7 @@
|
||||
<string name="red_package_type">搶紅包條件</string>
|
||||
<string name="red_package_msg_hint">輸入指定彈幕內容(最多10個字符)</string>
|
||||
<string name="red_package_send">發紅包</string>
|
||||
<string name="red_package_tips">未搶完的紅包將在12小時後返還你的錢包</string>
|
||||
<string name="red_package_tips_format">未搶完的紅包將在%s小時後返還你的錢包</string>
|
||||
<string name="red_package_now">立即生效</string>
|
||||
<string name="red_package_delay">限時生效</string>
|
||||
<string name="red_package_msg_def">恭喜發財,大吉大利!</string>
|
||||
|
Reference in New Issue
Block a user