- ApiClient HTTP/SSE: login, sessioni, chat/start, stream SSE, transcribe, tts - ChatModel: streaming live + risincronizzazione dallo stato del server - CookieJar persistente (0600, mai la password); Settings - Recorder OGG/Opus (fallback WAV/PCM, retry); Player TTS (QMediaPlayer) - UI Silica: splash, login, sessioni, chat (dettatura + read-aloud), settings, cover - Sailjail Internet;Audio;Microphone; icone; spec RPM; docs PROTOCOL/BUILD - tests/core_test: unit parser SSE + integrazione live (probe :8899)
42 lines
1.0 KiB
QML
42 lines
1.0 KiB
QML
import QtQuick 2.0
|
|
import Sailfish.Silica 1.0
|
|
|
|
// Avvio: verifica lo stato dell'autenticazione (cookie persistito) e
|
|
// indirizza verso la lista sessioni o il login.
|
|
Page {
|
|
id: page
|
|
|
|
Column {
|
|
anchors.centerIn: parent
|
|
spacing: Theme.paddingLarge
|
|
width: parent.width - 2 * Theme.horizontalPageMargin
|
|
|
|
Label {
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
text: "Hermes"
|
|
font.pixelSize: Theme.fontSizeHuge
|
|
color: Theme.highlightColor
|
|
}
|
|
|
|
BusyIndicator {
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
size: BusyIndicatorSize.Large
|
|
running: true
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: api
|
|
onAuthChecked: page.route(loggedIn)
|
|
}
|
|
|
|
Component.onCompleted: api.checkAuth()
|
|
|
|
function route(loggedIn) {
|
|
if (loggedIn)
|
|
pageStack.replace(Qt.resolvedUrl("SessionsPage.qml"))
|
|
else
|
|
pageStack.replace(Qt.resolvedUrl("LoginPage.qml"))
|
|
}
|
|
}
|