diff --git a/qml/pages/OverviewPage.qml b/qml/pages/OverviewPage.qml index 5f3dde6..fe52014 100644 --- a/qml/pages/OverviewPage.qml +++ b/qml/pages/OverviewPage.qml @@ -68,6 +68,14 @@ Page { } } + Timer { + id: openInitializationPageTimer + interval: 0 + onTriggered: { + pageStack.push(Qt.resolvedUrl("../pages/InitializationPage.qml")); + } + } + function setPageStatus() { switch (overviewPage.connectionState) { case TelegramAPI.WaitingForNetwork: @@ -101,19 +109,23 @@ Page { function initializePage() { overviewPage.authorizationState = tdLibWrapper.getAuthorizationState(); - overviewPage.handleAuthorizationState(); + overviewPage.handleAuthorizationState(true); overviewPage.connectionState = tdLibWrapper.getConnectionState(); overviewPage.setPageStatus(); } - function handleAuthorizationState() { + function handleAuthorizationState(isOnInitialization) { switch (overviewPage.authorizationState) { case TelegramAPI.WaitPhoneNumber: case TelegramAPI.WaitCode: case TelegramAPI.WaitPassword: case TelegramAPI.WaitRegistration: 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; case TelegramAPI.AuthorizationReady: overviewPage.loading = false; diff --git a/src/tdlibwrapper.cpp b/src/tdlibwrapper.cpp index 98109db..ffb1604 100644 --- a/src/tdlibwrapper.cpp +++ b/src/tdlibwrapper.cpp @@ -49,6 +49,7 @@ TDLibWrapper::TDLibWrapper(AppSettings *appSettings, MceInterface *mceInterface, this->appSettings = appSettings; this->mceInterface = mceInterface; this->tdLibClient = td_json_client_create(); + this->authorizationState = AuthorizationState::Closed; this->tdLibReceiver = new TDLibReceiver(this->tdLibClient, this); QString tdLibDatabaseDirectoryPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/tdlib";