Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/dialog/CustomInputDialog.java

162 lines
5.3 KiB
Java
Raw Normal View History

2025-11-18 19:39:16 +08:00
package com.xscm.modulemain.dialog;
import android.content.Context;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.NonNull;
import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.blankj.utilcode.util.TouchUtils;
import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.DialogCustomInputBinding;
import com.xscm.moduleutil.bean.RoonGiftModel;
import com.xscm.moduleutil.bean.SongPlaylist;
import com.xscm.moduleutil.event.GiftUserRefreshEvent;
import com.xscm.moduleutil.event.RoomGiftClickToEvent;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.widget.dialog.BaseDialog;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import io.reactivex.disposables.Disposable;
/**
* 自定义输入对话框
*/
public class CustomInputDialog extends BaseDialog<DialogCustomInputBinding> {
GiftSongDialog giftSongDialog;
private String mGiftId, mGiftNum;
private SongPlaylist.SongPlaylistBean mSongPlaylistBean;
private OnDialogDismissListener mListener;
public CustomInputDialog(@NonNull Context context) {
super(context);
}
// 设置监听器
public void setOnDialogDismissListener(OnDialogDismissListener listener) {
this.mListener = listener;
}
// 定义回调接口
public interface OnDialogDismissListener {
void onDialogDismiss(boolean dataChanged);
}
@Override
public int getLayoutId() {
return R.layout.dialog_custom_input;
}
@Override
public void initView() {
setCancelable(false);
setCanceledOnTouchOutside(false);
Window window = getWindow();
window.setLayout((int) (ScreenUtils.getScreenWidth() * 315.f / 375), WindowManager.LayoutParams.WRAP_CONTENT);
mBinding.ivClose.setOnClickListener(v -> dismiss());
}
@Override
public void initData() {
mBinding.ivClose.setOnClickListener(v -> {
dismiss();
// 通知Activity对话框关闭但数据未更改
if (mListener != null) {
mListener.onDialogDismiss(false);
}
});
mBinding.tvCancel.setOnClickListener(v -> {
dismiss();
// 通知Activity对话框关闭但数据未更改
if (mListener != null) {
mListener.onDialogDismiss(false);
}
});
mBinding.tvClickable.setOnClickListener(v -> {
giftSongDialog = new GiftSongDialog(getContext());
giftSongDialog.show();
giftSongDialog.setOnGiftConfirmListener(new GiftSongDialog.OnGiftConfirmListener() {
@Override
public void onGiftConfirm(String giftId, String name, String giftNum) {
mGiftId = giftId;
mGiftNum = giftNum;
mBinding.tvClickable.setText(name+" x"+giftNum);
2025-11-18 19:39:16 +08:00
}
});
});
mBinding.tvConfirm.setOnClickListener(v -> {
if (mBinding.etInput.getText().toString().isEmpty()) {
ToastUtils.showLong("请输入歌曲名称");
return;
}
if (mBinding.tvClickable.getText().toString().isEmpty()) {
ToastUtils.showLong("请选择礼物");
return;
}
if (mSongPlaylistBean != null) {
RetrofitClient.getInstance().singerUpdateSong(mSongPlaylistBean.getId() + "", mBinding.etInput.getText().toString(), mGiftId, mGiftNum, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
dismiss();
// 通知Activity数据已更新
if (mListener != null) {
mListener.onDialogDismiss(true);
}
}
});
} else {
RetrofitClient.getInstance().singerAddSong(mBinding.etInput.getText().toString(), mGiftId, mGiftNum, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
dismiss();
// 通知Activity数据已更新
if (mListener != null) {
mListener.onDialogDismiss(true);
}
}
});
}
});
}
public void PlaylistBean(SongPlaylist.SongPlaylistBean songPlaylistBean) {
this.mSongPlaylistBean = songPlaylistBean;
setPlaylistBean();
}
private void setPlaylistBean() {
if (mSongPlaylistBean != null) {
mBinding.etInput.setText(mSongPlaylistBean.getSong_name());
mBinding.tvClickable.setText(mSongPlaylistBean.getGift_name());
mGiftId=mSongPlaylistBean.getGift_id();
mGiftNum=mSongPlaylistBean.getGift_num();
}
}
}