Files
check-ios-bus/src/App.swift
Михаил Капелько 7173a79e98 d
2024-01-26 18:52:44 +03:00

131 lines
3.1 KiB
Swift

import BusX
import Combine
import MeetupIdX
import MicX
import SwiftUI
import UIKit
struct Content: View {
@State private var selectedId = "1"
var ids = ["1", "2", "3", "4"]
@StateObject var adates = BusUI.Value(Mic.K.activityDates, [String: Date]())
func val(_ k: String) -> String {
if let dt = adates.v[k] {
return String(describing: Int(dt.timeIntervalSince1970))
}
return "N/A"
}
var body: some View {
VStack {
HStack {
Text("MicItem id:")
Picker("", selection: $selectedId) {
ForEach(ids, id: \.self) {
Text($0)
}
}
}
.pickerStyle(.segmented)
Divider()
.padding()
MicItem.V(selectedId)
Divider()
.padding()
List {
ForEach(ids, id: \.self) {
Text("\($0): \(val($0))")
}
}
}
.padding()
}
}
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate
{
let meetupIS = MeetupId.Service(.init())
let micS = Mic.Service(.init())
var window: UIWindow?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let vc = UIViewController()
addSwiftUIViewAsChild(swiftUIView: Content(), parent: vc.view)
vc.view.backgroundColor = .white
window?.rootViewController = vc
window?.backgroundColor = UIColor.white
window?.makeKeyAndVisible()
/**/print("ИГР App.didFLWO")
//testMic1()
//testMic2()
//testMic2_id("1")
/*
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
self.testMic2_id("2")
}
*/
testMic4()
return true
}
func testMic1() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
Bus.send(Mic.K.isActive, true)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 4) {
Bus.send(Mic.K.isActive, false)
}
}
func testMic2() {
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
Bus.send(Mic.K.activityDate, Date() + 2)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
Bus.send(Mic.K.activityDate, Date() + 2)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 6) {
Bus.send(Mic.K.activityDate, Date() + 7)
}
}
var subscriptions = [AnyCancellable]()
func testMic2_id(_ id: String) {
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
Bus.send(Bus.keyId(Mic.K.activityDate, id), Date() + 2)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
Bus.send(Bus.keyId(Mic.K.activityDate, id), Date() + 2)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 6) {
Bus.send(Bus.keyId(Mic.K.activityDate, id), Date() + 3)
}
}
func testMic4() {
delayedSend(2, Mic.K.activeIds, ["1"])
delayedSend(5, Mic.K.activeIds, ["1", "4"])
delayedSend(11, Mic.K.activeIds, ["3", "4"])
}
func delayedSend(
_ delay: TimeInterval,
_ key: String,
_ value: Any
) {
DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
Bus.send(key, value)
}
}
}