Added the current update
This commit is contained in:
parent
42590eaf00
commit
55c0957511
5 changed files with 99 additions and 29 deletions
|
|
@ -30,8 +30,5 @@ struct PermissionView: View {
|
||||||
VStack {
|
VStack {
|
||||||
Text(verbatim: "Status is \(configuration.status)")
|
Text(verbatim: "Status is \(configuration.status)")
|
||||||
}
|
}
|
||||||
.onAppear {
|
|
||||||
configuration.update()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
42
Apple/App/Model.swift
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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 */,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue