feat : 礼物数量 选择初步 提交

This commit is contained in:
eggmanQQQ
2025-02-19 11:13:13 +08:00
parent 96c9479203
commit 70475fc84e
10 changed files with 114 additions and 36 deletions

View File

@@ -30,12 +30,12 @@ class CoinTipsView : FrameLayout {
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs){initView(context)}
lateinit var mRootViewBinding : ViewCoinTipsBinding
var mCoin : Int?=null
var mCoin : Long?=null
private fun initView(context: Context) {
mRootViewBinding = ViewCoinTipsBinding.inflate(LayoutInflater.from(context),this,true)
mCoin = (PayModel.get().currentWalletInfo?.diamondNum ?: 0.0).toInt()
mCoin = (PayModel.get().currentWalletInfo?.diamondNum ?: 0.0).toLong()
mRootViewBinding.price.text = mCoin?.toString()?:""
}
@@ -120,7 +120,7 @@ class CoinTipsView : FrameLayout {
* number != null ,表示 接收中奖消息, 这时展示增加
*/
private fun setCoinText(number: String?,isAdd: Boolean) : String? {
val newCoin = (PayModel.get().currentWalletInfo?.diamondNum ?: 0.0).toInt()
val newCoin = (PayModel.get().currentWalletInfo?.diamondNum ?: 0.0).toLong()
val oldCoin = if (mCoin != null ) mCoin else newCoin
val num = newCoin - oldCoin!!

View File

@@ -53,6 +53,7 @@ import com.chwl.app.ui.gift.dialog.PageIndicatorView;
import com.chwl.app.ui.pay.ChargeActivity;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.webview.DialogWebViewActivity;
import com.chwl.app.ui.widget.adapter.GiftDialogNumberAdapter;
import com.chwl.app.ui.widget.dialog.GiftManualQuantityDialog;
import com.chwl.app.ui.widget.drawgift.DrawGiftHelper;
import com.chwl.app.ui.widget.drawgift.DrawGiftView;
@@ -60,6 +61,7 @@ import com.chwl.app.ui.widget.magicindicator.GiftIndicator;
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.app.ui.widget.recyclerview.decoration.VerticalDecoration;
import com.chwl.app.utils.RegexUtil;
import com.chwl.app.utils.RoomHelperManager;
import com.chwl.app.utils.SpannableBuilder;
import com.chwl.app.vip.VipCenterActivity;
import com.chwl.core.UriProvider;
@@ -219,6 +221,8 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private TextView tvNickLevel;
private View llStarWeek;
private GiftDialogNumberAdapter mGiftDialogNumberAdapter;
public GiftDialog(Context context, int giftId) {
this(context, 0, true, false, true, giftId);
@@ -1233,24 +1237,26 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private void initEasyPop(boolean isBag) {
easyPopup = new EasyPopup(getContext())
.setContentView(R.layout.dialog_gift_number)
.setContentView(R.layout.dialog_gift_number_new)
.setFocusAndOutsideEnable(true)
.createPopup();
easyPopup.getView(R.id.number_1).setOnClickListener(this);
easyPopup.getView(R.id.number_10).setOnClickListener(this);
easyPopup.getView(R.id.number_66).setOnClickListener(this);
easyPopup.getView(R.id.number_99).setOnClickListener(this);
easyPopup.getView(R.id.number_188).setOnClickListener(this);
easyPopup.getView(R.id.number_520).setOnClickListener(this);
easyPopup.getView(R.id.number_1314).setOnClickListener(this);
if (isBag) {
easyPopup.getView(R.id.number_all).setVisibility(View.VISIBLE);
easyPopup.getView(R.id.number_all).setOnClickListener(this);
} else {
easyPopup.getView(R.id.number_all).setVisibility(View.GONE);
RecyclerView rvNumList = easyPopup.getView(R.id.rvNumList);
if (rvNumList == null) return;
if (mGiftDialogNumberAdapter == null) {
mGiftDialogNumberAdapter = new GiftDialogNumberAdapter();
mGiftDialogNumberAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
OtherExtKt.isVerify(mGiftDialogNumberAdapter.getData(), i, integer -> {
updateNumber(integer);
return null;
});
}
});
}
easyPopup.getView(R.id.number_manual).setOnClickListener(this);
rvNumList.setAdapter(mGiftDialogNumberAdapter);
mGiftDialogNumberAdapter.setNewData(RoomHelperManager.INSTANCE.getGiftNumbers(isBag));
easyPopup.setOnDismissListener(() -> giftNumberOptions.animate().rotationBy(180).start());
}

View File

@@ -0,0 +1,12 @@
package com.chwl.app.ui.widget.adapter
import com.chwl.app.bindadapter.BaseBindingAdapter
import com.chwl.app.databinding.ItemGiftNumberNewBinding
class GiftDialogNumberAdapter : BaseBindingAdapter<ItemGiftNumberNewBinding, Int>() {
override fun onBindView(viewBinding: ItemGiftNumberNewBinding, data: Int, pos: Int) {
viewBinding.number.text = if (data == -1) "all" else data.toString()
}
}

View File

@@ -22,6 +22,7 @@ import com.chwl.library.common.file.FileHelper
import com.chwl.library.common.util.doLog
import com.chwl.library.common.util.doToast
import com.chwl.library.common.util.doToastDeBug
import com.chwl.library.common.util.isVerify
import com.chwl.library.net.rxnet.RxNet
import com.google.gson.JsonElement
import com.hjq.toast.ToastUtils
@@ -39,6 +40,7 @@ import java.util.Locale
object RoomHelperManager {
var mLuckyBagConfig : LuckyBagConfig?= null
var mGiftNumbers : MutableList<Int>?=null
//
// fun getTimeDown(beginTime:Long) : Long {
@@ -182,6 +184,18 @@ object RoomHelperManager {
.compose(RxHelper.handleSchedulers())
}
fun getGiftNumbers(isBag: Boolean): MutableList<Int> {
var data = mutableListOf(1,7,17)
if (mGiftNumbers.isVerify()) {
data = mGiftNumbers!!
}
if (isBag) {
data.add(-1)
}
return data
}
private val api: Api = RxNet.create(Api::class.java);
interface Api {

View File

@@ -0,0 +1,24 @@
<?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="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:minWidth="@dimen/dp_120"
android:background="@drawable/shape_bg_dialog_gift_number"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvNumList"
tools:listitem="@layout/item_gift_number_new"
android:layout_width="match_parent"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="1"
android:orientation="vertical"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_13"
android:layout_marginBottom="@dimen/dp_5"
android:layout_height="wrap_content"/>
</LinearLayout>

View File

@@ -0,0 +1,23 @@
<?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="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_13"
android:layout_marginEnd="@dimen/dp_16"
tools:background="@color/blue"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="1"
android:textColor="@color/appColor"
android:textSize="@dimen/dp_11"
tools:ignore="HardcodedText,SpUsage" />
</LinearLayout>

View File

@@ -2,13 +2,7 @@ package com.chwl.app.module_hall.im.msgholder;
import android.graphics.Color;
import android.graphics.Typeface;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.text.style.MetricAffectingSpan;
import android.util.TypedValue;
import android.view.View;
import android.widget.TextView;
@@ -16,13 +10,6 @@ import androidx.appcompat.widget.AppCompatTextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.alibaba.fastjson.JSON;
import com.coorchice.library.SuperTextView;
import com.example.lib_utils.spannable.SpannableTextBuilder;
import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase;
import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.orhanobut.logger.Logger;
import com.chwl.app.R;
import com.chwl.app.module_hall.im.NimHelper;
import com.chwl.app.module_hall.im.dialog.AgreeApplyDialog;
@@ -40,6 +27,13 @@ import com.chwl.core.module_hall.im.bean.HallMsgLayout;
import com.chwl.core.utils.net.BeanObserver;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import com.coorchice.library.SuperTextView;
import com.example.lib_utils.spannable.SpannableTextBuilder;
import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase;
import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.orhanobut.logger.Logger;
import org.greenrobot.eventbus.EventBus;
@@ -52,7 +46,7 @@ import java.util.Objects;
* 模厅im消息展示
* Created by lvzebiao on 2019/1/7.
*/
//todo do 更新云信消息扩展字段 示例
public class HallMsgViewHolder extends MsgViewHolderBase {
private ConstraintLayout clContainer;

View File

@@ -11,6 +11,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.MutableLiveData;
import com.alibaba.fastjson.JSON;
import com.chwl.core.DemoCache;
import com.chwl.core.R;
import com.chwl.core.XConstants;
@@ -35,6 +36,7 @@ import com.chwl.core.user.UserModel;
import com.chwl.core.utils.CurrentTimeUtils;
import com.chwl.core.utils.LogUtils;
import com.chwl.core.utils.StringFormatUtils;
import com.chwl.library.common.util.OtherExtKt;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.netease.nimlib.sdk.NIMChatRoomSDK;
@@ -818,6 +820,7 @@ public final class AvRoomDataManager {
// 添加麦位信息
public void addRoomQueueInfo(String micPosition, RoomQueueInfo roomQueueInfo) {
OtherExtKt.doLog(" 上麦 addRoomQueueInfo() 添加麦位信息 pos="+micPosition +" roomQueueInfo = "+ JSON.toJSONString(roomQueueInfo) + "/n");
if (roomQueueInfo == null || roomQueueInfo.mChatRoomMember == null) return;
Integer position = Integer.valueOf(micPosition);
int size = AvRoomDataManager.get().mMicQueueMemberMap.size();
@@ -854,6 +857,7 @@ public final class AvRoomDataManager {
}
mMicQueueMemberMap.clear();
for (int i = 0; i < queue.size(); i++) {
OtherExtKt.doLog(" 上麦 replaceMicQueue() 添加麦位信息 pos="+i +" key = "+queue.keyAt(i)+" value = "+ JSON.toJSONString(queue.valueAt(i)) + "/n");
mMicQueueMemberMap.put(queue.keyAt(i), queue.valueAt(i));
}
}

View File

@@ -681,6 +681,8 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
// 找出相册消息
if (((CustomAttachment) attachment).getFirst() == CustomAttachment.CUSTOM_MSG_ROOM_ALBUM) {
newList.add(message);
}else if (((CustomAttachment) attachment).getFirst() == CustomAttachment.ROOM_PIC_SCREEN_FIRST) {
newList.add(message);
}
}
} else {

View File

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.text.TextUtils;
import android.util.SparseArray;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.chwl.core.R;
import com.chwl.core.auth.AuthModel;
@@ -386,9 +387,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
return;
}
//坑上没人且没锁
if (roomMicInfo != null &&
(!roomMicInfo.isMicLock() || AvRoomDataManager.get().isRoomOwner(uId) ||
AvRoomDataManager.get().isRoomAdmin(uId) || isInviteUpMic)) {
if (roomMicInfo != null && (!roomMicInfo.isMicLock() || AvRoomDataManager.get().isRoomOwner(uId) || AvRoomDataManager.get().isRoomAdmin(uId) || isInviteUpMic)) {
final UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo != null) {
userInfo.setGroupType(teamId);
@@ -405,8 +404,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
};
//先看下这个用户是否在麦上
if (AvRoomDataManager.get().isOnMic(userInfo.getUid())) {
int position = AvRoomDataManager.get().getMicPosition(userInfo.getUid());
if (AvRoomDataManager.get().isOnMic(userInfo.getUid())) {int position = AvRoomDataManager.get().getMicPosition(userInfo.getUid());
//下麦
downMicroPhone(position, new CallBack<String>() {
@Override
@@ -639,6 +637,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
//todo do 填充麦位上的用户信息?
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo, boolean isNoProhibitMic) {
OtherExtKt.doLog(" 上麦 updateQueueEx() 填充麦位上的用户信息 pos="+micPosition +" isNoProhibitMic = "+isNoProhibitMic+" userInfo = "+ JSON.toJSONString(userInfo) + "/n");
JSONObject contentJsonObj = new JSONObject();
contentJsonObj.put("uid", String.valueOf(userInfo.getUid()));
contentJsonObj.put("nick", userInfo.getNick());