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

162 lines
5.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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