public void Deactivate() { if (state == State.Inactive) { this.LogError($"{this} is already inactive"); } // Send the deactivation event DeactivateEvent e = new DeactivateEvent(this); StratusScene.Dispatch <DeactivateEvent>(e); // If the deactivation was succesful if (e.valid) { OnDeactivate(); this.Log("Deactivated"); state = State.Inactive; onDeactivate?.Invoke(); } else { this.LogError($"Failed to deactivate {this}"); } }
public void TurnOff() { if (IsActive) { IsActive = false; DeactivateEvent?.Invoke(this, null); if (Port != null) { Port.IncomingCallEvent -= IncomingCall; } } }
/// <summary> /// Deactivates any attached controller with the given deactivation event. /// </summary> /// <param name="viewModel"></param> /// <param name="kind"></param> public static void DeactivateAttachedController(this IMvxViewModel viewModel, DeactivateEvent kind) { var controllerAware = viewModel as IControllerAware; if (controllerAware != null) { var ctl = controllerAware.Controller as IMvxActivatable; if (ctl != null) { ctl.Deactivate(kind); } } }
protected override async Task OnDeactivate(DeactivateEvent kind) { await base.OnDeactivate(kind); Mvx.Trace("Deactivate {0} kind {1}", GetType().Name, kind); }
public async Task Deactivate(DeactivateEvent kind) { await OnDeactivate(kind); }
protected virtual async Task OnDeactivate(DeactivateEvent kind) { await Task.Yield(); }