Added the current update

This commit is contained in:
SerenityUX 2023-04-29 20:28:48 -04:00
parent 42590eaf00
commit 55c0957511
5 changed files with 99 additions and 29 deletions

View file

@ -30,8 +30,5 @@ struct PermissionView: View {
VStack { VStack {
Text(verbatim: "Status is \(configuration.status)") Text(verbatim: "Status is \(configuration.status)")
} }
.onAppear {
configuration.update()
}
} }
} }

View file

@ -1,13 +1,14 @@
import SwiftUI import SwiftUI
struct ContentView: View { struct ContentView: View {
@State private var connectedHackClubNetwork = false
@ObservedObject var viewModel = NetworkConfiguration()
var body: some View { var body: some View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
HStack { HStack {
Text("Networks") Text(verbatim: "Networks \(viewModel.model.status)")
.font(.title3) .font(.title3)
Spacer() Spacer()
Image(systemName: "badge.plus.radiowaves.forward") Image(systemName: "badge.plus.radiowaves.forward")
@ -21,10 +22,30 @@ struct ContentView: View {
.padding(.top, 2) .padding(.top, 2)
.font(.subheadline.weight(.bold)) .font(.subheadline.weight(.bold))
HStack { HStack {
Image("hackClubLogo") if (viewModel.status == .unknown) {
.resizable()
.frame(width: 32, height: 32)
.cornerRadius(100) Image("hackClubLogo")
.resizable()
.frame(width: 32, height: 32)
.cornerRadius(100).onTapGesture {
viewModel.connectToBurrow()
print(viewModel.status)
}
} else if (viewModel.status == .loading) {
ZStack {
Image("hackClubLogo")
.resizable()
.frame(width: 32, height: 32)
.cornerRadius(100)
.overlay(Color.white.opacity(0.6).cornerRadius(100))
ProgressView()
.progressViewStyle(CircularProgressViewStyle())
.scaleEffect(0.6)
}
}
VStack(alignment: .leading) { VStack(alignment: .leading) {
Text("Hack Club Network") Text("Hack Club Network")
@ -35,7 +56,7 @@ struct ContentView: View {
.font(.caption2) .font(.caption2)
.foregroundColor(.blue) .foregroundColor(.blue)
}.onTapGesture { }.onTapGesture {
connectedHackClubNetwork = true print(true)
} }
} }
} }

42
Apple/App/Model.swift Normal file
View file

@ -0,0 +1,42 @@
//
// MemoryGame.swift
// Memorize
//
// Created by Thomas Stubblefield on 3/12/23.
//
import Foundation
struct Model {
var status: Status = .unknown
mutating func connectToBurrow() {
print("let's get this working")
status = .valid
print(status)
}
}
enum Status: CustomStringConvertible {
case unknown
case blank
case valid
case error
case loading
var description: String {
switch self {
case .unknown:
return "Unknown"
case .blank:
return "Blank"
case .valid:
return "Valid"
case .loading:
return "Loading"
default:
return "Default"
}
}
}

View file

@ -3,26 +3,13 @@ import NetworkExtension
@MainActor @MainActor
class NetworkConfiguration: ObservableObject { class NetworkConfiguration: ObservableObject {
enum Status: CustomStringConvertible { func connectToBurrow() {
case unknown objectWillChange.send()
case blank model.connectToBurrow()
case valid
case error
var description: String {
switch self {
case .unknown:
return "Unknown"
case .blank:
return "Blank"
case .valid:
return "Valid"
default:
return "Default"
}
}
} }
@Published var model = Model()
@Published @Published
var status: Status = .unknown var status: Status = .unknown
@ -32,6 +19,25 @@ class NetworkConfiguration: ObservableObject {
} }
func connectToNetwork() {
print(self.status)
self.status = .loading
print(self.status)
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
let random = Int.random(in: 0...1)
if random == 0 {
self.status = .valid
print(self.status)
} else {
self.status = .error
print(self.status)
}
}
}
func update() { func update() {
Task { Task {
do { do {

View file

@ -10,6 +10,7 @@
43E50D6D29FA050600BD2280 /* FluidMenuBarExtra in Frameworks */ = {isa = PBXBuildFile; platformFilters = (macos, ); productRef = 43E50D6C29FA050600BD2280 /* FluidMenuBarExtra */; }; 43E50D6D29FA050600BD2280 /* FluidMenuBarExtra in Frameworks */ = {isa = PBXBuildFile; platformFilters = (macos, ); productRef = 43E50D6C29FA050600BD2280 /* FluidMenuBarExtra */; };
43EBDB2B29FD7557005D8CFF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43EBDB2A29FD754A005D8CFF /* AppDelegate.swift */; }; 43EBDB2B29FD7557005D8CFF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43EBDB2A29FD754A005D8CFF /* AppDelegate.swift */; };
43EBDB2D29FD759E005D8CFF /* NetworkConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43EBDB2C29FD759E005D8CFF /* NetworkConfiguration.swift */; }; 43EBDB2D29FD759E005D8CFF /* NetworkConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43EBDB2C29FD759E005D8CFF /* NetworkConfiguration.swift */; };
43EBDB2F29FDE85F005D8CFF /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43EBDB2E29FDE85F005D8CFF /* Model.swift */; };
D020F65829E4A697002790F6 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020F65729E4A697002790F6 /* PacketTunnelProvider.swift */; }; D020F65829E4A697002790F6 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020F65729E4A697002790F6 /* PacketTunnelProvider.swift */; };
D020F65D29E4A697002790F6 /* BurrowNetworkExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D020F65329E4A697002790F6 /* BurrowNetworkExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; D020F65D29E4A697002790F6 /* BurrowNetworkExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D020F65329E4A697002790F6 /* BurrowNetworkExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
D05B9F7629E39EEC008CB1F9 /* BurrowApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B9F7529E39EEC008CB1F9 /* BurrowApp.swift */; }; D05B9F7629E39EEC008CB1F9 /* BurrowApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B9F7529E39EEC008CB1F9 /* BurrowApp.swift */; };
@ -44,6 +45,7 @@
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
43EBDB2A29FD754A005D8CFF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 43EBDB2A29FD754A005D8CFF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
43EBDB2C29FD759E005D8CFF /* NetworkConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConfiguration.swift; sourceTree = "<group>"; }; 43EBDB2C29FD759E005D8CFF /* NetworkConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConfiguration.swift; sourceTree = "<group>"; };
43EBDB2E29FDE85F005D8CFF /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
D020F63D29E4A1FF002790F6 /* Identity.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Identity.xcconfig; sourceTree = "<group>"; }; D020F63D29E4A1FF002790F6 /* Identity.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Identity.xcconfig; sourceTree = "<group>"; };
D020F64029E4A1FF002790F6 /* Compiler.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Compiler.xcconfig; sourceTree = "<group>"; }; D020F64029E4A1FF002790F6 /* Compiler.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Compiler.xcconfig; sourceTree = "<group>"; };
D020F64229E4A1FF002790F6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; D020F64229E4A1FF002790F6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@ -133,6 +135,7 @@
43EBDB2A29FD754A005D8CFF /* AppDelegate.swift */, 43EBDB2A29FD754A005D8CFF /* AppDelegate.swift */,
D05B9F7729E39EEC008CB1F9 /* ContentView.swift */, D05B9F7729E39EEC008CB1F9 /* ContentView.swift */,
43EBDB2C29FD759E005D8CFF /* NetworkConfiguration.swift */, 43EBDB2C29FD759E005D8CFF /* NetworkConfiguration.swift */,
43EBDB2E29FDE85F005D8CFF /* Model.swift */,
D05B9F7929E39EED008CB1F9 /* Assets.xcassets */, D05B9F7929E39EED008CB1F9 /* Assets.xcassets */,
D020F66829E4AA74002790F6 /* App-iOS.entitlements */, D020F66829E4AA74002790F6 /* App-iOS.entitlements */,
D020F66929E4AA74002790F6 /* App-macOS.entitlements */, D020F66929E4AA74002790F6 /* App-macOS.entitlements */,
@ -254,6 +257,7 @@
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
43EBDB2F29FDE85F005D8CFF /* Model.swift in Sources */,
43EBDB2B29FD7557005D8CFF /* AppDelegate.swift in Sources */, 43EBDB2B29FD7557005D8CFF /* AppDelegate.swift in Sources */,
D05B9F7829E39EEC008CB1F9 /* ContentView.swift in Sources */, D05B9F7829E39EEC008CB1F9 /* ContentView.swift in Sources */,
D05B9F7629E39EEC008CB1F9 /* BurrowApp.swift in Sources */, D05B9F7629E39EEC008CB1F9 /* BurrowApp.swift in Sources */,