Merge pull request #204 from jgibbon/bugfix/auth-handling

Fix initial auth handling
This commit is contained in:
Sebastian Wolf 2020-11-27 19:51:16 +01:00 committed by GitHub
commit fff8fc903a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 3 deletions

View file

@ -68,6 +68,14 @@ Page {
} }
} }
Timer {
id: openInitializationPageTimer
interval: 0
onTriggered: {
pageStack.push(Qt.resolvedUrl("../pages/InitializationPage.qml"));
}
}
function setPageStatus() { function setPageStatus() {
switch (overviewPage.connectionState) { switch (overviewPage.connectionState) {
case TelegramAPI.WaitingForNetwork: case TelegramAPI.WaitingForNetwork:
@ -101,19 +109,23 @@ Page {
function initializePage() { function initializePage() {
overviewPage.authorizationState = tdLibWrapper.getAuthorizationState(); overviewPage.authorizationState = tdLibWrapper.getAuthorizationState();
overviewPage.handleAuthorizationState(); overviewPage.handleAuthorizationState(true);
overviewPage.connectionState = tdLibWrapper.getConnectionState(); overviewPage.connectionState = tdLibWrapper.getConnectionState();
overviewPage.setPageStatus(); overviewPage.setPageStatus();
} }
function handleAuthorizationState() { function handleAuthorizationState(isOnInitialization) {
switch (overviewPage.authorizationState) { switch (overviewPage.authorizationState) {
case TelegramAPI.WaitPhoneNumber: case TelegramAPI.WaitPhoneNumber:
case TelegramAPI.WaitCode: case TelegramAPI.WaitCode:
case TelegramAPI.WaitPassword: case TelegramAPI.WaitPassword:
case TelegramAPI.WaitRegistration: case TelegramAPI.WaitRegistration:
overviewPage.loading = false; overviewPage.loading = false;
pageStack.push(Qt.resolvedUrl("../pages/InitializationPage.qml")); if(isOnInitialization) { // pageStack isn't ready on Component.onCompleted
openInitializationPageTimer.start()
} else {
pageStack.push(Qt.resolvedUrl("../pages/InitializationPage.qml"));
}
break; break;
case TelegramAPI.AuthorizationReady: case TelegramAPI.AuthorizationReady:
overviewPage.loading = false; overviewPage.loading = false;

View file

@ -49,6 +49,7 @@ TDLibWrapper::TDLibWrapper(AppSettings *appSettings, MceInterface *mceInterface,
this->appSettings = appSettings; this->appSettings = appSettings;
this->mceInterface = mceInterface; this->mceInterface = mceInterface;
this->tdLibClient = td_json_client_create(); this->tdLibClient = td_json_client_create();
this->authorizationState = AuthorizationState::Closed;
this->tdLibReceiver = new TDLibReceiver(this->tdLibClient, this); this->tdLibReceiver = new TDLibReceiver(this->tdLibClient, this);
QString tdLibDatabaseDirectoryPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/tdlib"; QString tdLibDatabaseDirectoryPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/tdlib";