private static void HandleState(AuthenticationModel model, TdApi.AuthorizationState state)
        {
            switch (state)
            {
            case TdApi.AuthorizationState.AuthorizationStateWaitPhoneNumber _:
                OnWaitingPhoneNumber(model);
                break;

            case TdApi.AuthorizationState.AuthorizationStateWaitCode wait:
                OnWaitingConfirmCode(model, !wait.IsRegistered);
                break;

            case TdApi.AuthorizationState.AuthorizationStateWaitPassword _:
                OnWaitingPassword(model);
                break;
            }
        }
        private static void HandleState(MainWindowModel model, TdApi.AuthorizationState state)
        {
            switch (state)
            {
            case TdApi.AuthorizationState.AuthorizationStateWaitTdlibParameters _:
            case TdApi.AuthorizationState.AuthorizationStateWaitEncryptionKey _:
                GoToStartupPage(model);
                break;

            case TdApi.AuthorizationState.AuthorizationStateWaitPhoneNumber _:
            case TdApi.AuthorizationState.AuthorizationStateWaitCode _:
            case TdApi.AuthorizationState.AuthorizationStateWaitPassword _:
                GoToAuthenticationPage(model);
                break;

            case TdApi.AuthorizationState.AuthorizationStateReady _:
                GoToWorkspacePage(model);
                break;
            }
        }
Пример #3
0
 private void OnAuthorizationStateChanged(object sender, TdApi.AuthorizationState state)
 {
     _authorizationState = state;
 }
Пример #4
0
        private void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState)
        {
            if (authorizationState != null)
            {
                this.authorizationState = authorizationState;
                authorizationMessage    = authorizationState.DataType;
                currentState.Value      = authorizationState;
            }

            if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateWaitTdlibParameters)
            {
                var parameters = new TdApi.TdlibParameters
                {
                    DatabaseDirectory  = "tdlib",
                    UseSecretChats     = true,
                    UseMessageDatabase = true,
                    ApiId              = 1256967,
                    ApiHash            = "32e70a453f4dc8f28223b35a0a497966",
                    SystemLanguageCode = "en",
                    DeviceModel        = "Desktop",
                    SystemVersion      = "MacOs",
                    ApplicationVersion = "1.0.0"
                };

                client.ExecuteAsync(new TdApi.SetTdlibParameters {
                    Parameters = parameters
                });
            }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateWaitEncryptionKey)
            {
                client.ExecuteAsync(new TdApi.CheckDatabaseEncryptionKey());
            }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateWaitPhoneNumber)
            {
//            client.ExecuteAsync(new TdApi.SetAuthenticationPhoneNumber
//            {
//                PhoneNumber = "",
//                Settings = new TdApi.PhoneNumberAuthenticationSettings()
//                {
//                    AllowFlashCall = false,
//                    IsCurrentPhoneNumber = true
//                }
//            });
            }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateWaitOtherDeviceConfirmation state)
            {
                Debug.Log("Please confirm this login link on another device: " + state.Link);
            }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateWaitCode)
            {
//            string code = ReadLine("Please enter authentication code: ");
//            _client.Send(new TdApi.CheckAuthenticationCode(code), new AuthorizationRequestHandler());
            }
//        else if (_authorizationState is TdApi.AuthorizationStateWaitRegistration)
//        {
//            string firstName = ReadLine("Please enter your first name: ");
//            string lastName = ReadLine("Please enter your last name: ");
//            _client.Send(new TdApi.RegisterUser(firstName, lastName), new AuthorizationRequestHandler());
//        }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateWaitPassword)
            {
//            string password = ReadLine("Please enter password: "******"Logging out");
            }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateClosing)
            {
                haveAuthorization = false;
                Debug.Log("Closing");
            }
            else if (this.authorizationState is TdApi.AuthorizationState.AuthorizationStateClosed)
            {
                Debug.Log("Closed");
                client.Dispose(); // _client is closed and native resources can be disposed now
//            if (!_quiting)
//            {
//                _client = CreateTdClient(); // recreate _client after previous has closed
//            }
            }
            else
            {
                Debug.Log($"Unsupported authorization state:\n{this.authorizationState}");
            }
        }