/// <summary> /// Deactivates this instance. /// </summary> public override void Deactivate() { if (IsActive) { if (_currentPresenter != null) { _currentPresenter.Deactivate(); } OnDeactivate(); IsActive = false; } }
/// <summary> /// Shuts down the specified presenter. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="completed">Called when the open action is finished.</param> public virtual void Shutdown(IPresenter presenter, Action <bool> completed) { if (presenter == null) { completed(true); return; } CanShutdownPresenter( presenter, isSuccess => { if (!isSuccess) { completed(false); return; } _presenters.Remove(presenter); presenter.Deactivate(); presenter.Shutdown(); var node = presenter as IPresenterNode; if (node != null) { node.Parent = null; } completed(true); }); }
private void OnDestroy() { _presenterManager.Deactivate(); _client.Dispose(); _networkManager.Dispose(); }
/// <summary> /// Shuts down the specified presenter. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="completed">Called when the shutdown action is finished.</param> public virtual void Shutdown(IPresenter presenter, Action<bool> completed) { if (_currentPresenter == presenter) { ShutdownCurrent(completed); return; } if (presenter == null) { completed(true); return; } CanShutdownPresenter( presenter, isSuccess => { if (!isSuccess) { completed(false); return; } _presenters.Remove(presenter); presenter.Deactivate(); presenter.Shutdown(); var node = presenter as IPresenterNode; if (node != null) node.Parent = null; completed(true); }); }