public void Handle(UpdateAuthorizationState update) { if (update.AuthorizationState is AuthorizationStateClosed) { _lifetimeService.Destroy(this); } else if (update.AuthorizationState is AuthorizationStateWaitPhoneNumber && !_isActive && _lifetimeService.Items.Count > 1) { ProtoService.Send(new Destroy()); } //if (update.AuthorizationState is AuthorizationStateReady) //{ // _lifetimeService.Register(this); //} //else //{ // _lifetimeService.Unregister(this); //} foreach (TLWindowContext window in WindowContext.ActiveWrappers) { window.Handle(this, update); } }
public void Handle(UpdateAuthorizationState update) { if (update.AuthorizationState is AuthorizationStateLoggingOut && _continueOnLogOut == null) { _loggingOut = true; } else if (update.AuthorizationState is AuthorizationStateClosed) { if (_loggingOut) { _loggingOut = false; _lifetimeService.Destroy(this); } else if (_continueOnLogOut != null) { ProtoService.TryInitialize(); } } else if (update.AuthorizationState is AuthorizationStateWaitPhoneNumber && _continueOnLogOut != null) { ContinueOnLogOut(); } else if ((update.AuthorizationState is AuthorizationStateWaitPhoneNumber || update.AuthorizationState is AuthorizationStateWaitOtherDeviceConfirmation) && !_isActive && _lifetimeService.Items.Count > 1) { ProtoService.Send(new Destroy()); } else { _loggingOut = false; } //if (update.AuthorizationState is AuthorizationStateReady) //{ // _lifetimeService.Register(this); //} //else //{ // _lifetimeService.Unregister(this); //} foreach (TLWindowContext window in WindowContext.ActiveWrappers) { window.Handle(this, update); } }