From c85065d86c62e56eb459f16b26c6f77d7827e3a6 Mon Sep 17 00:00:00 2001 From: wzq Date: Tue, 10 Oct 2023 17:54:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=20"=E5=A4=BA=E5=AE=9D?= =?UTF-8?q?=E7=B2=BE=E7=81=B5"=20=E6=96=B0=E5=A2=9E=20=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E8=B4=AD=E4=B9=B0=E6=95=B0=E9=87=8F=E7=A2=8E=E7=89=87?= =?UTF-8?q?=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android_crop_lib/build.gradle | 2 +- app/build.gradle | 7 +- .../java/com/yizhuan/erban/base/BaseDialog.kt | 2 +- .../pay/activity/GiveGoldSearchActivity.kt | 9 +- .../pay/activity/GiveGoldSuccessActivity.kt | 8 +- .../pay/activity/GiveGoldToUserActivity.kt | 4 +- .../erban/treasurefairy/FairyViewModel.kt | 11 +- .../erban/treasurefairy/HomeFairyActivity.kt | 87 +++++++++--- .../dialog/FairyBuyDebrisDialog.kt | 14 +- .../FairyBuyDebrisModifyQuantityDialog.kt | 81 +++++++++++ .../dialog/FairyBuySuccessDialog.kt | 4 +- .../ic_dialog_fairy_buy_debris_decrease.webp | Bin 0 -> 2492 bytes .../ic_dialog_fairy_buy_debris_increase.webp | Bin 0 -> 3022 bytes ...airy_dialog_buy_debris_modify_quantity.xml | 128 ++++++++++++++++++ .../treasure_fairy_dialog_buy_success.xml | 46 +++---- .../res/layout/treasure_fairy_dialog_home.xml | 40 +++--- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 3 + build.gradle | 2 +- core/build.gradle | 2 +- .../treasurefairy/DrawInfo.kt | 2 +- .../treasurefairy/TreasureFairyModel.kt | 4 +- .../manager/AvRoomDataManager.java | 6 + .../room/bean/RoomInfo.java | 2 + .../room/bean/SeizeTreasureSwitchVo.kt | 10 ++ library/build.gradle | 4 +- nim_uikit/build.gradle | 1 - 27 files changed, 385 insertions(+), 95 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt create mode 100644 app/src/main/res/drawable-xhdpi/ic_dialog_fairy_buy_debris_decrease.webp create mode 100644 app/src/main/res/drawable-xhdpi/ic_dialog_fairy_buy_debris_increase.webp create mode 100644 app/src/main/res/layout/treasure_fairy_dialog_buy_debris_modify_quantity.xml create mode 100644 core/src/main/java/com/yizhuan/xchat_android_core/room/bean/SeizeTreasureSwitchVo.kt diff --git a/android_crop_lib/build.gradle b/android_crop_lib/build.gradle index cd0cadb4f..71b8f1d5c 100644 --- a/android_crop_lib/build.gradle +++ b/android_crop_lib/build.gradle @@ -26,7 +26,7 @@ dependencies { api 'androidx.annotation:annotation:1.4.0' api 'androidx.legacy:legacy-support-v4:1.0.0' implementation "androidx.core:core-ktx:1.7.0" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } repositories { mavenCentral() diff --git a/app/build.gradle b/app/build.gradle index 7a84e88df..8ccb3d2d1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'com.tencent.vasdolly' apply from: '../mob.gradle' @@ -65,12 +64,12 @@ android { } } - lintOptions { + lint { abortOnError false - disable 'MissingTranslation' - disable 'ExtraTranslation' + disable 'MissingTranslation', 'ExtraTranslation', 'ContentDescription' } + dataBinding { enabled = true } diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt b/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt index d1d162d5d..ab8b29fd4 100644 --- a/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt @@ -16,7 +16,7 @@ abstract class BaseDialog : RxDialogFragment() { private var _binding: T? = null private var onDismissListener: (() -> Unit)? = null - val binding get() = _binding + val binding get() = _binding!! open var width = ScreenUtil.getDialogWidth() open var height = WindowManager.LayoutParams.WRAP_CONTENT open var gravity = Gravity.CENTER diff --git a/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSearchActivity.kt b/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSearchActivity.kt index 79a2deb7d..c5e732eac 100644 --- a/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSearchActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSearchActivity.kt @@ -8,6 +8,8 @@ import android.os.Bundle import android.os.Parcelable import android.text.Editable import android.text.TextWatcher +import android.widget.EditText +import android.widget.TextView import androidx.recyclerview.widget.LinearLayoutManager import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseActivity @@ -18,7 +20,6 @@ import com.yizhuan.xchat_android_core.room.bean.SearchRoomInfo import com.yizhuan.xchat_android_core.room.model.AvRoomModel import com.yizhuan.xchat_android_core.utils.net.RxHelper import com.yizhuan.xchat_android_library.utils.ResUtil -import kotlinx.android.synthetic.main.activity_give_gold_search.* class GiveGoldSearchActivity : BaseActivity(), TextWatcher { @@ -42,7 +43,7 @@ class GiveGoldSearchActivity : BaseActivity(), TextWatcher { .setPageSize(Int.MAX_VALUE) .setEmptyView(EmptyViewHelper.createEmptyTextView(this, ResUtil.getString(R.string.pay_activity_givegoldsearchactivity_01))) .setLayoutManager(LinearLayoutManager(this)) - .setRecyclerView(recyclerView) + .setRecyclerView(findViewById(R.id.recyclerView)) .setAdapter(adapter) .build() adapter.setOnItemClickListener { _, _, position -> @@ -53,8 +54,8 @@ class GiveGoldSearchActivity : BaseActivity(), TextWatcher { }) finish() } - editSearch.addTextChangedListener(this) - tvCancel.setOnClickListener { finish() } + findViewById(R.id.editSearch).addTextChangedListener(this) + findViewById(R.id.tvCancel).setOnClickListener { finish() } } override fun afterTextChanged(s: Editable?) { diff --git a/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSuccessActivity.kt b/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSuccessActivity.kt index 3ac650b21..a13d51199 100644 --- a/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSuccessActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldSuccessActivity.kt @@ -3,10 +3,10 @@ package com.yizhuan.erban.pay.activity import android.content.Context import android.content.Intent import android.os.Bundle +import android.widget.TextView import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseActivity import com.yizhuan.xchat_android_library.utils.ResUtil -import kotlinx.android.synthetic.main.activity_give_gold_success.* class GiveGoldSuccessActivity : BaseActivity() { @@ -24,9 +24,9 @@ class GiveGoldSuccessActivity : BaseActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_give_gold_success) initTitleBar(ResUtil.getString(R.string.pay_activity_givegoldsuccessactivity_01)) - tvNickname.text = "轉贈給:${intent.getStringExtra("nickname")}" - tvGold.text = "${intent.getStringExtra("gold")?.toInt()}鉆石" - tvSure.setOnClickListener { finish() } + findViewById(R.id.tvNickname).text = "轉贈給:${intent.getStringExtra("nickname")}" + findViewById(R.id.tvGold).text = "${intent.getStringExtra("gold")?.toInt()}鉆石" + findViewById(R.id.tvSure).setOnClickListener { finish() } } diff --git a/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldToUserActivity.kt b/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldToUserActivity.kt index 30fcca520..692e14aec 100644 --- a/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldToUserActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/pay/activity/GiveGoldToUserActivity.kt @@ -10,6 +10,7 @@ import android.text.TextWatcher import android.util.SparseArray import android.view.View import android.view.ViewGroup +import android.widget.EditText import androidx.activity.viewModels import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -39,7 +40,6 @@ import com.yizhuan.xchat_android_core.pay.PayModel import com.yizhuan.xchat_android_core.user.UserModel import com.yizhuan.xchat_android_core.user.bean.SearchUserInfo import com.yizhuan.xchat_android_library.utils.ResUtil -import kotlinx.android.synthetic.main.activity_give_gold_to_user.* class GiveGoldToUserActivity : BaseViewBindingActivity(), GridPasswordNoFocusView.OnPasswordChangedListener, @@ -371,7 +371,7 @@ class GiveGoldToUserActivity : BaseViewBindingActivity(R.id.mEditGold).text.toString(), DESAndBase64(password)) .compose(bindToLifecycle()) .doOnError { toast(it.message) diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt index 6dd814f3c..113571bbc 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt @@ -1,5 +1,6 @@ package com.yizhuan.erban.treasurefairy +import android.util.Log import android.util.SparseArray import androidx.core.util.forEach import androidx.lifecycle.LiveData @@ -539,10 +540,18 @@ class FairyViewModel : BaseViewModel() { ) } - fun buyDebris(num: String, uid: String) { + fun buyDebris(num: Int, uid: String) { safeLaunch( block = { val result = TreasureFairyModel.buyDebris(num, uid) + + _drawInfoLiveData.value?.apply { + this.drawTicketNum = this.drawTicketNum + num + _drawInfoLiveData.value = this + } + + initDrawInfo() + _buyDebrisLiveData.value = result } ) diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/HomeFairyActivity.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/HomeFairyActivity.kt index 2d7c89df9..acf43c075 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/HomeFairyActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/HomeFairyActivity.kt @@ -8,13 +8,17 @@ import android.content.pm.ActivityInfo import android.graphics.Path import android.os.Build import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher import android.text.style.ForegroundColorSpan +import android.util.Log import android.view.* import android.widget.LinearLayout import android.widget.TextView import androidx.activity.viewModels import androidx.core.content.ContextCompat import androidx.core.graphics.toColorInt +import androidx.core.widget.doAfterTextChanged import com.alibaba.fastjson.JSON import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder @@ -22,6 +26,7 @@ import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseViewBindingActivity import com.yizhuan.erban.common.widget.dialog.DialogManager import com.yizhuan.erban.databinding.TreasureFairyDialogHomeBinding +import com.yizhuan.erban.treasure_box.activity.TreasureBoxActivity import com.yizhuan.erban.treasurefairy.dialog.* import com.yizhuan.erban.treasurefairy.view.CustomDrawable import com.yizhuan.erban.ui.webview.FairyDialogWebViewActivity @@ -40,6 +45,7 @@ import com.yizhuan.xchat_android_core.treasurefairy.PrizeInfo import com.yizhuan.xchat_android_library.common.SpConstants import com.yizhuan.xchat_android_library.common.util.SPUtils import com.yizhuan.xchat_android_library.utils.FormatUtils +import com.yizhuan.xchat_android_library.utils.SingleToastUtil import com.yizhuan.xchat_android_library.utils.TimeUtils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -113,23 +119,45 @@ class HomeFairyActivity : BaseViewBindingActivity TreasureBoxActivity.MAX_BUY_QUANTITY_LIMIT) { + mPrice = TreasureBoxActivity.MAX_BUY_QUANTITY_LIMIT + binding.etQuantity.setText(mPrice.toString()) + binding.etQuantity.setSelection(binding.etQuantity.text.length) + SingleToastUtil.showToast( + getString( + R.string.treasure_box_activity_treasureboxactivity_01, + TreasureBoxActivity.MAX_BUY_QUANTITY_LIMIT + ) + ) + } + setFairyPriceSelect(0) + } catch (e: NumberFormatException) { + e.printStackTrace() + } + } + binding.tvBuy.setOnClickListener { if (!isSelect) { toast("請選擇購買的碎片數量") - } else { - val date = SPUtils.getLong(SpConstants.FAIRY_BUY_DEBRIS, 0L) - if (date != 0L) { - if (TimeUtils.isToday(date)) { - viewModel.buyDebris( - mPrice.toString(), - AuthModel.get().currentUid.toString() - ) - } else { - FairyBuyDebrisDialog.newInstance(mPrice).show(context) - } + return@setOnClickListener + } + + val date = SPUtils.getLong(SpConstants.FAIRY_BUY_DEBRIS, 0L) + if (date != 0L) { + if (TimeUtils.isToday(date)) { + viewModel.buyDebris( + mPrice, + AuthModel.get().currentUid.toString() + ) } else { FairyBuyDebrisDialog.newInstance(mPrice).show(context) } + } else { + FairyBuyDebrisDialog.newInstance(mPrice).show(context) } } @@ -188,10 +216,6 @@ class HomeFairyActivity : BaseViewBindingActivity if (index < fairyItems.size) { @@ -226,7 +250,10 @@ class HomeFairyActivity : BaseViewBindingActivity { + binding.viewPrice1.isSelected = false + binding.viewPrice2.isSelected = false + binding.viewPrice3.isSelected = false + binding.ivDebris1.alpha = 0.4f + binding.ivDebris2.alpha = 0.4f + binding.ivDebris3.alpha = 0.4f + binding.tvOne.alpha = 0.4f + binding.tvTwo.alpha = 0.4f + binding.tvThree.alpha = 0.4f + } + 1 -> { mPrice = 1 binding.viewPrice1.isSelected = true @@ -275,6 +318,7 @@ class HomeFairyActivity : BaseViewBindingActivity { mPrice = 10 binding.viewPrice1.isSelected = false @@ -287,6 +331,7 @@ class HomeFairyActivity : BaseViewBindingActivity { mPrice = 100 binding.viewPrice1.isSelected = false @@ -307,9 +352,7 @@ class HomeFairyActivity : BaseViewBindingActivity= num) { return true } - DialogManager(context).showOkCancelDialog("購買限時裝扮活動奪寶券", "去參与", "取消") { - FairyDialogWebViewActivity.start(context, UriProvider.getFairyKey()) - } + FairyBuyDebrisModifyQuantityDialog.newInstance(num).show(this) return false } @@ -446,6 +489,7 @@ class HomeFairyActivity : BaseViewBindingActivity if (baseProtocol.second == CustomAttachment.CUSTOM_MSG_LUCKY_SEA_GIFT_SERVER_ALL) { val attachment = RoomLuckySeaAttachment( CustomAttachment.CUSTOM_MSG_LUCKY_SEA, @@ -465,6 +509,7 @@ class HomeFairyActivity : BaseViewBindingActivity if (baseProtocol.second == CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY || baseProtocol.second == CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_ALL) { val attachment = RoomReceivedLuckyGiftAttachment(CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY) @@ -479,6 +524,7 @@ class HomeFairyActivity : BaseViewBindingActivity if (baseProtocol.second == CustomAttachment.CUSTOM_MSG_SUB_DRAW_GIFT_L5) { val attachment = FairyMsgAttachment( CustomAttachment.CUSTOM_MSG_FAIRY, @@ -494,6 +540,7 @@ class HomeFairyActivity : BaseViewBindingActivity {} } } diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisDialog.kt index d9729502a..0a95a44ee 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisDialog.kt @@ -4,7 +4,7 @@ import android.annotation.SuppressLint import android.os.Bundle import android.view.Gravity import android.view.WindowManager -import androidx.fragment.app.viewModels +import androidx.fragment.app.activityViewModels import com.hjq.toast.ToastUtils import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseDialog @@ -23,7 +23,7 @@ class FairyBuyDebrisDialog : BaseDialog() { override var width = WindowManager.LayoutParams.MATCH_PARENT override var height = WindowManager.LayoutParams.WRAP_CONTENT override var gravity = Gravity.CENTER - private val viewModel: FairyViewModel by viewModels() + private val viewModel: FairyViewModel by activityViewModels() companion object { fun newInstance(num: Int): FairyBuyDebrisDialog { @@ -39,10 +39,10 @@ class FairyBuyDebrisDialog : BaseDialog() { @SuppressLint("CheckResult") override fun init() { - binding?.tvDebrisNum?.text = getString(R.string.buy_debris, num) - binding?.tvPrizeName?.text = (num * 100).toString() + binding.tvDebrisNum.text = getString(R.string.buy_debris, num) + binding.tvPrizeName.text = (num * 100).toString() - binding?.cbPay?.setOnCheckedChangeListener { _, isChecked -> + binding.cbPay.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SPUtils.putLong(SpConstants.FAIRY_BUY_DEBRIS, System.currentTimeMillis()) } else { @@ -50,8 +50,8 @@ class FairyBuyDebrisDialog : BaseDialog() { } } - binding?.tvBuy?.setOnClickListener { - viewModel.buyDebris(num.toString(), AuthModel.get().currentUid.toString()) + binding.tvBuy.setOnClickListener { + viewModel.buyDebris(num, AuthModel.get().currentUid.toString()) } viewModel.buyDebrisLiveData.observe(this) { diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt new file mode 100644 index 000000000..604ebdfe6 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt @@ -0,0 +1,81 @@ +package com.yizhuan.erban.treasurefairy.dialog + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.Gravity +import android.view.WindowManager +import androidx.fragment.app.activityViewModels +import com.hjq.toast.ToastUtils +import com.yizhuan.erban.base.BaseDialog +import com.yizhuan.erban.databinding.TreasureFairyDialogBuyDebrisModifyQuantityBinding +import com.yizhuan.erban.treasurefairy.FairyViewModel +import com.yizhuan.xchat_android_core.auth.AuthModel +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager +import com.yizhuan.xchat_android_library.common.SpConstants +import com.yizhuan.xchat_android_library.common.util.SPUtils +import com.yizhuan.xchat_android_library.utils.TimeUtils + +/** + * 购买碎片 + */ +class FairyBuyDebrisModifyQuantityDialog : + BaseDialog() { + + override var width = WindowManager.LayoutParams.MATCH_PARENT + override var height = WindowManager.LayoutParams.WRAP_CONTENT + override var gravity = Gravity.CENTER + private val viewModel: FairyViewModel by activityViewModels() + + companion object { + fun newInstance(num: Int): FairyBuyDebrisModifyQuantityDialog { + val args = Bundle() + args.putInt("num", num) + val fragment = FairyBuyDebrisModifyQuantityDialog() + fragment.arguments = args + return fragment + } + } + + private var num = 0 + private val price by lazy { AvRoomDataManager.get().mSeizeTreasureSwitchVo?.price ?: 0 } + + @SuppressLint("CheckResult") + override fun init() { + num = requireArguments().getInt("num") + + binding.tvDebrisNum.text = num.toString() + binding.tvPrizeName.text = (num * price).toString() + + binding.ivDecrease.setOnClickListener { + num = (num - 10).coerceAtLeast(1) + binding.tvDebrisNum.text = num.toString() + binding.tvPrizeName.text = (num * price).toString() + } + + binding.ivIncrease.setOnClickListener { + num = (num + 10).coerceAtMost(200) + binding.tvDebrisNum.text = num.toString() + binding.tvPrizeName.text = (num * price).toString() + } + + binding.tvBuy.setOnClickListener { + viewModel.buyDebris(num, AuthModel.get().currentUid.toString()) + } + + viewModel.buyDebrisLiveData.observe(this) { + val date = SPUtils.getLong(SpConstants.FAIRY_BUY_SUCCESS, 0L) + if (date != 0L) { + if (TimeUtils.isToday(date)) { + ToastUtils.show("購買碎片成功") + } else { + FairyBuySuccessDialog.newInstance(num).show(context) + } + } else { + FairyBuySuccessDialog.newInstance(num).show(context) + } + dismissAllowingStateLoss() + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuySuccessDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuySuccessDialog.kt index 7cc915c0f..f06efbac4 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuySuccessDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuySuccessDialog.kt @@ -34,9 +34,9 @@ class FairyBuySuccessDialog : BaseDialog() @SuppressLint("CheckResult", "SetTextI18n") override fun init() { - binding?.tvDebrisNum?.text = "x${num}" + binding.tvDebrisNum.text = "x${num}" - binding?.cbPay?.setOnCheckedChangeListener { buttonView, isChecked -> + binding.cbPay.setOnCheckedChangeListener { buttonView, isChecked -> if (isChecked) { SPUtils.putLong(SpConstants.FAIRY_BUY_SUCCESS, System.currentTimeMillis()) } else { diff --git a/app/src/main/res/drawable-xhdpi/ic_dialog_fairy_buy_debris_decrease.webp b/app/src/main/res/drawable-xhdpi/ic_dialog_fairy_buy_debris_decrease.webp new file mode 100644 index 0000000000000000000000000000000000000000..3a794fc75d3ab9f2f1998126b57ead5c2fa2c516 GIT binary patch literal 2492 zcmV;t2}AZ$Nk&Gr2><|BMM6+kP&iDd2><{uWk3!PZw9xKBu7$IAA9-z_wY4Nr^^il zZQI8A`BPpYN0OvSimX~Xex3g6oGkQXs0ui?tsQ&zZ^X7$sZGX~;baVd87G}x*)~3` zd;vO>(!V#IjyHw2-aUEp+&K0nLLpK zjeKo5@`5%6AnUp7EX34+=JDwIkHEg{z84^t3eLh2|>HBf<7DzI3A z10)RY*`6i%2y2&&q?uwxtg(Pf7{VXCVNld!4$4rB2x=@JDJd9_d@+5bpEO1N!#nAM z>7t)Bkzn-S$Vzk^wLAU}|7~!&U7yZWqD0G(g5J33mZ&^dllgIog8q^De}6k)m}5FS zZ+5b=Vc*yrYvge4UBlno*V%wo%(iGpXG^Hfz4A>paf$y6-&C z3pjj4^k0G`NpjnuC)h?;7cee-2v9K z!plXiB@;$b5l)xz=w`QHM-9Kw%bn}Bi8m<`Zz@Kk=B5p};ezwd6>*a)6ElJ5#egHz zNS=v9p1D98FnO-R8wPSSPaAaYx##5jvq?n2ouC6SkSHNgNCZWa35B4G1k6JLWl$ef z|1cVS-Pu)VokNI(RfIX9K!F^fDCAU7cxI&n@j9-1jU9B|nO=2 z4X2+WBqF3#C175aLW5+O>`s~~MBoDyk}^qw2h=xM>DT8?r=AuR5kwK;L>VK(J;H;C z+<_s0!#x4Ph}&=-DP*O>I7ym z3Xb4N0gZCnTU}rQ5zron)cF3^iIq~-)C$+BsWO|fR{n9JF&;FfD$T0|^f4oPt$N#pyD`X1bft@+_+onTlAgb&6`#qrr7x zq_=y|LtKAJeC>Ch2z=B(LsW5E%9i{5OeZX#8l zH+K%EgBo&86F+)?8s<&Mx@4xznms3$^}hAy8>)YZKT-rm3IK>gRqd@K%ix4upPv`Z zoA$wnQr}d`OIIz>p6>R~m_OGq%)Sf@v&aRi{0X;rA6d3wZhE!Shwr%0aG2yjYcoZf zHov#$%@rpee@qI^d4q;={koGV3t@=9iMp2(MPqA#fk0R zJ=L2s8^ViAC^Y#!u0n7g@R)N5_*&Yw_Os)TYBB!IsCRyK`@}`4MmS=49lmEQDQ2mQ zMIx$m?HfKhrqwMzA?tCh4rMMJu?Rr0WW8rG*9@KyFb|B(q6(L-XzSka+3~Gz%GBPr zbU}4k`fb88eP((0oybB&c&9Xi^LTl+t?6w2bZ1vL^;9n`EFl6K5ESvw+sl~egFRy* zP6+N5>1kiRc0=chCmh>C7M<(XcC<_N%Ipl_2nZSA?e`b;ib_gFh1C@*SVgMuW@|QV z+4P$)>9@?k)8A{Brx7y~(WcEC#0(L8m!;1`6JJ~f5ZqNo7ykUqVp)O91yKYAdl1u| zyaz#TWF4KcaoZyYzhVAXzpF`=neCA+8#i=zv|Afu5A-{N9I>Zjpdc>!<>Mb$v``yS z$Lcj*8#ZpCy)Gzv~5VP@d~g5b#O(oh9}Y^B+jxK+R#oaDd}0*~^|Pg_7WM@0FGQ?I|Yj?Apn z%m9E476c>(lSPFezqQkc2 z4}gLIj*=kCw4$#@8#y!_pCK-F_~{p-wryaZ6diq2oztHtF89^5FKpi;qE#ZQp;aN8 z69k+W5mkW_72uK_1yUf%2%=73ab5A$p6&m4*;B#w9e(opN5J;z4t4kH0qWab{ZXwX zUY&>YfI@w{x;jWbVO*0Eax@9Ivk5i#KW0xnx7&RuI=Z9hVF`eB7Q`|PYn}2O{mM=D z__KR=AtH1GK%S%Lid;}|m5GiH3>@@$qxlZM{?9!J4h3QaMymXP0tN$%qLK@9$}aQQ zsnJqjJ>h%*v?~!0rjZ56q9&`MSXkL*ve)UWM$5%x|Ni^leY@2xu>svc86cuyh_JeL z3GV&-zx}I5pY;9L{-1xz-}dbPi~9j}hoe8cAAtKmA4nsBQuhksAhy5$<6r-M?CWSW G5d#3~t;iPu literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_dialog_fairy_buy_debris_increase.webp b/app/src/main/res/drawable-xhdpi/ic_dialog_fairy_buy_debris_increase.webp new file mode 100644 index 0000000000000000000000000000000000000000..f276aa71308db37d9f3f30c6c2e20ba7d27cdf0f GIT binary patch literal 3022 zcmV;<3o-OkNk&G-3jhFDMM6+kP&iDv3jhEwWk3!P&j%~AZCBCShYY{?z`q|Xgqa)8 zvf;38+d!go`)~YTNsMG$wW?YB;1(m9lYqn5BYWW5wr%X0{~z17tuiBT@aKI~C6!y- zm5tBi55O!+Seme)sg+B+AA4K(YHd37PhdFKYkvRGn}aeebSx^1wgI-C*LpX6!{Y{e z7uz=Fwg8M^g`@^GK$0X$=mz10AN;y6NiP!4{~Bf4v^;2(cQME@bUZ6isF zr>eKBFJ|xECyZ$(cb@#~+n>LF_wDySyui^c5$Ug!caFIrIVazI{mxr&zVZ5NALNYu zYEB=elq9<#<&2b&asm=^fMFgmVBq~uflc+9lu;gaz|4+Vp^CbYUz{?A0n554Gl7#FF(Gr@&%GNFr}a?2r>OMH*>eoevm-eKPeo3*5&D^ z)CB-@5Y`+terAmypMUQ@7!*PlClK}lpcFi#`jkBWn5sUZS>)+w3=Yb|G$7WHL-_m8 z8(pV9<7WWC;Kk^=S%9NY>64E=!VeeW%&boo1EoHLg|u*Q)Ih-B$5Y|cKK((TRW&kG z3p^`~LR9ssCmws`;n9&eR3t`yxEN${QuB1GW*|zKf)MnFPlJbj^5auatB9(oh|oUz zmP9?rlaCi2BSSp{Csb8Zjt?{2la!_6g#w6L#8gCo{3P`M{FNWKr_4;m%vi)@m@%8N ziHO@ZI^srsYw}v{?@ey8AUPSeu?4ikV(yvEe)-OC`t9#0`7u>iZ=VCOF;faT$@G!Y zp`QK|J66w}%Ck&0rlHYC9wYBXO;wp$X{eiUSo!bYyq-V*(MOb7RmnbPq6j?`Rq^QU zKe2u7^zmaQD{ns$i{T?opgxz?X9w)6|NKes_0yx=RFs2p=ezOtRg*+Sbk#PvBi!-a zavn8ut3UpAdiviW0M6OXh$d&!H>x8;a$>`_G=GY#%w1bIlm>=IM)hG&oISC(?kt}F z-#^^zeUEA=xuGDBfNR`lhWFl!dvC&;bQ}HoVz` z_ujw0gmpBGHW8?(r~(RhkIL4L&YUkheCXDjT`i@xg4C^cO?S?nTWeK%jJAm?t12s$ zSyj|U*5ALI8%NkrS=x(T^}KhVZTGH1 zB`hMr8w3pI+VYv{lPCI_FwRv%^fOt{PAyz!LZtC7Qd;Hjz zl4o!3-m+f z1JMv`Q8Zt2LFzy~Yt3ol&=Ka~MJy5k;?6x%jZtDCB2*z!I%MPKE9J-~txqn#_R=fU z)|&SQBzkO#(I@QLB~7G5ylmZ^t~_?l^`~d}EtAx5QT1DlufO)#m0LD#ZD^FHXf|5=Hg~q~+`a2d_}xHv?I!EQeFM$xMy*_2 zyQY8D$`wn06p@r9iAqw@loUFaJ$SU-H3Qd0y*qj7XXb-eu2h??eY9$FqG^;$KS4jf#&hH@lxg6fsZiNU(2r2O5{+xLl?i9v{%cr`Oe_8@C}tXQgWwU#fn zJ3HwMSYHs0Z60qmYgMVFVvptJ@Wi169rthl{-95YNQl4+1tUUYd09DDxR$lXx9vc` z5F;3say07!FOTnc5xP^~gWvBR?==?z>j8o ziQ2;HJ$A2f@N{Q6TwV8b9~@47(34mS<9JAc3CN~L4iYSgN+ z(rqI1-4oZy<@AOsi-2_x0K*)(j=`6zj*s1W`{frHjq)R{tfr6(x@QOs@Y%!1)81b+ zC)Y_R>RqP`S+tSy;P`0gw-4SV6UO1etT|tIwHR|4vhHLmz+Bx}*Y0DDtTi}3GTIrs zLqm*4`P6K5C!Gh}jaLhP&dj0KP1WWRQ4P%y4GmG%(AdlnvwRvFZ;y`s7Zq(huV(I= z&sD03$cScWriN@lz=o`IsSv3BXJ-+n=|2Dph|q^*EzLJNJklO9b6aJGzEBuBU?)dP zaew$f0O!_ci%yfh8KC?|p~NGw+WA;mDDm8^f}pyD4d`1C5r + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/treasure_fairy_dialog_buy_success.xml b/app/src/main/res/layout/treasure_fairy_dialog_buy_success.xml index 61271dd84..97dec25e9 100644 --- a/app/src/main/res/layout/treasure_fairy_dialog_buy_success.xml +++ b/app/src/main/res/layout/treasure_fairy_dialog_buy_success.xml @@ -8,8 +8,8 @@ + app:layout_constraintStart_toStartOf="@+id/view_bg" /> + app:layout_constraintTop_toBottomOf="@+id/tv_title" /> + app:layout_constraintStart_toStartOf="@+id/view_bg" + app:layout_constraintTop_toBottomOf="@+id/iv_prize_icon" + tools:text="x1000" /> + app:layout_constraintTop_toBottomOf="@+id/tv_debris_num" /> diff --git a/app/src/main/res/layout/treasure_fairy_dialog_home.xml b/app/src/main/res/layout/treasure_fairy_dialog_home.xml index 2a9f6f38c..52da547e9 100644 --- a/app/src/main/res/layout/treasure_fairy_dialog_home.xml +++ b/app/src/main/res/layout/treasure_fairy_dialog_home.xml @@ -233,11 +233,11 @@ android:id="@+id/iv_refresh" android:layout_width="10dp" android:layout_height="10dp" - android:src="@drawable/ic_fairy_refresh" android:layout_marginStart="@dimen/dp_4" - app:layout_constraintTop_toTopOf="@+id/tv_current_lucky_value" + android:src="@drawable/ic_fairy_refresh" app:layout_constraintBottom_toBottomOf="@+id/tv_current_lucky_value" - app:layout_constraintStart_toEndOf="@+id/tv_current_lucky_value"/> + app:layout_constraintStart_toEndOf="@+id/tv_current_lucky_value" + app:layout_constraintTop_toTopOf="@+id/tv_current_lucky_value" /> @@ -393,11 +393,11 @@ android:id="@+id/tv_one" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_6" + android:alpha="0.4" android:text="1" android:textColor="@color/color_F6F6F6" android:textSize="@dimen/sp_12" - android:layout_marginStart="@dimen/dp_6" - android:alpha="0.4" app:layout_constraintBottom_toBottomOf="@+id/view_price_1" app:layout_constraintStart_toEndOf="@+id/iv_debris_1" app:layout_constraintTop_toTopOf="@+id/view_price_1" /> @@ -419,8 +419,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_4" - android:background="@drawable/ic_debris" android:alpha="0.4" + android:background="@drawable/ic_debris" app:layout_constraintBottom_toBottomOf="@+id/view_price_2" app:layout_constraintStart_toStartOf="@+id/view_price_2" app:layout_constraintTop_toTopOf="@+id/view_price_2" /> @@ -429,11 +429,11 @@ android:id="@+id/tv_two" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_4" + android:alpha="0.4" android:text="10" android:textColor="@color/color_F6F6F6" android:textSize="@dimen/sp_12" - android:layout_marginStart="@dimen/dp_4" - android:alpha="0.4" app:layout_constraintBottom_toBottomOf="@+id/view_price_2" app:layout_constraintStart_toEndOf="@+id/iv_debris_2" app:layout_constraintTop_toTopOf="@+id/view_price_2" /> @@ -455,8 +455,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_4" - android:background="@drawable/ic_debris" android:alpha="0.4" + android:background="@drawable/ic_debris" app:layout_constraintBottom_toBottomOf="@+id/view_price_3" app:layout_constraintStart_toStartOf="@+id/view_price_3" app:layout_constraintTop_toTopOf="@+id/view_price_3" /> @@ -465,30 +465,33 @@ android:id="@+id/tv_three" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_2" + android:alpha="0.4" android:text="100" android:textColor="@color/color_F6F6F6" android:textSize="@dimen/sp_12" - android:layout_marginStart="@dimen/dp_2" - android:alpha="0.4" app:layout_constraintBottom_toBottomOf="@+id/view_price_3" app:layout_constraintStart_toEndOf="@+id/iv_debris_3" app:layout_constraintTop_toTopOf="@+id/view_price_3" /> - + app:layout_constraintWidth_percent="0.16" /> + android:layout_height="match_parent" + tools:visibility="gone" /> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c0dca4df4..a0292320f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -699,5 +699,6 @@ #A974FF #A974FF #C2A66FFF + #306065 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 92f6f0c5d..ebb214ae0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5129,5 +5129,8 @@ 請選擇或輸入購買的愛心數量 如何儲值: 1.在Piko語音App內前往【我的】—【儲值鑽石】進行儲值\n2.聯繁客服獲取儲值鏈接\n客服WeChat: %s 複製\n客服Line: %s 複製\n3.如遇提示"儲值失敗,請聯系客服處理~",請添加客服進行處理 + 可用碎片不足,請購買 + 0 + 輸入數量 \ No newline at end of file diff --git a/build.gradle b/build.gradle index 13594fd22..f05660f69 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.7.10' + ext.kotlin_version = '1.8.22' println "\n\n\n" println '当前选择版本 Version Name:'+ version_name diff --git a/core/build.gradle b/core/build.gradle index 7ce634d0c..a11fe29db 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'realm-android' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-parcelize' apply from: '../mob.gradle' android { diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/DrawInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/DrawInfo.kt index 5a5460ba9..79c7ec6d5 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/DrawInfo.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/DrawInfo.kt @@ -1,7 +1,7 @@ package com.yizhuan.xchat_android_core.treasurefairy data class DrawInfo( - val drawTicketNum: Int = 0, + var drawTicketNum: Int = 0, val luckyNum: Int = 0, val needLuckyNum: Int = 0 ) \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt index 2ef5d875b..4e7a1549d 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt @@ -104,7 +104,7 @@ object TreasureFairyModel { api.getExchangeRecord(convertType, page, pageSize) } - suspend fun buyDebris(num: String, uid: String): String? = launchRequest { + suspend fun buyDebris(num: Int, uid: String): String? = launchRequest { api.buyDebris(num, uid) } @@ -291,7 +291,7 @@ object TreasureFairyModel { @FormUrlEncoded @POST("/act/seize-treasure/shard/buy") suspend fun buyDebris( - @Field("num") num: String, + @Field("num") num: Int, @Field("uid") uid: String ): ServiceResult diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java b/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java index 1536a75b5..ac83f649e 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java @@ -32,6 +32,7 @@ import com.yizhuan.xchat_android_core.room.bean.BoxSwitchVo; import com.yizhuan.xchat_android_core.room.bean.FindLoveSwitchVo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.bean.RoomModeType; +import com.yizhuan.xchat_android_core.room.bean.SeizeTreasureSwitchVo; import com.yizhuan.xchat_android_core.room.bean.SimplePartyRoomInfo; import com.yizhuan.xchat_android_core.room.event.RoomClearScreenEvent; import com.yizhuan.xchat_android_core.room.game.GameStatus; @@ -60,6 +61,7 @@ import java.util.Objects; import io.reactivex.Single; import io.reactivex.processors.PublishProcessor; +import lombok.Getter; /** *

全局变量,存储房间相关信息(周期与房间一样)

@@ -219,6 +221,9 @@ public final class AvRoomDataManager { */ private Map kickOutRoomUids; + @Getter + private SeizeTreasureSwitchVo mSeizeTreasureSwitchVo; + private AvRoomDataManager() { mRoomManagerList = new ArrayList<>(); mRoomFixedMemberList = new ArrayList<>(); @@ -265,6 +270,7 @@ public final class AvRoomDataManager { mCurrentRoomInfo = roomInfo; mBoxSwitchVo = roomInfo.boxSwitchVo; mFindLoveSwitchVo = roomInfo.findLoveDrawSwitchVo; + mSeizeTreasureSwitchVo = roomInfo.seizeTreasureSwitchVo; phrases = roomInfo.getSpeakTemplate(); nick = roomInfo.getNick(); gender = roomInfo.getGender(); diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java index 7f344a20f..49d7f8cca 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java @@ -110,6 +110,8 @@ public class RoomInfo implements Parcelable,Serializable { public FindLoveSwitchVo findLoveDrawSwitchVo; + public SeizeTreasureSwitchVo seizeTreasureSwitchVo; + private String singingMusicName; // 限制类型 public static final String LOCK = "lock";//密码可进 diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/SeizeTreasureSwitchVo.kt b/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/SeizeTreasureSwitchVo.kt new file mode 100644 index 000000000..f8774cf84 --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/SeizeTreasureSwitchVo.kt @@ -0,0 +1,10 @@ +package com.yizhuan.xchat_android_core.room.bean + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize +import java.io.Serializable + +@Parcelize +data class SeizeTreasureSwitchVo( + val price: Int +): Serializable, Parcelable \ No newline at end of file diff --git a/library/build.gradle b/library/build.gradle index e33045ee2..00d2742fe 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -76,7 +76,7 @@ dependencies { def qiniu = "8.4.4" def SmartRefreshLayoutVersion = "1.0.3" def eventbusVersion = "3.0.0" - def fragment_version = "1.3.6" + def fragment_version = "1.6.1" def GlideTransformationsVersion = "3.0.1" implementation fileTree(dir: 'libs', include: ['*.jar']) @@ -121,7 +121,7 @@ dependencies { api "com.qiniu:qiniu-android-sdk:${qiniu}" api "org.greenrobot:eventbus:${eventbusVersion}" - api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + api "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" api 'com.github.getActivity:ToastUtils:10.5' diff --git a/nim_uikit/build.gradle b/nim_uikit/build.gradle index 01b9cb141..0c17ad91e 100644 --- a/nim_uikit/build.gradle +++ b/nim_uikit/build.gradle @@ -1,6 +1,5 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' android { compileSdkVersion COMPILE_SDK_VERSION.toInteger()