2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-08-31 22:46:10 +00:00

cloud password support added, sessions list added, some boxes unifications

This commit is contained in:
John Preston
2015-04-02 13:33:19 +03:00
parent 7814654d38
commit 868d5f60f3
86 changed files with 5303 additions and 5270 deletions

View File

@@ -216,6 +216,12 @@ bool IntroCode::codeSubmitFail(const RPCError &error) {
intro()->setCode(sentCode);
intro()->onIntroNext();
return true;
} else if (err == "SESSION_PASSWORD_NEEDED") {
intro()->setCode(sentCode);
code.setDisabled(false);
checkRequest.start(1000);
sentRequest = MTP::send(MTPaccount_GetPassword(), rpcDone(&IntroCode::gotPassword), rpcFail(&IntroCode::codeSubmitFail));
return true;
}
if (QRegularExpression("^FLOOD_WAIT_(\\d+)$").match(err).hasMatch()) {
showError(lang(lng_flood_error));
@@ -251,6 +257,24 @@ void IntroCode::callDone(const MTPBool &v) {
}
}
void IntroCode::gotPassword(const MTPaccount_Password &result) {
stopCheck();
code.setDisabled(false);
switch (result.type()) {
case mtpc_account_noPassword: // should not happen
code.setFocus();
break;
case mtpc_account_password: {
const MTPDaccount_password &d(result.c_account_password());
intro()->setPwdSalt(qba(d.vcurrent_salt));
intro()->setHasRecovery(d.vhas_recovery.v);
intro()->setPwdHint(qs(d.vhint));
intro()->onIntroNext();
} break;
}
}
void IntroCode::onSubmitCode(bool force) {
if (!force && (code.text() == sentCode || !code.isEnabled())) return;
@@ -262,6 +286,9 @@ void IntroCode::onSubmitCode(bool force) {
checkRequest.start(1000);
sentCode = code.text();
intro()->setPwdSalt(QByteArray());
intro()->setHasRecovery(false);
intro()->setPwdHint(QString());
sentRequest = MTP::send(MTPauth_SignIn(MTP_string(intro()->getPhone()), MTP_string(intro()->getPhoneHash()), MTP_string(sentCode)), rpcDone(&IntroCode::codeSubmitDone), rpcFail(&IntroCode::codeSubmitFail));
}