blob: 520ea86804e765dcdded3d035dea112c9a7ec1e0 [file] [log] [blame]
/**
*
* Copyright (c) 2020-2024 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import SwiftUI
struct MCContentLauncherLaunchURLExampleView : View {
@StateObject var viewModel = MCContentLauncherLaunchURLExampleViewModel()
var selectedCastingPlayer: MCCastingPlayer?
@State private var contentUrl: String = ""
@State private var displayString: String = ""
init(_selectedCastingPlayer: MCCastingPlayer?) {
self.selectedCastingPlayer = _selectedCastingPlayer
}
var body: some View {
VStack(alignment: .leading) {
HStack() {
Text("Content URL")
TextField(
"https://www.test.com/videoid",
text: $contentUrl
)
.textInputAutocapitalization(.never)
.disableAutocorrection(true)
.border(.secondary)
}
HStack() {
Text("Display string")
TextField(
"Test video",
text: $displayString
)
.textInputAutocapitalization(.never)
.disableAutocorrection(true)
.border(.secondary)
}
Button("Invoke Launch URL!") {
viewModel.invokeCommand(castingPlayer: self.selectedCastingPlayer!, contentUrl: contentUrl, displayString: displayString)
}
.background(Color.blue)
.foregroundColor(Color.white)
.cornerRadius(4)
.border(Color.black, width: 1)
.padding()
Text(viewModel.status ?? "")
}
.navigationTitle("Content Launcher Launch URL")
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .top)
}
}
struct MCCommandInvocationExampleView_Previews: PreviewProvider {
static var previews: some View {
MCContentLauncherLaunchURLExampleView(_selectedCastingPlayer: nil)
}
}