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}");
            }
        }
예제 #2
0
 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);
        }
예제 #5
0
 public async Task Deactivate(DeactivateEvent kind)
 {
     await OnDeactivate(kind);
 }
예제 #6
0
 protected virtual async Task OnDeactivate(DeactivateEvent kind)
 {
     await Task.Yield();
 }
        /// <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);
                }
            }
        }