From 2074039de2ce1163f163d80c513551c0281dfd1b Mon Sep 17 00:00:00 2001 From: wzq Date: Tue, 17 Oct 2023 20:57:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=E7=9B=B8=E5=86=8C=20?= =?UTF-8?q?=E8=A7=A3=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../room_album/UnlockRoomAlbumPhotoDialog.kt | 55 +++++++++++ .../erban/avroom/widget/MessageView.java | 25 ++++- .../main/res/drawable/bg_5aecfa_cf70ff_20.xml | 10 ++ .../layout/dialog_lock_room_album_photo.xml | 91 +++++++++++++++++++ .../room/model/RoomBaseModel.java | 10 ++ .../room/model/inteface/IRoomBaseModel.java | 2 + 6 files changed, 190 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/avroom/room_album/UnlockRoomAlbumPhotoDialog.kt create mode 100644 app/src/main/res/drawable/bg_5aecfa_cf70ff_20.xml create mode 100644 app/src/main/res/layout/dialog_lock_room_album_photo.xml diff --git a/app/src/main/java/com/yizhuan/erban/avroom/room_album/UnlockRoomAlbumPhotoDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/room_album/UnlockRoomAlbumPhotoDialog.kt new file mode 100644 index 000000000..dd731d9ec --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/room_album/UnlockRoomAlbumPhotoDialog.kt @@ -0,0 +1,55 @@ +package com.yizhuan.erban.avroom.room_album + +import android.annotation.SuppressLint +import android.os.Bundle +import com.hjq.toast.ToastUtils +import com.yizhuan.erban.base.BaseDialog +import com.yizhuan.erban.databinding.DialogLockRoomAlbumPhotoBinding +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager +import com.yizhuan.xchat_android_core.room.model.AvRoomModel + +class UnlockRoomAlbumPhotoDialog : BaseDialog(){ + + var onUnlockRoomPhotoListener: OnUnlockRoomPhotoListener? = null + + @SuppressLint("CheckResult") + override fun init() { + val arguments = requireArguments() + val giftUrl = arguments.getString("giftUrl") + val giftName = arguments.getString("giftName") + val price = arguments.getInt("price") + val photoId = arguments.getInt("photoId") + + ImageLoadUtilsV2.loadImage(binding.ivGift, giftUrl) + binding.tvGiftName.text = giftName + binding.tvValue.text = price.toString() + + binding.tvAction.setOnClickListener { + AvRoomModel.get().unlockRoomPhoto(AvRoomDataManager.get().roomUid, photoId) + .subscribe({ + onUnlockRoomPhotoListener?.onUnlockRoomPhoto() + dismiss() + }, { + ToastUtils.show(it.message) + }) + } + } + + companion object{ + fun newInstance(photoId:Int, giftUrl: String, giftName:String, price:Int): UnlockRoomAlbumPhotoDialog { + val args = Bundle() + args.putInt("photoId", photoId) + args.putString("giftUrl", giftUrl) + args.putString("giftName", giftName) + args.putInt("price", price) + val fragment = UnlockRoomAlbumPhotoDialog() + fragment.arguments = args + return fragment + } + } + + fun interface OnUnlockRoomPhotoListener{ + fun onUnlockRoomPhoto() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java index 432bcdf23..ed890de31 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java @@ -70,6 +70,7 @@ import com.yizhuan.erban.R; import com.yizhuan.erban.UIHelper; import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.avroom.dialog.PKResultDialog; +import com.yizhuan.erban.avroom.room_album.UnlockRoomAlbumPhotoDialog; import com.yizhuan.erban.common.util.Utils; import com.yizhuan.erban.common.widget.CustomAutoWidthImageSpan; import com.yizhuan.erban.common.widget.CustomImageSpan; @@ -131,6 +132,7 @@ import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment2; import com.yizhuan.xchat_android_core.im.custom.bean.RoomLuckySeaAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.RoomLuckySeaMsgBean; import com.yizhuan.xchat_android_core.im.custom.bean.RoomNoticeAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.RoomPhoto; import com.yizhuan.xchat_android_core.im.custom.bean.RoomReceivedLuckyGiftAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.RoomTipAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.TarotAttachment; @@ -1043,6 +1045,7 @@ public class MessageView extends FrameLayout { ImageView ivGift = baseViewHolder.itemView.findViewById(R.id.iv_gift); TextView tvNick = baseViewHolder.itemView.findViewById(R.id.tv_nick); TextView tvValue = baseViewHolder.itemView.findViewById(R.id.tv_value); + TextView tvUnlock = baseViewHolder.itemView.findViewById(R.id.tv_unlock); RoomAlbumAttachment attachment = (RoomAlbumAttachment) chatRoomMessage.getAttachment(); RoomAlbumMsgInfo mRoomAlbumMsgInfo = attachment.getMRoomAlbumMsgInfo(); @@ -1052,10 +1055,26 @@ public class MessageView extends FrameLayout { ImageLoadUtilsV2.loadImage(ivUserLevel, mRoomAlbumMsgInfo.getUserLevel().getExperUrl()); ImageLoadUtilsV2.loadImage(ivUserCharm, mRoomAlbumMsgInfo.getUserLevel().getCharmUrl()); - ImageLoadUtilsV2.loadImage(ivPhoto, mRoomAlbumMsgInfo.getRoomPhoto().getPhotoUrl()); - ImageLoadUtilsV2.loadImage(ivGift, mRoomAlbumMsgInfo.getRoomPhoto().getGiftUrl()); + RoomPhoto roomPhoto = mRoomAlbumMsgInfo.getRoomPhoto(); + ImageLoadUtilsV2.loadImage(ivPhoto, roomPhoto.getPhotoUrl()); + ImageLoadUtilsV2.loadImage(ivGift, roomPhoto.getGiftUrl()); tvNick.setText(mRoomAlbumMsgInfo.getUser().getNick()); - tvValue.setText(String.valueOf(mRoomAlbumMsgInfo.getRoomPhoto().getTotalGoldPrice())); + tvValue.setText(String.valueOf(roomPhoto.getTotalGoldPrice())); + tvUnlock.setOnClickListener(v -> { + UnlockRoomAlbumPhotoDialog unlockRoomAlbumPhotoDialog = UnlockRoomAlbumPhotoDialog.Companion + .newInstance(roomPhoto.getId(), roomPhoto.getGiftUrl(), roomPhoto.getGiftName(), roomPhoto.getTotalGoldPrice()); + unlockRoomAlbumPhotoDialog.setOnUnlockRoomPhotoListener(() -> { + + }); + unlockRoomAlbumPhotoDialog.show(mContext); + //new DialogManager(mContext).showOkDialog("是否解锁", () -> { + // AvRoomModel.get().unlockRoomPhoto(AvRoomDataManager.get().getRoomUid(), mRoomAlbumMsgInfo.getRoomPhoto().getId()) + // .subscribe(data -> { + // ToastUtils.show("成功"); + // }, e -> {}); + //}); + + }); } diff --git a/app/src/main/res/drawable/bg_5aecfa_cf70ff_20.xml b/app/src/main/res/drawable/bg_5aecfa_cf70ff_20.xml new file mode 100644 index 000000000..a459fdda0 --- /dev/null +++ b/app/src/main/res/drawable/bg_5aecfa_cf70ff_20.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_lock_room_album_photo.xml b/app/src/main/res/layout/dialog_lock_room_album_photo.xml new file mode 100644 index 000000000..7266009e4 --- /dev/null +++ b/app/src/main/res/layout/dialog_lock_room_album_photo.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/model/RoomBaseModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/model/RoomBaseModel.java index b9ee98d46..75f437153 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/model/RoomBaseModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/model/RoomBaseModel.java @@ -775,6 +775,13 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { .compose(RxHelper.handleSchedulers()); } + @Override + public Single unlockRoomPhoto(long roomUid, int photoId) { + return mRoomService.unlockRoomPhoto(roomUid, photoId) + .compose(RxHelper.handleStringData()) + .compose(RxHelper.handleSchAndExce()); + } + public Single addIsomerism() { return mRoomService.addIsomerism(AuthModel.get().getCurrentUid(), AvRoomDataManager.get().getRoomId()) .compose(RxHelper.singleMainResult()); @@ -1188,6 +1195,9 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { @POST("/roomFirstChargeWindow/update") Single> postFirstCharge(@Field("roomUid") long roomUid); + @FormUrlEncoded + @POST("roomAlbum/unlockPhoto") + Single> unlockRoomPhoto(@Field("roomUid") long roomUid, @Field("id") int photoId); } } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/model/inteface/IRoomBaseModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/model/inteface/IRoomBaseModel.java index ab1647b10..822f26102 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/model/inteface/IRoomBaseModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/model/inteface/IRoomBaseModel.java @@ -178,4 +178,6 @@ public interface IRoomBaseModel extends IModel { * @return - */ Single closeScreen(long roomId, boolean isCloseScreen); + + Single unlockRoomPhoto(long roomUid, int photoId); }