2021-09-27 19:27:13 +02:00
|
|
|
package it.tdlight.client;
|
|
|
|
|
|
|
|
import it.tdlight.common.ExceptionHandler;
|
|
|
|
import it.tdlight.common.TelegramClient;
|
|
|
|
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
|
|
|
|
);
|
|
|
|
String password = clientInteraction.onParameterRequest(InputParameter.ASK_PASSWORD, parameterInfo);
|
2021-10-20 23:51:06 +02:00
|
|
|
CheckAuthenticationPassword response = new CheckAuthenticationPassword(password);
|
2021-09-27 20:22:57 +02:00
|
|
|
client.send(response, ok -> {
|
|
|
|
if (ok.getConstructor() == Error.CONSTRUCTOR) {
|
|
|
|
throw new TelegramError((Error) ok);
|
|
|
|
}
|
2021-09-27 21:44:24 +02:00
|
|
|
}, exceptionHandler);
|
2021-09-27 19:27:13 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|