using System;
using Cute;
using UnityEngine;

namespace Wizard;

public class ChatSendReplayUI : MonoBehaviour, IChatActionUI
{
	[SerializeField]
	private UIButton _buttonReplayShare;

	[SerializeField]
	private ChatReplayListDialog _prefabReplayShareDialog;

	[SerializeField]
	private ChatReplaySendConfirmDialog _prefabReplaySendConfirmDialog;

	private ChatSendReplayListUI _chatSendReplayListUI;

	private IChatApiSettings _chatApiSettings;

	private ChatConnectController _chatConnectController;

	private Action _eventOnSendRepleySuccess;

	public void Init(IChatSettings chatSettings, ChatConnectController chatConnectController, ChatLogUI chatLogUI, Action actionAddNewChatLogAfterSendChat)
	{
		_chatApiSettings = chatSettings.ApiSettings;
		_chatConnectController = chatConnectController;
		_eventOnSendRepleySuccess = actionAddNewChatLogAfterSendChat;
		_chatSendReplayListUI = new ChatSendReplayListUI(_prefabReplayShareDialog, _prefabReplaySendConfirmDialog, OnDecideReplay);
		_buttonReplayShare.onClick.Clear();
		_buttonReplayShare.onClick.Add(new EventDelegate(delegate
		{
			OnClickReplayShareButton();
		}));
	}

	private void OnClickReplayShareButton()
	{
		GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
		ReplayInfoTask task = new ReplayInfoTask();
		_chatConnectController.StartConnectCommon(task, delegate
		{
			_chatSendReplayListUI.CreateReplayListDialog();
		});
	}

	private void OnDecideReplay(ReplayInfoItem infoItem)
	{
		ChatAddReplayTask chatAddReplayTask = new ChatAddReplayTask(_chatApiSettings.ApiChatAddReplay);
		chatAddReplayTask.SetParameter(infoItem.BattleId);
		_chatConnectController.StartConnectCommon(chatAddReplayTask, delegate
		{
			_eventOnSendRepleySuccess.Call();
		});
	}
}
