/*
Copyright (C) 2020-21 Sebastian J. Wolf and other contributors
This file is part of Fernschreiber.
Fernschreiber is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Fernschreiber is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Fernschreiber. If not, see .
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import "../components"
import "../js/twemoji.js" as Emoji
Page {
id: aboutPage
allowedOrientations: Orientation.All
property bool isLoggedIn : false
property var userInformation : tdLibWrapper.getUserInformation();
SilicaFlickable {
id: aboutContainer
contentHeight: column.height
anchors.fill: parent
Column {
id: column
width: aboutPage.width
spacing: Theme.paddingLarge
PageHeader {
title: qsTr("About Fernschreiber")
}
Image {
id: wunderfitzImage
source: "../../images/fernschreiber.svg"
anchors {
horizontalCenter: parent.horizontalCenter
}
sourceSize {
width: width
height: height
}
fillMode: Image.PreserveAspectFit
asynchronous: true
width: Math.min(2 * Theme.itemSizeHuge, Math.min(aboutPage.width, aboutPage.height) / 2)
height: width
}
Label {
text: "Fernschreiber 0.8"
horizontalAlignment: Text.AlignHCenter
font.pixelSize: Theme.fontSizeExtraLarge
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Label {
wrapMode: Text.Wrap
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
horizontalAlignment: Text.AlignHCenter
text: qsTr("A Telegram client for Sailfish OS")
font.pixelSize: Theme.fontSizeSmall
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Label {
text: qsTr("By Sebastian J. Wolf and other contributors")
font.pixelSize: Theme.fontSizeSmall
width: parent.width - ( 2 * Theme.horizontalPageMargin )
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.Wrap
linkColor: Theme.highlightColor
onLinkActivated: Qt.openUrlExternally(link)
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Text {
text: "" + qsTr("Send E-Mail") + ""
anchors {
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: Theme.fontSizeSmall
linkColor: Theme.highlightColor
onLinkActivated: Qt.openUrlExternally("mailto:sebastian@ygriega.de")
}
Separator {
width: parent.width
color: Theme.primaryColor
horizontalAlignment: Qt.AlignHCenter
}
Label {
text: qsTr("Licensed under GNU GPLv3")
font.pixelSize: Theme.fontSizeSmall
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Text {
text: "" + qsTr("Sources on GitHub") + ""
anchors {
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: Theme.fontSizeSmall
linkColor: Theme.highlightColor
onLinkActivated: Qt.openUrlExternally("https://github.com/Wunderfitz/harbour-fernschreiber")
}
SectionHeader {
text: qsTr("About Telegram")
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
horizontalAlignment: Text.AlignHCenter
text: qsTr("This product uses the Telegram API but is not endorsed or certified by Telegram.")
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
horizontalAlignment: Text.AlignHCenter
text: qsTr("TDLib version %1").arg(tdLibWrapper.getVersion())
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Loader {
id: userInformationLoader
active: isLoggedIn
width: parent.width
sourceComponent: Component {
Column {
spacing: Theme.paddingSmall
Text {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
horizontalAlignment: Text.AlignHCenter
text: qsTr("Logged in as %1").arg(Emoji.emojify(aboutPage.userInformation.first_name + " " + aboutPage.userInformation.last_name, Theme.fontSizeSmall))
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
color: Theme.primaryColor
textFormat: Text.StyledText
anchors {
horizontalCenter: parent.horizontalCenter
}
}
ProfileThumbnail {
photoData: ((typeof aboutPage.userInformation.profile_photo !== "undefined") ? aboutPage.userInformation.profile_photo.small : {})
width: Theme.itemSizeExtraLarge
height: Theme.itemSizeExtraLarge
replacementStringHint: aboutPage.userInformation.first_name + " " + aboutPage.userInformation.last_name
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
horizontalAlignment: Text.AlignHCenter
text: qsTr("Phone number: +%1").arg(aboutPage.userInformation.phone_number)
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
BackgroundItem {
width: parent.width
BackgroundItem {
id: logOutItem
width: parent.width
function showRemorseItem() {
remorse.execute(logOutItem, qsTr("Logged out"), function() {
tdLibWrapper.logout();
pageStack.pop();
});
}
RemorseItem {
id: remorse
}
Button {
id: logOutButton
text: qsTr("Log Out")
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
logOutItem.showRemorseItem();
}
}
}
}
}
}
}
Button {
id: activeSessionsButton
text: qsTr("Active Sessions")
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
pageStack.push(Qt.resolvedUrl("ActiveSessionsPage.qml"));
}
}
Button {
text: qsTr("Terms of Service")
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
Qt.openUrlExternally("https://telegram.org/tos");
}
}
Button {
text: qsTr("Privacy Policy")
anchors {
horizontalCenter: parent.horizontalCenter
}
onClicked: {
Qt.openUrlExternally("https://telegram.org/privacy")
}
}
SectionHeader {
text: qsTr("Credits")
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
text: qsTr("This project uses the Telegram Database Library (TDLib). Thanks for making it available under the conditions of the Boost Software License 1.0!")
font.pixelSize: Theme.fontSizeExtraSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Text {
text: "" + qsTr("Open Telegram Database Library on GitHub") + ""
anchors {
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: Theme.fontSizeSmall
linkColor: Theme.highlightColor
onLinkActivated: Qt.openUrlExternally("https://github.com/tdlib/td")
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
text: qsTr("This project uses twemoji. Copyright 2018 Twitter, Inc. and other contributors. Thanks for making it available under the conditions of the MIT License (coding) and CC-BY 4.0 (graphics)!")
font.pixelSize: Theme.fontSizeExtraSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Text {
text: "" + qsTr("Open twemoji on GitHub") + ""
anchors {
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: Theme.fontSizeSmall
linkColor: Theme.highlightColor
onLinkActivated: Qt.openUrlExternally("https://github.com/twitter/twemoji")
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
text: qsTr("This project uses rlottie. Copyright 2020 Samsung Electronics Co., Ltd. and other contributors. Thanks for making it available under the conditions of the MIT License!")
font.pixelSize: Theme.fontSizeExtraSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
Text {
text: "" + qsTr("Open rlottie on GitHub") + ""
anchors {
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: Theme.fontSizeSmall
linkColor: Theme.highlightColor
onLinkActivated: Qt.openUrlExternally("https://github.com/Samsung/rlottie")
}
Label {
id: separatorLabel
x: Theme.horizontalPageMargin
width: parent.width - ( 2 * Theme.horizontalPageMargin )
font.pixelSize: Theme.fontSizeExtraSmall
wrapMode: Text.Wrap
anchors {
horizontalCenter: parent.horizontalCenter
}
}
VerticalScrollDecorator {}
}
}
}