2020-09-15 14:53:13 +00:00
|
|
|
import QtQuick 2.0
|
|
|
|
import Sailfish.Silica 1.0
|
2020-09-25 12:46:39 +00:00
|
|
|
import QtMultimedia 5.6
|
2020-09-15 14:53:13 +00:00
|
|
|
import nl.netsoj.chris.Jellyfin 1.0
|
|
|
|
import Nemo.Notifications 1.0
|
|
|
|
|
|
|
|
import "components"
|
|
|
|
import "pages"
|
|
|
|
|
|
|
|
ApplicationWindow {
|
2020-09-26 22:48:13 +00:00
|
|
|
id: appWindow
|
2020-09-15 14:53:13 +00:00
|
|
|
property bool _hasInitialized: false
|
2020-09-25 13:21:08 +00:00
|
|
|
// The global mediaPlayer instance
|
2020-09-25 12:46:39 +00:00
|
|
|
readonly property MediaPlayer mediaPlayer: _mediaPlayer
|
2020-09-27 14:54:45 +00:00
|
|
|
|
2020-09-25 13:21:08 +00:00
|
|
|
// Data of the currently selected item. For use on the cover.
|
2020-09-25 12:46:39 +00:00
|
|
|
property var itemData
|
2020-09-27 14:54:45 +00:00
|
|
|
// Id of the collection currently browsing. For use on the cover.
|
|
|
|
property string collectionId
|
2020-09-26 22:48:13 +00:00
|
|
|
|
2020-09-25 13:21:08 +00:00
|
|
|
//FIXME: proper error handling
|
2020-09-26 22:48:13 +00:00
|
|
|
Connections {
|
|
|
|
target: ApiClient
|
|
|
|
onNetworkError: errorNotification.show("Network error: " + error)
|
|
|
|
onConnectionFailed: errorNotification.show("Connect error: " + error)
|
2020-09-26 22:42:20 +00:00
|
|
|
//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) {
|
|
|
|
pageStack.replace(Qt.resolvedUrl("pages/setup/AddServerPage.qml"), {"backNavigation": false});
|
|
|
|
}
|
|
|
|
}
|
2020-09-26 22:48:13 +00:00
|
|
|
}
|
2020-09-15 14:53:13 +00:00
|
|
|
|
2020-09-25 12:46:39 +00:00
|
|
|
MediaPlayer {
|
|
|
|
id: _mediaPlayer
|
|
|
|
autoPlay: true
|
|
|
|
}
|
|
|
|
|
2020-09-26 22:48:13 +00:00
|
|
|
initialPage: Component {
|
|
|
|
MainPage {
|
|
|
|
Connections {
|
|
|
|
target: ApiClient
|
2020-09-25 13:21:08 +00:00
|
|
|
// Replace the MainPage if no server was set up.
|
2020-09-26 22:42:20 +00:00
|
|
|
|
2020-09-26 22:48:13 +00:00
|
|
|
}
|
|
|
|
onStatusChanged: {
|
2020-09-15 14:53:13 +00:00
|
|
|
if (status == PageStatus.Active && !_hasInitialized) {
|
|
|
|
_hasInitialized = true;
|
2020-09-25 12:46:39 +00:00
|
|
|
ApiClient.restoreSavedSession();
|
2020-09-26 22:48:13 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-09-25 12:46:39 +00:00
|
|
|
cover: {
|
|
|
|
if ([MediaPlayer.NoMedia, MediaPlayer.InvalidMedia, MediaPlayer.UnknownStatus].indexOf(mediaPlayer.status) >= 0) {
|
|
|
|
if (itemData) {
|
|
|
|
return Qt.resolvedUrl("cover/PosterCover.qml")
|
|
|
|
} else {
|
|
|
|
return Qt.resolvedUrl("cover/CoverPage.qml")
|
|
|
|
}
|
|
|
|
} else if (mediaPlayer.hasVideo){
|
|
|
|
return Qt.resolvedUrl("cover/VideoCover.qml")
|
|
|
|
}
|
|
|
|
}
|
2020-09-26 22:48:13 +00:00
|
|
|
allowedOrientations: Orientation.All
|
|
|
|
|
|
|
|
Notification {
|
|
|
|
id: errorNotification
|
|
|
|
previewSummary: "foo"
|
|
|
|
isTransient: true
|
|
|
|
|
|
|
|
function show(data) {
|
|
|
|
previewSummary = data;
|
|
|
|
publish();
|
|
|
|
}
|
|
|
|
}
|
2020-09-15 14:53:13 +00:00
|
|
|
}
|