Проверка шаблона шины для iOS

121 rinda
2.9KB

  1. import BusX
  2. import Combine
  3. import MeetupIdX
  4. import MicX
  5. import SwiftUI
  6. import UIKit
  7. struct Content: View {
  8. @State private var selectedId = "1"
  9. var ids = ["1", "2", "3", "4"]
  10. var body: some View {
  11. VStack {
  12. HStack {
  13. Text("MicItem id:")
  14. Picker("", selection: $selectedId) {
  15. ForEach(ids, id: \.self) {
  16. Text($0)
  17. }
  18. }
  19. }
  20. .pickerStyle(.segmented)
  21. Divider()
  22. .padding()
  23. MicItem.V(selectedId)
  24. Divider()
  25. .padding()
  26. List {
  27. ForEach(ids, id: \.self) {
  28. Text("\($0): TODO state")
  29. }
  30. }
  31. }
  32. .padding()
  33. }
  34. }
  35. @UIApplicationMain
  36. class AppDelegate: UIResponder, UIApplicationDelegate
  37. {
  38. let meetupIS = MeetupId.Service(.init())
  39. let micS = Mic.Service(.init())
  40. var window: UIWindow?
  41. func application(
  42. _ application: UIApplication,
  43. didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  44. ) -> Bool {
  45. window = UIWindow(frame: UIScreen.main.bounds)
  46. let vc = UIViewController()
  47. addSwiftUIViewAsChild(swiftUIView: Content(), parent: vc.view)
  48. vc.view.backgroundColor = .white
  49. window?.rootViewController = vc
  50. window?.backgroundColor = UIColor.white
  51. window?.makeKeyAndVisible()
  52. /**/print("ИГР App.didFLWO")
  53. //testMic1()
  54. //testMic2()
  55. //testMic2_id("1")
  56. /*
  57. DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
  58. self.testMic2_id("2")
  59. }
  60. */
  61. testMic4()
  62. return true
  63. }
  64. func testMic1() {
  65. DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
  66. Bus.send(Mic.K.isActive, true)
  67. }
  68. DispatchQueue.main.asyncAfter(deadline: .now() + 4) {
  69. Bus.send(Mic.K.isActive, false)
  70. }
  71. }
  72. func testMic2() {
  73. DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
  74. Bus.send(Mic.K.activityDate, Date() + 2)
  75. }
  76. DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
  77. Bus.send(Mic.K.activityDate, Date() + 2)
  78. }
  79. DispatchQueue.main.asyncAfter(deadline: .now() + 6) {
  80. Bus.send(Mic.K.activityDate, Date() + 7)
  81. }
  82. }
  83. var subscriptions = [AnyCancellable]()
  84. func testMic2_id(_ id: String) {
  85. DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
  86. Bus.send(Bus.keyId(Mic.K.activityDate, id), Date() + 2)
  87. }
  88. DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
  89. Bus.send(Bus.keyId(Mic.K.activityDate, id), Date() + 2)
  90. }
  91. DispatchQueue.main.asyncAfter(deadline: .now() + 6) {
  92. Bus.send(Bus.keyId(Mic.K.activityDate, id), Date() + 3)
  93. }
  94. }
  95. func testMic4() {
  96. let ad1 = [
  97. "1": Date().addingTimeInterval(3),
  98. "2": Date().addingTimeInterval(5),
  99. ]
  100. Bus.send(Mic.K.activityDates, ad1)
  101. DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
  102. let ad2 = [
  103. "1": Date().addingTimeInterval(3),
  104. "4": Date().addingTimeInterval(5),
  105. ]
  106. Bus.send(Mic.K.activityDates, ad2)
  107. }
  108. }
  109. }