diff --git a/app/src/main/java/com/yizhuan/erban/MainActivity.java b/app/src/main/java/com/yizhuan/erban/MainActivity.java index 6078aca12..d433358df 100644 --- a/app/src/main/java/com/yizhuan/erban/MainActivity.java +++ b/app/src/main/java/com/yizhuan/erban/MainActivity.java @@ -92,6 +92,7 @@ import com.yizhuan.erban.ui.im.chat.MsgViewHolderGift; import com.yizhuan.erban.ui.im.chat.MsgViewHolderLevel; import com.yizhuan.erban.ui.im.chat.MsgViewHolderLottery; import com.yizhuan.erban.ui.im.chat.MsgViewHolderOnline; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPackage; import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPacket; import com.yizhuan.erban.ui.im.chat.MsgViewHolderText; import com.yizhuan.erban.ui.im.chat.SignInNoticeMsgViewHolder; @@ -141,6 +142,7 @@ import com.yizhuan.xchat_android_core.im.custom.bean.NobleAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.NoticeAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.RedPacketAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgV2Attachment; @@ -395,6 +397,7 @@ public class MainActivity extends BaseMvpActivity NimUIKit.registerMsgItemViewHolder(SysMsgV2Attachment.class, SysMsgV2ViewHolder.class); NimUIKit.registerMsgItemViewHolder(LevelUpAttachment.class, MsgViewHolderLevel.class); NimUIKit.registerMsgItemViewHolder(AitMeAttachment.class, MsgViewHolderAitMe.class); + NimUIKit.registerMsgItemViewHolder(RedPackageAttachment.class, MsgViewHolderRedPackage.class); // 声音瓶子 // NimUIKit.registerMsgItemViewHolder(SysMsgVoiceAttachment.class, SysMsgVoiceViewHolder.class); // NimUIKit.registerMsgItemViewHolder(VoiceBottleSayHiAttachment.class, MsgViewHolderVoiceBottleSayHi.class); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenAdapter.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenAdapter.kt index ce2922b46..31345f1dd 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenAdapter.kt @@ -28,7 +28,6 @@ class RedPackageOpenAdapter : BaseQuickAdapter(R.id.rv_gift) val adapter = RedPackageGiftAdapter() rvGift.visibility = View.VISIBLE 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 2b3fde02b..c4b47c695 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 @@ -132,7 +132,6 @@ class RedPackageOpenDialog : BaseDialog() { val adapter = RedPackageGiftAdapter(R.layout.item_red_package_gift_top) binding.rvGift.visibility = View.VISIBLE binding.tvDiamondNum.visibility = View.GONE - binding.tvDiamond.visibility = View.GONE binding.rvGift.layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false) binding.rvGift.adapter = adapter adapter.setNewData(this) @@ -150,7 +149,6 @@ class RedPackageOpenDialog : BaseDialog() { TIME_OUT, REMAIN_ZERO, TIME_OUT_BACK -> { binding.clOpened.setBackgroundResource(R.drawable.room_red_package_no_get_bg) binding.tvDiamondNum.visibility = View.GONE - binding.tvDiamond.visibility = View.GONE binding.tvTips.visibility = View.GONE binding.tvNoGet.visibility = View.VISIBLE } 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 8d85cf2ed..9ae3c4aa0 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 @@ -2060,12 +2060,9 @@ public class MessageView extends FrameLayout { new OriginalDrawStatusClickSpan() { @Override public void onClick(@NonNull View view) { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ROOM_WELCOME_HIM, "欢迎TA"); - ExtensionUtil.setWelcomeLocal(chatRoomMessage, true); mMessageAdapter.notifyItemChanged(position); - long targetUid = JavaUtil.str2long(chatRoomMessage.getFromAccount()); Single.zip(AvRoomModel.get().getWelcomeConfig(targetUid), UserModel.get().getUserInfo(targetUid), (roomWelcomeConfig, info) -> { @@ -2089,7 +2086,6 @@ public class MessageView extends FrameLayout { LogUtil.e("send welcome msg failed, error: " + throwable.getMessage()); }) .subscribe(); - } }); } diff --git a/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java b/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java index 0d8362fc4..883b8f0da 100644 --- a/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java +++ b/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java @@ -112,7 +112,7 @@ public class GiveGoldPassWordFragment extends DialogFragment { } else { mPassword.getTvRate().setVisibility(View.GONE); } - mPassword.getTvGold().setText(getArguments().getString(EXTRA_GOLD) + "钻石"); + mPassword.getTvGold().setText(getArguments().getString(EXTRA_GOLD)); } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderRedPackage.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderRedPackage.java new file mode 100644 index 000000000..87c77a091 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderRedPackage.java @@ -0,0 +1,101 @@ +package com.yizhuan.erban.ui.im.chat; + +import android.view.View; +import android.widget.TextView; + +import com.coorchice.library.utils.LogUtils; +import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; +import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; + +import com.yinyuan.xchat_android_core.redpackage.RedPackageNotifyInfo; +import com.yizhuan.erban.R; +import com.yizhuan.erban.avroom.activity.AVRoomActivity; +import com.yizhuan.erban.common.widget.dialog.DialogManager; +import com.yizhuan.xchat_android_core.DemoCache; +import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment; +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; +import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils; + + +import java.util.Map; + +/** + * Created by zhoujianghua on 2015/8/4. + */ +public class MsgViewHolderRedPackage extends MsgViewHolderBase { + + public MsgViewHolderRedPackage(BaseMultiItemFetchLoadAdapter adapter) { + super(adapter); + } + + private TextView tvNickname; + private TextView tvAll; + private TextView tvTip; + private int halfHour = 60 * 30 * 1000; + + + @Override + protected int getContentResId() { + return R.layout.message_item_red_package; + } + + @Override + protected void inflateContentView() { + tvNickname = findViewById(R.id.tv_nickname); + tvAll = findViewById(R.id.tv_all); + tvTip = findViewById(R.id.tv_tip); + } + + @Override + protected void bindContentView() { + Map map = DemoCache.readRedPackage(); + RedPackageAttachment attachment = (RedPackageAttachment) message.getAttachment(); + RedPackageNotifyInfo notifyInfo = attachment.getRedPackageNotifyInfo(); + String id = notifyInfo.getRedEnvelopeId(); + LogUtils.d("getTime = " + message.getTime()); + if (map != null && map.containsKey(id)) { //已领取 + tvNickname.setText("红包已领取"); + tvAll.setVisibility(View.GONE); + tvTip.setText("可前往账单查看详情"); + contentContainer.setAlpha(0.5f); + } else if (CurrentTimeUtils.getCurrentTime() - message.getTime() < halfHour) { + tvNickname.setText(notifyInfo.getSendUserNick()); + tvAll.setText("发出了一个全服红包"); + tvAll.setVisibility(View.VISIBLE); + tvTip.setText("点击进房领取>"); + 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("是否下麦退出当前房间?", true, listener); + } else { + listener.onOk(); + } + + } + ); + } else {//已失效 + tvNickname.setText("红包已失效"); + tvAll.setVisibility(View.GONE); + tvTip.setText("下次要快点来哦~"); + contentContainer.setAlpha(0.5f); + } + + } + + + @Override + protected void onItemClick() { + + } + + + protected int leftBackground() { + return 0; + } + + protected int rightBackground() { + return 0; + } +} diff --git a/app/src/main/res/drawable-xhdpi/ic_pwd_close.webp b/app/src/main/res/drawable-xhdpi/ic_pwd_close.webp index 459499916..ba8ef8033 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_pwd_close.webp and b/app/src/main/res/drawable-xhdpi/ic_pwd_close.webp differ diff --git a/app/src/main/res/drawable-xhdpi/ic_redpackage_bigdiamond.png b/app/src/main/res/drawable-xhdpi/ic_redpackage_bigdiamond.png new file mode 100644 index 000000000..657354923 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_redpackage_bigdiamond.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_redpackage_diamond.png b/app/src/main/res/drawable-xhdpi/ic_redpackage_diamond.png new file mode 100644 index 000000000..239a0b121 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_redpackage_diamond.png differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_bg.png b/app/src/main/res/drawable-xhdpi/room_red_package_bg.png deleted file mode 100644 index fb73a33f2..000000000 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_bg.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_bg.webp b/app/src/main/res/drawable-xhdpi/room_red_package_bg.webp new file mode 100644 index 000000000..9327eae8f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/room_red_package_bg.webp differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_get_bg.png b/app/src/main/res/drawable-xhdpi/room_red_package_get_bg.png index 503636ee7..6c3b9210a 100644 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_get_bg.png and b/app/src/main/res/drawable-xhdpi/room_red_package_get_bg.png differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_go_room_bg.png b/app/src/main/res/drawable-xhdpi/room_red_package_go_room_bg.png index 294608b38..a25c7109e 100644 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_go_room_bg.png and b/app/src/main/res/drawable-xhdpi/room_red_package_go_room_bg.png differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_help.png b/app/src/main/res/drawable-xhdpi/room_red_package_help.png deleted file mode 100644 index 560e9f785..000000000 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_help.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_help.webp b/app/src/main/res/drawable-xhdpi/room_red_package_help.webp new file mode 100644 index 000000000..f76b6440d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/room_red_package_help.webp differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_open_bg.png b/app/src/main/res/drawable-xhdpi/room_red_package_open_bg.png index 189fa7c3f..a25c7109e 100644 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_open_bg.png and b/app/src/main/res/drawable-xhdpi/room_red_package_open_bg.png differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_open_btn.png b/app/src/main/res/drawable-xhdpi/room_red_package_open_btn.png index cf1361bab..892da7d49 100644 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_open_btn.png and b/app/src/main/res/drawable-xhdpi/room_red_package_open_btn.png differ diff --git a/app/src/main/res/drawable-xhdpi/room_red_package_send.png b/app/src/main/res/drawable-xhdpi/room_red_package_send.png index 8739472bc..b85bde870 100644 Binary files a/app/src/main/res/drawable-xhdpi/room_red_package_send.png and b/app/src/main/res/drawable-xhdpi/room_red_package_send.png differ diff --git a/app/src/main/res/drawable/bg_give_gold_password.xml b/app/src/main/res/drawable/bg_give_gold_password.xml new file mode 100644 index 000000000..883aabef6 --- /dev/null +++ b/app/src/main/res/drawable/bg_give_gold_password.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_give_gold_password.xml b/app/src/main/res/layout/view_give_gold_password.xml index 30389cb99..cbd83d2dd 100644 --- a/app/src/main/res/layout/view_give_gold_password.xml +++ b/app/src/main/res/layout/view_give_gold_password.xml @@ -3,7 +3,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/white"> + xmlns:tools="http://schemas.android.com/tools" + android:background="@drawable/bg_give_gold_password" + > + android:textColor="@color/color_black_333333" + android:textSize="16dp" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 26c1dc171..05d1db8a0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -163,7 +163,7 @@ 微信支付 支付宝 兑换码充值 - 钻石兑换钻石 + 充值钻石 充值 %d元 确认充值 diff --git a/app/src/module_community/res/layout/dialog_red_package_go_room.xml b/app/src/module_community/res/layout/dialog_red_package_go_room.xml index f793ceecc..05f5ec526 100644 --- a/app/src/module_community/res/layout/dialog_red_package_go_room.xml +++ b/app/src/module_community/res/layout/dialog_red_package_go_room.xml @@ -64,11 +64,13 @@ android:orientation="horizontal" app:layout_constraintGuide_percent="0.8111" /> - diff --git a/app/src/module_community/res/layout/dialog_red_package_open.xml b/app/src/module_community/res/layout/dialog_red_package_open.xml index 3bf4eb5db..71b2234b0 100644 --- a/app/src/module_community/res/layout/dialog_red_package_open.xml +++ b/app/src/module_community/res/layout/dialog_red_package_open.xml @@ -45,6 +45,8 @@ android:orientation="horizontal" app:layout_constraintGuide_percent="0.6278" /> + + + + + app:layout_constraintGuide_percent="0.3000" /> + app:layout_constraintGuide_percent="0.378" /> - + + + + + app:layout_constraintTop_toBottomOf="@id/line3_opened" /> + - - - + app:layout_constraintGuide_percent="0.3580" /> @@ -253,8 +255,8 @@ android:layout_marginTop="3dp" android:alpha="0.5" android:text="红包总金额不低于100钻石,且必须为100的倍数" - android:textColor="#ffffffff" - android:textSize="10sp" + android:textColor="#FFFFFF" + android:textSize="11sp" app:layout_constraintStart_toStartOf="@id/cl_gold_num" app:layout_constraintTop_toBottomOf="@id/cl_gold_num" /> @@ -322,16 +324,13 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/line5" /> - @@ -339,11 +338,12 @@ android:id="@+id/tv_balance_num" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="#ffffffff" - android:textSize="15sp" - app:layout_constraintBottom_toBottomOf="@id/tv_balance" - app:layout_constraintStart_toEndOf="@id/tv_balance" - app:layout_constraintTop_toTopOf="@id/tv_balance" + android:textColor="@color/white" + android:textSize="@dimen/sp_15" + android:includeFontPadding="false" + app:layout_constraintBottom_toBottomOf="@id/iv_balance" + app:layout_constraintStart_toEndOf="@id/iv_balance" + app:layout_constraintTop_toTopOf="@id/iv_balance" tools:text="12531" /> 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 43a197be9..48dcbfd06 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 @@ -9,13 +9,15 @@ tools:layout_width="200dp" tools:background="#fd2772"> - @@ -55,20 +57,15 @@ android:text="88" android:textColor="#ffffffff" android:textSize="20sp" + android:gravity="center" + android:includeFontPadding="false" + android:drawableEnd="@drawable/ic_redpackage_diamond" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@id/tv_diamond" - app:layout_constraintTop_toTopOf="parent" /> - - + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 000000000..9c0a09641 Binary files /dev/null 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 new file mode 100644 index 000000000..8a2c45f0d Binary files /dev/null and b/app/src/module_mini_world/res/drawable-xhdpi/nim_ic_red_package.png differ diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java index efe5029ec..8a973b109 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java @@ -249,6 +249,9 @@ import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUS import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_QUEUING_MIC_MODE_CLOSE; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_QUEUING_MIC_MODE_OPEN; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_QUEUING_MIC_NON_EMPTY; +import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_DIAMOND; +import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_GIFT; +import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_MSG; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_MONSTER_HUNTING; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_ADD_BLACK; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_KICK_ROOM; @@ -1206,6 +1209,18 @@ public final class IMNetEaseManager { } break; + case CustomAttachment.CUSTOM_MSG_RED_PACKAGE: + switch (second) { + case CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_GIFT: + case CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_DIAMOND: + noticeRoomEvent(msg, RoomEvent.RECEIVE_RED_PACKAGE); + break; + case CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_MSG: + addMessages(msg); + break; + } + break; + default: } } else if (msg.getMsgType() == MsgTypeEnum.text) { @@ -1261,6 +1276,13 @@ public final class IMNetEaseManager { .setMonsterAwardAttachment(monsterAwardAttachment)); } + private void noticeRoomEvent(ChatRoomMessage message, int eventID) { + getChatRoomEventObservable().onNext(new RoomEvent() + .setEvent(eventID) + .setChatRoomMessage(message) + ); + } + private void noticeReceivedKickRoom(RoomQueueMsgAttachment attachment) { getChatRoomEventObservable() .onNext(new RoomEvent()