diff --git a/app/src/main/java/com/yizhuan/erban/avroom/adapter/MicroViewAdapter.java b/app/src/main/java/com/yizhuan/erban/avroom/adapter/MicroViewAdapter.java index bf037748b..34ecc9bb0 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/adapter/MicroViewAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/adapter/MicroViewAdapter.java @@ -294,9 +294,9 @@ public class MicroViewAdapter extends BaseMicroViewAdapter { if (roomInfo == null) return; //初始化红包是否显示 -// if (InitialModel.get().getCacheInitInfo().isRedEnvelopeSwitch()) { + if (InitialModel.get().getCacheInitInfo().getRedEnvelopeConfig().isOpen()) { ivRedPackage.setVisibility(View.VISIBLE); -// } + } // 新版房主位优先判断麦序是否有人,麦序没人再判断是否是离开模式(防止新版展示离开模式,实际麦位有人) ChatRoomMember chatRoomMember = info.mChatRoomMember; if (chatRoomMember == null) { diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java index bc5de8de2..5f563431d 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java @@ -143,6 +143,7 @@ import com.yizhuan.xchat_android_core.mentoring_relationship.event.MentoringStop import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInWorldInfo; import com.yizhuan.xchat_android_core.music.model.PlayerModel; +import com.yizhuan.xchat_android_core.pay.PayModel; import com.yizhuan.xchat_android_core.radish.task.TaskModel; import com.yizhuan.xchat_android_core.radish.task.bean.CheckNewUserTaskInfo; import com.yizhuan.xchat_android_core.radish.task.bean.PrizeType; diff --git a/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java b/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java index 3940fb43e..cf3ab08b0 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java @@ -35,6 +35,8 @@ import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInWorldInfo; import com.yizhuan.xchat_android_core.miniworld.model.MiniWorldModel; +import com.yizhuan.xchat_android_core.pay.PayModel; +import com.yizhuan.xchat_android_core.pay.bean.WalletInfo; import com.yizhuan.xchat_android_core.praise.PraiseModel; import com.yizhuan.xchat_android_core.room.bean.DragonBarInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; @@ -77,6 +79,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.BiConsumer; import io.reactivex.functions.Consumer; import io.reactivex.functions.Function; +import io.reactivex.schedulers.Schedulers; import static com.yizhuan.xchat_android_core.manager.RoomEvent.DRAGON_BAR_CANCEL; import static com.yizhuan.xchat_android_core.manager.RoomEvent.DRAGON_BAR_END; @@ -106,6 +109,8 @@ public class HomePartyPresenter extends BaseMvpPresenter { private boolean isLeaveMode = false; + protected WalletInfo walletInfo; + public HomePartyPresenter() { mHomePartyMode = new HomePartyModel(); mAvRoomModel = AvRoomModel.get(); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt index 2bc1627be..de846e4f7 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt @@ -1,5 +1,6 @@ package com.yizhuan.erban.avroom.redpackage + import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.animation.ObjectAnimator @@ -13,25 +14,29 @@ import android.view.WindowManager import android.view.animation.AccelerateDecelerateInterpolator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView - - -import com.yinyuan.xchat_android_core.redpackage.* import com.yinyuan.xchat_android_core.redpackage.RedEnvelopeState.Companion.REMAIN_ZERO import com.yinyuan.xchat_android_core.redpackage.RedEnvelopeState.Companion.SUCCESS import com.yinyuan.xchat_android_core.redpackage.RedEnvelopeState.Companion.TIME_OUT import com.yinyuan.xchat_android_core.redpackage.RedEnvelopeState.Companion.TIME_OUT_BACK +import com.yinyuan.xchat_android_core.redpackage.RedPackageInfo +import com.yinyuan.xchat_android_core.redpackage.RedPackageModel import com.yizhuan.erban.R import com.yizhuan.erban.avroom.widget.MessageView - import com.yizhuan.erban.base.BaseDialog import com.yizhuan.erban.databinding.DialogRedPackageOpenBinding import com.yizhuan.erban.ui.utils.ImageLoadUtils import com.yizhuan.erban.utils.UserUtils import com.yizhuan.xchat_android_core.DemoCache +import com.yizhuan.xchat_android_core.auth.AuthModel +import com.yizhuan.xchat_android_core.home.event.FollowRoomEvent +import com.yizhuan.xchat_android_core.home.model.CollectionRoomModel +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager +import com.yizhuan.xchat_android_core.pay.PayModel import com.yizhuan.xchat_android_core.redpackage.ALL_DIAMOND import com.yizhuan.xchat_android_core.redpackage.ALL_GIFT import com.yizhuan.xchat_android_core.redpackage.RedPackageNotifyInfo import com.yizhuan.xchat_android_library.utils.SingleToastUtil +import org.greenrobot.eventbus.EventBus class RedPackageOpenDialog : BaseDialog() { @@ -147,6 +152,16 @@ class RedPackageOpenDialog : BaseDialog() { } binding.tvDiamondNum.text = it.amount } + if (!AvRoomDataManager.get().isRoomFans){ + AvRoomDataManager.get().roomUid?.let { + CollectionRoomModel.get().followRoom("1", it) + .subscribe { _: String? -> + AvRoomDataManager.get().isRoomFans = true + EventBus.getDefault().post(FollowRoomEvent()) + } + } + } + } TIME_OUT, REMAIN_ZERO, TIME_OUT_BACK -> { binding.clOpened.setBackgroundResource(R.drawable.room_red_package_get_bg) @@ -164,6 +179,10 @@ class RedPackageOpenDialog : BaseDialog() { binding.rvUsers.adapter = adapter binding.rvUsers.layoutManager = LinearLayoutManager(context) adapter.setNewData(packageInfo.redEnvelopeItemVOs) + PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe() + + + } } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt index 3269e512a..458015684 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt @@ -1,5 +1,6 @@ package com.yizhuan.erban.avroom.redpackage + import android.annotation.SuppressLint import android.content.Intent import android.graphics.Paint @@ -11,9 +12,6 @@ import android.view.View import android.view.WindowManager import com.jungly.gridpasswordview.GridPasswordView import com.yinyuan.xchat_android_core.redpackage.RedPackageModel - - - import com.yizhuan.erban.base.BaseDialog import com.yizhuan.erban.common.widget.dialog.DialogManager import com.yizhuan.erban.databinding.DialogRedPackageSendBinding @@ -23,6 +21,7 @@ import com.yizhuan.erban.ui.pay.ChargeActivity import com.yizhuan.erban.ui.setting.ModifyPwdActivity import com.yizhuan.erban.ui.webview.DialogWebViewActivity import com.yizhuan.xchat_android_core.UriProvider +import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.initial.InitialModel import com.yizhuan.xchat_android_core.manager.AvRoomDataManager import com.yizhuan.xchat_android_core.pay.PayModel @@ -60,9 +59,10 @@ class RedPackageSendDialog : BaseDialog(), GridPass @SuppressLint("SetTextI18n") override fun init() { + EventBus.getDefault().register(this) PayModel.get().currentWalletInfo?.let { - binding.tvBalanceNum.text = it.diamondNum.toString() + binding.tvBalanceNum.text =it.diamondNum.toInt().toString() } val initInfo = InitialModel.get().cacheInitInfo fun changeToAll() { @@ -200,6 +200,7 @@ class RedPackageSendDialog : BaseDialog(), GridPass passWordFragment?.password?.clearPassword() } .subscribe { _ -> + PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe() dialogManager.dismissDialog() SingleToastUtil.showToast("发送成功") // StatUtil.onEvent("room_sendhongbao_success", "发红包成功") diff --git a/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java b/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java index d839d4650..589ea905c 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java @@ -5,6 +5,7 @@ import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; import com.yizhuan.erban.avroom.widget.ViewItem; import com.yizhuan.xchat_android_core.bean.RoomMicInfo; import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInWorldInfo; +import com.yizhuan.xchat_android_core.pay.bean.WalletInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_library.base.IMvpBaseView; @@ -114,4 +115,5 @@ public interface IHomePartyView extends IMvpBaseView { void onFollowFail(String msg); void updateMicView(); + } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java index fd3a89391..ec495138e 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java @@ -836,9 +836,24 @@ public class MessageView extends FrameLayout { String openNickname = RegexUtil.getPrintableString(roomMsg.getOpenRedEnvelopeUserNick()); String sendNickname = RegexUtil.getPrintableString(roomMsg.getRedEnvelopeMasterNick()); SpannableBuilder text = new SpannableBuilder(tvContent) - .append(openNickname, new ForegroundColorSpan(roomTipColor)) + .append(openNickname, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { + + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(roomMsg.getOpenRedEnvelopeId()).subscribe(clickConsumer); + } + } + }) .append("打开", new ForegroundColorSpan(textColor)) - .append(sendNickname, new ForegroundColorSpan(roomTipColor)); + .append(sendNickname, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(String.valueOf(roomMsg.getRedEnvelopeMasterId())).subscribe(clickConsumer); + } + } + }); switch (roomMsg.getRedEnvelopeType()) { case ALL_DIAMOND: case ROOM_DIAMOND: diff --git a/app/src/module_community/res/layout/item_red_package_diamond.xml b/app/src/module_community/res/layout/item_red_package_diamond.xml index 48dcbfd06..3c19c0300 100644 --- a/app/src/module_community/res/layout/item_red_package_diamond.xml +++ b/app/src/module_community/res/layout/item_red_package_diamond.xml @@ -59,6 +59,7 @@ android:textSize="20sp" android:gravity="center" android:includeFontPadding="false" + android:drawablePadding="@dimen/dp_5" android:drawableEnd="@drawable/ic_redpackage_diamond" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/module_community/res/layout/message_item_red_package.xml b/app/src/module_community/res/layout/message_item_red_package.xml index f7ffdccbd..b88a24d41 100644 --- a/app/src/module_community/res/layout/message_item_red_package.xml +++ b/app/src/module_community/res/layout/message_item_red_package.xml @@ -12,7 +12,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="22dp" - android:layout_marginTop="9dp" + android:layout_marginTop="15dp" android:src="@drawable/nim_ic_red_package" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/module_mini_world/res/drawable-xhdpi/nim_bg_message_red_package.png b/app/src/module_mini_world/res/drawable-xhdpi/nim_bg_message_red_package.png index 9c0a09641..b84c92d7d 100644 Binary files a/app/src/module_mini_world/res/drawable-xhdpi/nim_bg_message_red_package.png and b/app/src/module_mini_world/res/drawable-xhdpi/nim_bg_message_red_package.png differ diff --git a/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.png b/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.png deleted file mode 100644 index 8a2c45f0d..000000000 Binary files a/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.png and /dev/null differ diff --git a/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.webp b/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.webp new file mode 100644 index 000000000..f0efb0c6f Binary files /dev/null and b/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.webp differ diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/InitInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/InitInfo.java index 0938300bb..7e96915fc 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/InitInfo.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/initial/bean/InitInfo.java @@ -97,6 +97,7 @@ public class InitInfo implements Serializable { */ private int redEnvelopeType; + /** * 注册图片验证码开关 */ 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 507e07957..c373296f5 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,10 @@ public class RedEnvelopeConfig implements Serializable { private int serverRedEnvelopeMaxNum; private int roomRedEnvelopeMinAmount; private int serverRedEnvelopeMinAmount; + /** + * 红包显示开关 + */ + private boolean open; private double exchangeDiamondsRate;//手气红包兑换水晶比率 @@ -37,6 +41,7 @@ public class RedEnvelopeConfig implements Serializable { return "RedEnvelopeConfig{" + "rate=" + rate + ", roomRedEnvelopeMinNum=" + roomRedEnvelopeMinNum + + ", open=" + open + ", roomRedEnvelopeMaxNum=" + roomRedEnvelopeMaxNum + ", serverRedEnvelopeMinNum=" + serverRedEnvelopeMinNum + ", serverRedEnvelopeMaxNum=" + serverRedEnvelopeMaxNum +