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 { 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); } }); }); 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() { @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() { @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(); } } }