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 f515014b6..10f1065eb 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 @@ -221,10 +221,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); } @@ -408,6 +408,12 @@ public class AVRoomActivity extends BaseMvpActivity - 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/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" /> + + 可搶紅包 搶完了,下次早點來哦~ 該紅包已失效 + 快來搶紅包,手慢無哦! + 已完成條件,可搶紅包 前往圍觀 是否離開當前房間前往 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,