1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2025-09-05 10:12:46 +00:00

Sailfish: Fix freeze when connecting via HTTPS

This commit is contained in:
Chris Josten 2022-04-26 19:53:12 +02:00
parent deada4f635
commit cab5f20469
No known key found for this signature in database
GPG key ID: A69C050E9FD9FF6A
7 changed files with 47 additions and 24 deletions

View file

@ -68,7 +68,7 @@ PanelBackground {
}
width: height
Binding on blurhash {
when: manager.item !== null && "Primary" in manager.item.imageBlurHashes
when: manager.item !== null && "Primary" in manager.item.imageBlurHashes && "Primary" in manager.item.imageTags
value: manager.item.imageBlurHashes["Primary"][manager.item.imageTags["Primary"]]
}
source: largeAlbumArt.source

View file

@ -62,18 +62,12 @@ ApplicationWindow {
onRaiseRequested: appWindow.raise()
}
initialPage: Component {
MainPage {
Connections {
target: apiClient
// Replace the MainPage if no server was set up.
}
onStatusChanged: {
if (status == PageStatus.Active && !_hasInitialized) {
_hasInitialized = true;
apiClient.restoreSavedSession();
}
initialPage: ConnectingPage {
id: connectingPage
onStatusChanged: {
if (connectingPage.status == PageStatus.Active && !_hasInitialized) {
_hasInitialized = true;
apiClient.restoreSavedSession();
}
}
}
@ -171,11 +165,36 @@ ApplicationWindow {
onConnectionFailed: errorNotification.show("Connect error: " + error)
//onConnectionSuccess: errorNotification.show("Success: " + loginMessage)
onSetupRequired: {
var isInSetup = pageStack.find(function (page) { return typeof page._isSetupPage !== "undefined" }) !== null
console.log("Is in setup: " + isInSetup)
if (!isInSetup) {
console.log("Is in setup: " + isInSetup())
if (!isInSetup()) {
pageStack.replace(Qt.resolvedUrl("pages/setup/AddServerPage.qml"), {"backNavigation": false});
}
}
onAuthenticatedChanged: {
if (authenticated && !isInSetup()) {
console.log("Authenticated)")
loginAnimation.start()
//pageStack.replace(Qt.resolvedUrl("pages/MainPage.qml"))
}
}
}
// Delaying the creation of the MainPage prevents the application from freezing
// if connecting to the server over HTTPS
// TODO: figure out why the application actually freezes and remove this workaround
SequentialAnimation {
id: loginAnimation
PauseAnimation {
duration: 250
}
ScriptAction {
script: pageStack.replace(Qt.resolvedUrl("pages/MainPage.qml"), {}, PageStackAction.Immediate)
}
}
function isInSetup() {
return pageStack.find(function (page) { return typeof page._isSetupPage !== "undefined" }) !== null
}
}

View file

@ -0,0 +1,8 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
Page {
PageBusyIndicator {
running: true
}
}

View file

@ -222,7 +222,7 @@ Page {
delegate: LibraryItemDelegate {
property string id: model.jellyfinId
title: model.name
poster: Utils.itemModelImageUrl(appWindow.apiClient.baseUrl, model.jellyfinId, model.imageTags["Primary"], "Primary", {"maxHeight": height})
poster: Utils.itemModelImageUrl(appWindow.apiClient.baseUrl, model.jellyfinId, model.imageTags["Primary"], "Primary", {"height": height})
Binding on blurhash {
when: poster !== ""
value: model.imageBlurHashes["Primary"][model.imageTags["Primary"]]