mirror of
https://github.com/Bragin-Stepan/project-entity.git
synced 2026-03-05 07:41:10 +00:00
58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using _Project.Develop.Runtime.UI.Core;
|
|
using _Project.Develop.Runtime.UI.Features.Wallet;
|
|
|
|
namespace _Project.Develop.Runtime.UI.Screens.MainMenu
|
|
{
|
|
public class MainMenuScreenPresenter : IPresenter
|
|
{
|
|
private readonly MainMenuScreenView _screen;
|
|
private readonly ProjectPresentersFactory _projectPresentersFactory;
|
|
private readonly MainMenuPopupService _popupService;
|
|
|
|
private readonly List<IPresenter> _childPresenters = new();
|
|
|
|
public MainMenuScreenPresenter(
|
|
MainMenuScreenView screen,
|
|
ProjectPresentersFactory projectPresentersFactory,
|
|
MainMenuPopupService popupService)
|
|
{
|
|
_screen = screen;
|
|
_projectPresentersFactory = projectPresentersFactory;
|
|
_popupService = popupService;
|
|
}
|
|
|
|
public void Initialize()
|
|
{
|
|
_screen.OpenLevelsMenuButtonClicked += OnOpenLevelsMenuButtonClicked;
|
|
|
|
CreateWallet();
|
|
|
|
foreach (IPresenter presenter in _childPresenters)
|
|
presenter.Initialize();
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_screen.OpenLevelsMenuButtonClicked -= OnOpenLevelsMenuButtonClicked;
|
|
|
|
foreach (IPresenter presenter in _childPresenters)
|
|
presenter.Dispose();
|
|
|
|
_childPresenters.Clear();
|
|
}
|
|
|
|
private void CreateWallet()
|
|
{
|
|
WalletPresenter walletPresenter = _projectPresentersFactory.CreateWalletPresenter(_screen.WalletView);
|
|
_childPresenters.Add(walletPresenter);
|
|
}
|
|
|
|
private void OnOpenLevelsMenuButtonClicked()
|
|
{
|
|
_popupService.OpenLevelsMenuPopup();
|
|
}
|
|
|
|
}
|
|
}
|