diff --git a/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt b/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt index e58e03a40..9ab5fa78d 100644 --- a/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt +++ b/app/src/main/java/com/chwl/app/avroom/dialog/RoomLuckyBagDialog.kt @@ -1,5 +1,6 @@ package com.chwl.app.avroom.dialog +import android.annotation.SuppressLint import android.view.Gravity import android.view.MotionEvent import android.view.View @@ -104,32 +105,66 @@ class RoomLuckyBagDialog : BaseDialogFragment() { ) { view?.let { when (it.id) { + R.id.etNum -> { mGiftSelect = position showInputLayout() } R.id.up -> { - if (position.isVerify(mGiftData)) { - val data = mGiftData[position] - data.count = data.count.plus(1) - mGiftAdapter.notifyItemChanged(position,1) - mGiftDataSelectPos[position] = data - } - showGiftCoin() - } - R.id.down -> { - if (position.isVerify(mGiftData)) { - val data = mGiftData[position] - data.count = data.count.minus(1).coerceAtLeast(0) - mGiftAdapter.notifyItemChanged(position,1) + if (mIsGiftReview) { + if (position.isVerify(mGiftDataSelect)) { + val data = mGiftDataSelect[position] + data.count = data.count.plus(1) + mGiftAdapter.notifyItemChanged(position,1) + mGiftDataSelectPos.forEach { (t, u) -> + if (u.giftId == data.giftId) { + u.count = data.count + mGiftData.getOrNull(t)?.count = data.count + } + } + } - if (data.count <= 0) { - mGiftDataSelectPos.remove(position) + }else{ + if (position.isVerify(mGiftData)) { + val data = mGiftData[position] + data.count = data.count.plus(1) + mGiftAdapter.notifyItemChanged(position,1) + mGiftDataSelectPos[position] = data } } showGiftCoin() } + + R.id.down -> { + if (mIsGiftReview) { + if (position.isVerify(mGiftDataSelect)) { + val data = mGiftDataSelect[position] + data.count = data.count.minus(1).coerceAtLeast(0) + mGiftAdapter.notifyItemChanged(position,1) + + mGiftDataSelectPos.forEach { (t, u) -> + if (u.giftId == data.giftId) { + u.count = data.count + mGiftData.getOrNull(t)?.count = data.count + } + } + + } + } else { + if (position.isVerify(mGiftData)) { + val data = mGiftData[position] + data.count = data.count.minus(1).coerceAtLeast(0) + mGiftAdapter.notifyItemChanged(position,1) + + if (data.count <= 0) { + mGiftDataSelectPos.remove(position) + } + } + } + showGiftCoin() + } + else -> {} } } @@ -340,6 +375,22 @@ class RoomLuckyBagDialog : BaseDialogFragment() { binding.inputEdit.clearFocus() binding.inputLayout.visibility = View.GONE KeyBoardUtils.hideKeyBoard(activity, binding.inputEdit) + + if (mIsGiftReview) { + if (mGiftSelect.isVerify(mGiftDataSelect)) { + val data = mGiftDataSelect[mGiftSelect] + data.isSelect = false + mGiftAdapter.notifyItemChanged(mGiftSelect,1) + } + }else{ + if (mGiftSelect.isVerify(mGiftData)) { + val data = mGiftData[mGiftSelect] + data.isSelect = false + mGiftAdapter.notifyItemChanged(mGiftSelect,1) + } + } + + mGiftSelect = -1 false } @@ -349,21 +400,41 @@ class RoomLuckyBagDialog : BaseDialogFragment() { if (text.isVerify()) { count = text.toInt() } - if (mGiftSelect.isVerify(mGiftData)) { - val data = mGiftData[mGiftSelect] - data.count = count - data.isSelect = false - mGiftAdapter.notifyItemChanged(mGiftSelect,1) - if (count > 0) { - mGiftDataSelectPos[mGiftSelect] = data - } else { - mGiftDataSelectPos.remove(mGiftSelect) + if (mIsGiftReview) { + + if (mGiftSelect.isVerify(mGiftDataSelect)) { + val data = mGiftDataSelect[mGiftSelect] + data.count = count + data.isSelect = false + mGiftAdapter.notifyItemChanged(mGiftSelect,1) + + mGiftDataSelectPos.forEach { (t, u) -> + if (u.giftId == data.giftId) { + u.count = data.count + mGiftData.getOrNull(t)?.count = data.count + } + } + } + + }else{ + if (mGiftSelect.isVerify(mGiftData)) { + val data = mGiftData[mGiftSelect] + data.count = count + data.isSelect = false + mGiftAdapter.notifyItemChanged(mGiftSelect,1) + + if (count > 0) { + mGiftDataSelectPos[mGiftSelect] = data + } else { + mGiftDataSelectPos.remove(mGiftSelect) + } } } + binding.inputEdit.clearFocus() binding.inputLayout.visibility = View.GONE KeyBoardUtils.hideKeyBoard(activity, binding.inputEdit) @@ -429,9 +500,6 @@ class RoomLuckyBagDialog : BaseDialogFragment() { binding.redBagDesc.setPadding2(bottom = 0.toDP()) - mGiftDataSelectPos.forEach { (t, u) -> - u.isReView = false - } mGiftAdapter.setNewData(mGiftData) binding.rvListGiftType.postSafe { mPageManager?.scrollToPagerIndex(0) @@ -447,7 +515,7 @@ class RoomLuckyBagDialog : BaseDialogFragment() { binding.groupReViewGift.setVis(true) binding.groupGiftSelect.setVis(false) - binding.flListGiftTypeLayout.setMargin(top = 83, bottom = 100) + binding.flListGiftTypeLayout.setMargin(top = 37, bottom = 90) // binding.flListGiftTypeLayout.setViewWH(height = 300) binding.bottomSpace.setVis(false) @@ -456,10 +524,17 @@ class RoomLuckyBagDialog : BaseDialogFragment() { binding.redBagDesc.setPadding2(bottom = 0.toDP()) mGiftDataSelect.clear() - mGiftDataSelectPos.forEach { (t, u) -> - u.isReView = true - mGiftDataSelect.add(u) + + val iterator = mGiftDataSelectPos.iterator() + while (iterator.hasNext()) { + val next = iterator.next().value + if (next.count > 0) { + mGiftDataSelect.add(next) + } else { + iterator.remove() + } } + mGiftAdapter.setNewData(mGiftDataSelect) binding.rvListGiftType.postSafe { mPageManager?.scrollToPagerIndex(0) @@ -499,8 +574,10 @@ class RoomLuckyBagDialog : BaseDialogFragment() { var giftCount = 0 var giftCoin = 0 mGiftDataSelectPos.forEach { (t, u) -> - giftCount += u.count - giftCoin += u.count * u.giftPrice + if (u.count > 0) { + giftCount += u.count + giftCoin += u.count * u.giftPrice + } } val redBagDesc = R.string._ver_24_sendHint.getString(giftCount, giftCoin) @@ -577,10 +654,12 @@ class RoomLuckyBagDialog : BaseDialogFragment() { isSenting = true val items = mutableListOf() mGiftDataSelectPos.keys.forEach{ key-> - items.add(LuckyBagGiftItemBody().apply { - giftId = mGiftDataSelectPos[key]?.giftId ?: -1 - giftNum = mGiftDataSelectPos[key]?.count ?: -1 - }) + if ((mGiftDataSelectPos[key]?.count ?: 0) > 0) { + items.add(LuckyBagGiftItemBody().apply { + giftId = mGiftDataSelectPos[key]?.giftId ?: -1 + giftNum = mGiftDataSelectPos[key]?.count ?: -1 + }) + } } sentGiftBag(LuckyBagGiftBody().apply { roomUid = AvRoomDataManager.get().roomUid @@ -638,13 +717,13 @@ class RoomLuckyBagDialog : BaseDialogFragment() { helper.addOnClickListener(R.id.down) helper.addOnClickListener(R.id.etNum) - if (item.isReView) { - it.selectViews.setVis(false) - it.giftCount.setVis(true) - } else { - it.selectViews.setVis(true) - it.giftCount.setVis(false) - } +// if (item.isReView) { +// it.selectViews.setVis(false) +// it.giftCount.setVis(true) +// } else { +// it.selectViews.setVis(true) +// it.giftCount.setVis(false) +// } } }