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;
|
2025-12-02 19:26:37 +08:00
|
|
|
|
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();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|