feat : 礼物数量 选择初步 提交
This commit is contained in:
@@ -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!!
|
||||
|
@@ -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());
|
||||
}
|
||||
|
@@ -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()
|
||||
}
|
||||
|
||||
}
|
@@ -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 {
|
||||
|
||||
|
24
app/src/main/res/layout/dialog_gift_number_new.xml
Normal file
24
app/src/main/res/layout/dialog_gift_number_new.xml
Normal 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>
|
23
app/src/main/res/layout/item_gift_number_new.xml
Normal file
23
app/src/main/res/layout/item_gift_number_new.xml
Normal 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>
|
@@ -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;
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
|
@@ -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 {
|
||||
|
@@ -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());
|
||||
|
Reference in New Issue
Block a user