linphone-ios/Linphone/ui/assistant/AssistantView.swift
2023-09-22 14:49:56 +02:00

90 lines
3.3 KiB
Swift

/*
* Copyright (c) 2010-2023 Belledonne Communications SARL.
*
* This file is part of Linphone
*
* This program 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.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
import SwiftUI
struct AssistantView: View {
var coreContext = CoreContext.shared
@ObservedObject var accountLoginViewModel : AccountLoginViewModel
var body: some View {
VStack {
HStack {
Text("Username:")
.font(.title)
TextField("", text : $accountLoginViewModel.username)
.textFieldStyle(RoundedBorderTextFieldStyle())
.disabled(coreContext.loggedIn)
}
HStack {
Text("Password:")
.font(.title)
TextField("", text : $accountLoginViewModel.passwd)
.textFieldStyle(RoundedBorderTextFieldStyle())
.disabled(coreContext.loggedIn)
}
HStack {
Text("Domain:")
.font(.title)
TextField("", text : $accountLoginViewModel.domain)
.textFieldStyle(RoundedBorderTextFieldStyle())
.disabled(coreContext.loggedIn)
}
Picker(selection: $accountLoginViewModel.transportType, label: Text("Transport:")) {
Text("TLS").tag("TLS")
Text("TCP").tag("TCP")
Text("UDP").tag("UDP")
}.pickerStyle(SegmentedPickerStyle()).padding()
VStack {
HStack {
Button(action: {
if (self.coreContext.loggedIn)
{
self.accountLoginViewModel.unregister()
self.accountLoginViewModel.delete()
} else {
self.accountLoginViewModel.login()
}
})
{
Text(coreContext.loggedIn ? "Log out & \ndelete account" : "Create & \nlog in account")
.font(.largeTitle)
.foregroundColor(Color.white)
.frame(width: 220.0, height: 90)
.background(Color.gray)
}
}
HStack {
Text("Login State : ")
.font(.footnote)
Text(coreContext.loggedIn ? "Looged in" : "Unregistered")
.font(.footnote)
.foregroundColor(coreContext.loggedIn ? Color.green : Color.black)
}.padding(.top, 10.0)
}
Group {
Spacer()
Text("Core Version is \(coreContext.coreVersion)")
}
}
.padding()
}
}