Don't show Active Sessions button when not authenticated

Also, expose authorizationState as TDLibWrapper property.
This commit is contained in:
Slava Monich 2021-02-25 02:57:24 +02:00
parent 694cc0f453
commit 545b716f24
5 changed files with 23 additions and 27 deletions

View file

@ -18,6 +18,7 @@
*/ */
import QtQuick 2.6 import QtQuick 2.6
import Sailfish.Silica 1.0 import Sailfish.Silica 1.0
import WerkWolf.Fernschreiber 1.0
import "../components" import "../components"
import "../js/twemoji.js" as Emoji import "../js/twemoji.js" as Emoji
@ -25,8 +26,7 @@ Page {
id: aboutPage id: aboutPage
allowedOrientations: Orientation.All allowedOrientations: Orientation.All
property bool isLoggedIn : false readonly property var userInformation : tdLibWrapper.userInformation
property var userInformation : tdLibWrapper.getUserInformation();
SilicaFlickable { SilicaFlickable {
id: aboutContainer id: aboutContainer
@ -158,7 +158,7 @@ Page {
Loader { Loader {
id: userInformationLoader id: userInformationLoader
active: isLoggedIn active: tdLibWrapper.authorizationState === TelegramAPI.AuthorizationReady
width: parent.width width: parent.width
sourceComponent: Component { sourceComponent: Component {
Column { Column {
@ -227,18 +227,18 @@ Page {
} }
} }
} }
}
}
}
Button { Button {
id: activeSessionsButton id: activeSessionsButton
text: qsTr("Active Sessions") text: qsTr("Active Sessions")
anchors { anchors {
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
} }
onClicked: { onClicked: {
pageStack.push(Qt.resolvedUrl("ActiveSessionsPage.qml")); pageStack.push(Qt.resolvedUrl("ActiveSessionsPage.qml"));
}
}
}
} }
} }

View file

@ -28,7 +28,7 @@ CoverBackground {
property int unreadMessages: 0 property int unreadMessages: 0
property int unreadChats: 0 property int unreadChats: 0
property bool authenticated: false readonly property bool authenticated: tdLibWrapper.authorizationState === TelegramAPI.AuthorizationReady
property int connectionState: TelegramAPI.WaitingForNetwork property int connectionState: TelegramAPI.WaitingForNetwork
function setUnreadInfoText() { function setUnreadInfoText() {
@ -56,7 +56,6 @@ CoverBackground {
} }
Component.onCompleted: { Component.onCompleted: {
coverPage.authenticated = (tdLibWrapper.getAuthorizationState() === TelegramAPI.AuthorizationReady);
coverPage.connectionState = tdLibWrapper.getConnectionState(); coverPage.connectionState = tdLibWrapper.getConnectionState();
coverPage.unreadMessages = tdLibWrapper.getUnreadMessageInformation().unread_count || 0; coverPage.unreadMessages = tdLibWrapper.getUnreadMessageInformation().unread_count || 0;
coverPage.unreadChats = tdLibWrapper.getUnreadChatInformation().unread_count || 0; coverPage.unreadChats = tdLibWrapper.getUnreadChatInformation().unread_count || 0;
@ -74,7 +73,6 @@ CoverBackground {
setUnreadInfoText(); setUnreadInfoText();
} }
onAuthorizationStateChanged: { onAuthorizationStateChanged: {
coverPage.authenticated = (authorizationState === TelegramAPI.AuthorizationReady);
setUnreadInfoText(); setUnreadInfoText();
} }
onConnectionStateChanged: { onConnectionStateChanged: {

View file

@ -26,15 +26,13 @@ Page {
backNavigation: false backNavigation: false
property bool loading: true property bool loading: true
property int authorizationState: TelegramAPI.Closed
property var authorizationStateData: null property var authorizationStateData: null
Component.onCompleted: { Component.onCompleted: {
initializationPage.authorizationState = tdLibWrapper.getAuthorizationState();
initializationPage.authorizationStateData = tdLibWrapper.getAuthorizationStateData(); initializationPage.authorizationStateData = tdLibWrapper.getAuthorizationStateData();
initializationPage.loading = false; initializationPage.loading = false;
switch (authorizationState) { switch (tdLibWrapper.authorizationState) {
case TelegramAPI.WaitCode: case TelegramAPI.WaitCode:
initializationPage.loading = false; initializationPage.loading = false;
welcomeColumn.visible = false; welcomeColumn.visible = false;
@ -66,7 +64,7 @@ Page {
Connections { Connections {
target: tdLibWrapper target: tdLibWrapper
onAuthorizationStateChanged: { onAuthorizationStateChanged: {
switch (authorizationState) { switch (tdLibWrapper.authorizationState) {
case TelegramAPI.WaitCode: case TelegramAPI.WaitCode:
initializationPage.loading = false; initializationPage.loading = false;
enterPinColumn.visible = true; enterPinColumn.visible = true;

View file

@ -32,7 +32,6 @@ Page {
property bool initializationCompleted: false; property bool initializationCompleted: false;
property bool loading: true; property bool loading: true;
property bool logoutLoading: false; property bool logoutLoading: false;
property int authorizationState: TelegramAPI.Closed
property int connectionState: TelegramAPI.WaitingForNetwork property int connectionState: TelegramAPI.WaitingForNetwork
property int ownUserId; property int ownUserId;
property bool chatListCreated: false; property bool chatListCreated: false;
@ -146,14 +145,13 @@ Page {
} }
function initializePage() { function initializePage() {
overviewPage.authorizationState = tdLibWrapper.getAuthorizationState();
overviewPage.handleAuthorizationState(true); overviewPage.handleAuthorizationState(true);
overviewPage.connectionState = tdLibWrapper.getConnectionState(); overviewPage.connectionState = tdLibWrapper.getConnectionState();
overviewPage.setPageStatus(); overviewPage.setPageStatus();
} }
function handleAuthorizationState(isOnInitialization) { function handleAuthorizationState(isOnInitialization) {
switch (overviewPage.authorizationState) { switch (tdLibWrapper.authorizationState) {
case TelegramAPI.WaitPhoneNumber: case TelegramAPI.WaitPhoneNumber:
case TelegramAPI.WaitCode: case TelegramAPI.WaitCode:
case TelegramAPI.WaitPassword: case TelegramAPI.WaitPassword:
@ -204,8 +202,7 @@ Page {
Connections { Connections {
target: tdLibWrapper target: tdLibWrapper
onAuthorizationStateChanged: { onAuthorizationStateChanged: {
overviewPage.authorizationState = authorizationState; handleAuthorizationState(false);
handleAuthorizationState();
} }
onConnectionStateChanged: { onConnectionStateChanged: {
overviewPage.connectionState = connectionState; overviewPage.connectionState = connectionState;
@ -278,7 +275,7 @@ Page {
} }
MenuItem { MenuItem {
text: qsTr("About Fernschreiber") text: qsTr("About Fernschreiber")
onClicked: pageStack.push(Qt.resolvedUrl("../pages/AboutPage.qml"), {isLoggedIn : (overviewPage.authorizationState == TelegramAPI.AuthorizationReady)}) onClicked: pageStack.push(Qt.resolvedUrl("../pages/AboutPage.qml"))
} }
MenuItem { MenuItem {
text: qsTr("Settings") text: qsTr("Settings")

View file

@ -31,6 +31,9 @@
class TDLibWrapper : public QObject class TDLibWrapper : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(AuthorizationState authorizationState READ getAuthorizationState NOTIFY authorizationStateChanged)
Q_PROPERTY(QVariantMap userInformation READ getUserInformation NOTIFY ownUserUpdated)
public: public:
explicit TDLibWrapper(AppSettings *appSettings, MceInterface *mceInterface, QObject *parent = nullptr); explicit TDLibWrapper(AppSettings *appSettings, MceInterface *mceInterface, QObject *parent = nullptr);
~TDLibWrapper(); ~TDLibWrapper();