糖果树UI修改
@@ -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
|
||||
|
4
app/proguard-rules.pro
vendored
@@ -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 @@
|
||||
<init>(...);
|
||||
}
|
||||
|
||||
-dontwarn com.mango.moshen.bindadapter.**
|
||||
-dontwarn com.nnbc123.app.bindadapter.**
|
||||
-keep class com.nnbc123.app.bindadapter.** {*;}
|
||||
|
||||
# Ping++ 混淆过滤
|
||||
|
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
6
app/src/common/res/drawable/shape_ffe974_corner_12dp.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="@dimen/dp_12" />
|
||||
<stroke android:color="#FFE974" android:width="1px"/>
|
||||
<solid android:color="#0D002F"/>
|
||||
</shape>
|
BIN
app/src/main/assets/vap/gold_box_open.mp4
Normal file
@@ -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) {
|
||||
@@ -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<String> atUids = ExtensionUtil.getListExtension(chatRoomMessage, UserInfo.AT_UIDS);
|
||||
List<String> 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(),
|
||||
|
||||
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);
|
||||
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;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -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
|
||||
@@ -2718,7 +2736,6 @@ 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() {
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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 -> {}
|
||||
}
|
||||
}
|
||||
|
@@ -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() {
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 6.1 KiB |
5
app/src/main/res/drawable/shape_0d002f_corner.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="100dp" />
|
||||
<solid android:color="#0D002F" />
|
||||
</shape>
|
11
app/src/main/res/drawable/shape_e7991a_to_ffe2bb.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient
|
||||
android:angle="180"
|
||||
android:endColor="#ffe7991a"
|
||||
android:startColor="#ffffe2bb"
|
||||
android:type="linear"
|
||||
android:useLevel="true" />
|
||||
<corners android:radius="@dimen/dp_100" />
|
||||
</shape>
|
@@ -10,6 +10,10 @@
|
||||
android:right="6dp"
|
||||
android:top="2dp" />-->
|
||||
|
||||
<corners android:radius="8dp" /> <!-- 圆角的程度 -->
|
||||
<corners
|
||||
android:bottomLeftRadius="11dp"
|
||||
android:bottomRightRadius="11dp"
|
||||
android:topLeftRadius="4dp"
|
||||
android:topRightRadius="11dp" />
|
||||
|
||||
</shape>
|
@@ -1,55 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_common_touch_while"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:orientation="horizontal"
|
||||
android:paddingEnd="@dimen/dp_15"
|
||||
>
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="0.3"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:paddingStart="@dimen/dp_8"
|
||||
>
|
||||
android:layout_gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_position"
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:visibility="gone"
|
||||
android:layout_height="@dimen/dp_20"
|
||||
android:layout_gravity="center"
|
||||
/>
|
||||
android:layout_gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_position"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/dp_13"
|
||||
android:textColor="@color/color_666666"
|
||||
android:layout_gravity="center_vertical"
|
||||
tools:text="100"
|
||||
android:gravity="center"
|
||||
/>
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_16"
|
||||
tools:text="100" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<com.nnbc123.app.ui.widget.NobleAvatarView
|
||||
android:id="@+id/noble_avatar_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar"
|
||||
android:layout_width="44dp"
|
||||
android:layout_height="44dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
/>
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="vertical">
|
||||
@@ -61,37 +58,26 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="15sp"
|
||||
tools:text="我的我的我的我的我的我的"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp"
|
||||
app:layout_flexShrink="1"
|
||||
/>
|
||||
tools:text="我的我的我的我的我的我的" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_amount"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0.7"
|
||||
tools:text="1236843"
|
||||
android:gravity="end"
|
||||
android:textColor="#1093F5"
|
||||
android:textSize="@dimen/dp_15"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawableEnd="@drawable/treasure_box_diamond"
|
||||
android:drawablePadding="5dp"
|
||||
/>
|
||||
android:drawableStart="@drawable/treasure_box_diamond"
|
||||
android:drawablePadding="2dp"
|
||||
android:gravity="start|center_vertical"
|
||||
android:includeFontPadding="false"
|
||||
android:lines="1"
|
||||
android:textColor="#FFD477"
|
||||
android:textSize="@dimen/dp_12"
|
||||
tools:text="1236843" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:id="@+id/view_line"
|
||||
android:background="@color/color_F4F4F4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:layout_marginStart="90dp"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
|
@@ -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">
|
||||
|
||||
|
@@ -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" />
|
||||
|
||||
<ImageView
|
||||
@@ -43,7 +43,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_lock_micro_boss"
|
||||
android:src="@drawable/icon_room_lock_micro"
|
||||
android:visibility="invisible"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -1,15 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
tools:background="#ff0">
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar"
|
||||
android:layout_width="34dp"
|
||||
android:layout_height="34dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:src="@drawable/default_avatar" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_userinfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="7dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nickname"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
tools:text="用户昵称..." />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_tags"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
tools:text="用户tag..." />
|
||||
|
||||
<com.nnbc123.app.avroom.widget.FixRoomTitleTextView
|
||||
android:id="@+id/tv_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:background="@drawable/shape_room_message_bg"
|
||||
android:gravity="left|center_vertical"
|
||||
android:textColor="@android:color/white"
|
||||
@@ -18,4 +49,7 @@
|
||||
tools:text="这是名字😄"
|
||||
tools:textColor="#000" />
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
@@ -868,8 +868,6 @@
|
||||
<string name="privacy_setting">隐私设置</string>
|
||||
<string name="notice_setting">通知提醒设置</string>
|
||||
|
||||
<string name="behavior_fix_app_bar">com.mango.moshen.ui.behavior.FixAppBarBehavior</string>
|
||||
|
||||
<string name="label_search_history">搜索记录</string>
|
||||
<string name="label_room_history">进房记录</string>
|
||||
<string name="label_clear">清空</string>
|
||||
|
@@ -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" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
|
@@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:background="@color/color_666666">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="360dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@drawable/shape_white_top_14dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
<com.flyco.tablayout.SlidingTabLayout
|
||||
android:id="@+id/view_indicator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="46dp"
|
||||
android:background="@drawable/shape_white_top_14dp"
|
||||
app:tl_indicator_color="@color/appColor"
|
||||
app:tl_indicator_corner_radius="2dp"
|
||||
app:tl_indicator_height="@dimen/dp_3"
|
||||
app:tl_indicator_width="@dimen/dp_9"
|
||||
app:tl_tab_space_equal="true"
|
||||
app:tl_textSelectColor="@color/color_333333"
|
||||
app:tl_textUnselectColor="@color/text_tertiary"
|
||||
app:tl_textsize="@dimen/dp_16" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_refresh"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@drawable/refresh"
|
||||
android:layout_gravity="end"
|
||||
android:paddingStart="@dimen/dp_15"
|
||||
android:paddingEnd="@dimen/dp_15"
|
||||
/>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="@color/color_f5f5f5" />
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/viewpager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
@@ -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<ActivityRoomBoxRankingBinding> {
|
||||
|
||||
|
||||
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<Fragment> 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();
|
||||
}
|
||||
}
|
@@ -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<ActivityTreasureBoxBinding> implements View.OnClickListener {
|
||||
private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews();
|
||||
private int price = 20;
|
||||
private volatile int keyNum;
|
||||
private ArrayList<PrizeInfo> cacheList = new ArrayList<>();
|
||||
private ArrayList<PrizeInfo> hintPrizeCacheList = new ArrayList<>();
|
||||
private ObjectAnimator translationXAnimator;
|
||||
private ObjectAnimator translationYAnimator;
|
||||
private int boxType = IBoxModel.BOX_TYPE_NORMAL;
|
||||
private final ArrayList<PrizeInfo> 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<ActivityTreasureBox
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
//这里的height用MATCH_PARENT状态栏会被顶上去,不知道什么鬼
|
||||
height = ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context);
|
||||
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, height);
|
||||
@@ -83,23 +85,15 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ROOM_POP_CLICK, "房间pop点击", arguments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@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(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<ActivityTreasureBox
|
||||
mBinding.editNum.setSelection(3);
|
||||
SingleToastUtil.showToast("一次性最多只能摘200次");
|
||||
} else {
|
||||
mBinding.tvContinuousNum.setText("消耗 " + num);
|
||||
mBinding.tvContinuousNum.setText("消耗" + num +"根魔法棒可连续变");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
loadKeyInfo();
|
||||
looperPrize();
|
||||
mBinding.ivBox.startPlay(getAssets(), "vap/gold_box_open.mp4");
|
||||
mBinding.ivBox.setLoop(999999);
|
||||
mBinding.ivBox.setScaleType(ScaleType.CENTER_CROP);
|
||||
looperHintPrize();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
loadKeyInfo();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadKeyInfo() {
|
||||
BoxModel.get()
|
||||
@@ -130,23 +130,39 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(keyInfo -> {
|
||||
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:
|
||||
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<ActivityTreasureBox
|
||||
case R.id.ll_get_key:
|
||||
DialogWebViewActivity.start(this, UriProvider.getBoxKey());
|
||||
break;
|
||||
case R.id.tv_get_key:
|
||||
mBinding.fragmentContainer.setVisibility(View.GONE);
|
||||
DialogWebViewActivity.start(this, UriProvider.getBoxKey());
|
||||
break;
|
||||
case R.id.tv_box_rule:
|
||||
replaceFragment(BoxRuleFragment.Companion.newInstance());
|
||||
break;
|
||||
case R.id.tv_history:
|
||||
replaceFragment(BoxRecordFragment.Companion.newInstance());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void replaceFragment(Fragment fragment) {
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(R.id.fragment_container, fragment)
|
||||
.commitNow();
|
||||
mBinding.fragmentContainer.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查钥匙(锤子)数量
|
||||
*
|
||||
@@ -196,8 +229,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
}
|
||||
boolean sendMessage = (sendMessageSwitchLevel != 0 && UserUtils.getExpLevel() < sendMessageSwitchLevel) || DemoCache.readNeedBoxMsg();
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
mBinding.ivFirstBox.setVisibility(View.GONE);
|
||||
mBinding.ivBoxOpen.startAnimation();
|
||||
long startTime = System.currentTimeMillis();
|
||||
BoxModel.get().openBox(boxType, count, sendMessage)
|
||||
.compose(bindToLifecycle())
|
||||
@@ -208,36 +239,14 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
.toObservable()
|
||||
.delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.flatMap(openBoxResult -> {
|
||||
.doOnNext(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......
|
||||
|
||||
})
|
||||
.flatMap(openBoxResult -> Observable.fromIterable(openBoxResult.getPrizeItemList()))
|
||||
.filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2)
|
||||
.subscribe(hintPrizeCacheList::add);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -260,13 +269,13 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
switch (prizeInfo.getPrizeLevel()) {
|
||||
case 3:
|
||||
default:
|
||||
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v3);
|
||||
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_l3);
|
||||
break;
|
||||
case 4:
|
||||
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v4);
|
||||
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_l4);
|
||||
break;
|
||||
case 5:
|
||||
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v5);
|
||||
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_l5);
|
||||
break;
|
||||
}
|
||||
linearLayout.setPadding(ScreenUtil.dip2px(10), 0, ScreenUtil.dip2px(10), 0);
|
||||
@@ -313,7 +322,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
.subscribe(roomEvent -> {
|
||||
switch (roomEvent.getEvent()) {
|
||||
case RoomEvent.WALLET_UPDATE:
|
||||
loadKeyInfo();
|
||||
setGold(roomEvent.getWalletInfo().getDiamondNum());
|
||||
break;
|
||||
case RoomEvent.KICK_OUT_ROOM:
|
||||
|
@@ -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<ActivityTreasureBoxHonourBinding> {
|
||||
private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews();
|
||||
private int price = 20;
|
||||
private volatile int keyNum;
|
||||
private ArrayList<PrizeInfo> cacheList = new ArrayList<>();
|
||||
private ArrayList<PrizeInfo> 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);
|
||||
}
|
||||
|
||||
}
|
@@ -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<BoxRankingInfo.RankV
|
||||
protected void convert(BaseViewHolder baseViewHolder, final BoxRankingInfo.RankVosBean rankVosBeans) {
|
||||
if (rankVosBeans == null) return;
|
||||
|
||||
baseViewHolder.setText(R.id.tv_userName, rankVosBeans.getNick()).setText(R.id.tv_amount, rankVosBeans.getAmount() + "");
|
||||
baseViewHolder.setText(R.id.tv_userName, rankVosBeans.getNick())
|
||||
.setText(R.id.tv_amount, rankVosBeans.getAmount() + "");
|
||||
ImageLoadKt.loadAvatar(baseViewHolder.getView(R.id.iv_avatar), rankVosBeans.getAvatar());
|
||||
TextView tvPosition = baseViewHolder.getView(R.id.tv_position);
|
||||
ImageView ivPosition = baseViewHolder.getView(R.id.iv_position);
|
||||
tvPosition.setText(baseViewHolder.getLayoutPosition() + 1 + "");
|
||||
/*
|
||||
switch (baseViewHolder.getLayoutPosition()) {
|
||||
case 0:
|
||||
tvPosition.setVisibility(View.GONE);
|
||||
@@ -56,5 +58,6 @@ public class BoxRankingListAdapter extends BaseQuickAdapter<BoxRankingInfo.RankV
|
||||
tvPosition.setText(baseViewHolder.getLayoutPosition() + 1 + "");
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
@@ -9,11 +9,12 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.nnbc123.app.R;
|
||||
import com.nnbc123.app.base.BaseMvpFragment;
|
||||
import com.nnbc123.app.treasure_box.adapter.BoxRankingListAdapter;
|
||||
import com.nnbc123.core.room.treasure_box.bean.BoxRankingInfo;
|
||||
import com.nnbc123.core.room.treasure_box.event.RefreshBoxRankingEvent;
|
||||
import com.nnbc123.app.R;
|
||||
import com.nnbc123.app.base.BaseMvpFragment;
|
||||
import com.nnbc123.app.common.EmptyViewHelper;
|
||||
import com.nnbc123.app.treasure_box.adapter.BoxRankingListAdapter;
|
||||
import com.nnbc123.app.treasure_box.module.IBoxRankingView;
|
||||
import com.nnbc123.app.treasure_box.presenter.BoxRankingPresenter;
|
||||
import com.nnbc123.library.base.factory.CreatePresenter;
|
||||
@@ -37,7 +38,7 @@ public class BoxRankingFragment extends BaseMvpFragment<IBoxRankingView, BoxRank
|
||||
|
||||
public static BoxRankingFragment newInstance(int datetype) {
|
||||
Bundle args = new Bundle();
|
||||
args.putInt("datetype",datetype);
|
||||
args.putInt("datetype", datetype);
|
||||
BoxRankingFragment fragment = new BoxRankingFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
@@ -54,7 +55,7 @@ public class BoxRankingFragment extends BaseMvpFragment<IBoxRankingView, BoxRank
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_newbie_list;
|
||||
return R.layout.fragment_box_ranking;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,24 +68,21 @@ public class BoxRankingFragment extends BaseMvpFragment<IBoxRankingView, BoxRank
|
||||
public void onSetListener() {
|
||||
swipeRefresh.setOnRefreshListener(() -> {
|
||||
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<IBoxRankingView, BoxRank
|
||||
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
|
||||
recyclerView.setLayoutManager(linearLayoutManager);
|
||||
recyclerView.setAdapter(mAdapter);
|
||||
mAdapter.setEmptyView(EmptyViewHelper.createEmptyTextView(mContext, "暂无记录"));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void getBoxRankingSuccess(BoxRankingInfo rankingInfo) {
|
||||
hideStatus();
|
||||
if (mAdapter != null) {
|
||||
int page = getMvpPresenter().getPage();
|
||||
if (page <= 1) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
|
||||
if (rankingInfo.getRankVos() == null || rankingInfo.getRankVos().size() == 0) {
|
||||
showNoData(getString(R.string.empty_newbie_list));
|
||||
mAdapter.setNewData(null);
|
||||
} else {
|
||||
mAdapter.setNewData(rankingInfo.getRankVos());
|
||||
}
|
||||
@@ -122,18 +119,16 @@ public class BoxRankingFragment extends BaseMvpFragment<IBoxRankingView, BoxRank
|
||||
|
||||
@Override
|
||||
public void getBoxRankingFails(String error) {
|
||||
hideStatus();
|
||||
|
||||
int page = getMvpPresenter().getPage();
|
||||
if (page <= 1) {
|
||||
showNoData(getString(R.string.empty_newbie_list));
|
||||
mAdapter.setNewData(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getBoxRankingLoadMoreSuccess(BoxRankingInfo rankingInfo) {
|
||||
if (ListUtils.isListEmpty(rankingInfo.getRankVos())){
|
||||
mAdapter.loadMoreEnd();
|
||||
if (ListUtils.isListEmpty(rankingInfo.getRankVos())) {
|
||||
mAdapter.loadMoreEnd(true);
|
||||
return;
|
||||
}
|
||||
mAdapter.addData(rankingInfo.getRankVos());
|
||||
@@ -142,22 +137,21 @@ public class BoxRankingFragment extends BaseMvpFragment<IBoxRankingView, BoxRank
|
||||
|
||||
@Override
|
||||
public void getBoxRankingLoadMoreFails(String error) {
|
||||
hideStatus();
|
||||
int page = getMvpPresenter().getPage();
|
||||
if (page <= 1) {
|
||||
showNoData(getString(R.string.empty_newbie_list));
|
||||
mAdapter.setNewData(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadData() {
|
||||
super.onReloadData();
|
||||
loadData(true,datetype);
|
||||
loadData(true, datetype);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
loadData(false,datetype);
|
||||
loadData(false, datetype);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -168,6 +162,6 @@ public class BoxRankingFragment extends BaseMvpFragment<IBoxRankingView, BoxRank
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRefreshRanking(RefreshBoxRankingEvent event) {
|
||||
loadData(true,datetype);
|
||||
loadData(true, datetype);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,87 @@
|
||||
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.core.auth.AuthModel
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.base.BaseViewBindingFragment
|
||||
import com.nnbc123.app.common.EmptyViewHelper
|
||||
import com.nnbc123.app.databinding.FragmentBoxRecordBinding
|
||||
import com.nnbc123.app.ui.utils.RVDelegate
|
||||
import com.nnbc123.app.ui.utils.load
|
||||
import com.nnbc123.treasure_box.bean.PrizeInfo
|
||||
import com.nnbc123.treasure_box.model.BoxModel
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
class BoxRecordFragment : BaseViewBindingFragment<FragmentBoxRecordBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): BoxRecordFragment {
|
||||
val args = Bundle()
|
||||
val fragment = BoxRecordFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var adapter: BaseQuickAdapter<PrizeInfo, BaseViewHolder>
|
||||
private var page = 1
|
||||
private lateinit var rvDelegate: RVDelegate<PrizeInfo>
|
||||
private val pageSize = 20
|
||||
private val format = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA)
|
||||
|
||||
override fun init() {
|
||||
adapter =
|
||||
object : BaseQuickAdapter<PrizeInfo, BaseViewHolder>(R.layout.item_box_prize_record) {
|
||||
override fun convert(helper: BaseViewHolder, item: PrizeInfo) {
|
||||
helper.getView<ImageView>(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<PrizeInfo>()
|
||||
.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()
|
||||
})
|
||||
}
|
||||
|
||||
}
|
@@ -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<FragmentBoxRuleBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): BoxRuleFragment {
|
||||
val args = Bundle()
|
||||
val fragment = BoxRuleFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var adapter: BaseQuickAdapter<BoxRuleItemInfo, BaseViewHolder>
|
||||
private lateinit var rvDelegate: RVDelegate<BoxRuleItemInfo>
|
||||
|
||||
override fun init() {
|
||||
adapter =
|
||||
object : BaseQuickAdapter<BoxRuleItemInfo, BaseViewHolder>(R.layout.item_box_rule) {
|
||||
override fun convert(helper: BaseViewHolder, item: BoxRuleItemInfo) {
|
||||
helper.getView<ImageView>(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<BoxRuleItemInfo>()
|
||||
.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()
|
||||
})
|
||||
}
|
||||
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
@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();
|
||||
|
@@ -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.
|
||||
|
@@ -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<DialogBoxMoreBinding> {
|
||||
public class BoxMoreDialog extends BaseViewBindingFragment<DialogBoxMoreBinding> {
|
||||
|
||||
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<DialogBoxMoreBinding> {
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:color="#0D002F" android:state_checked="true" />
|
||||
|
||||
<item android:color="@color/white" />
|
||||
|
||||
</selector>
|
After Width: | Height: | Size: 278 B |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 820 B |
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.2 KiB |
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#80c65900" />
|
||||
|
||||
<corners
|
||||
android:bottomRightRadius="20dp"
|
||||
android:topRightRadius="20dp" />
|
||||
|
||||
<stroke
|
||||
android:width="1px"
|
||||
android:color="#FFFA65" />
|
||||
|
||||
</shape>
|
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#803400BC" />
|
||||
|
||||
<corners
|
||||
android:bottomRightRadius="20dp"
|
||||
android:topRightRadius="20dp" />
|
||||
|
||||
<stroke
|
||||
android:width="1px"
|
||||
android:color="#FFFDFB" />
|
||||
|
||||
</shape>
|
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#800D002F" />
|
||||
|
||||
<corners
|
||||
android:bottomRightRadius="20dp"
|
||||
android:topRightRadius="20dp" />
|
||||
|
||||
<stroke
|
||||
android:width="1px"
|
||||
android:color="#ACAAFF" />
|
||||
|
||||
</shape>
|
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:state_checked="true">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:angle="90" android:endColor="#ffffe2bb" android:startColor="#ffe7991a" android:type="linear" android:useLevel="true" />
|
||||
<corners android:bottomLeftRadius="12dp" android:bottomRightRadius="12dp" android:topLeftRadius="12dp" android:topRightRadius="12dp" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
</selector>
|
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#ff0d002f" />
|
||||
<corners android:radius="20dp" />
|
||||
<stroke
|
||||
android:width="1px"
|
||||
android:color="#FFE974" />
|
||||
|
||||
</shape>
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#B34A189F" />
|
||||
|
||||
<corners android:radius="12dp" />
|
||||
</shape>
|
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:background="@drawable/bg_treasure_box_more"
|
||||
tools:layout_gravity="center"
|
||||
tools:layout_height="340dp"
|
||||
tools:layout_width="250dp">
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rg"
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="27dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="10dp"
|
||||
android:background="@drawable/shape_0d002f_corner_20dp_ffe974"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_today"
|
||||
android:layout_width="88dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="@drawable/selector_treasure_box_rank_rb"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:text="今日榜单"
|
||||
android:textColor="@color/color_selector_white_false_8542e8"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_yesterday"
|
||||
android:layout_width="88dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="@drawable/selector_treasure_box_rank_rb"
|
||||
android:button="@null"
|
||||
android:layout_marginStart="1dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:text="昨日榜单"
|
||||
android:textColor="@color/color_selector_white_false_8542e8"
|
||||
android:textSize="12sp" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/viewpager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="5dp" />
|
||||
|
||||
</LinearLayout>
|
@@ -18,54 +18,50 @@
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="285dp"
|
||||
android:layout_height="416dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_width="271dp"
|
||||
android:layout_height="403dp"
|
||||
android:background="@drawable/treasure_box_bg_normal"
|
||||
android:onClick="@{click}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.4" />
|
||||
|
||||
<com.tencent.qgame.animplayer.AnimView
|
||||
android:id="@+id/iv_box"
|
||||
android:layout_width="270dp"
|
||||
android:layout_height="360dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:onClick="@{click}"
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_title"
|
||||
android:id="@+id/iv_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="46dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/treasure_box_title_normal"
|
||||
app:layout_constraintBottom_toTopOf="@id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:src="@drawable/icon_room_box_more_normal"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_rank"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="35dp"
|
||||
android:layout_marginTop="11dp"
|
||||
android:drawableStart="@drawable/treasure_box_rank"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:text="排行榜"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="35dp"
|
||||
android:layout_marginEnd="18dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/icon_room_box_more_normal"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
app:layout_constraintStart_toStartOf="@id/iv_more"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_more" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_diamond_num"
|
||||
@@ -74,7 +70,7 @@
|
||||
android:layout_marginTop="18dp"
|
||||
android:drawableTop="@drawable/treasure_box_diamond"
|
||||
android:gravity="center"
|
||||
android:textColor="#ffffffff"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_more"
|
||||
@@ -86,103 +82,59 @@
|
||||
android:id="@+id/tv_key_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:drawableTop="@drawable/treasure_box_meteor"
|
||||
android:layout_marginStart="5dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_more"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_more"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_diamond_num"
|
||||
tools:text="200" />
|
||||
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" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_first_box"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/ic_box_temp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_box"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_box"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_box"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_box" />
|
||||
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/iv_box"
|
||||
android:layout_width="190dp"
|
||||
android:layout_height="242dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="52dp"
|
||||
android:onClick="@{click}"
|
||||
app:autoPlay="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg"
|
||||
app:loopCount="999999"
|
||||
app:source="svga/gold_box_bg.svga" />
|
||||
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/iv_box_open"
|
||||
android:layout_width="190dp"
|
||||
android:layout_height="242dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="52dp"
|
||||
app:autoPlay="false"
|
||||
app:fillMode="Clear"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg"
|
||||
app:loopCount="1"
|
||||
app:source="svga/gold_box_open.svga" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_gift_anim"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_box"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_box"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_box"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_box" />
|
||||
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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_continuous_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="17dp"
|
||||
android:gravity="center"
|
||||
android:text="消耗 1"
|
||||
android:textColor="@color/white"
|
||||
android:text="消耗1根魔法棒可连续变"
|
||||
android:textColor="#DCC3FF"
|
||||
android:includeFontPadding="false"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_continuous_open"
|
||||
app:layout_constraintEnd_toStartOf="@id/tv_continuous_open"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_continuous_open" />
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_continuous_open"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="3dp"
|
||||
android:gravity="center"
|
||||
android:text=" 糖果连续摘"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_continuous_num"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_box" />
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/shape_0d002f_corner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_sub"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_add"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_sub"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_sub" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/treasure_box_sub_normal"
|
||||
app:layout_constraintBottom_toTopOf="@id/iv_open"
|
||||
app:layout_constraintEnd_toStartOf="@id/edit_num"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_continuous_open" />
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_num"
|
||||
@@ -213,15 +165,13 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_open"
|
||||
android:layout_width="135dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginStart="25dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="25dp"
|
||||
android:layout_marginBottom="22dp"
|
||||
android:layout_width="143dp"
|
||||
android:layout_height="38dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="7dp"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/click_open_box_selector"
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_bg"
|
||||
app:layout_constraintBottom_toTopOf="@id/tv_continuous_num"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
@@ -242,6 +191,7 @@
|
||||
android:layout_marginStart="80dp"
|
||||
android:layout_marginTop="60dp"
|
||||
app:autoPlay="false"
|
||||
app:fillMode="Clear"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_box"
|
||||
@@ -258,6 +208,7 @@
|
||||
android:layout_marginTop="20dp"
|
||||
android:onClick="@{click}"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+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" />
|
||||
|
||||
<ImageView
|
||||
@@ -280,7 +231,20 @@
|
||||
android:text="糖果>"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/fragment_container"
|
||||
android:layout_width="250dp"
|
||||
android:layout_height="340dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@drawable/bg_treasure_box_more"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</layout>
|
||||
|
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
@@ -8,55 +9,74 @@
|
||||
type="android.view.View.OnClickListener" />
|
||||
</data>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape_white_top_10dp"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingBottom="80dp"
|
||||
android:paddingEnd="15dp">
|
||||
android:paddingEnd="15dp"
|
||||
tools:background="@drawable/bg_treasure_box_more"
|
||||
tools:layout_gravity="center"
|
||||
tools:layout_height="340dp"
|
||||
tools:layout_width="250dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="75dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="更多"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="16sp" />
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_get_key"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:background="@drawable/bottom_line"
|
||||
android:layout_height="39dp"
|
||||
android:drawableEnd="@drawable/arrow_right_box"
|
||||
android:gravity="center_vertical"
|
||||
android:text="参与活动获得糖果"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="#33EDEDED" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_history"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:background="@drawable/bottom_line"
|
||||
android:layout_height="39dp"
|
||||
android:drawableEnd="@drawable/arrow_right_box"
|
||||
android:gravity="center_vertical"
|
||||
android:text="获奖记录"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="#33EDEDED" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_box_rule"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:layout_height="39dp"
|
||||
android:drawableEnd="@drawable/arrow_right_box"
|
||||
android:gravity="center_vertical"
|
||||
android:text="玩法规则"
|
||||
android:background="@drawable/bottom_line"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="#33EDEDED" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fl_msg_switch"
|
||||
@@ -65,23 +85,27 @@
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="43dp"
|
||||
android:layout_height="39dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="允许中奖消息对外展示"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_switch"
|
||||
android:layout_width="@dimen/dp_45"
|
||||
android:layout_height="@dimen/dp_25"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="@dimen/dp_32"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:src="@drawable/icon_room_set_lock_false" />
|
||||
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/icon_box_set_false" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="#33EDEDED" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</layout>
|
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="2dp" />
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
|
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
tools:background="@drawable/bg_treasure_box_more"
|
||||
tools:layout_gravity="center"
|
||||
tools:layout_height="340dp"
|
||||
tools:layout_width="250dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rb_today"
|
||||
android:layout_width="75dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="获奖记录"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="6dp" />
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
</LinearLayout>
|
97
app/src/module_treasure_box/res/layout/fragment_box_rule.xml
Normal file
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
tools:background="@drawable/bg_treasure_box_more"
|
||||
tools:layout_gravity="center"
|
||||
tools:layout_height="340dp"
|
||||
tools:layout_width="250dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rb_today"
|
||||
android:layout_width="75dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="玩法规则"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="12dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/icon_box_rule_start" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="2dp"
|
||||
android:lineSpacingExtra="3dp"
|
||||
android:text="通过许愿池许愿获得的礼物放到礼物包裹,点开礼物面板即可查看"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:drawableStart="@drawable/icon_box_rule_start"
|
||||
android:drawablePadding="2dp"
|
||||
android:text="每次许愿100%获得礼物"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<View
|
||||
android:layout_width="54dp"
|
||||
android:layout_height="3dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@drawable/shape_e7991a_to_ffe2bb" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:includeFontPadding="false"
|
||||
android:text="礼物概率:"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="6dp">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="6dp" />
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
</LinearLayout>
|
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="44dp"
|
||||
android:layout_height="44dp"
|
||||
android:background="@drawable/shape_ffe974_corner_12dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_prize_pic"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/default_cover" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_prize_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:fontFamily="sans-serif"
|
||||
android:includeFontPadding="false"
|
||||
android:lines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp"
|
||||
tools:text="哈哈哈哈" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_prize_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:includeFontPadding="false"
|
||||
android:lines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp"
|
||||
tools:text="x12" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_prize_time"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="end"
|
||||
android:textColor="#DCC3FF"
|
||||
android:textSize="11sp"
|
||||
tools:text="06-30 16:00" />
|
||||
|
||||
</LinearLayout>
|
66
app/src/module_treasure_box/res/layout/item_box_rule.xml
Normal file
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="44dp"
|
||||
android:layout_height="44dp"
|
||||
android:background="@drawable/shape_ffe974_corner_12dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_prize_pic"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/default_cover" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_prize_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:includeFontPadding="false"
|
||||
android:lines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp"
|
||||
tools:text="哈哈哈哈" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_diamond"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableStart="@drawable/treasure_box_diamond"
|
||||
android:drawablePadding="2dp"
|
||||
android:lines="1"
|
||||
android:textColor="#DCC3FF"
|
||||
android:textSize="9sp"
|
||||
tools:text="x12" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_probability"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="end"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp"
|
||||
tools:text="06-30 16:00" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@@ -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名字
|
||||
@@ -33,20 +33,15 @@ public class XChatConstants {
|
||||
*/
|
||||
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";//已更换
|
||||
/**
|
||||
* 网易易盾 业务 ID 注册
|
||||
*/
|
||||
public static final String QUICK_PASS_BUSINESS_ID = "60cdaa83aa654e5ea184de7160b4073d";
|
||||
public static final String NIM_KEY_RELEASE = "5e76ec47632d86c30ce18eabfa332b6a";
|
||||
|
||||
/**
|
||||
* 网易易盾 业务 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
|
||||
@@ -174,12 +137,6 @@ public class XChatConstants {
|
||||
*/
|
||||
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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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<ConfigImgUrl> getRule() {
|
||||
return api.getRule()
|
||||
@@ -57,11 +54,11 @@ public class BoxModel extends BaseModel implements IBoxModel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<OpenBoxResult> openBox(int boxType,int keyNum, boolean sendMessage) {
|
||||
public Single<OpenBoxResult> 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<ServiceResult<List<PrizeInfo>>> getPrizeRecord(int page,
|
||||
public Single<List<PrizeInfo>> 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<List<BoxRuleItemInfo>> getOpenBoxRule() {
|
||||
return api.getOpenBoxRule(2)
|
||||
.compose(RxHelper.handleCommon());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,7 +114,7 @@ public class BoxModel extends BaseModel implements IBoxModel {
|
||||
|
||||
@Override
|
||||
public Single<KeyInfo> 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<ServiceResult<List<PrizeInfo>>> getHonourBoxJackpotInfo();
|
||||
|
||||
|
||||
/**
|
||||
* 中奖记录列表
|
||||
*
|
||||
* @return 中奖纪录列表
|
||||
*/
|
||||
@GET("box/getOpenBoxRule ")
|
||||
Single<ServiceResult<List<BoxRuleItemInfo>>> getOpenBoxRule(@Query("boxType") int boxType);
|
||||
}
|
||||
|
||||
private static class BoxModelHelper {
|
||||
private static IBoxModel instance = new BoxModel();
|
||||
}
|
||||
}
|
||||
|
@@ -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<OpenBoxResult> openBox(int boxType,int keyNum, boolean sendMessage);
|
||||
Single<OpenBoxResult> openBox(int boxType, int keyNum, boolean sendMessage);
|
||||
|
||||
/**
|
||||
* 获取中奖记录
|
||||
@@ -42,11 +46,13 @@ public interface IBoxModel extends IModel {
|
||||
* @param uid
|
||||
* @return
|
||||
*/
|
||||
Single<ServiceResult<List<PrizeInfo>>> getPrizeRecord(int page,
|
||||
Single<List<PrizeInfo>> getPrizeRecord(int page,
|
||||
int pageSize,
|
||||
String sortType,
|
||||
long uid);
|
||||
|
||||
Single<List<BoxRuleItemInfo>> getOpenBoxRule();
|
||||
|
||||
/**
|
||||
* 购买钥匙
|
||||
*
|
||||
@@ -69,9 +75,6 @@ public interface IBoxModel extends IModel {
|
||||
*/
|
||||
Single<ServiceResult<List<PrizeInfo>>> getPrizes();
|
||||
|
||||
int BOX_TYPE_NORMAL = 1;// 普通蛋
|
||||
int BOX_TYPE_HONOUR = 2;// 至尊蛋
|
||||
|
||||
/**
|
||||
* 蛋开放状态
|
||||
*/
|
||||
|