diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt index 863dd2c1a..faff7fc2f 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt @@ -160,7 +160,6 @@ open class BaseRoomFragment?> : protected lateinit var inputLayout: RelativeLayout protected lateinit var inputEdit: EditText protected lateinit var inputSend: ImageView - protected lateinit var inputHeadlineSend: ImageView protected lateinit var microView: MicroView private var musicPlayerView: MusicPlayerView? = null private var mVsMusicPlayer: ViewStub? = null @@ -202,8 +201,6 @@ open class BaseRoomFragment?> : // 房间小组件 private var widgets: HashMap = HashMap() - private val headlineViewModel by activityViewModels() - @CallSuper override fun onFindViews() { initMessageView() @@ -219,7 +216,6 @@ open class BaseRoomFragment?> : false } inputSend = mView.findViewById(R.id.input_send) - inputHeadlineSend = mView.findViewById(R.id.input_headline_send) microView = mView.findViewById(R.id.micro_view) mVsMusicPlayer = mView.findViewById(R.id.vs_music_player) messageView.setClickConsumer { @@ -252,7 +248,8 @@ open class BaseRoomFragment?> : parent: ViewGroup, viewType: Int ): RecyclerView.ViewHolder { - messageView.layoutParams = ViewGroup.LayoutParams( + val view = messageView + view.layoutParams = ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) @@ -306,7 +303,6 @@ open class BaseRoomFragment?> : override fun onSetListener() { bottomView.setMagicBtnEnable(true) inputSend.setOnClickListener(this) - inputHeadlineSend.setOnClickListener(this) inputLayout.setOnTouchListener { _: View?, _: MotionEvent? -> inputEdit.clearFocus() inputLayout.visibility = View.GONE @@ -314,7 +310,6 @@ open class BaseRoomFragment?> : false } - messageView.setOnLongClickListener { _, account, name -> showInputLayout() if (atProxy == null) atProxy = AtProxy(inputEdit) @@ -370,44 +365,6 @@ open class BaseRoomFragment?> : //获取免费礼物详情 mvpPresenter?.queryFreeFlower() initRoomAlbum() - initHeadline() - } - - private fun initHeadline() { - headlineViewModel.loadingLiveData.observe(this) { - if (it) dialogManager?.showProgressDialog(context) - else dialogManager?.dismissDialog() - } - lifecycleScope.launch(Dispatchers.Main) { - headlineViewModel.sendHeadlineFlow.collect { - if (it.isSuccess) { - SingleToastUtil.showToast(R.string.sent_success) - inputEdit.setText("") - KeyBoardUtils.hideKeyBoard(activity, inputEdit) - } else { - if (it.code == BalanceNotEnoughExeption.code) { - showBalanceNotEnoughDialog() - } else { - SingleToastUtil.showToast(it.message) - } - } - } - } - headlineViewModel.getHeadlinePayMoneyIsNull() - } - - private fun showBalanceNotEnoughDialog() { - val tipDialog = CommonTipDialog(context) - tipDialog.setTipMsg(ResUtil.getString(R.string.insufficient_balance_recharge_tips)) - tipDialog.setOkText(getString(R.string.charge)) - tipDialog.setOnActionListener( - object : CommonTipDialog.OnActionListener { - override fun onOk() { - ChargeActivity.start(context) - } - } - ) - tipDialog.show() } @SuppressLint("CheckResult") @@ -811,9 +768,6 @@ open class BaseRoomFragment?> : R.id.input_send -> { sendMsg() } - R.id.input_headline_send -> { - sendHeadline() - } R.id.layout_room_rank -> { DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking()) } @@ -861,41 +815,6 @@ open class BaseRoomFragment?> : } } - private fun sendHeadline() { - val message = inputEdit.text.toString().trim() - if (TextUtils.isEmpty(message)) { - SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_baseroomfragment_08)) - return - } - if (message.length > 100) { - toast(R.string.headline_input_length_limit_tips) - return - } - val money = headlineViewModel.headlinePayMoneyLiveData.value - if (money != null) { - showHeadlinePayDialog(money, message) - } else { - SingleToastUtil.showToast(R.string.ui_setting_modifypwdactivity_01) - headlineViewModel.getHeadlinePayMoney() - } - } - - private fun showHeadlinePayDialog(money: Long, message: String) { - KeyBoardUtils.hideKeyBoard(activity, inputEdit) - SelectPayTypeDialog.newInstance( - money.toString(), - money, - false - ).apply { - setOnDiamondChargeClick { - headlineViewModel.sendHeadline(message) - } - setOnChargeClick { - ChargeActivity.start(context) - } - }.show(context) - } - @SuppressLint("CheckResult") fun sendMsg(msg: String) { if (!AuthModel.get().isImLogin) { @@ -1549,7 +1468,6 @@ open class BaseRoomFragment?> : * 打开公屏输入 */ fun openMessageInput(text: String?) { - inputHeadlineSend.isVisible = isPublicMessageTab() inputLayout.visibility = View.VISIBLE if (text != null) { inputEdit.setText(text) diff --git a/app/src/main/java/com/chwl/app/decoration/adapter/MyUserCardWearAdapter.java b/app/src/main/java/com/chwl/app/decoration/adapter/MyUserCardWearAdapter.java index 804272e84..893f33a88 100644 --- a/app/src/main/java/com/chwl/app/decoration/adapter/MyUserCardWearAdapter.java +++ b/app/src/main/java/com/chwl/app/decoration/adapter/MyUserCardWearAdapter.java @@ -11,6 +11,7 @@ import com.chwl.app.databinding.ItemMyUserCardWearBinding; import com.chwl.app.ui.utils.ImageLoadUtils; import com.chwl.core.decoration.headwear.bean.HeadWearInfo; import com.chwl.core.decoration.headwear.bean.UserCardWearInfo; +import com.chwl.library.download.DownloadException; import com.chwl.library.download.DownloadManager; import com.chwl.library.download.DownloadRequest; import com.chwl.library.download.DownloadTask; @@ -34,8 +35,7 @@ public class MyUserCardWearAdapter extends BaseAdapter { protected void convert(@NonNull BindingViewHolder helper, UserCardWearInfo item) { super.convert(helper, item); ItemMyUserCardWearBinding binding = (ItemMyUserCardWearBinding) helper.getBinding(); - ImageLoadUtils.loadImage(mContext, item.getPic(), binding.ivUserCardWear); - + binding.ivUserCardWearMp4.setLoop(Integer.MAX_VALUE); String filePath = PathHelper.INSTANCE.generateResourcesFilePath(item.getPic()); DownloadRequest request = DownloadRequest.Companion.build(item.getPic(), filePath, "gift_effect_download", null, 60000L); @@ -45,6 +45,11 @@ public class MyUserCardWearAdapter extends BaseAdapter { String path = task.getRequest().getPath(); binding.ivUserCardWearMp4.startPlay(new File(path)); } + + @Override + public void onDownloadError(@NonNull DownloadException exception) { + ImageLoadUtils.loadImage(mContext, item.getPic(), binding.ivUserCardWear); + } }); diff --git a/app/src/main/java/com/chwl/app/decoration/view/MyUserCardWearFragment.java b/app/src/main/java/com/chwl/app/decoration/view/MyUserCardWearFragment.java index be7103d57..9d8527eb6 100644 --- a/app/src/main/java/com/chwl/app/decoration/view/MyUserCardWearFragment.java +++ b/app/src/main/java/com/chwl/app/decoration/view/MyUserCardWearFragment.java @@ -93,18 +93,18 @@ public class MyUserCardWearFragment extends BaseBindingFragment { - toast(throwable.getMessage()); - }) - .subscribe(s -> { - for (int i = 0; i < shopAdapter.getData().size(); i++) { - shopAdapter.getData().get(i).setUsed(Objects.equals(cardId,shopAdapter.getData().get(i).getCardId())); - } - shopAdapter.notifyDataSetChanged(); - //更新用户信息 - UserModel.get().updateCurrentUserInfo().subscribe(); - }); + .compose(bindUntilEvent(FragmentEvent.DESTROY)) + .doOnError(throwable -> { + toast(throwable.getMessage()); + }) + .subscribe(s -> { + for (int i = 0; i < shopAdapter.getData().size(); i++) { + shopAdapter.getData().get(i).setUsed(Objects.equals(cardId,shopAdapter.getData().get(i).getCardId())); + } + shopAdapter.notifyDataSetChanged(); + //更新用户信息 + UserModel.get().updateCurrentUserInfo().subscribe(); + }); } } diff --git a/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt b/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt index da362dc5c..18a45371a 100644 --- a/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt +++ b/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt @@ -120,7 +120,7 @@ class VipCenterActivity : BaseViewBindingActivity(), if (UiUtils.isRtl(AppUtils.getApp())) { banner.setBannerGalleryEffect(5, 5, 5) } else { - banner.setBannerGalleryEffect(25, 25, 25) + banner.setBannerGalleryEffect(20, 20, 15) } banner.addOnPageChangeListener(object : OnPageChangeListener { @@ -288,7 +288,7 @@ class VipCenterActivity : BaseViewBindingActivity(), } } - "${getString(R.string.vip_center_4)}\n(${count}/${authInfoList?.size}})".also { + "${getString(R.string.vip_center_4)}\n(${count}/${authInfoList?.size})".also { binding.centerTitle2.text = it } // exclusivePrivilegesTitle.text = R.string.vip_center_4.toString() @@ -344,33 +344,35 @@ class VipCenterActivity : BaseViewBindingActivity(), var text = currentChargeInfo?.productDetails?.getOneTimePurchaseOfferDetails()?.getFormattedPrice() if (text.isNullOrEmpty()) { - text = ((currentChargeInfo?.money ?: 0.0) * 1000).toInt().toString() + text = vipViewModel.myVipInfoLiveData.value?.buyAmount.toString() } - SelectPayTypeDialog.newInstance( - text, - !googleUnavailable, - currentChargeInfo?.getMoney() ?: 0.0 - ) - .apply { - setOnDiamondChargeClick { - vipViewModel.openVipWithDiamond( - currentChargeInfo?.getProdDesc()?.toIntOrNull() ?: -1 - ) - } - setOnGoogleChargeClick { - if (googleUnavailable) { - toast(getString(R.string.Recharge_failure)) - return@setOnGoogleChargeClick + vipViewModel.myVipInfoLiveData.value?.buyAmount?.let { + SelectPayTypeDialog.newInstance( + text, + !googleUnavailable, + it + ) + .apply { + setOnDiamondChargeClick { + vipViewModel.openVipWithDiamond( + currentChargeInfo?.getProdDesc()?.toIntOrNull() ?: -1 + ) } - currentChargeInfo?.let { charge -> - buyProduct(charge.productDetails) + setOnGoogleChargeClick { + if (googleUnavailable) { + toast(getString(R.string.Recharge_failure)) + return@setOnGoogleChargeClick + } + currentChargeInfo?.let { charge -> + buyProduct(charge.productDetails) + } + } + setOnChargeClick { + ChargeActivity.start(this@VipCenterActivity) } } - setOnChargeClick { - ChargeActivity.start(this@VipCenterActivity) - } - } - .show(context) + .show(context) + } } /*购买商品*/ @@ -406,26 +408,17 @@ class VipCenterActivity : BaseViewBindingActivity(), } if (currentChargeInfo != null){ - "${currentChargeInfo?.getMoney()?.times(1000)?.toInt()} ${ + "${vipViewModel.myVipInfoLiveData.value?.buyAmount} ${ getString(R.string.vip_center_5).format( " / 30" ) }".also { binding.tvOpenVip.text = it } } - // 获取当前时间 val calendar = Calendar.getInstance() - - // 计算30天后的时间 calendar.add(Calendar.DAY_OF_YEAR, 30) - - // 定义输出格式 val dateFormat = SimpleDateFormat("yyyy/MM/dd 00:00", Locale.getDefault()) - - // 格式化日期时间 val formattedDate = dateFormat.format(calendar.time) - - // 输出结果 val result = "$formattedDate Expires" binding.tvAdditionalText.text = result diff --git a/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt b/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt index fd6527cc4..853fd75b2 100644 --- a/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt +++ b/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt @@ -592,30 +592,30 @@ class VipMainActivity : BaseViewBindingActivity(), if (text.isNullOrEmpty()) { text = ((currentChargeInfo?.money ?: 0.0) * 1000).toInt().toString() } - SelectPayTypeDialog.newInstance( - text, - !googleUnavailable, - currentChargeInfo?.getMoney() ?: 0.0 - ) - .apply { - setOnDiamondChargeClick { - vipViewModel.openVipWithDiamond( - currentChargeInfo?.getProdDesc()?.toIntOrNull() ?: -1 - ) - } - setOnGoogleChargeClick { - if (googleUnavailable) { - toast(getString(R.string.Recharge_failure)) - return@setOnGoogleChargeClick - } - currentChargeInfo?.let { charge -> - buyProduct(charge.productDetails) - } - } - setOnChargeClick { - ChargeActivity.start(this@VipMainActivity) - } - } - .show(context) +// SelectPayTypeDialog.newInstance( +// text, +// !googleUnavailable, +// currentChargeInfo?.getMoney() ?: 0.0 +// ) +// .apply { +// setOnDiamondChargeClick { +// vipViewModel.openVipWithDiamond( +// currentChargeInfo?.getProdDesc()?.toIntOrNull() ?: -1 +// ) +// } +// setOnGoogleChargeClick { +// if (googleUnavailable) { +// toast(getString(R.string.Recharge_failure)) +// return@setOnGoogleChargeClick +// } +// currentChargeInfo?.let { charge -> +// buyProduct(charge.productDetails) +// } +// } +// setOnChargeClick { +// ChargeActivity.start(this@VipMainActivity) +// } +// } +// .show(context) } } \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/vip/dialog/SelectPayTypeDialog.kt b/app/src/main/java/com/chwl/app/vip/dialog/SelectPayTypeDialog.kt index 6eb35a074..df0d42526 100644 --- a/app/src/main/java/com/chwl/app/vip/dialog/SelectPayTypeDialog.kt +++ b/app/src/main/java/com/chwl/app/vip/dialog/SelectPayTypeDialog.kt @@ -51,9 +51,9 @@ class SelectPayTypeDialog : BaseDialogFragment() { fun newInstance( descText: String, showGoogleCharge: Boolean = false, - money: Double = 0.0 + money: Int = 0 ): SelectPayTypeDialog { - return newInstance(descText, (money * 1000).toLong(), showGoogleCharge) + return newInstance(descText, money.toLong(), showGoogleCharge) } diff --git a/app/src/main/java/com/chwl/app/vip/dialog/VipUpgradeDialog.kt b/app/src/main/java/com/chwl/app/vip/dialog/VipUpgradeDialog.kt index b53c6d86e..ecf281976 100644 --- a/app/src/main/java/com/chwl/app/vip/dialog/VipUpgradeDialog.kt +++ b/app/src/main/java/com/chwl/app/vip/dialog/VipUpgradeDialog.kt @@ -61,6 +61,7 @@ class VipUpgradeDialog : BaseDialogFragment() { } binding?.tvVipUplevel?.setOnClickListener { dismissAllowingStateLoss() } binding?.tvVipOrigin?.setOnClickListener { vm.saveOriginDisguise() } + binding?.ivVipIconMp4?.setLoop(Int.MAX_VALUE) val filePath = generateResourcesFilePath(vipInfo.vipLogo) val request = DownloadRequest.build(vipInfo.vipLogo, filePath, "gift_effect_download", null, 60000L) diff --git a/app/src/main/res/layout/activity_vip_center.xml b/app/src/main/res/layout/activity_vip_center.xml index 1975eef89..d24943d82 100644 --- a/app/src/main/res/layout/activity_vip_center.xml +++ b/app/src/main/res/layout/activity_vip_center.xml @@ -32,7 +32,7 @@ android:clipChildren="false" android:clipToPadding="false" android:layout_width="match_parent" - android:layout_height="150dp" + android:layout_height="@dimen/dp_160" android:layout_marginTop="@dimen/dp_30" app:layout_constraintTop_toBottomOf="@id/title_bar" android:visibility="visible" diff --git a/app/src/main/res/layout/banner_vip_center_custom.xml b/app/src/main/res/layout/banner_vip_center_custom.xml index bb5bd4524..b9afa4162 100644 --- a/app/src/main/res/layout/banner_vip_center_custom.xml +++ b/app/src/main/res/layout/banner_vip_center_custom.xml @@ -11,7 +11,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" - android:gravity="start|center_vertical" + android:gravity="bottom|center_vertical" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -25,6 +25,10 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/vip_center_level_1" + android:layout_marginEnd="@dimen/dp_0" + android:layout_marginBottom="@dimen/dp_0" + android:layout_marginStart="@dimen/dp_0" + android:layout_gravity="start|bottom" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintDimensionRatio="320:136" app:layout_constraintEnd_toEndOf="parent" @@ -36,8 +40,8 @@ android:layout_height="@dimen/dp_140" android:layout_gravity="end|bottom" app:layout_constraintBottom_toBottomOf="@id/img_background" - android:layout_marginEnd="0dp" - android:layout_marginBottom="35dp" /> + android:layout_marginEnd="@dimen/dp_10" + android:layout_marginBottom="@dimen/dp_35" /> - - - - - - - - @@ -58,7 +50,7 @@ android:lineSpacingMultiplier="1.2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/iv_vip_icon" + app:layout_constraintTop_toBottomOf="@id/iv_vip_icon_mp4" app:layout_constraintVertical_chainStyle="packed" tools:text="@string/layout_dialog_vip_upgrade_02" /> diff --git a/app/src/main/res/layout/fragment_av_room_game.xml b/app/src/main/res/layout/fragment_av_room_game.xml index 7064b8a61..acc96def9 100644 --- a/app/src/main/res/layout/fragment_av_room_game.xml +++ b/app/src/main/res/layout/fragment_av_room_game.xml @@ -367,16 +367,6 @@ android:background="@drawable/click_white_gray_selector" android:scaleType="center" android:src="@android:drawable/ic_menu_send" /> - - - diff --git a/app/src/main/res/layout/fragment_game_room.xml b/app/src/main/res/layout/fragment_game_room.xml index 3e351da95..b4f46d2ec 100644 --- a/app/src/main/res/layout/fragment_game_room.xml +++ b/app/src/main/res/layout/fragment_game_room.xml @@ -226,15 +226,6 @@ android:background="@drawable/click_white_gray_selector" android:scaleType="center" android:src="@android:drawable/ic_menu_send" /> - - diff --git a/app/src/main/res/layout/fragment_single_room.xml b/app/src/main/res/layout/fragment_single_room.xml index 48b299b78..3aad11131 100644 --- a/app/src/main/res/layout/fragment_single_room.xml +++ b/app/src/main/res/layout/fragment_single_room.xml @@ -289,15 +289,6 @@ android:background="@drawable/click_white_gray_selector" android:scaleType="center" android:src="@android:drawable/ic_menu_send" /> - - diff --git a/core/src/main/java/com/chwl/core/vip/bean/UserVipInfo.kt b/core/src/main/java/com/chwl/core/vip/bean/UserVipInfo.kt index 25d16faa8..e9ddb1c36 100644 --- a/core/src/main/java/com/chwl/core/vip/bean/UserVipInfo.kt +++ b/core/src/main/java/com/chwl/core/vip/bean/UserVipInfo.kt @@ -9,5 +9,6 @@ data class UserVipInfo( val friendNickColour: String = "", val preventKick: Boolean = false, var enterHide: Boolean = false, - val enterRoomEffects: String = "" + val enterRoomEffects: String = "", + var userCardBG: String = "" ) : Serializable diff --git a/core/src/main/java/com/chwl/core/vip/bean/VipInfo.kt b/core/src/main/java/com/chwl/core/vip/bean/VipInfo.kt index 65719fb56..129d0595a 100644 --- a/core/src/main/java/com/chwl/core/vip/bean/VipInfo.kt +++ b/core/src/main/java/com/chwl/core/vip/bean/VipInfo.kt @@ -1,6 +1,7 @@ package com.chwl.core.vip.bean import java.io.Serializable +import java.time.temporal.TemporalAmount data class VipInfo( /** @@ -20,7 +21,8 @@ data class VipInfo( var currScore: Int = 0, var nextVipName: String? = null, var isReturnProfit: Int? = null, - val returnProfits: List? = null + val returnProfits: List? = null, + var buyAmount: Int = 0 ) : Serializable { fun isRebate() = isReturnProfit == 1