From e031dd9d0201d0025b69fc1e229b0e1d71b179ec Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 30 Oct 2023 14:45:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E7=BA=A2=E5=8C=85?= =?UTF-8?q?=E5=86=85=E8=8B=A5=E5=B9=B2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redpackage/open/RedPackageOpenDialog2.kt | 93 ++++++++++++------- .../redpackage/send/RedPackageSendDialog2.kt | 4 + .../res/layout/red_package_send_dialog.xml | 8 ++ app/src/main/res/values/strings.xml | 2 + 4 files changed, 74 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/open/RedPackageOpenDialog2.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/open/RedPackageOpenDialog2.kt index 87806496a..9db918323 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/open/RedPackageOpenDialog2.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/open/RedPackageOpenDialog2.kt @@ -7,9 +7,7 @@ import android.animation.ObjectAnimator import android.animation.ValueAnimator import android.annotation.SuppressLint import android.os.Bundle -import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import android.view.WindowManager import android.view.animation.AccelerateDecelerateInterpolator import androidx.core.view.isVisible @@ -181,40 +179,53 @@ class RedPackageOpenDialog2 : BaseDialog(), ILog { */ private fun loadTips(data: RedPackageData) { binding.tvOpenTips.isVisible = false - when (data.kind) { - 2 -> { - binding.tvOpenTips.spannableBuilder() - .appendText( - text = R.string.red_package_open_tips_follow.toStringRes(), - textColor = getColorById(R.color.color_FFF87A) - ) - .appendText(text = R.string.red_package_open_tips_msg_end.toStringRes()).apply() - binding.tvOpenTips.isVisible = true - } + if (data.finish == true) { + binding.tvOpenTips.setText(R.string.red_package_complete_tips) + binding.tvOpenTips.isVisible = true + } else { + when (data.kind) { + 1 -> { + binding.tvOpenTips.setText(R.string.red_package_quick_tips) + binding.tvOpenTips.isVisible = true + } - 3 -> { - binding.tvOpenTips.spannableBuilder() - .appendText( - text = R.string.red_package_open_tips_share.toStringRes(), - textColor = getColorById(R.color.color_FFF87A) - ) - .appendText(text = R.string.red_package_open_tips_msg_end.toStringRes()).apply() - binding.tvOpenTips.isVisible = true - } + 2 -> { + binding.tvOpenTips.spannableBuilder() + .appendText( + text = R.string.red_package_open_tips_follow.toStringRes(), + textColor = getColorById(R.color.color_FFF87A) + ) + .appendText(text = R.string.red_package_open_tips_msg_end.toStringRes()) + .apply() + binding.tvOpenTips.isVisible = true + } - 4 -> { - binding.tvOpenTips.spannableBuilder() - .appendText(text = R.string.red_package_open_tips_msg1.toStringRes()) - .appendText( - text = data.message ?: "", - textColor = getColorById(R.color.color_FFF87A) - ) - .appendText(text = R.string.red_package_open_tips_msg_end.toStringRes()).apply() - binding.tvOpenTips.isVisible = true - } + 3 -> { + binding.tvOpenTips.spannableBuilder() + .appendText( + text = R.string.red_package_open_tips_share.toStringRes(), + textColor = getColorById(R.color.color_FFF87A) + ) + .appendText(text = R.string.red_package_open_tips_msg_end.toStringRes()) + .apply() + binding.tvOpenTips.isVisible = true + } - else -> { - loadTips(data.message) + 4 -> { + binding.tvOpenTips.spannableBuilder() + .appendText(text = R.string.red_package_open_tips_msg1.toStringRes()) + .appendText( + text = data.message ?: "", + textColor = getColorById(R.color.color_FFF87A) + ) + .appendText(text = R.string.red_package_open_tips_msg_end.toStringRes()) + .apply() + binding.tvOpenTips.isVisible = true + } + + else -> { + loadTips(data.message) + } } } } @@ -279,10 +290,26 @@ class RedPackageOpenDialog2 : BaseDialog(), ILog { binding.tvBtnMsg.text = "" } } + startTimerForUncompletedState(gap) } } } + /** + * 开启定时器:未完成状态更新(倒计时结束时,更新对应View状态) + */ + private fun startTimerForUncompletedState(time: Long) { + val d = Observable.timer(time, TimeUnit.MILLISECONDS) + .compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW)) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + binding.tvBtnMsg.setText(R.string.red_package_open_btn_no) + btnRunnable = { + SingleToastUtil.showToast(R.string.red_package_open_no_tips) + } + } + } + /** * 开始倒计时 * @param time 开抢时间 diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/RedPackageSendDialog2.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/RedPackageSendDialog2.kt index 115b6c8e4..c6e190a01 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/RedPackageSendDialog2.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/send/RedPackageSendDialog2.kt @@ -85,6 +85,10 @@ class RedPackageSendDialog2 : BaseDialog() { } private fun initEvent() { + binding.vTopBlank.singleClick { + dismissAllowingStateLoss() + } + binding.ivHelp.singleClick { DialogWebViewActivity.start( context, diff --git a/app/src/main/res/layout/red_package_send_dialog.xml b/app/src/main/res/layout/red_package_send_dialog.xml index 609e41862..50d1dc274 100644 --- a/app/src/main/res/layout/red_package_send_dialog.xml +++ b/app/src/main/res/layout/red_package_send_dialog.xml @@ -22,6 +22,14 @@ android:src="@drawable/red_package_send_bg" app:layout_constraintTop_toTopOf="parent" /> + + 可搶紅包 搶完了,下次早點來哦~ 該紅包已失效 + 快來搶紅包,手慢無哦! + 已完成條件,可搶紅包 ” \ No newline at end of file From 80e21bee74ab33752b1b3687058a5e366643b00b Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 30 Oct 2023 15:16:06 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E5=86=85=E7=82=B9=E5=87=BB=E7=BA=A2=E5=8C=85=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E5=88=B0=E5=85=B6=E4=BB=96=E6=88=BF=E9=97=B4=E5=90=8E=E6=B2=A1?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E7=BA=A2=E5=8C=85=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/avroom/activity/AVRoomActivity.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java index b65cb15db..03bbcc699 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java @@ -225,10 +225,10 @@ public class AVRoomActivity extends BaseMvpActivity giftList; - private boolean isResume = true; @Nullable private SingleRoomTipDialog singleRoomTipDialog; - + // 通过红包进来时,有该参数 + private RedPackageNotifyInfo redPackageNotifyInfo; public static void start(Context context, long roomUid) { startForFromType(context, roomUid, FROM_TYPE_NORMAL, null, null); } @@ -412,6 +412,12 @@ public class AVRoomActivity extends BaseMvpActivity Date: Mon, 30 Oct 2023 15:36:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix;=E4=BF=AE=E5=A4=8D=E7=BA=A2=E5=8C=85?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E6=97=B6=E7=9A=84=E5=85=A5=E5=8F=A3=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/avroom/redpackage/RedPackageHandler.kt | 13 ++++++++----- .../erban/avroom/redpackage/RedPackageWidget.kt | 1 - .../redpackage/RedPackageModel.kt | 3 +++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageHandler.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageHandler.kt index b4d9ceaf0..9b9c90c90 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageHandler.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageHandler.kt @@ -82,15 +82,18 @@ class RedPackageHandler : RoomHandler() { * 查找最新的厅内红包(新/旧版的厅内红包,非全服红包) */ private fun requestLatestRoomRedPackage() { - logD("requestLatestRoomRedPackage()") val roomId = roomContext?.roomId ?: return - logD("requestLatestRoomRedPackage() roomId:$roomId") RedPackageModel.getLatestRoomRedPackage(roomId) .compose(bindToLifecycle()) .subscribe({ data -> - logD("requestLatestRoomRedPackage() data:$data") handleRoomRedPackage(data, false) - }, {}) + }, { + if (it.message == "No RedPackage") { + updateIcon(null) + } else { + // 网络等原因的失败,不处理就好 + } + }) } /** @@ -152,7 +155,7 @@ class RedPackageHandler : RoomHandler() { } else { if (!inOperation) { RedPackageGoRoomDialog.newInstance(data).show(context) - }else{ + } else { // 需求:正在房间中领取红包时,不展示其他房间的全服红包 } } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageWidget.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageWidget.kt index 87c177603..7e3388306 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageWidget.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageWidget.kt @@ -163,7 +163,6 @@ class RedPackageWidget : ConstraintLayout, RoomWidget { * 更新数据 */ private fun loadData(data: RedPackageNotifyInfo?) { - logD("loadData() data:$data") this.data = data stopCountDown() if (data != null) { 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 058d5e20c..10b91e43d 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 @@ -58,6 +58,9 @@ object RedPackageModel { .io2main() .handleBeanData() .toObservable().map { + if (it.isEmpty()) { + throw NullPointerException("No RedPackage") + } val item = it.last() RedPackageNotifyInfo( redEnvelopeId = item.id,