tdlight-java/src/main/java/it/tdlight/client/AuthorizationStateWaitPassw...

43 lines
1.7 KiB
Java
Raw Normal View History

2021-09-27 19:27:13 +02:00
package it.tdlight.client;
import it.tdlight.common.ExceptionHandler;
import it.tdlight.common.TelegramClient;
2021-10-22 13:33:03 +02:00
import it.tdlight.jni.TdApi;
2021-09-27 19:27:13 +02:00
import it.tdlight.jni.TdApi.AuthorizationStateWaitPassword;
import it.tdlight.jni.TdApi.CheckAuthenticationPassword;
import it.tdlight.jni.TdApi.UpdateAuthorizationState;
final class AuthorizationStateWaitPasswordHandler implements GenericUpdateHandler<UpdateAuthorizationState> {
private final TelegramClient client;
private final ClientInteraction clientInteraction;
private final ExceptionHandler exceptionHandler;
public AuthorizationStateWaitPasswordHandler(TelegramClient client,
ClientInteraction clientInteraction,
ExceptionHandler exceptionHandler) {
this.client = client;
this.clientInteraction = clientInteraction;
this.exceptionHandler = exceptionHandler;
}
@Override
public void onUpdate(UpdateAuthorizationState update) {
if (update.authorizationState.getConstructor() == AuthorizationStateWaitPassword.CONSTRUCTOR) {
2021-10-22 12:54:28 +02:00
AuthorizationStateWaitPassword authorizationState = (AuthorizationStateWaitPassword) update.authorizationState;
2021-09-27 19:27:13 +02:00
ParameterInfo parameterInfo = new ParameterInfoPasswordHint(authorizationState.passwordHint,
authorizationState.hasRecoveryEmailAddress,
authorizationState.recoveryEmailAddressPattern
);
2021-10-24 01:03:16 +02:00
clientInteraction.onParameterRequest(InputParameter.ASK_PASSWORD, parameterInfo, password -> {
CheckAuthenticationPassword response = new CheckAuthenticationPassword(password);
client.send(response, ok -> {
if (ok.getConstructor() == TdApi.Error.CONSTRUCTOR) {
throw new TelegramError((TdApi.Error) ok);
}
}, exceptionHandler);
});
2021-09-27 19:27:13 +02:00
}
}
}