diff --git a/app/build.gradle b/app/build.gradle index f2e2e01d0..e45f0b426 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -149,8 +149,8 @@ android { debug { buildConfigField "String", "BASE_URL", "\"http://api.uat.lecheng163.com/\"" buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL" - buildConfigField "String", "BASE_URL_STAGING", "\"https://yinyou.api.shengxuanwangluo.com/\"" - buildConfigField "String", "BASE_URL_RELEASE", "\"https://yinyou.api.shengxuanwangluo.com/\"" + buildConfigField "String", "BASE_URL_STAGING", "BASE_URL" + buildConfigField "String", "BASE_URL_RELEASE", "BASE_URL" minifyEnabled false shrinkResources false signingConfig signingConfigs.v2 @@ -275,7 +275,7 @@ android.applicationVariants.all { variant -> switch (variant.name) {//变体名称,如果没有设置productFlavors就是buildType名称,如果有设置productFlavors就是flavor+buildType,例如(freeRelease、proRelease) case "release": androidJunkCode.configMap.put(variant.name, { - packageBase = "com.mango.plugin.ui" //生成java类根包名 + packageBase = "com.nnbc123.plugin.ui" //生成java类根包名 packageCount = 30 //生成包数量 activityCountPerPackage = 30 //每个包下生成Activity类数量 excludeActivityJavaFile = false diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 524a67114..ab93c57d5 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -120,7 +120,7 @@ -keep public class * extends com.nnbc123.library.base.factory.AbstractMvpPresenter # 云信自定义 ViewHolder 配置 --dontwarn com.mango.moshen.ui.im.recent.holder.** +-dontwarn com.nnbc123.app.ui.im.recent.holder.** -keep class com.nnbc123.app.ui.im.recent.holder.** {*;} -keep class com.nnbc123.app.ui.im.chat.** {*;} -keep class com.nnbc123.app.luckymoney.viewholder.** {*;} @@ -207,7 +207,7 @@ (...); } --dontwarn com.mango.moshen.bindadapter.** +-dontwarn com.nnbc123.app.bindadapter.** -keep class com.nnbc123.app.bindadapter.** {*;} # Ping++ 混淆过滤 diff --git a/app/src/androidTest/java/com/nnbc123/app/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/nnbc123/app/ExampleInstrumentedTest.java index 3282fda53..2b08fbade 100644 --- a/app/src/androidTest/java/com/nnbc123/app/ExampleInstrumentedTest.java +++ b/app/src/androidTest/java/com/nnbc123/app/ExampleInstrumentedTest.java @@ -22,7 +22,7 @@ public class ExampleInstrumentedTest { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); - assertEquals("com.mango.moshen_android_client", appContext.getPackageName()); + assertEquals("com.nnbc123.app_android_client", appContext.getPackageName()); } } diff --git a/app/src/common/res/drawable/shape_ffe974_corner_12dp.xml b/app/src/common/res/drawable/shape_ffe974_corner_12dp.xml new file mode 100644 index 000000000..90fdd5522 --- /dev/null +++ b/app/src/common/res/drawable/shape_ffe974_corner_12dp.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/vap/gold_box_open.mp4 b/app/src/main/assets/vap/gold_box_open.mp4 new file mode 100644 index 000000000..642bec5a9 Binary files /dev/null and b/app/src/main/assets/vap/gold_box_open.mp4 differ diff --git a/app/src/main/java/com/nnbc123/app/avroom/widget/MessageView.java b/app/src/main/java/com/nnbc123/app/avroom/widget/MessageView.java index 24ffed79c..a90def773 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/widget/MessageView.java +++ b/app/src/main/java/com/nnbc123/app/avroom/widget/MessageView.java @@ -31,6 +31,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; @@ -41,6 +42,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; +import com.nnbc123.app.ui.utils.ImageLoadKt; +import com.nnbc123.app.utils.UserUtils; import com.nnbc123.core.im.custom.bean.WishListAttachment; import com.nnbc123.core.room.wishlist.WishListModel; import com.netease.nim.uikit.business.uinfo.UserInfoHelper; @@ -737,6 +740,9 @@ public class MessageView extends FrameLayout { protected void convert(MessageViewHolder baseViewHolder, ChatRoomMessage chatRoomMessage) { if (chatRoomMessage == null) return; TextView tvContent = baseViewHolder.tvContent; + baseViewHolder.ivAvatar.setVisibility(GONE); + baseViewHolder.tvNickname.setVisibility(GONE); + baseViewHolder.tvTags.setVisibility(GONE); tvContent.setLineSpacing(0, 1); tvContent.setTextColor(Color.WHITE); tvContent.setOnClickListener(this); @@ -765,6 +771,7 @@ public class MessageView extends FrameLayout { } } else if (chatRoomMessage.getMsgType() == MsgTypeEnum.text) { setMsgText(chatRoomMessage, tvContent); + setupCommonTag(chatRoomMessage, baseViewHolder); setVIPMessageBackground(chatRoomMessage, tvContent); } else if (chatRoomMessage.getMsgType() == MsgTypeEnum.notification) { // 加上勋章 @@ -952,6 +959,7 @@ public class MessageView extends FrameLayout { if (second == CustomAttachment.CUSTOM_MSG_SUB_TYPE_PUBLIC_SCREEN_WELCOME) { //麦上用户对你的欢迎语 setMicWelcomeContent(chatRoomMessage, tvContent, baseViewHolder.getAdapterPosition()); + setupCommonTag(chatRoomMessage, baseViewHolder); } } else if (first == CustomAttachment.CUSTOM_MSG_HEADER_TYPE_FOLLOW_ROOM) { if (second == CustomAttachment.CUSTOM_MSG_SUB_TYPE_FOLLOW_ROOM_SUCCESS) { @@ -1000,17 +1008,17 @@ public class MessageView extends FrameLayout { GiftCompoundMsgBean msgInfo = giftCompoundAttachment.getMsgBean(); SpannableBuilder text = new SpannableBuilder(tvContent); text.append( - msgInfo.getNick(), - new ForegroundColorSpan(roomTipNickColor), - new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (clickConsumer != null) { - Single.just(String.valueOf(msgInfo.getUid())).subscribe(clickConsumer); - } - } + msgInfo.getNick(), + new ForegroundColorSpan(roomTipNickColor), + new OriginalDrawStatusClickSpan() { + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(String.valueOf(msgInfo.getUid())).subscribe(clickConsumer); } - ) + } + } + ) .append(msgInfo.getMsg(), new ForegroundColorSpan(whiteColor)) .append(msgInfo.getGiftName(), new ForegroundColorSpan(roomTipNickColor)); tvContent.setText(text.build()); @@ -1143,15 +1151,15 @@ public class MessageView extends FrameLayout { case CustomAttachment.CUSTOM_MSG_SUB_DATING_PUBLISH_LIKE: if (notifyInfo.getHasSelectUser()) { text.append(notifyInfo.getNickname(), new ForegroundColorSpan(roomTipNickColor), - new OriginalDrawStatusClickSpan() { + new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (clickConsumer != null) { - Single.just(String.valueOf(notifyInfo.getUid())).subscribe(clickConsumer); - } - } - }) + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(String.valueOf(notifyInfo.getUid())).subscribe(clickConsumer); + } + } + }) .append(" 的心动对象是 ", new ForegroundColorSpan(whiteColor)) .append(notifyInfo.getTargetNickname(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -1165,15 +1173,15 @@ public class MessageView extends FrameLayout { }); } else { text.append(notifyInfo.getNickname(), new ForegroundColorSpan(roomTipNickColor), - new OriginalDrawStatusClickSpan() { + new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (clickConsumer != null) { - Single.just(String.valueOf(notifyInfo.getUid())).subscribe(clickConsumer); - } - } - }) + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(String.valueOf(notifyInfo.getUid())).subscribe(clickConsumer); + } + } + }) .append(" 未选择心动对象", new ForegroundColorSpan(whiteColor)); } break; @@ -1431,15 +1439,15 @@ public class MessageView extends FrameLayout { isHaveInTeam = true; text.append(value.getNick(), new ForegroundColorSpan(roomTipColor), - new OriginalDrawStatusClickSpan() { + new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (clickConsumer != null) { - Single.just(value.getUid()).subscribe(clickConsumer); - } - } - }) + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(value.getUid()).subscribe(clickConsumer); + } + } + }) .append("进入"); if (value.getGroupType() == PKTeamInfo.TEAM_RED) { text.append("红队", new ForegroundColorSpan(tvContent.getResources().getColor(R.color.color_FB3D74))) @@ -1464,7 +1472,7 @@ public class MessageView extends FrameLayout { RoomPkData roomPkData = attachment.getRoomPkData(); SpannableBuilder text = new SpannableBuilder(tvContent) .append(String.format(Locale.getDefault(), "管理员发起房间PK,本次PK时间为 %s 秒,获得", - roomPkData.getDuration()), + roomPkData.getDuration()), new ForegroundColorSpan(whiteColor)); switch (roomPkData.getVoteMode()) { case RoomPkData.VOTE_MODE_GIFT: @@ -1491,7 +1499,7 @@ public class MessageView extends FrameLayout { RoomPkData roomPkData = attachment.getRoomPkData(); SpannableBuilder text = new SpannableBuilder(textView) .append(String.format(Locale.getDefault(), - "PK开始啦!本次PK时间 %s 秒,快给喜欢的选手投票吧!", roomPkData.getDuration()), + "PK开始啦!本次PK时间 %s 秒,快给喜欢的选手投票吧!", roomPkData.getDuration()), new ForegroundColorSpan(greyColor)); textView.setText(text.build()); } @@ -1500,7 +1508,7 @@ public class MessageView extends FrameLayout { RoomPkData roomPkData = attachment.getRoomPkData(); SpannableBuilder text = new SpannableBuilder(tvContent) .append(String.format(Locale.getDefault(), "管理员重新开始房间PK,本次PK时间为 %s 秒,获得", - roomPkData.getDuration()), + roomPkData.getDuration()), new ForegroundColorSpan(whiteColor)); switch (roomPkData.getVoteMode()) { case RoomPkData.VOTE_MODE_GIFT: @@ -1534,8 +1542,8 @@ public class MessageView extends FrameLayout { text.append("平局!\n", new ForegroundColorSpan(whiteColor)); if (blueTeam != null && redTeam != null) { text.append(String.format(Locale.getDefault(), "PK值 %s : %s", - FormatUtils.formatPKValue(blueTeam.getScore()), - FormatUtils.formatPKValue(redTeam.getScore())), + FormatUtils.formatPKValue(blueTeam.getScore()), + FormatUtils.formatPKValue(redTeam.getScore())), new ForegroundColorSpan(whiteColor)); UserInfo redProtector = redTeam.getProtector(); @@ -1545,14 +1553,14 @@ public class MessageView extends FrameLayout { break; } text.append(String.format(Locale.getDefault(), "\n蓝队守护者:%s \n", blueProtector.getNick()), - new ForegroundColorSpan(whiteColor)) + new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), "蓝队守护值:%s \n", - FormatUtils.formatPKValue(blueTeam.getProtecScore())), + FormatUtils.formatPKValue(blueTeam.getProtecScore())), new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), "红队守护者:%s \n", redProtector.getNick()), new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), "红队守护值:%s", - FormatUtils.formatPKValue(redTeam.getProtecScore())), + FormatUtils.formatPKValue(redTeam.getProtecScore())), new ForegroundColorSpan(whiteColor)); } break; @@ -1561,21 +1569,21 @@ public class MessageView extends FrameLayout { text.append("蓝队胜利!\n", new ForegroundColorSpan(whiteColor)); if (blueTeam != null && redTeam != null) { text.append(String.format(Locale.getDefault(), "PK值 %s : %s \n", - FormatUtils.formatPKValue(blueTeam.getScore()), - FormatUtils.formatPKValue(redTeam.getScore())), + FormatUtils.formatPKValue(blueTeam.getScore()), + FormatUtils.formatPKValue(redTeam.getScore())), new ForegroundColorSpan(whiteColor)); UserInfo blueProtector = blueTeam.getProtector(); if (blueProtector == null) { text.append(String.format(Locale.getDefault(), "胜利方战斗值:%s", - FormatUtils.formatPKValue(blueTeam.getScore())), + FormatUtils.formatPKValue(blueTeam.getScore())), new ForegroundColorSpan(whiteColor)); } else { text.append(String.format(Locale.getDefault(), "胜方守护者:%s \n", blueProtector.getNick()), - new ForegroundColorSpan(whiteColor)) + new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), "胜方守护值:%s", - FormatUtils.formatPKValue(blueTeam.getProtecScore())), + FormatUtils.formatPKValue(blueTeam.getProtecScore())), new ForegroundColorSpan(whiteColor)); } } @@ -1585,20 +1593,20 @@ public class MessageView extends FrameLayout { text.append("红队胜利!\n", new ForegroundColorSpan(whiteColor)); if (blueTeam != null && redTeam != null) { text.append(String.format(Locale.getDefault(), "PK值 %s : %s \n", - FormatUtils.formatPKValue(redTeam.getScore()), - FormatUtils.formatPKValue(blueTeam.getScore())), + FormatUtils.formatPKValue(redTeam.getScore()), + FormatUtils.formatPKValue(blueTeam.getScore())), new ForegroundColorSpan(whiteColor)); UserInfo redProtector = redTeam.getProtector(); if (redProtector == null) { text.append(String.format(Locale.getDefault(), "胜利方战斗值:%s", - FormatUtils.formatPKValue(redTeam.getScore())), + FormatUtils.formatPKValue(redTeam.getScore())), new ForegroundColorSpan(whiteColor)); } else { text.append(String.format(Locale.getDefault(), "红队守护者:%s \n", redProtector.getNick()), - new ForegroundColorSpan(whiteColor)) + new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), "红队守护值:%s", - FormatUtils.formatPKValue(redTeam.getProtecScore())), + FormatUtils.formatPKValue(redTeam.getProtecScore())), new ForegroundColorSpan(whiteColor)); } @@ -1929,12 +1937,8 @@ public class MessageView extends FrameLayout { * @param tvContent - */ private void setMsgText(ChatRoomMessage chatRoomMessage, TextView tvContent) { - ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); SpannableBuilder text = new SpannableBuilder(tvContent); - addCommonTag(chatRoomMessage, text, tvContent); - String nickName = extension == null ? "我" : RegexUtil.getPrintableString(extension.getSenderNick()); - text.append(nickName, new ForegroundColorSpan(greyColor)) - .append(": " + chatRoomMessage.getContent(), new ForegroundColorSpan(whiteColor)); + text.append(chatRoomMessage.getContent(), new ForegroundColorSpan(whiteColor)); List atUids = ExtensionUtil.getListExtension(chatRoomMessage, UserInfo.AT_UIDS); List atNames = ExtensionUtil.getListExtension(chatRoomMessage, UserInfo.AT_NAMES); if (!ListUtils.isListEmpty(atUids) && !ListUtils.isListEmpty(atNames)) { @@ -1954,33 +1958,26 @@ public class MessageView extends FrameLayout { } } } - - if (Objects.equals(chatRoomMessage.getFromAccount(), String.valueOf(AuthModel.get().getCurrentUid()))) { - tvContent.setOnLongClickListener(null); - } else { - tvContent.setOnLongClickListener(v -> { - if (onLongClickListener != null) { - onLongClickListener.onLongClick(v, chatRoomMessage.getFromAccount(), nickName); - } - return true; - }); - } tvContent.setText(text.build()); } - private void addCommonTag(ChatRoomMessage chatRoomMessage, @NonNull SpannableBuilder builder, TextView tvContent) { + private void setupCommonTag(ChatRoomMessage chatRoomMessage, MessageViewHolder viewHolder) { + viewHolder.ivAvatar.setVisibility(VISIBLE); + viewHolder.tvNickname.setVisibility(VISIBLE); + viewHolder.tvTags.setVisibility(VISIBLE); + SpannableBuilder builder = new SpannableBuilder(viewHolder.tvTags); ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); String userLevel = NobleUtil.getLevel(UserLevelResourceType.EXPER_URL, chatRoomMessage); + String charmLevel = NobleUtil.getLevel(UserLevelResourceType.CHARM_URL, chatRoomMessage); boolean isOfficial = NobleUtil.getIsOfficial(UserInfo.IS_OFFICIAL, chatRoomMessage); - String vipIcon = NobleUtil.getResource(UserInfo.VIP_ICON, chatRoomMessage); - builder.append(vipIcon, expLevelHeight) - .append(isOfficial ? ResourcesCompat.getDrawable(getResources(), - R.mipmap.ic_user_official_13dp, null) : null, - badgeWidth, badgeHeight) + + builder.append(isOfficial ? ResourcesCompat.getDrawable(getResources(), + R.mipmap.ic_user_official_13dp, null) : null, + badgeWidth, badgeHeight) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(AvRoomDataManager.get().isSuperAdmin(chatRoomMessage.getFromAccount()) ? ResourcesCompat.getDrawable(getResources(), - R.drawable.ic_room_super_admin, null) : null, - SizeUtils.dp2px(tvContent.getContext(), 23), expLevelHeight); + R.drawable.ic_room_super_admin, null) : null, + SizeUtils.dp2px(mContext, 23), expLevelHeight); // 官方主播认证 String tvOfficialMask = NobleUtil.getLevel(UserInfo.OAC_NAME, chatRoomMessage).trim(); @@ -1988,10 +1985,11 @@ public class MessageView extends FrameLayout { if (!TextUtils.isEmpty(tvOfficialMask) && !TextUtils.isEmpty(ivOfficialMask) && extension != null) { // extension != null 表示自己 builder.appendBgAndContent(ivOfficialMask, tvOfficialMask); } else if (!TextUtils.isEmpty(ivOfficialMask)) { - builder.append(ivOfficialMask, SizeUtils.dp2px(tvContent.getContext(), 62), expLevelHeight); + builder.append(ivOfficialMask, SizeUtils.dp2px(mContext, 62), expLevelHeight); } //等级 builder.append(userLevel, expLevelWidth, expLevelHeight); + builder.append(charmLevel, expLevelWidth, expLevelHeight); //铭牌 String tvNamePlate = NobleUtil.getNamePlate(UserInfo.NAMEPLATE_WORD, chatRoomMessage).trim(); String ivNamePlate = NobleUtil.getNamePlate(UserInfo.NAMEPLATE_PIC, chatRoomMessage); @@ -2000,6 +1998,25 @@ public class MessageView extends FrameLayout { } else if (!TextUtils.isEmpty(ivNamePlate)) { builder.append(ivNamePlate, expLevelHeight); } + viewHolder.tvTags.setText(builder.build()); + String vipIcon = NobleUtil.getResource(UserInfo.VIP_ICON, chatRoomMessage); + String nickname = extension == null ? "我" : RegexUtil.getPrintableString(extension.getSenderNick()); + SpannableBuilder nicknameBuilder = new SpannableBuilder(viewHolder.tvNickname) + .append(vipIcon, expLevelHeight) + .append(nickname); + viewHolder.tvNickname.setText(nicknameBuilder.build()); + ImageLoadKt.loadAvatar(viewHolder.ivAvatar, extension == null ? UserUtils.getUserInfo().getAvatar() : extension.getSenderAvatar()); + if (Objects.equals(chatRoomMessage.getFromAccount(), String.valueOf(AuthModel.get().getCurrentUid()))) { + viewHolder.tvNickname.setOnLongClickListener(null); + } else { + viewHolder.tvNickname.setOnLongClickListener(v -> { + if (onLongClickListener != null) { + onLongClickListener.onLongClick(v, chatRoomMessage.getFromAccount(), nickname); + } + return true; + }); + } + } /** @@ -2273,13 +2290,13 @@ public class MessageView extends FrameLayout { for (GiftReceiver targetUser : attachment.getGiftMultiReceiverInfo().getTargetUsers()) { text.append(targetUser.getNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (clickConsumer != null) { - Single.just(targetUser.getUid() + "").subscribe(clickConsumer); - } - } - }) + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(targetUser.getUid() + "").subscribe(clickConsumer); + } + } + }) .append(","); } Editable msg = text.builder; @@ -2353,13 +2370,13 @@ public class MessageView extends FrameLayout { for (MagicReceiver targetUser : magicMultiReceiverInfo.getTargetUsers()) { text.append(targetUser.getNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (clickConsumer != null) { - Single.just(targetUser.getUid() + "").subscribe(clickConsumer); - } - } - }) + @Override + public void onClick(@NonNull View widget) { + if (clickConsumer != null) { + Single.just(targetUser.getUid() + "").subscribe(clickConsumer); + } + } + }) .append(","); } Editable msg = text.builder; @@ -2487,9 +2504,10 @@ public class MessageView extends FrameLayout { // 座驾 String carName = NobleUtil.getCarName(CarInfo.CAR_NAME, chatRoomMessage); carName = TextUtils.isEmpty(carName) ? "" : "\"" + carName + "\""; - + String userLevel = NobleUtil.getLevel(UserLevelResourceType.EXPER_URL, chatRoomMessage); SpannableBuilder text = new SpannableBuilder(tvContent); - addCommonTag(chatRoomMessage, text, tvContent); + //等级 + text.append(userLevel, expLevelWidth, expLevelHeight); text.append(senderNick, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { @Override @@ -2556,14 +2574,14 @@ public class MessageView extends FrameLayout { mMessageAdapter.notifyItemChanged(position); long targetUid = JavaUtil.str2long(chatRoomMessage.getFromAccount()); Single.zip(AvRoomModel.get().getWelcomeConfig(targetUid), - UserModel.get().getUserInfo(targetUid), (roomWelcomeConfig, info) -> { - WelcomeInfo welcomeInfo = new WelcomeInfo(); - welcomeInfo.setContent(roomWelcomeConfig.getMsg()); - welcomeInfo.setTargetUid(targetUid); - welcomeInfo.setTargetNick(info.getNick()); - welcomeInfo.setFans(roomWelcomeConfig.isFans()); - return welcomeInfo; - }) + UserModel.get().getUserInfo(targetUid), (roomWelcomeConfig, info) -> { + WelcomeInfo welcomeInfo = new WelcomeInfo(); + welcomeInfo.setContent(roomWelcomeConfig.getMsg()); + welcomeInfo.setTargetUid(targetUid); + welcomeInfo.setTargetNick(info.getNick()); + welcomeInfo.setFans(roomWelcomeConfig.isFans()); + return welcomeInfo; + }) .observeOn(AndroidSchedulers.mainThread()) .flatMap((Function>) welcomeInfo -> { WelcomeAttachment attachment = new WelcomeAttachment(); @@ -2718,16 +2736,15 @@ public class MessageView extends FrameLayout { // 内容 String fromAccount = chatRoomMessage.getFromAccount(); SpannableBuilder text = new SpannableBuilder(tvContent); - addCommonTag(chatRoomMessage, text, tvContent); text.append(extension == null ? "我" : RegexUtil.getPrintableString(extension.getSenderNick()), - new ForegroundColorSpan(greyColor), - new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - Single.just(String.valueOf(chatRoomMessage.getFromAccount())) - .doOnSuccess(clickConsumer).subscribe(); - } - }) + new ForegroundColorSpan(greyColor), + new OriginalDrawStatusClickSpan() { + @Override + public void onClick(@NonNull View widget) { + Single.just(String.valueOf(chatRoomMessage.getFromAccount())) + .doOnSuccess(clickConsumer).subscribe(); + } + }) .append(":" + welcomeInfo.getLastConent(), new ForegroundColorSpan(whiteColor)) .append(welcomeInfo.getTargetNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2884,10 +2901,18 @@ public class MessageView extends FrameLayout { class MessageViewHolder extends RecyclerView.ViewHolder { TextView tvContent; + ImageView ivAvatar; + TextView tvNickname; + TextView tvTags; + View llUserinfo; public MessageViewHolder(View itemView) { super(itemView); tvContent = itemView.findViewById(R.id.tv_content); + ivAvatar = itemView.findViewById(R.id.iv_avatar); + tvNickname = itemView.findViewById(R.id.tv_nickname); + tvTags = itemView.findViewById(R.id.tv_tags); + llUserinfo = itemView.findViewById(R.id.ll_userinfo); } } } diff --git a/app/src/main/java/com/nnbc123/app/common/EmptyViewHelper.java b/app/src/main/java/com/nnbc123/app/common/EmptyViewHelper.java index 30aeec4f8..2fd1112f3 100644 --- a/app/src/main/java/com/nnbc123/app/common/EmptyViewHelper.java +++ b/app/src/main/java/com/nnbc123/app/common/EmptyViewHelper.java @@ -1,6 +1,8 @@ package com.nnbc123.app.common; import android.content.Context; +import android.graphics.Color; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -21,6 +23,16 @@ public class EmptyViewHelper { return view; } + public static TextView createEmptyTextView(Context context,CharSequence text) { + TextView textView = new TextView(context); + textView.setGravity(Gravity.CENTER); + textView.setTextColor(Color.WHITE); + textView.setTextSize(12); + textView.setSingleLine(true); + textView.setText(text); + return textView; + } + public static View createDarkEmptyView(Context context, String text) { if (!NetworkUtils.isNetworkAvailable(context)) text = "网络异常,请检查网络再试~"; View view = LayoutInflater.from(context).inflate(R.layout.layout_ktv_empty, null); diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt index cc208f165..dca3eef13 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt @@ -30,6 +30,7 @@ import com.nnbc123.app.home.helper.BannerHelper import com.nnbc123.app.home.helper.OpenRoomHelper import com.nnbc123.app.skill.activity.SkillHomeActivity import com.nnbc123.app.skill.activity.SkillHomeActivity.Companion.start +import com.nnbc123.app.treasure_box.widget.GoldBoxHelper import com.nnbc123.app.ui.patriarch.PatriarchModeActivity import com.nnbc123.app.ui.pay.ChargeActivity import com.nnbc123.app.ui.relation.AttentionListActivity @@ -390,6 +391,9 @@ class MeFragment : BaseFragment(), View.OnClickListener { mContext, UriProvider.getTutuRealNamePage() ) + R.id.tv_me_service->{ + + } else -> {} } } diff --git a/app/src/main/java/com/nnbc123/app/other/SplashBitmapTransformation.java b/app/src/main/java/com/nnbc123/app/other/SplashBitmapTransformation.java index 2538906da..90f33145f 100644 --- a/app/src/main/java/com/nnbc123/app/other/SplashBitmapTransformation.java +++ b/app/src/main/java/com/nnbc123/app/other/SplashBitmapTransformation.java @@ -12,7 +12,7 @@ import java.security.MessageDigest; * splash 适配图片 */ public class SplashBitmapTransformation extends BitmapTransformation { - private static final String ID = "com.mango.moshen.other.SplashBitmapTransformation"; + private static final String ID = "com.nnbc123.app.other.SplashBitmapTransformation"; private static final byte[] ID_BYTES = ID.getBytes(CHARSET); public SplashBitmapTransformation() { diff --git a/app/src/main/java/com/nnbc123/app/utils/RegexUtil.java b/app/src/main/java/com/nnbc123/app/utils/RegexUtil.java index b575a0104..94739c397 100644 --- a/app/src/main/java/com/nnbc123/app/utils/RegexUtil.java +++ b/app/src/main/java/com/nnbc123/app/utils/RegexUtil.java @@ -55,7 +55,7 @@ public class RegexUtil { } public static String getNotPrintableStringReg() { - // bug-fixed java.lang.RuntimeException:Unable to resume activity {com.mango.moshen/com.mango.moshen.MainActivity}: kotlin.KotlinNullPointerException + // bug-fixed java.lang.RuntimeException:Unable to resume activity {com.nnbc123.app/com.nnbc123.app.MainActivity}: kotlin.KotlinNullPointerException return TextUtils.isEmpty(NOT_VISIBLE_CHARS) ? "" : NOT_VISIBLE_CHARS; } diff --git a/app/src/main/res/drawable-xhdpi/icon_room_lock_micro.png b/app/src/main/res/drawable-xhdpi/icon_room_lock_micro.png index 9beca2767..f54c48cd2 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_room_lock_micro.png and b/app/src/main/res/drawable-xhdpi/icon_room_lock_micro.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_room_up_micro.png b/app/src/main/res/drawable-xhdpi/icon_room_up_micro.png index 80ce898ec..a6786a0a0 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_room_up_micro.png and b/app/src/main/res/drawable-xhdpi/icon_room_up_micro.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_room_lock_micro.png b/app/src/main/res/drawable-xxhdpi/icon_room_lock_micro.png index 291012385..49923af43 100644 Binary files a/app/src/main/res/drawable-xxhdpi/icon_room_lock_micro.png and b/app/src/main/res/drawable-xxhdpi/icon_room_lock_micro.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_room_up_micro.png b/app/src/main/res/drawable-xxhdpi/icon_room_up_micro.png index 0f8aae937..ddddfe7e8 100644 Binary files a/app/src/main/res/drawable-xxhdpi/icon_room_up_micro.png and b/app/src/main/res/drawable-xxhdpi/icon_room_up_micro.png differ diff --git a/app/src/main/res/drawable/shape_0d002f_corner.xml b/app/src/main/res/drawable/shape_0d002f_corner.xml new file mode 100644 index 000000000..f4559aea6 --- /dev/null +++ b/app/src/main/res/drawable/shape_0d002f_corner.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_e7991a_to_ffe2bb.xml b/app/src/main/res/drawable/shape_e7991a_to_ffe2bb.xml new file mode 100644 index 000000000..4143eea9c --- /dev/null +++ b/app/src/main/res/drawable/shape_e7991a_to_ffe2bb.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/drawable/shape_room_message_bg.xml b/app/src/main/res/drawable/shape_room_message_bg.xml index 0f94c167e..7b6a20baf 100644 --- a/app/src/main/res/drawable/shape_room_message_bg.xml +++ b/app/src/main/res/drawable/shape_room_message_bg.xml @@ -10,6 +10,10 @@ android:right="6dp" android:top="2dp" />--> - + \ No newline at end of file diff --git a/app/src/main/res/layout/box_ranking_list_item.xml b/app/src/main/res/layout/box_ranking_list_item.xml index 85b880cdf..b26c3a8d7 100644 --- a/app/src/main/res/layout/box_ranking_list_item.xml +++ b/app/src/main/res/layout/box_ranking_list_item.xml @@ -1,97 +1,83 @@ + android:layout_marginStart="5dp" + android:layout_marginTop="6dp" + android:layout_marginEnd="15dp" + android:layout_marginBottom="6dp" + android:orientation="horizontal"> - + - - - - + - + + + + + android:src="@drawable/default_avatar" + app:cborder_color="@color/white" + app:cborder_width="1px" /> - - - - + android:ellipsize="end" + android:lines="1" + android:textColor="@color/white" + android:textSize="13sp" + app:layout_flexShrink="1" + tools:text="我的我的我的我的我的我的" /> - - \ No newline at end of file + + + + diff --git a/app/src/main/res/layout/fragment_find_tab.xml b/app/src/main/res/layout/fragment_find_tab.xml index ea0824b00..0eae49841 100644 --- a/app/src/main/res/layout/fragment_find_tab.xml +++ b/app/src/main/res/layout/fragment_find_tab.xml @@ -14,7 +14,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/app_bar_layout" android:background="@color/transparent" app:elevation="0dp" - app:layout_behavior="@string/behavior_fix_app_bar" + app:layout_behavior="com.nnbc123.app.ui.behavior.FixAppBarBehavior" android:layout_width="match_parent" android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/item_boss_micro.xml b/app/src/main/res/layout/item_boss_micro.xml index 57afe5b8b..aef32be83 100644 --- a/app/src/main/res/layout/item_boss_micro.xml +++ b/app/src/main/res/layout/item_boss_micro.xml @@ -35,7 +35,7 @@ android:layout_width="@dimen/dp_room_boss_mic_radius" android:layout_height="@dimen/dp_room_boss_mic_radius" android:layout_gravity="center" - android:src="@drawable/icon_room_up_micro_boss" + android:src="@drawable/icon_room_up_micro" tools:visibility="gone" /> diff --git a/app/src/main/res/layout/item_micro_single_anchor_boss.xml b/app/src/main/res/layout/item_micro_single_anchor_boss.xml index 7485d7508..7d97bbb6b 100644 --- a/app/src/main/res/layout/item_micro_single_anchor_boss.xml +++ b/app/src/main/res/layout/item_micro_single_anchor_boss.xml @@ -62,7 +62,7 @@ android:id="@+id/up_image" android:layout_width="0dp" android:layout_height="0dp" - android:src="@drawable/icon_room_up_micro_boss" + android:src="@drawable/icon_room_up_micro" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_percent="0.76" @@ -75,7 +75,7 @@ android:id="@+id/lock_image" android:layout_width="0dp" android:layout_height="0dp" - android:src="@drawable/icon_room_lock_micro_boss" + android:src="@drawable/icon_room_lock_micro" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/item_micro_single_room_pk_boss.xml b/app/src/main/res/layout/item_micro_single_room_pk_boss.xml index 819402e1b..6fbd5823f 100644 --- a/app/src/main/res/layout/item_micro_single_room_pk_boss.xml +++ b/app/src/main/res/layout/item_micro_single_room_pk_boss.xml @@ -49,7 +49,7 @@ android:layout_marginStart="40dp" android:layout_marginTop="26dp" android:layout_marginEnd="40dp" - android:src="@drawable/icon_room_up_micro_boss" + android:src="@drawable/icon_room_up_micro" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -62,7 +62,7 @@ android:layout_marginStart="40dp" android:layout_marginTop="26dp" android:layout_marginEnd="40dp" - android:src="@drawable/icon_room_lock_micro_boss" + android:src="@drawable/icon_room_lock_micro" android:visibility="invisible" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/list_item_chatrrom_msg.xml b/app/src/main/res/layout/list_item_chatrrom_msg.xml index b231a4c09..a2222235f 100644 --- a/app/src/main/res/layout/list_item_chatrrom_msg.xml +++ b/app/src/main/res/layout/list_item_chatrrom_msg.xml @@ -1,21 +1,55 @@ - - + + + android:layout_marginStart="7dp" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 420075345..bd74ce55f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -868,8 +868,6 @@ 隐私设置 通知提醒设置 - com.mango.moshen.ui.behavior.FixAppBarBehavior - 搜索记录 进房记录 清空 diff --git a/app/src/module_mini_world/res/layout/fragment_av_room_game.xml b/app/src/module_mini_world/res/layout/fragment_av_room_game.xml index a9446286a..721b2228f 100644 --- a/app/src/module_mini_world/res/layout/fragment_av_room_game.xml +++ b/app/src/module_mini_world/res/layout/fragment_av_room_game.xml @@ -224,9 +224,8 @@ android:layout_height="match_parent" android:layout_above="@+id/fl_speedy_message" android:layout_below="@id/micro_view" - android:layout_marginStart="12dp" android:layout_marginTop="@dimen/dp_5" - android:layout_marginEnd="90dp" + android:layout_marginEnd="85dp" android:layout_marginBottom="@dimen/dp_10" /> - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/BoxRankingActivity.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/BoxRankingActivity.java index f8ad69b73..2eeab1c9e 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/BoxRankingActivity.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/BoxRankingActivity.java @@ -1,56 +1,33 @@ package com.nnbc123.app.treasure_box.activity; import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; import android.os.Bundle; -import android.widget.ImageView; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; -import com.flyco.tablayout.SlidingTabLayout; -import com.nnbc123.app.R; -import com.nnbc123.app.base.BaseActivity; -import com.nnbc123.app.common.ViewPagerAdapter; -import com.nnbc123.app.decoration.view.widgets.CarMagicIndicator; -import com.nnbc123.core.room.treasure_box.event.RefreshBoxRankingEvent; -import com.nnbc123.app.treasure_box.fragment.BoxRankingFragment; -import com.nnbc123.app.room_chat.event.ClickRootViewEvent; import com.nnbc123.core.home.bean.TabInfo; -import com.nnbc123.core.manager.IMNetEaseManager; -import com.nnbc123.core.manager.RoomEvent; - -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; +import com.nnbc123.app.R; +import com.nnbc123.app.base.BaseViewBindingFragment; +import com.nnbc123.app.common.ViewPagerAdapter; +import com.nnbc123.app.databinding.ActivityRoomBoxRankingBinding; +import com.nnbc123.app.treasure_box.fragment.BoxRankingFragment; import java.util.ArrayList; import java.util.List; -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.OnClick; +public class BoxRankingActivity extends BaseViewBindingFragment { - -public class BoxRankingActivity extends BaseActivity implements CarMagicIndicator.OnItemSelectListener { - - @BindView(R.id.view_indicator) - SlidingTabLayout viewIndicator; - @BindView(R.id.viewpager) - ViewPager viewpager; - @BindView(R.id.iv_refresh) - ImageView ivRefresh; - private String[] titles = {"今日榜单", "昨日榜单"}; public static final int TYPE_TODAY = 1;//今日 public static final int TYPE_YESTERDAY = 2;//今日 + private String[] titles = {"今日榜单", "昨日榜单"}; - - public static void start(Context context) { - Intent starter = new Intent(context, BoxRankingActivity.class); - //starter.putExtra(); - context.startActivity(starter); + public static BoxRankingActivity newInstance() { + Bundle args = new Bundle(); + BoxRankingActivity fragment = new BoxRankingActivity(); + fragment.setArguments(args); + return fragment; } @SuppressLint("CheckResult") @@ -59,36 +36,24 @@ public class BoxRankingActivity extends BaseActivity implements CarMagicIndicato for (int i = 0; i < titles.length; i++) { tabInfoList.add(new TabInfo(i, titles[i])); } - viewpager.setOffscreenPageLimit(2); - viewpager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), getFragment(), titles)); - viewIndicator.setViewPager(viewpager, titles, this, getFragment()); - - IMNetEaseManager.get().getChatRoomEventObservable() - .compose(bindToLifecycle()) - .filter(roomEvent -> roomEvent.getEvent() == RoomEvent.KICK_OUT_ROOM) - .subscribe(roomEvent -> finish()); - - ivRefresh.setOnClickListener(v -> EventBus.getDefault().post(new RefreshBoxRankingEvent())); + getBinding().viewpager.setOffscreenPageLimit(2); + getBinding().viewpager.setAdapter(new ViewPagerAdapter(getChildFragmentManager(), getFragment(), titles)); + getBinding().viewpager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { + @Override + public void onPageSelected(int position) { + if (position == 0) { + getBinding().rbToday.setChecked(true); + } else { + getBinding().rbYesterday.setChecked(true); + } + } + }); + getBinding().rg.setOnCheckedChangeListener((group, checkedId) -> getBinding().viewpager.setCurrentItem(checkedId == R.id.rb_today ? 0 : 1)); } @Override - protected boolean needSteepStateBar() { - return false; - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_room_box_ranking); - ButterKnife.bind(this); - EventBus.getDefault().register(this); - init(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); + public int getRootLayoutId() { + return R.layout.activity_room_box_ranking; } private ArrayList getFragment() { @@ -97,19 +62,4 @@ public class BoxRankingActivity extends BaseActivity implements CarMagicIndicato list.add(BoxRankingFragment.newInstance(TYPE_YESTERDAY)); return list; } - - @Override - public void onItemSelect(int position) { - viewpager.setCurrentItem(position); - } - - @OnClick(R.id.root_view) - public void onViewClicked() { - finish(); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onRootViewClicked(ClickRootViewEvent event) { - onViewClicked(); - } } \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxActivity.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxActivity.java index c34bda329..c01c2d5b0 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxActivity.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxActivity.java @@ -1,48 +1,53 @@ package com.nnbc123.app.treasure_box.activity; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.Editable; -import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; -import android.view.animation.AccelerateDecelerateInterpolator; import android.widget.LinearLayout; import android.widget.TextView; -import com.nnbc123.core.statistic.StatisticManager; -import com.nnbc123.core.statistic.protocol.StatisticsProtocol; -import com.netease.nim.uikit.StatusBarUtil; -import com.netease.nim.uikit.common.util.sys.ScreenUtil; -import com.nnbc123.app.R; -import com.nnbc123.app.base.BaseBindingActivity; -import com.nnbc123.app.databinding.ActivityTreasureBoxBinding; -import com.nnbc123.app.treasure_box.widget.dialog.BoxMoreDialog; -import com.nnbc123.app.ui.utils.ImageLoadUtils; -import com.nnbc123.app.ui.webview.DialogWebViewActivity; -import com.nnbc123.app.utils.UserUtils; -import com.nnbc123.treasure_box.bean.PrizeInfo; -import com.nnbc123.treasure_box.model.BoxModel; -import com.nnbc123.treasure_box.model.IBoxModel; +import androidx.fragment.app.Fragment; + import com.nnbc123.core.DemoCache; import com.nnbc123.core.UriProvider; import com.nnbc123.core.manager.IMNetEaseManager; import com.nnbc123.core.manager.RoomEvent; import com.nnbc123.core.pay.PayModel; import com.nnbc123.core.pay.bean.WalletInfo; +import com.nnbc123.core.statistic.StatisticManager; +import com.nnbc123.core.statistic.protocol.StatisticsProtocol; import com.nnbc123.core.utils.StringUtils; +import com.nnbc123.app.R; +import com.nnbc123.app.base.BaseBindingActivity; +import com.nnbc123.app.databinding.ActivityTreasureBoxBinding; +import com.nnbc123.app.treasure_box.fragment.BoxRecordFragment; +import com.nnbc123.app.treasure_box.fragment.BoxRuleFragment; +import com.nnbc123.app.treasure_box.widget.dialog.BoxMoreDialog; +import com.nnbc123.app.ui.webview.DialogWebViewActivity; +import com.nnbc123.app.utils.UserUtils; +import com.nnbc123.treasure_box.bean.PrizeInfo; +import com.nnbc123.treasure_box.event.MoreClickEvent; +import com.nnbc123.treasure_box.model.BoxModel; +import com.nnbc123.treasure_box.model.IBoxModel; import com.nnbc123.library.annatation.ActLayoutRes; import com.nnbc123.library.utils.FormatUtils; import com.nnbc123.library.utils.SingleToastUtil; import com.nnbc123.library.utils.TextWatcherWrapper; +import com.netease.nim.uikit.StatusBarUtil; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; +import com.tencent.qgame.animplayer.util.ScaleType; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; import java.util.HashMap; @@ -54,13 +59,9 @@ import io.reactivex.android.schedulers.AndroidSchedulers; @ActLayoutRes(R.layout.activity_treasure_box) public class TreasureBoxActivity extends BaseBindingActivity implements View.OnClickListener { private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews(); - private int price = 20; private volatile int keyNum; - private ArrayList cacheList = new ArrayList<>(); - private ArrayList hintPrizeCacheList = new ArrayList<>(); - private ObjectAnimator translationXAnimator; - private ObjectAnimator translationYAnimator; - private int boxType = IBoxModel.BOX_TYPE_NORMAL; + private final ArrayList hintPrizeCacheList = new ArrayList<>(); + private final int boxType = IBoxModel.BOX_TYPE_NORMAL; private int height; private int sendMessageSwitchLevel; @@ -72,6 +73,7 @@ public class TreasureBoxActivity extends BaseBindingActivity { - translationYAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationY", 0, - height - (mBinding.ivBox.getBottom() + mBinding.ivBox.getTop()) / 2f - ScreenUtil.dip2px(10 + 19)).setDuration(100); - translationYAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); - }); WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo(); if (walletInfo != null) { mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(walletInfo.getDiamondNum())); @@ -113,16 +107,22 @@ public class TreasureBoxActivity extends BaseBindingActivity { changeKeyNum(keyInfo.getKeyNum()); - price = keyInfo.getKeyPrice(); sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel(); }); } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onMoreClickEvent(MoreClickEvent event) { + onClick(event.getView()); + } + + @Override + public void onBackPressed() { + if (mBinding.fragmentContainer.getVisibility() == View.VISIBLE) { + mBinding.fragmentContainer.setVisibility(View.GONE); + } else { + super.onBackPressed(); + } + } + @Override public void onClick(View v) { switch (v.getId()) { case R.id.root_view: - finish(); + if (mBinding.fragmentContainer.getVisibility() == View.VISIBLE) { + mBinding.fragmentContainer.setVisibility(View.GONE); + } else { + finish(); + } break; case R.id.iv_more: - new BoxMoreDialog(context, sendMessageSwitchLevel).openDialog(); + replaceFragment(BoxMoreDialog.newInstance(sendMessageSwitchLevel)); break; case R.id.tv_rank: -// DialogWebViewActivity.start(context, UriProvider.getBoxRank(), false); - BoxRankingActivity.start(this); + replaceFragment(BoxRankingActivity.newInstance()); break; case R.id.iv_open: openBox(StringUtils.toInt(mBinding.editNum.getText().toString(), 0)); @@ -164,11 +180,28 @@ public class TreasureBoxActivity extends BaseBindingActivity { + .doOnNext(openBoxResult ->{ mBinding.ivOpen.setEnabled(true); changeKeyNum(openBoxResult.getRemainKeyNum()); - cacheList.addAll(openBoxResult.getPrizeItemList()); - return Observable.fromIterable(openBoxResult.getPrizeItemList()); + mBinding.svgaGiftBg.startAnimation(); }) + .flatMap(openBoxResult -> Observable.fromIterable(openBoxResult.getPrizeItemList())) .filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2) - .subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo)); - } - - @SuppressLint("CheckResult") - private void looperPrize() { - Observable.interval(0, 100, TimeUnit.MILLISECONDS) - .compose(bindToLifecycle()) - .observeOn(AndroidSchedulers.mainThread()) - .filter(aLong -> cacheList.size() > 0) - .subscribe(aLong -> { - PrizeInfo prizeInfo = cacheList.get(0); - String url = prizeInfo.getPrizeImgUrl(); - if (cacheList.size() > 0) cacheList.remove(0); - if (!TextUtils.isEmpty(url)) { - if (translationXAnimator != null) translationXAnimator.start(); - if (translationYAnimator != null) translationYAnimator.start(); - mBinding.ivGiftAnim.setVisibility(View.VISIBLE); - mBinding.svgaGiftBg.startAnimation(); - ImageLoadUtils.loadImage(context, url, mBinding.ivGiftAnim); - } - } - , e -> looperPrize());//出错了继续looper...... - + .subscribe(hintPrizeCacheList::add); } @SuppressLint("CheckResult") @@ -260,13 +269,13 @@ public class TreasureBoxActivity extends BaseBindingActivity { switch (roomEvent.getEvent()) { case RoomEvent.WALLET_UPDATE: - loadKeyInfo(); setGold(roomEvent.getWalletInfo().getDiamondNum()); break; case RoomEvent.KICK_OUT_ROOM: diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxHonourActivity.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxHonourActivity.java deleted file mode 100644 index 63f6a8aeb..000000000 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/activity/TreasureBoxHonourActivity.java +++ /dev/null @@ -1,315 +0,0 @@ -package com.nnbc123.app.treasure_box.activity; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.ObjectAnimator; -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.view.animation.AccelerateDecelerateInterpolator; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.netease.nim.uikit.StatusBarUtil; -import com.netease.nim.uikit.common.util.sys.ScreenUtil; -import com.nnbc123.app.R; -import com.nnbc123.app.base.BaseBindingActivity; -import com.nnbc123.app.databinding.ActivityTreasureBoxHonourBinding; -import com.nnbc123.app.treasure_box.widget.dialog.BoxMoreDialog; -import com.nnbc123.app.ui.utils.ImageLoadUtils; -import com.nnbc123.app.ui.webview.DialogWebViewActivity; -import com.nnbc123.treasure_box.bean.PrizeInfo; -import com.nnbc123.treasure_box.model.BoxModel; -import com.nnbc123.treasure_box.model.IBoxModel; -import com.nnbc123.core.DemoCache; -import com.nnbc123.core.UriProvider; -import com.nnbc123.core.manager.IMNetEaseManager; -import com.nnbc123.core.manager.RoomEvent; -import com.nnbc123.core.pay.PayModel; -import com.nnbc123.core.pay.bean.WalletInfo; -import com.nnbc123.core.utils.StringUtils; -import com.nnbc123.library.annatation.ActLayoutRes; -import com.nnbc123.library.utils.FormatUtils; -import com.nnbc123.library.utils.SingleToastUtil; -import com.nnbc123.library.utils.TextWatcherWrapper; - -import java.util.ArrayList; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; - -@ActLayoutRes(R.layout.activity_treasure_box_honour) -public class TreasureBoxHonourActivity extends BaseBindingActivity { - private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews(); - private int price = 20; - private volatile int keyNum; - private ArrayList cacheList = new ArrayList<>(); - private ArrayList hintPrizeCacheList = new ArrayList<>(); - private ObjectAnimator translationXAnimator; - private ObjectAnimator translationYAnimator; - private int boxType = IBoxModel.BOX_TYPE_HONOUR; - private int height; - private int sendMessageSwitchLevel; - - public static void start(Context context) { - Intent starter = new Intent(context, TreasureBoxHonourActivity.class); - context.startActivity(starter); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - //这里的height用MATCH_PARENT状态栏会被顶上去,不知道什么鬼 - height = ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context); - getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context)); - getWindow().setGravity(Gravity.BOTTOM); - subscribeEvent(); - } - - @Override - protected void init() { - mBinding.setClick(this); - translationXAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationX", 0, - ScreenUtil.screenWidth / 2f - ScreenUtil.dip2px(15 + 19)).setDuration(100); - translationXAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); - translationXAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mBinding.ivGiftAnim.setVisibility(View.GONE); - } - }); - mBinding.ivBox.post(() -> { - translationYAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationY", 0, - height - (mBinding.ivBox.getBottom() + mBinding.ivBox.getTop()) / 2f - ScreenUtil.dip2px(55)).setDuration(100); - translationYAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); - }); - WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo(); - if (walletInfo != null) { - mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(walletInfo.getDiamondNum())); - } - - mBinding.editNum.addTextChangedListener(new TextWatcherWrapper() { - @Override - public void afterTextChanged(Editable editable) { - int num = StringUtils.toInt(mBinding.editNum.getText().toString(), 0); - mBinding.tvContinuousNum.setText("消耗" + num * 10); - } - }); - loadKeyInfo(); - looperPrize(); - looperHintPrize(); - } - - @SuppressLint("CheckResult") - private void loadKeyInfo() { - BoxModel.get() - .getKeyInfo(boxType) - .compose(bindToLifecycle()) - .subscribe(keyInfo -> { - changeKeyNum(keyInfo.getKeyNum()); - price = keyInfo.getKeyPrice(); - sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel(); - }); - } - - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.root_view: - finish(); - break; - case R.id.iv_open: - openBox(StringUtils.toInt(mBinding.editNum.getText().toString())); - break; - case R.id.iv_more: - new BoxMoreDialog(context, sendMessageSwitchLevel).openDialog(); - break; - case R.id.tv_rank: - BoxRankingActivity.start(this); - break; - case R.id.iv_sub: - mBinding.editNum.setText(String.valueOf(Math.max(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) - 1, 1))); - break; - case R.id.iv_add: - mBinding.editNum.setText(String.valueOf(Math.min((StringUtils.toInt(mBinding.editNum.getText().toString(), 0) + 1), 9999))); - break; - case R.id.view_bg: - case R.id.iv_title: - //do nothing - break; - default: - break; - } - } - - /** - * 检查钥匙(锤子)数量 - * - * @param count 想要使用的数量 - * @return true 表示数量不足,无法进行下一步操作 - * false 表示数量没问题,可以继续操作 - */ - private boolean checkKeyNum(int count) { - if (count == 0) { - SingleToastUtil.showToast("开启数量不能为0!"); - return true; - } - if (keyNum < count) { - getDialogManager().showOkCancelDialog("参与活动获得流星", "去参与", - () -> DialogWebViewActivity.start(context, UriProvider.getBoxKey())); - return true; - } - return false; - } - - @SuppressLint("CheckResult") - private void openBox(int count) { - if (checkKeyNum(count)) { - return; - } - mBinding.ivOpen.setEnabled(false); - mBinding.svgaOpen.startAnimation(); - BoxModel.get() - .openBox(boxType, count, DemoCache.readNeedBoxMsg()) - .compose(bindToLifecycle()) - .doOnError(throwable -> { - mBinding.ivOpen.setEnabled(true); - toast(throwable.getMessage()); - }) - .toObservable() - .flatMap(openBoxResult -> { - mBinding.ivOpen.setEnabled(true); - changeKeyNum(openBoxResult.getRemainKeyNum()); - cacheList.addAll(openBoxResult.getPrizeItemList()); - return Observable.fromIterable(openBoxResult.getPrizeItemList()); - }) - .filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2) - .subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo)); - } - - @SuppressLint("CheckResult") - private void looperPrize() { - Observable.interval(0, 100, TimeUnit.MILLISECONDS) - .compose(bindToLifecycle()) - .observeOn(AndroidSchedulers.mainThread()) - .filter(aLong -> cacheList.size() > 0) - .subscribe(aLong -> { - PrizeInfo prizeInfo = cacheList.get(0); - String url = prizeInfo.getPrizeImgUrl(); - if (cacheList.size() > 0) cacheList.remove(0); - if (!TextUtils.isEmpty(url)) { - if (translationXAnimator != null) translationXAnimator.start(); - if (translationYAnimator != null) translationYAnimator.start(); - mBinding.ivGiftAnim.setVisibility(View.VISIBLE); - mBinding.svgaGiftBg.startAnimation(); - ImageLoadUtils.loadImage(context, url, mBinding.ivGiftAnim); - } - } - , e -> looperPrize());//出错了继续looper...... - - } - - @SuppressLint("CheckResult") - private void looperHintPrize() { - Observable.interval(0, 250, TimeUnit.MILLISECONDS) - .compose(bindToLifecycle()) - .observeOn(AndroidSchedulers.mainThread()) - .filter(aLong -> hintPrizeCacheList.size() > 0) - .subscribe(aLong -> addPrizeHintView(hintPrizeCacheList.remove(0)) - , e -> looperHintPrize());//出错了继续looper...... - } - - private void addPrizeHintView(PrizeInfo prizeInfo) { - mBinding.llPrizeHint.removeCallbacks(removeRunnable); - mBinding.llPrizeHint.postDelayed(removeRunnable, 3000); - LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_box_prize_hint, null); - ViewGroup.MarginLayoutParams layoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ScreenUtil.dip2px(21)); - layoutParams.setMargins(0, 0, 0, ScreenUtil.dip2px(5)); - linearLayout.setLayoutParams(layoutParams); - switch (prizeInfo.getPrizeLevel()) { - case 3: - default: - linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v3); - break; - case 4: - linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v4); - break; - case 5: - linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v5); - break; - } - mBinding.llPrizeHint.addView(linearLayout); - if (mBinding.llPrizeHint.getChildCount() > 6) { - mBinding.llPrizeHint.removeViewAt(0); - } - for (int i = 0; i < mBinding.llPrizeHint.getChildCount(); i++) { - ObjectAnimator.ofFloat(mBinding.llPrizeHint.getChildAt(i), "translationY", ScreenUtil.dip2px(21), 0) - .setDuration(200) - .start(); - } - - ((TextView) linearLayout.findViewById(R.id.tv_prize_name)).setText(prizeInfo.getPrizeName()); - ((TextView) linearLayout.findViewById(R.id.tv_prize_num)).setText("x" + prizeInfo.getPrizeNum()); - } - - /** - * 更新钥匙(锤子)数量 - * - * @param num - */ - private void changeKeyNum(int num) { - keyNum = num; - mBinding.tvKeyNum.setText(keyNum + ""); - } - - /** - * 更新钱包 - * - * @param g - */ - private void setGold(double g) { - mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(g)); - PayModel.get().getCurrentWalletInfo().setDiamondNum(g); - } - - @SuppressLint("CheckResult") - private void subscribeEvent() { - //更新钻石数量和被踢出房间退出 - IMNetEaseManager.get().getChatRoomEventObservable() - .compose(bindToLifecycle()) - .subscribe(roomEvent -> { - switch (roomEvent.getEvent()) { - case RoomEvent.WALLET_UPDATE: - loadKeyInfo(); - setGold(roomEvent.getWalletInfo().getDiamondNum()); - break; - case RoomEvent.KICK_OUT_ROOM: - finish(); - break; - } - }); - } - - - @Override - protected boolean needSteepStateBar() { - return true; - } - - @Override - protected void setStatusBar() { - super.setStatusBar(); - StatusBarUtil.transparencyBar(this); - StatusBarUtil.StatusBarLightMode(this); - } - -} diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/adapter/BoxRankingListAdapter.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/adapter/BoxRankingListAdapter.java index 553ea7cc9..2de02d0ff 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/adapter/BoxRankingListAdapter.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/adapter/BoxRankingListAdapter.java @@ -7,9 +7,9 @@ import android.widget.TextView; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; +import com.nnbc123.core.room.treasure_box.bean.BoxRankingInfo; import com.nnbc123.app.R; import com.nnbc123.app.ui.utils.ImageLoadKt; -import com.nnbc123.core.room.treasure_box.bean.BoxRankingInfo; /** * @author jack @@ -30,10 +30,12 @@ public class BoxRankingListAdapter extends BaseQuickAdapter { mAdapter.setEnableLoadMore(true); - loadData(true,datetype); + loadData(true, datetype); }); - - } @Override public void initiate() { initRecyclerView(); - loadData(true,datetype); + loadData(true, datetype); } - /** * 刷新数据 */ - private void loadData(boolean isRefresh,int datetype) { - getMvpPresenter().loadData(isRefresh,datetype); + private void loadData(boolean isRefresh, int datetype) { + getMvpPresenter().loadData(isRefresh, datetype); } @Override @@ -100,19 +98,18 @@ public class BoxRankingFragment extends BaseMvpFragment() { + + companion object { + fun newInstance(): BoxRecordFragment { + val args = Bundle() + val fragment = BoxRecordFragment() + fragment.arguments = args + return fragment + } + } + + private lateinit var adapter: BaseQuickAdapter + private var page = 1 + private lateinit var rvDelegate: RVDelegate + private val pageSize = 20 + private val format = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) + + override fun init() { + adapter = + object : BaseQuickAdapter(R.layout.item_box_prize_record) { + override fun convert(helper: BaseViewHolder, item: PrizeInfo) { + helper.getView(R.id.iv_prize_pic).load(item.prizeImgUrl) + helper.setText(R.id.tv_prize_name, item.prizeName) + .setText(R.id.tv_prize_num, "x${item.prizeNum}") + .setText(R.id.tv_prize_time, format.format(item.createTime)) + } + } + + rvDelegate = RVDelegate.Builder() + .setAdapter(adapter) + .setRecyclerView(binding.recyclerView) + .setEmptyView(EmptyViewHelper.createEmptyTextView(context, "暂无记录")) + .setLayoutManager(LinearLayoutManager(mContext)) + .setRefreshLayout(binding.swipeRefresh) + .setPageSize(pageSize) + .build() + + adapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView) + + binding.swipeRefresh.setOnRefreshListener { + loadData(true) + } + loadData(true) + + } + + @SuppressLint("CheckResult") + private fun loadData(isRefresh: Boolean) { + binding.swipeRefresh.isRefreshing = isRefresh + + if (isRefresh) { + page = 1 + } else { + page++ + } + + BoxModel.get() + .getPrizeRecord(page, pageSize, "time", AuthModel.get().currentUid) + .compose(bindToLifecycle()) + .subscribe({ + rvDelegate.loadData(it, isRefresh) + }, { + it.printStackTrace() + }) + } + +} \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/fragment/BoxRuleFragment.kt b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/fragment/BoxRuleFragment.kt new file mode 100644 index 000000000..343b5075a --- /dev/null +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/fragment/BoxRuleFragment.kt @@ -0,0 +1,71 @@ +package com.nnbc123.app.treasure_box.fragment + +import android.annotation.SuppressLint +import android.os.Bundle +import android.widget.ImageView +import androidx.recyclerview.widget.LinearLayoutManager +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.nnbc123.app.R +import com.nnbc123.app.base.BaseViewBindingFragment +import com.nnbc123.app.common.EmptyViewHelper +import com.nnbc123.app.databinding.FragmentBoxRuleBinding +import com.nnbc123.app.ui.utils.RVDelegate +import com.nnbc123.app.ui.utils.load +import com.nnbc123.treasure_box.bean.BoxRuleItemInfo +import com.nnbc123.treasure_box.model.BoxModel + +class BoxRuleFragment : BaseViewBindingFragment() { + + companion object { + fun newInstance(): BoxRuleFragment { + val args = Bundle() + val fragment = BoxRuleFragment() + fragment.arguments = args + return fragment + } + } + + private lateinit var adapter: BaseQuickAdapter + private lateinit var rvDelegate: RVDelegate + + override fun init() { + adapter = + object : BaseQuickAdapter(R.layout.item_box_rule) { + override fun convert(helper: BaseViewHolder, item: BoxRuleItemInfo) { + helper.getView(R.id.iv_prize_pic).load(item.prizeUrl) + helper.setText(R.id.tv_prize_name, item.prizeName) + .setText(R.id.tv_diamond, "${item.platformValue}") + .setText(R.id.tv_probability, "${item.showRate}%") + } + } + + rvDelegate = RVDelegate.Builder() + .setAdapter(adapter) + .setRecyclerView(binding.recyclerView) + .setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无记录")) + .setLayoutManager(LinearLayoutManager(mContext)) + .setRefreshLayout(binding.swipeRefresh) + .build() + + binding.swipeRefresh.setOnRefreshListener { + loadData() + } + loadData() + + } + + @SuppressLint("CheckResult") + private fun loadData() { + binding.swipeRefresh.isRefreshing = true + BoxModel.get() + .openBoxRule + .compose(bindToLifecycle()) + .subscribe({ + rvDelegate.setNewData(it) + }, { + it.printStackTrace() + }) + } + +} \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/fragment/ChooseTreasureBoxDialogFragment.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/fragment/ChooseTreasureBoxDialogFragment.java deleted file mode 100644 index 77f50fb0e..000000000 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/fragment/ChooseTreasureBoxDialogFragment.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.nnbc123.app.treasure_box.fragment; - -import android.app.Dialog; -import android.os.Bundle; -import android.util.DisplayMetrics; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.fragment.app.DialogFragment; - -import com.coorchice.library.utils.LogUtils; -import com.nnbc123.app.R; -import com.nnbc123.app.ui.webview.DialogWebViewActivity; -import com.nnbc123.core.UriProvider; -import com.nnbc123.core.manager.AvRoomDataManager; -import com.nnbc123.core.statistic.StatisticManager; -import com.nnbc123.core.statistic.protocol.StatisticsProtocol; -import com.nnbc123.library.utils.TimeUtils; - -public class ChooseTreasureBoxDialogFragment extends DialogFragment implements View.OnClickListener { - - private ConstraintLayout clBoxNormal, clBoxHonour; - - private OnTreasureBoxChooseListener onTreasureBoxChooseListener; - - private TextView tvOpenTime; - - private String mOpenTime; - - private TextView mTvOpenHonour; - - public ChooseTreasureBoxDialogFragment(String openTime) { - this.mOpenTime = openTime; - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_choose_treasure_box_dialog, container); - getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题 - if (getDialog().getWindow() != null) { - getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);// 透明 - } - return view; - } - - @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - clBoxNormal = view.findViewById(R.id.cl_box_normal); - clBoxHonour = view.findViewById(R.id.cl_box_honour); - tvOpenTime = view.findViewById(R.id.tv_open_time); - mTvOpenHonour = view.findViewById(R.id.tv_open_honour); - view.findViewById(R.id.iv_close).setOnClickListener(this); - clBoxNormal.setOnClickListener(this); - tvOpenTime.setText("限时 "+ mOpenTime); -// String mOpenTime = "11:10-02:00"; - int startTime = Integer.parseInt(mOpenTime.substring(0,mOpenTime.indexOf("-")).replace(":","")); - int endTime = Integer.parseInt(mOpenTime.substring(mOpenTime.indexOf("-") + 1).replace(":","")); - LogUtils.e("startTime"+startTime); - LogUtils.e("endTime"+endTime); - LogUtils.e("范围:"+TimeUtils.getTimeLimit(startTime,endTime)); - - mTvOpenHonour.setEnabled(TimeUtils.getTimeLimit(startTime,endTime)); - if (TimeUtils.getTimeLimit(startTime,endTime)){ - clBoxHonour.setOnClickListener(this); - } - view.findViewById(R.id.ll_get_key).setOnClickListener(v -> DialogWebViewActivity.start(getContext(), UriProvider.getBoxKey())); - } - - @Override - public void onStart() { - super.onStart(); - Dialog dialog = getDialog(); - if (dialog != null) { - DisplayMetrics dm = new DisplayMetrics(); - if (getActivity() != null && getActivity().getWindowManager() != null - && dialog.getWindow() != null) { - getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); - dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); - dialog.getWindow().setGravity(Gravity.CENTER); - } - } - - } - - @Override - public void onClick(View view) { - int id = view.getId(); - if (id == R.id.iv_close) { - dismiss(); - } else if (id == R.id.cl_box_normal) { - if (onTreasureBoxChooseListener != null) { - if (AvRoomDataManager.get().isCpRoom()) { - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_CP_ROOM_SMASHEGG_CHOOSE, "开始砸金蛋-陪伴房"); - } else { - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_MP_ROOM_SMASHEGG_CHOOSE, "开始砸金蛋-多人房"); - } - onTreasureBoxChooseListener.onBoxClick(0); - } - dismiss(); - } else if (id == R.id.cl_box_honour) { - if (onTreasureBoxChooseListener != null) { - if (AvRoomDataManager.get().isCpRoom()) { - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_CP_ROOM_SMASHEGG_CHOOSE, "开始砸至尊蛋-陪伴房"); - } else { - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_MP_ROOM_SMASHEGG_CHOOSE, "开始砸至尊蛋-多人房"); - } - onTreasureBoxChooseListener.onBoxClick(1); - } - dismiss(); - } - } - - public interface OnTreasureBoxChooseListener { - /** - * @param type 选择的宝箱类型 0 黄金(原始) 1 钻石 - */ - void onBoxClick(int type); - } - - public void setOnTreasureBoxChooseListener(OnTreasureBoxChooseListener onTreasureBoxChooseListener) { - this.onTreasureBoxChooseListener = onTreasureBoxChooseListener; - } -} diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/module/BoxRankingModel.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/module/BoxRankingModel.java index 29cf81221..2a110ec78 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/module/BoxRankingModel.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/module/BoxRankingModel.java @@ -1,9 +1,9 @@ package com.nnbc123.app.treasure_box.module; -import com.nnbc123.core.room.treasure_box.bean.BoxRankingInfo; import com.nnbc123.core.auth.AuthModel; import com.nnbc123.core.bean.response.ServiceResult; import com.nnbc123.core.community.CommunityConstant; +import com.nnbc123.core.room.treasure_box.bean.BoxRankingInfo; import com.nnbc123.core.utils.net.RxHelper; import com.nnbc123.library.net.rxnet.RxNet; @@ -32,7 +32,7 @@ public class BoxRankingModel { } public static BoxRankingModel get() { - return BoxRankingModel.Helper.INSTANCE; + return Helper.INSTANCE; } diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/presenter/BoxRankingPresenter.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/presenter/BoxRankingPresenter.java index c624cfd5f..8f0f889b4 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/presenter/BoxRankingPresenter.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/presenter/BoxRankingPresenter.java @@ -1,10 +1,10 @@ package com.nnbc123.app.treasure_box.presenter; -import com.nnbc123.app.base.BaseMvpPresenter; +import com.nnbc123.core.Constants; import com.nnbc123.core.room.treasure_box.bean.BoxRankingInfo; +import com.nnbc123.app.base.BaseMvpPresenter; import com.nnbc123.app.treasure_box.module.BoxRankingModel; import com.nnbc123.app.treasure_box.module.IBoxRankingView; -import com.nnbc123.core.Constants; import io.reactivex.SingleObserver; import io.reactivex.disposables.Disposable; diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/GoldBoxHelper.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/GoldBoxHelper.java index 75511f96f..7cf96fb84 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/GoldBoxHelper.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/GoldBoxHelper.java @@ -3,7 +3,6 @@ package com.nnbc123.app.treasure_box.widget; import android.content.Context; import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentActivity; import com.nnbc123.core.initial.InitialModel; import com.nnbc123.core.initial.bean.InitInfo; @@ -14,10 +13,6 @@ import com.nnbc123.core.super_admin.util.SuperAdminUtil; import com.nnbc123.core.user.UserModel; import com.nnbc123.core.user.bean.UserInfo; import com.nnbc123.app.treasure_box.activity.TreasureBoxActivity; -import com.nnbc123.app.treasure_box.activity.TreasureBoxHonourActivity; -import com.nnbc123.app.treasure_box.fragment.ChooseTreasureBoxDialogFragment; -import com.nnbc123.library.utils.SingleToastUtil; -import com.nnbc123.library.utils.TimeUtils; import io.reactivex.Single; @@ -32,12 +27,6 @@ public class GoldBoxHelper { .flatMap(boxInfo -> Single.just(!isShowBox(boxInfo.getOpenBoxSwitchLevelNo()))); } - public static boolean isShowBox() { - InitInfo initInfo = InitialModel.get().getCacheInitInfo(); - if (initInfo == null) return false; - return isShowBox(initInfo.getOpenBoxSwitchLevelNo()); - } - private static boolean isShowBox(int switchLevelNo) { if (SuperAdminUtil.isSuperAdmin()) { return false; @@ -59,31 +48,7 @@ public class GoldBoxHelper { public static void handleBoxClick(Context context) { - String openTime = GoldBoxHelper.getBoxOpenTime(); - if (openTime == null || openTime.isEmpty()) { - SingleToastUtil.showToast("数据加载中,请稍后再试!"); - return; - } - int startTime = Integer.parseInt(openTime.substring(0, openTime.indexOf("-")).replace(":", "")); - int endTime = Integer.parseInt(openTime.substring(openTime.indexOf("-") + 1).replace(":", "")); - - if (startTime != endTime && TimeUtils.getTimeLimit(startTime, endTime)) { - ChooseTreasureBoxDialogFragment chooseTreasureBoxDialogFragment = new ChooseTreasureBoxDialogFragment(openTime); - chooseTreasureBoxDialogFragment.setOnTreasureBoxChooseListener(type -> { - if (type == 0) {// 幸运许愿池(默认) - TreasureBoxActivity.start(context); - } else if (type == 1) {// 梦幻许愿池 - TreasureBoxHonourActivity.start(context); - } - }); - chooseTreasureBoxDialogFragment.show(((FragmentActivity) context).getSupportFragmentManager(), "chooseTreasureBoxDialogFragment"); - } else { - TreasureBoxActivity.start(context); - } - } - - public static boolean isShowDiamondBox() { - return AvRoomDataManager.get().mBoxSwitchVo.isDiamondBoxSwitch(); + TreasureBoxActivity.start(context); } @Nullable @@ -92,12 +57,6 @@ public class GoldBoxHelper { return AvRoomDataManager.get().mBoxSwitchVo.getOpenBoxIcon(); } - @Nullable - public static String getBoxOpenTime() { - if (AvRoomDataManager.get().mBoxSwitchVo == null) return null; - return AvRoomDataManager.get().mBoxSwitchVo.getDiamondBoxOpenTime(); - } - public static boolean isShowRadish() { InitInfo initInfo = InitialModel.get().getCacheInitInfo(); UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BaseBindingDialog.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BaseBindingDialog.java index 59260108d..a63f49faa 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BaseBindingDialog.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BaseBindingDialog.java @@ -1,20 +1,21 @@ package com.nnbc123.app.treasure_box.widget.dialog; import android.content.Context; -import androidx.databinding.DataBindingUtil; -import androidx.databinding.ViewDataBinding; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; -import androidx.appcompat.app.AppCompatDialog; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; -import com.netease.nim.uikit.common.util.sys.ScreenUtil; +import androidx.appcompat.app.AppCompatDialog; +import androidx.databinding.DataBindingUtil; +import androidx.databinding.ViewDataBinding; + import com.nnbc123.library.annatation.ActLayoutRes; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; /** * Created by huangmeng1 on 2018/4/12. diff --git a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BoxMoreDialog.java b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BoxMoreDialog.java index 5219c5d4c..59258963a 100644 --- a/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BoxMoreDialog.java +++ b/app/src/module_treasure_box/java/com/nnbc123/app/treasure_box/widget/dialog/BoxMoreDialog.java @@ -1,61 +1,51 @@ package com.nnbc123.app.treasure_box.widget.dialog; -import android.content.Context; -import android.view.Gravity; -import android.view.Window; -import android.view.WindowManager; +import android.os.Bundle; -import com.nnbc123.app.R; -import com.nnbc123.app.databinding.DialogBoxMoreBinding; -import com.nnbc123.app.ui.webview.DialogWebViewActivity; -import com.nnbc123.app.utils.UserUtils; import com.nnbc123.core.DemoCache; -import com.nnbc123.core.UriProvider; +import com.nnbc123.app.R; +import com.nnbc123.app.base.BaseViewBindingFragment; +import com.nnbc123.app.databinding.DialogBoxMoreBinding; +import com.nnbc123.app.utils.UserUtils; +import com.nnbc123.treasure_box.event.MoreClickEvent; import com.nnbc123.library.annatation.ActLayoutRes; import com.nnbc123.library.utils.SingleToastUtil; +import org.greenrobot.eventbus.EventBus; + @ActLayoutRes(R.layout.dialog_box_more) -public class BoxMoreDialog extends BaseBindingDialog { +public class BoxMoreDialog extends BaseViewBindingFragment { private int sendMessageSwitchLevel; - public BoxMoreDialog(Context context, int sendMessageSwitchLevel) { - super(context); - width = WindowManager.LayoutParams.MATCH_PARENT; - height = WindowManager.LayoutParams.WRAP_CONTENT; - this.sendMessageSwitchLevel = sendMessageSwitchLevel; + + public static BoxMoreDialog newInstance(int sendMessageSwitchLevel) { + + Bundle args = new Bundle(); + args.putInt("sendMessageSwitchLevel",sendMessageSwitchLevel); + BoxMoreDialog fragment = new BoxMoreDialog(); + fragment.setArguments(args); + return fragment; } - @Override - protected void onStart() { - super.onStart(); - Window window = getWindow(); - if (window != null) { - WindowManager.LayoutParams windowParams = window.getAttributes(); - windowParams.gravity = Gravity.BOTTOM; - window.setAttributes(windowParams); - } - } @Override - protected void init() { - binding.tvHistory.setOnClickListener(v -> { - DialogWebViewActivity.start(context, UriProvider.getBoxHistory(), false); - closeDialog(); + public void init() { + sendMessageSwitchLevel = requireArguments().getInt("sendMessageSwitchLevel"); + getBinding().tvHistory.setOnClickListener(v -> { + EventBus.getDefault().post(new MoreClickEvent(v)); }); - binding.tvBoxRule.setOnClickListener(v -> { - DialogWebViewActivity.start(context, UriProvider.getBoxHelp(), false); - closeDialog(); + getBinding().tvBoxRule.setOnClickListener(v -> { + EventBus.getDefault().post(new MoreClickEvent(v)); }); - binding.tvGetKey.setOnClickListener(v -> { - DialogWebViewActivity.start(context, UriProvider.getBoxKey()); - closeDialog(); + getBinding().tvGetKey.setOnClickListener(v -> { + EventBus.getDefault().post(new MoreClickEvent(v)); }); boolean canSwitch = sendMessageSwitchLevel != 0 && UserUtils.getExpLevel() >= sendMessageSwitchLevel; updateMsgSwitch(canSwitch && DemoCache.readNeedBoxMsg()); - binding.ivSwitch.setOnClickListener(v -> { + getBinding().ivSwitch.setOnClickListener(v -> { if (canSwitch) { boolean sendMsg = !DemoCache.readNeedBoxMsg(); updateMsgSwitch(sendMsg); @@ -68,7 +58,7 @@ public class BoxMoreDialog extends BaseBindingDialog { } private void updateMsgSwitch(boolean sendMsg) { - binding.ivSwitch.setImageResource(sendMsg ? - R.drawable.icon_room_set_lock_true : R.drawable.icon_room_set_lock_false); + getBinding().ivSwitch.setImageResource(sendMsg ? + R.drawable.icon_box_set_true : R.drawable.icon_box_set_false); } } diff --git a/app/src/module_treasure_box/res/color/color_selector_white_false_8542e8.xml b/app/src/module_treasure_box/res/color/color_selector_white_false_8542e8.xml new file mode 100644 index 000000000..d4655e698 --- /dev/null +++ b/app/src/module_treasure_box/res/color/color_selector_white_false_8542e8.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/arrow_right_box.png b/app/src/module_treasure_box/res/drawable-xhdpi/arrow_right_box.png new file mode 100644 index 000000000..6da1479dd Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/arrow_right_box.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_normal.png b/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_normal.png index 688f6664c..410016ca8 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_normal.png and b/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_normal.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_pressed.png b/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_pressed.png index 36af7bcb5..ed75566fb 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_pressed.png and b/app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box_pressed.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/bg_treasure_box_more.png b/app/src/module_treasure_box/res/drawable-xhdpi/bg_treasure_box_more.png new file mode 100644 index 000000000..223d6267a Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/bg_treasure_box_more.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rank_rb_true.png b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rank_rb_true.png new file mode 100644 index 000000000..6823e1717 Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rank_rb_true.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rule_start.png b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rule_start.png new file mode 100644 index 000000000..f10917c7c Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rule_start.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_set_false.png b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_set_false.png new file mode 100644 index 000000000..83f06a6ab Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_set_false.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_set_true.png b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_set_true.png new file mode 100644 index 000000000..8ad1a5ab3 Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_set_true.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/icon_room_box_more_normal.png b/app/src/module_treasure_box/res/drawable-xhdpi/icon_room_box_more_normal.png index b0b6611d2..f6c866a99 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/icon_room_box_more_normal.png and b/app/src/module_treasure_box/res/drawable-xhdpi/icon_room_box_more_normal.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_add_normal.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_add_normal.png index 3bb9a11df..d7d5964d5 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_add_normal.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_add_normal.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_bg_normal.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_bg_normal.png index 249f2d94c..bba0e1a0a 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_bg_normal.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_bg_normal.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png index d2bd1936f..067668387 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_edt_bg.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_edt_bg.png new file mode 100644 index 000000000..abdeb8148 Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_edt_bg.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_meteor.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_meteor.png index 43cd77c63..782006d21 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_meteor.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_meteor.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_rank.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_rank.png index 928385d86..d10fe4c2e 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_rank.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_rank.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_sub_normal.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_sub_normal.png index 35198f351..cfc52c8f0 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_sub_normal.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_sub_normal.png differ diff --git a/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l3.xml b/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l3.xml new file mode 100644 index 000000000..a5ff75ddc --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l3.xml @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l4.xml b/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l4.xml new file mode 100644 index 000000000..fe7772113 --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l4.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l5.xml b/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l5.xml new file mode 100644 index 000000000..4905b2187 --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/bg_box_prize_hint_l5.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/drawable/selector_treasure_box_rank_rb.xml b/app/src/module_treasure_box/res/drawable/selector_treasure_box_rank_rb.xml new file mode 100644 index 000000000..6a332c5f9 --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/selector_treasure_box_rank_rb.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/module_treasure_box/res/drawable/shape_0d002f_corner_20dp_ffe974.xml b/app/src/module_treasure_box/res/drawable/shape_0d002f_corner_20dp_ffe974.xml new file mode 100644 index 000000000..bcf06202b --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/shape_0d002f_corner_20dp_ffe974.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/app/src/module_treasure_box/res/drawable/shape_b34a189f_corner_20dp.xml b/app/src/module_treasure_box/res/drawable/shape_b34a189f_corner_20dp.xml new file mode 100644 index 000000000..eea9d8960 --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/shape_b34a189f_corner_20dp.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/layout/activity_room_box_ranking.xml b/app/src/module_treasure_box/res/layout/activity_room_box_ranking.xml new file mode 100644 index 000000000..fe5a06f37 --- /dev/null +++ b/app/src/module_treasure_box/res/layout/activity_room_box_ranking.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/layout/activity_treasure_box.xml b/app/src/module_treasure_box/res/layout/activity_treasure_box.xml index df6bed679..b7b940b65 100644 --- a/app/src/module_treasure_box/res/layout/activity_treasure_box.xml +++ b/app/src/module_treasure_box/res/layout/activity_treasure_box.xml @@ -18,54 +18,50 @@ + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.4" /> + + - - + app:layout_constraintStart_toStartOf="@id/iv_more" + app:layout_constraintTop_toBottomOf="@id/iv_more" /> + android:textSize="13sp" + app:layout_constraintBottom_toBottomOf="@id/bg_key_num" + app:layout_constraintStart_toEndOf="@id/bg_key_num" + app:layout_constraintTop_toTopOf="@id/bg_key_num" + tools:text="99999999" /> - - - - - - - + android:id="@+id/bg_key_num" + android:layout_width="30dp" + android:layout_height="30dp" + android:layout_marginStart="8dp" + android:layout_marginTop="46dp" + android:src="@drawable/treasure_box_meteor" + app:layout_constraintStart_toStartOf="@id/view_bg" + app:layout_constraintTop_toTopOf="@id/view_bg" /> + app:layout_constraintBottom_toBottomOf="@id/view_bg" + app:layout_constraintEnd_toEndOf="@id/view_bg" + app:layout_constraintStart_toStartOf="@id/view_bg" /> - + + app:layout_constraintStart_toStartOf="parent" /> @@ -229,10 +179,9 @@ android:id="@+id/ll_prize_hint" android:layout_width="wrap_content" android:layout_height="135dp" - android:layout_marginStart="7dp" android:gravity="bottom" android:orientation="vertical" - app:layout_constraintBottom_toTopOf="@id/tv_continuous_num" + app:layout_constraintBottom_toTopOf="@id/iv_sub" app:layout_constraintStart_toStartOf="@id/view_bg" /> @@ -266,7 +217,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="参与活动获得" - android:textColor="#ffffffff" + android:textColor="@color/white" android:textSize="13sp" /> + + + + diff --git a/app/src/module_treasure_box/res/layout/dialog_box_more.xml b/app/src/module_treasure_box/res/layout/dialog_box_more.xml index c1f38b9d3..8df84dd2d 100644 --- a/app/src/module_treasure_box/res/layout/dialog_box_more.xml +++ b/app/src/module_treasure_box/res/layout/dialog_box_more.xml @@ -1,5 +1,6 @@ - + @@ -8,55 +9,74 @@ type="android.view.View.OnClickListener" /> - + android:paddingEnd="15dp" + tools:background="@drawable/bg_treasure_box_more" + tools:layout_gravity="center" + tools:layout_height="340dp" + tools:layout_width="250dp"> + android:textColor="@color/white" + android:textSize="13sp" /> + android:textColor="@color/white" + android:textSize="13sp" /> + + + android:textColor="@color/white" + android:textSize="13sp" /> + + + android:textColor="@color/white" + android:textSize="13sp" /> + + + android:textColor="@color/white" + android:textSize="13sp" /> - + android:scaleType="fitCenter" + android:src="@drawable/icon_box_set_false" /> + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/layout/fragment_box_ranking.xml b/app/src/module_treasure_box/res/layout/fragment_box_ranking.xml new file mode 100644 index 000000000..d0b6e7d54 --- /dev/null +++ b/app/src/module_treasure_box/res/layout/fragment_box_ranking.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/app/src/module_treasure_box/res/layout/fragment_box_record.xml b/app/src/module_treasure_box/res/layout/fragment_box_record.xml new file mode 100644 index 000000000..f776162bc --- /dev/null +++ b/app/src/module_treasure_box/res/layout/fragment_box_record.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + diff --git a/app/src/module_treasure_box/res/layout/fragment_box_rule.xml b/app/src/module_treasure_box/res/layout/fragment_box_rule.xml new file mode 100644 index 000000000..3457184a6 --- /dev/null +++ b/app/src/module_treasure_box/res/layout/fragment_box_rule.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/module_treasure_box/res/layout/item_box_prize_record.xml b/app/src/module_treasure_box/res/layout/item_box_prize_record.xml new file mode 100644 index 000000000..bb54b971b --- /dev/null +++ b/app/src/module_treasure_box/res/layout/item_box_prize_record.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/module_treasure_box/res/layout/item_box_rule.xml b/app/src/module_treasure_box/res/layout/item_box_rule.xml new file mode 100644 index 000000000..5eeef82e1 --- /dev/null +++ b/app/src/module_treasure_box/res/layout/item_box_rule.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/diff_src_erban/java/com/nnbc123/xchat_android_constants/XChatConstants.java b/core/src/diff_src_erban/java/com/nnbc123/xchat_android_constants/XChatConstants.java index 4af44e718..ef6512ffe 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/xchat_android_constants/XChatConstants.java +++ b/core/src/diff_src_erban/java/com/nnbc123/xchat_android_constants/XChatConstants.java @@ -11,7 +11,7 @@ public class XChatConstants { /** * 包名(各种缓存目录的根目录) */ - public static final String XCHAT_DIR_NAME = "com.mango.moshen"; + public static final String XCHAT_DIR_NAME = "com.nnbc123.app"; /** * sp名字 @@ -32,21 +32,16 @@ public class XChatConstants { * 本地数据库的名字(目前是用 realm 数据库) */ public static final String XCHAT_DATABASE_NAME = "accompany.db"; - - /** - * 微信支付 APP ID - */ - public static final String WX_APP_ID = ""; - + /** * bugly key (DEBUG) */ - public static final String BUGLY_KEY_DEBUG = "2a7521d23f";//已更改 + public static final String BUGLY_KEY_DEBUG = "2a7521d23f"; /** * bugly key (RELEASE) */ - public static final String BUGLY_KEY_RELEASE = "3655441f78";//已更改 + public static final String BUGLY_KEY_RELEASE = "3655441f78"; /** * 云信 key (DEBUG) @@ -56,54 +51,22 @@ public class XChatConstants { /** * 云信 key (RELEASE) */ - public static final String NIM_KEY_RELEASE = "14ef7a0d0a84cb49bae1c22d78cf1ddf";//已更换 - - /** - * 网易易盾 productNumber - */ - public static final String YI_DUN_PRODUCT_NUMBER = "YD00313347064620";//已更换 + public static final String NIM_KEY_RELEASE = "5e76ec47632d86c30ce18eabfa332b6a"; + /** * 网易易盾 业务 ID 注册 */ - public static final String QUICK_PASS_BUSINESS_ID = "60cdaa83aa654e5ea184de7160b4073d"; - - /** - * 网易易盾 业务 ID 注册 - */ - public static final String YI_DUN_BUSINESS_ID = "af43d0f8752147c48f8281800da6049e"; - /** - * 网易易盾 业务 ID 注册 - */ - public static final String YI_DUN_LOGIN_BUSINESS_ID = "67881c7a69764c058435ba93a51b1285"; - - /** - * 数美-天网 的 organization - */ - public static final String SHU_MEI_TIAN_WANG_ORGANIZATION = "2qjgWI5tyNipa08YPjOt"; + public static final String QUICK_PASS_BUSINESS_ID = "3a94ceb70b144963a03bf98cb55b812a"; /** * 声网 key */ - public static final String AGORA_KEY = "7ae1a8dabe7a44a9a67c829faa409e70"; //已更换 - - /** - * 阿里云日志空间名字 - */ - public static final String ALIYUN_LOG_NAME = "66accompanylog"; - /** - * 阿里云日志空间名字 - */ - public static final String ALIYUN_LOG_STORE = "66accompanylog"; - - /** - * 百度统计 key - */ - public static final String BAIDU_APP_KEY = "b8a4cb4bd1";//已更改 - + public static final String AGORA_KEY = "7ae1a8dabe7a44a9a67c829faa409e70"; + /** * 友盟统计 key */ - public static final String UMENG_APP_KEY = "5ff6bc27adb42d5826a1cb97";//已更改 + public static final String UMENG_APP_KEY = "5ff6bc27adb42d5826a1cb97"; /** * linkedMe key @@ -173,13 +136,7 @@ public class XChatConstants { * 分享群组 URL */ public static final String SHARE_WORLD_DYNAMIC_URL = "/yinyou/modules/world/share-page/index.html"; - - - /** - * 游戏排行榜 URL - */ - public static final String GAME_ROOK = "/yinyou/modules/erbanRank/game_rank.html?type=week"; - + /** * 系统消息那个用户的UID */ @@ -231,7 +188,6 @@ public class XChatConstants { public static final String REPORT_TYPE_ROOM = "room"; // 房间 public static final String REPORT_TYPE_WORLD = "world"; // 话题 public static final String REPORT_TYPE_VOICE = "voice"; // 声音瓶子 - public static final String REPORT_TYPE_MISSION = ""; // 师徒 public static final String REPORT_TYPE_USERCARD = "USERCARD"; // 资料卡片 public static final String REPORT_TYPE_WORLDDYNAMIC = "WORLDDYNAMIC"; // 世界动态 public static final String REPORT_TYPE_DYNAMICCOMMENT = "DYNAMICCOMMENT"; // 世界动态 @@ -276,7 +232,7 @@ public class XChatConstants { /** * 聊天室文本消息易盾反垃圾业务id */ - public static final String CHAT_ROOM_ANTI_SPAM_CONFIG_ID = BuildConfig.DEBUG ? "be58dfa4a664540006f0ed1f752d604a" : "244721766ba607056a32c8824a85c253"; + public static final String CHAT_ROOM_ANTI_SPAM_CONFIG_ID = BuildConfig.DEBUG ? "d6ee07a01d458ac212962a01f13d1996" : "d6ee07a01d458ac212962a01f13d1996"; public static final int KICK_OUT_ROOM_LIMIT_ENTER_TIME = 5 * 60 * 1000; diff --git a/core/src/main/java/com/nnbc123/core/Constants.java b/core/src/main/java/com/nnbc123/core/Constants.java index 86b97634f..6b988d251 100644 --- a/core/src/main/java/com/nnbc123/core/Constants.java +++ b/core/src/main/java/com/nnbc123/core/Constants.java @@ -1,8 +1,8 @@ package com.nnbc123.core; -import com.nnbc123.xchat_android_constants.XChatConstants; import com.nnbc123.library.utils.config.BasicConfig; import com.nnbc123.library.utils.pref.CommonPref; +import com.nnbc123.xchat_android_constants.XChatConstants; import java.io.File; import java.util.Arrays; @@ -16,11 +16,6 @@ public class Constants { public static final String ERBAN_DIR_NAME = XChatConstants.XCHAT_DIR_NAME; public static final String nimAppKey = Env.isDebug() ? XChatConstants.NIM_KEY_DEBUG : XChatConstants.NIM_KEY_RELEASE; - public static final String nimAppSecret = "da03b83af84a"; - /** - * 百度统计 - */ - public static final String BAIDU_APPKEY = XChatConstants.BAIDU_APP_KEY; public static final String LOG_DIR = ERBAN_DIR_NAME + File.separator + "logs"; public static final String CONFIG_DIR = ERBAN_DIR_NAME + File.separator + "config"; @@ -37,23 +32,13 @@ public class Constants { public static final int PAGE_START = 1; public static final int PAGE_SIZE = 20; - public static final int PAGE_HOME_HOT_SIZE = 12; public static final int BILL_PAGE_SIZE = 50; public static final int DEBUG_MAX_UID = 100000; - - public static final String HOME_TAB_INFO = "home_tab_info"; - public static final String KEY_USER_INFO = "key_user_info"; - - public static final String KEY_HOME_LIST = "key_home_list"; - public static final String KEY_HOME_HOT_LIST = "key_home_hot_list"; - public static final String KEY_HOME_NO_HOT_LIST = "key_home_no_hot_list"; - public static final int FAN_MAIN_PAGE_TYPE = 100; public static final int FAN_NO_MAIN_PAGE_TYPE = 101; public static final String KEY_PAGE_TYPE = "page_type"; - public static final String KEY_MAIN_TAB_LIST = "main_tab_list"; public static final String KEY_POSITION = "position"; @@ -65,37 +50,15 @@ public class Constants { public static final String QUESTION_MARK = "?"; - public static final int PAGE_TYPE_AV_ROOM_ACTIVITY = 100; - public static final int PAGE_TYPE_USER_INFO_ACTIVITY = 101; public static final int PAGE_TYPE_MAIN_FRAGMENT = 102; - public static final String KEY_ROOM_IS_SHOW_ONLINE = "is_show_online"; - public static final String KEY_ROOM_INFO = "key_room_info"; - - /** - * 房间相关Key设置 - */ - public static final String ROOM_UPDATE_KEY_POSTION = "micPosition"; - public static final String ROOM_UPDATE_KEY_UID = "micUid"; - public static final String ROOM_UPDATE_KEY_GENDER = "gender"; public static final String KEY_CHAT_ROOM_INFO_ROOM = "roomInfo"; public static final String KEY_CHAT_ROOM_INFO_MIC = "micQueue"; public static final String ROOM_UID = "ROOM_UID"; - public static final String ROOM_TYPE = "ROOM_TYPE"; public static final String ROOM_INFO = "ROOM_INFO"; - public static final String IS_ROOM_MIN = "is_room_min"; - public static final String IS_PARTY = "is_party"; - - /** - * 座驾版本第一次显示控制key - */ - public static final String SHOW_CAR_GUIDE = "show_car_guide"; - - public static final String NEW_USER_ICON = "https://image.zhongjialx.com/newUserIcon.png"; - public static final String IS_SEND = "isSend"; - public static final String TOP_TITLE = "top_title"; + public static final int CLIENT_ROLE_BROADCASTER = 1; public static final int CLIENT_ROLE_AUDIENCE = 2; diff --git a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/BoxRuleItemInfo.java b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/BoxRuleItemInfo.java new file mode 100644 index 000000000..e6202f46d --- /dev/null +++ b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/BoxRuleItemInfo.java @@ -0,0 +1,91 @@ +package com.nnbc123.treasure_box.bean; + +import java.io.Serializable; + +public class BoxRuleItemInfo implements Serializable { + + + /** + * prizeName : + * prizeImgUrl : + * prizeLevel : 1 + * drawTime : 11111 + */ + + private String prizeName; + private String prizeUrl; + private int prizeLevel; + private long createTime; + private int keyNum; + private int platformValue; + private int prizeNum; + private String showRate; + + public BoxRuleItemInfo() { + } + + public int getPlatformValue() { + return platformValue; + } + + public void setPlatformValue(int platformValue) { + this.platformValue = platformValue; + } + + + public String getPrizeName() { + return prizeName; + } + + public void setPrizeName(String prizeName) { + this.prizeName = prizeName; + } + + public String getPrizeUrl() { + return prizeUrl; + } + + public void setPrizeUrl(String prizeImgUrl) { + this.prizeUrl = prizeImgUrl; + } + + public int getPrizeLevel() { + return prizeLevel; + } + + public void setPrizeLevel(int prizeLevel) { + this.prizeLevel = prizeLevel; + } + + public long getCreateTime() { + return createTime; + } + + public void setCreateTime(long createTime) { + this.createTime = createTime; + } + + public int getPrizeNum() { + return prizeNum; + } + + public void setPrizeNum(int prizeNum) { + this.prizeNum = prizeNum; + } + + public int getKeyNum() { + return keyNum; + } + + public void setKeyNum(int keyNum) { + this.keyNum = keyNum; + } + + public String getShowRate() { + return showRate; + } + + public void setShowRate(String showRate) { + this.showRate = showRate; + } +} diff --git a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/PrizeInfo.java b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/PrizeInfo.java index df1ef73d9..8d0af8185 100644 --- a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/PrizeInfo.java +++ b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/bean/PrizeInfo.java @@ -15,7 +15,7 @@ public class PrizeInfo implements Serializable { private String prizeName; private String prizeImgUrl; private int prizeLevel; - private String createTime; + private long createTime; private int keyNum; private int platformValue; private int prizeNum; @@ -61,11 +61,11 @@ public class PrizeInfo implements Serializable { this.prizeLevel = prizeLevel; } - public String getCreateTime() { + public long getCreateTime() { return createTime; } - public void setCreateTime(String createTime) { + public void setCreateTime(long createTime) { this.createTime = createTime; } diff --git a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/event/MoreClickEvent.java b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/event/MoreClickEvent.java new file mode 100644 index 000000000..bde4a0e8d --- /dev/null +++ b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/event/MoreClickEvent.java @@ -0,0 +1,19 @@ +package com.nnbc123.treasure_box.event; + +import android.view.View; + +import androidx.annotation.NonNull; + +public class MoreClickEvent { + @NonNull + private final View view; + + public MoreClickEvent(@NonNull View view) { + this.view = view; + } + + @NonNull + public View getView() { + return view; + } +} diff --git a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/BoxModel.java b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/BoxModel.java index bb90ee984..71fa2dfcc 100644 --- a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/BoxModel.java +++ b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/BoxModel.java @@ -1,6 +1,7 @@ package com.nnbc123.treasure_box.model; import com.nnbc123.treasure_box.bean.BoxOpenStatusInfo; +import com.nnbc123.treasure_box.bean.BoxRuleItemInfo; import com.nnbc123.treasure_box.bean.HonourBuyKeyResultInfo; import com.nnbc123.treasure_box.bean.HonourKeyInfo; import com.nnbc123.treasure_box.bean.OpenBoxHonourResult; @@ -45,10 +46,6 @@ public class BoxModel extends BaseModel implements IBoxModel { return BoxModelHelper.instance; } - private static class BoxModelHelper { - private static IBoxModel instance = new BoxModel(); - } - @Override public Single getRule() { return api.getRule() @@ -57,11 +54,11 @@ public class BoxModel extends BaseModel implements IBoxModel { } @Override - public Single openBox(int boxType,int keyNum, boolean sendMessage) { + public Single openBox(int boxType, int keyNum, boolean sendMessage) { if (AvRoomDataManager.get().mCurrentRoomInfo == null) { return Single.error(new Throwable("当前房间信息为空.")); } - return api.openBox(boxType,keyNum, sendMessage, AuthModel.get().getCurrentUid(), + return api.openBox(boxType, keyNum, sendMessage, AuthModel.get().getCurrentUid(), AvRoomDataManager.get().mCurrentRoomInfo.getUid()) .compose(RxHelper.handleSchedulers()) .flatMap(openBoxResultServiceResult -> { @@ -81,12 +78,18 @@ public class BoxModel extends BaseModel implements IBoxModel { } @Override - public Single>> getPrizeRecord(int page, - int pageSize, - String sortType, - long uid) { + public Single> getPrizeRecord(int page, + int pageSize, + String sortType, + long uid) { return api.getPrizeRecord(page, pageSize, sortType, uid) - .compose(RxHelper.handleSchedulers()); + .compose(RxHelper.handleCommon()); + } + + @Override + public Single> getOpenBoxRule() { + return api.getOpenBoxRule(2) + .compose(RxHelper.handleCommon()); } @Override @@ -111,7 +114,7 @@ public class BoxModel extends BaseModel implements IBoxModel { @Override public Single getKeyInfo(int boxType) { - return api.getKeyInfo(boxType,AuthModel.get().getCurrentUid()) + return api.getKeyInfo(boxType, AuthModel.get().getCurrentUid()) .compose(RxHelper.handleSchedulers()) .compose(RxHelper.handleBeanData()); } @@ -265,5 +268,18 @@ public class BoxModel extends BaseModel implements IBoxModel { */ @GET("box/diamond/prizes/withRate") Single>> getHonourBoxJackpotInfo(); + + + /** + * 中奖记录列表 + * + * @return 中奖纪录列表 + */ + @GET("box/getOpenBoxRule ") + Single>> getOpenBoxRule(@Query("boxType") int boxType); + } + + private static class BoxModelHelper { + private static IBoxModel instance = new BoxModel(); } } diff --git a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/IBoxModel.java b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/IBoxModel.java index 2b130f104..8fb1a8714 100644 --- a/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/IBoxModel.java +++ b/core/src/model_treasure_box/java/com/nnbc123/treasure_box/model/IBoxModel.java @@ -1,6 +1,7 @@ package com.nnbc123.treasure_box.model; import com.nnbc123.treasure_box.bean.BoxOpenStatusInfo; +import com.nnbc123.treasure_box.bean.BoxRuleItemInfo; import com.nnbc123.treasure_box.bean.HonourBuyKeyResultInfo; import com.nnbc123.treasure_box.bean.HonourKeyInfo; import com.nnbc123.treasure_box.bean.OpenBoxHonourResult; @@ -17,6 +18,9 @@ import io.reactivex.Single; public interface IBoxModel extends IModel { + int BOX_TYPE_NORMAL = 1;// 普通蛋 + int BOX_TYPE_HONOUR = 2;// 至尊蛋 + /** * 获取开箱子配置图片 * @@ -31,7 +35,7 @@ public interface IBoxModel extends IModel { * @param sendMessage * @return */ - Single openBox(int boxType,int keyNum, boolean sendMessage); + Single openBox(int boxType, int keyNum, boolean sendMessage); /** * 获取中奖记录 @@ -42,10 +46,12 @@ public interface IBoxModel extends IModel { * @param uid * @return */ - Single>> getPrizeRecord(int page, - int pageSize, - String sortType, - long uid); + Single> getPrizeRecord(int page, + int pageSize, + String sortType, + long uid); + + Single> getOpenBoxRule(); /** * 购买钥匙 @@ -69,9 +75,6 @@ public interface IBoxModel extends IModel { */ Single>> getPrizes(); - int BOX_TYPE_NORMAL = 1;// 普通蛋 - int BOX_TYPE_HONOUR = 2;// 至尊蛋 - /** * 蛋开放状态 */ @@ -86,17 +89,17 @@ public interface IBoxModel extends IModel { * 至尊蛋抽奖 */ Single openHonourBox(long uid, - boolean sendMessage, - long roomUid, - int keyNum, - String ticket); + boolean sendMessage, + long roomUid, + int keyNum, + String ticket); /** * 购买至尊蛋钥匙 */ Single buyHonourKey(long uid, - int keyNum, - String ticket); + int keyNum, + String ticket); /** * 至尊蛋本期奖池