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; } }
private void OnAuthorizationStateChanged(object sender, TdApi.AuthorizationState state) { _authorizationState = state; }
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}"); } }