From 6d3d6eab9cc6fb268294be5e029daca9ffd4150c Mon Sep 17 00:00:00 2001 From: "Bat.bat" <45396585+williambj1@users.noreply.github.com> Date: Fri, 2 Aug 2024 01:26:05 +1000 Subject: [PATCH] Add modern WiFi icons Closes #251, #207 --- HeliPort.xcodeproj/project.pbxproj | 24 +++- HeliPort/AppDelegate.swift | 13 +- .../StatusBarIcon/StatusBarIconLegacy.swift | 41 ++++++ .../StatusBarIcon/StatusBarIconManager.swift | 128 ++++++++++++++++++ .../StatusBarIcon/StatusBarIconModern.swift | 44 ++++++ .../Appearance/StatusBarIconManager.swift | 125 ----------------- HeliPort/Appearance/StatusMenu.swift | 14 +- HeliPort/Appearance/WiFiMenuItemView.swift | 2 +- HeliPort/Assets.xcassets/Contents.json | 6 +- .../HoverColor.colorset/Contents.json | 38 ++++++ .../Contents.json | 38 ++++++ .../Assets.xcassets/WiFiLegacy/Contents.json | 6 + .../Contents.json | 0 .../WiFiSignalStrengthExcellent.png | Bin .../WiFiSignalStrengthExcellent@2x.png | Bin .../Contents.json | 0 .../WiFiSignalStrengthFair.png | Bin .../WiFiSignalStrengthFair@2x.png | Bin .../Contents.json | 0 .../WiFiSignalStrengthGood.png | Bin .../WiFiSignalStrengthGood@2x.png | Bin .../Contents.json | 0 .../WiFiSignalStrengthPoor.png | Bin .../WiFiSignalStrengthPoor@2x.png | Bin .../Contents.json | 0 .../WiFiStateDisconnected.png | Bin .../WiFiStateDisconnected@2x.png | Bin .../LegacyStateOff.imageset}/Contents.json | 0 .../LegacyStateOff.imageset}/WiFiStateOff.png | Bin .../WiFiStateOff@2x.png | Bin .../LegacyStateOn.imageset}/Contents.json | 0 .../LegacyStateOn.imageset}/WiFiStateOn.png | Bin .../WiFiStateOn@2x.png | Bin .../Contents.json | 0 .../WiFiStateScanning1.png | Bin .../WiFiStateScanning1@2x.png | Bin .../Contents.json | 0 .../WiFiStateScanning2.png | Bin .../WiFiStateScanning2@2x.png | Bin .../Contents.json | 0 .../WiFiStateScanning3.png | Bin .../WiFiStateScanning3@2x.png | Bin .../Contents.json | 0 .../WiFiStateScanning4.png | Bin .../WiFiStateScanning4@2x.png | Bin .../Contents.json | 0 .../WiFiStateWarning.png | Bin .../WiFiStateWarning@2x.png | Bin .../Assets.xcassets/WiFiModern/Contents.json | 6 + .../Contents.json | 24 ++++ .../WiFiSignalStrengthFair.svg | 20 +++ .../Contents.json | 24 ++++ .../WiFiSignalStrengthGood.svg | 19 +++ .../Contents.json | 24 ++++ .../WiFiSignalStrengthPoor.svg | 21 +++ .../Contents.json | 24 ++++ .../WiFiStateDisconnected.svg | 22 +++ .../ModernStateOff.imageset/Contents.json | 24 ++++ .../ModernStateOff.imageset/WiFiStateOff.svg | 36 +++++ .../ModernStateOn.imageset/Contents.json | 24 ++++ .../ModernStateOn.imageset/WiFiStateOn.svg | 19 +++ .../Contents.json | 24 ++++ .../WiFiStateScanning1.svg | 21 +++ .../Contents.json | 24 ++++ .../WiFiStateScanning2.svg | 21 +++ .../Contents.json | 24 ++++ .../WiFiStateScanning3.svg | 21 +++ .../ModernStateWarning.imageset/Contents.json | 24 ++++ .../WiFiStateWarning.svg | 35 +++++ HeliPort/NetworkManager.swift | 2 +- README.md | 3 +- 71 files changed, 819 insertions(+), 146 deletions(-) create mode 100644 HeliPort/Appearance/StatusBarIcon/StatusBarIconLegacy.swift create mode 100644 HeliPort/Appearance/StatusBarIcon/StatusBarIconManager.swift create mode 100644 HeliPort/Appearance/StatusBarIcon/StatusBarIconModern.swift delete mode 100644 HeliPort/Appearance/StatusBarIconManager.swift create mode 100644 HeliPort/Assets.xcassets/HoverColor.colorset/Contents.json create mode 100644 HeliPort/Assets.xcassets/SignalBackgroundColor.colorset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiLegacy/Contents.json rename HeliPort/Assets.xcassets/{WiFiSignalStrengthExcellent.imageset => WiFiLegacy/LegacySignalStrengthExcellent.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthExcellent.imageset => WiFiLegacy/LegacySignalStrengthExcellent.imageset}/WiFiSignalStrengthExcellent.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthExcellent.imageset => WiFiLegacy/LegacySignalStrengthExcellent.imageset}/WiFiSignalStrengthExcellent@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthFair.imageset => WiFiLegacy/LegacySignalStrengthFair.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthFair.imageset => WiFiLegacy/LegacySignalStrengthFair.imageset}/WiFiSignalStrengthFair.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthFair.imageset => WiFiLegacy/LegacySignalStrengthFair.imageset}/WiFiSignalStrengthFair@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthGood.imageset => WiFiLegacy/LegacySignalStrengthGood.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthGood.imageset => WiFiLegacy/LegacySignalStrengthGood.imageset}/WiFiSignalStrengthGood.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthGood.imageset => WiFiLegacy/LegacySignalStrengthGood.imageset}/WiFiSignalStrengthGood@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthPoor.imageset => WiFiLegacy/LegacySignalStrengthPoor.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthPoor.imageset => WiFiLegacy/LegacySignalStrengthPoor.imageset}/WiFiSignalStrengthPoor.png (100%) rename HeliPort/Assets.xcassets/{WiFiSignalStrengthPoor.imageset => WiFiLegacy/LegacySignalStrengthPoor.imageset}/WiFiSignalStrengthPoor@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateDisconnected.imageset => WiFiLegacy/LegacyStateDisconnected.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateDisconnected.imageset => WiFiLegacy/LegacyStateDisconnected.imageset}/WiFiStateDisconnected.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateDisconnected.imageset => WiFiLegacy/LegacyStateDisconnected.imageset}/WiFiStateDisconnected@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateOff.imageset => WiFiLegacy/LegacyStateOff.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateOff.imageset => WiFiLegacy/LegacyStateOff.imageset}/WiFiStateOff.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateOff.imageset => WiFiLegacy/LegacyStateOff.imageset}/WiFiStateOff@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateOn.imageset => WiFiLegacy/LegacyStateOn.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateOn.imageset => WiFiLegacy/LegacyStateOn.imageset}/WiFiStateOn.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateOn.imageset => WiFiLegacy/LegacyStateOn.imageset}/WiFiStateOn@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning1.imageset => WiFiLegacy/LegacyStateScanning1.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning1.imageset => WiFiLegacy/LegacyStateScanning1.imageset}/WiFiStateScanning1.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning1.imageset => WiFiLegacy/LegacyStateScanning1.imageset}/WiFiStateScanning1@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning2.imageset => WiFiLegacy/LegacyStateScanning2.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning2.imageset => WiFiLegacy/LegacyStateScanning2.imageset}/WiFiStateScanning2.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning2.imageset => WiFiLegacy/LegacyStateScanning2.imageset}/WiFiStateScanning2@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning3.imageset => WiFiLegacy/LegacyStateScanning3.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning3.imageset => WiFiLegacy/LegacyStateScanning3.imageset}/WiFiStateScanning3.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning3.imageset => WiFiLegacy/LegacyStateScanning3.imageset}/WiFiStateScanning3@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning4.imageset => WiFiLegacy/LegacyStateScanning4.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning4.imageset => WiFiLegacy/LegacyStateScanning4.imageset}/WiFiStateScanning4.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateScanning4.imageset => WiFiLegacy/LegacyStateScanning4.imageset}/WiFiStateScanning4@2x.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateWarning.imageset => WiFiLegacy/LegacyStateWarning.imageset}/Contents.json (100%) rename HeliPort/Assets.xcassets/{WiFiStateWarning.imageset => WiFiLegacy/LegacyStateWarning.imageset}/WiFiStateWarning.png (100%) rename HeliPort/Assets.xcassets/{WiFiStateWarning.imageset => WiFiLegacy/LegacyStateWarning.imageset}/WiFiStateWarning@2x.png (100%) create mode 100644 HeliPort/Assets.xcassets/WiFiModern/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/WiFiSignalStrengthFair.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/WiFiSignalStrengthGood.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/WiFiSignalStrengthPoor.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/WiFiStateDisconnected.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/WiFiStateOff.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/WiFiStateOn.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/WiFiStateScanning1.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/WiFiStateScanning2.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/WiFiStateScanning3.svg create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/Contents.json create mode 100644 HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/WiFiStateWarning.svg diff --git a/HeliPort.xcodeproj/project.pbxproj b/HeliPort.xcodeproj/project.pbxproj index da730985..dea13954 100644 --- a/HeliPort.xcodeproj/project.pbxproj +++ b/HeliPort.xcodeproj/project.pbxproj @@ -15,6 +15,9 @@ 13AB3CA824DE47D10093D283 /* WiFiConfigWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AB3CA724DE47D10093D283 /* WiFiConfigWindow.swift */; }; 13AF73B624B25E170015867C /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA4DFAC243A307B002A862A /* StatusMenu.swift */; }; 13C20DFA24D8B6D100B1E713 /* PrefsGeneralView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13C20DF924D8B6D100B1E713 /* PrefsGeneralView.swift */; }; + 505EC11D2C5BD89400F4E4EA /* StatusBarIconManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 505EC11C2C5BD89400F4E4EA /* StatusBarIconManager.swift */; }; + 505EC11F2C5BD8ED00F4E4EA /* StatusBarIconLegacy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 505EC11E2C5BD8ED00F4E4EA /* StatusBarIconLegacy.swift */; }; + 505EC1212C5BD95700F4E4EA /* StatusBarIconModern.swift in Sources */ = {isa = PBXBuildFile; fileRef = 505EC1202C5BD95700F4E4EA /* StatusBarIconModern.swift */; }; 5088F70826BEA46F009E3A15 /* KextInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5088F70726BEA46F009E3A15 /* KextInfo.swift */; }; 50B86ABA24B22E9B008E4FE4 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 50B86AB824B22E9B008E4FE4 /* Localizable.strings */; }; 50C5F2D027C23074009E3F68 /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 50C5F2CF27C23074009E3F68 /* KeychainAccess */; }; @@ -28,7 +31,6 @@ 75FDF38B2481D22000B2A601 /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75FDF38A2481D22000B2A601 /* NetworkManager.swift */; }; 75FDF38C2481D25A00B2A601 /* Api.c in Sources */ = {isa = PBXBuildFile; fileRef = F8F6CF0B243D675800965B43 /* Api.c */; }; BCCB2AA4243708090005BB82 /* WiFiMenuItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCCB2AA3243708090005BB82 /* WiFiMenuItemView.swift */; }; - BCF712F9243C8BE800BE3C05 /* StatusBarIconManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCF712F8243C8BE800BE3C05 /* StatusBarIconManager.swift */; }; BCFA32EB2424D2BE00E23603 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCFA32EA2424D2BE00E23603 /* AppDelegate.swift */; }; BCFA32ED2424D2BF00E23603 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BCFA32EC2424D2BF00E23603 /* Assets.xcassets */; }; BCFA32F02424D2BF00E23603 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCFA32EE2424D2BF00E23603 /* MainMenu.xib */; }; @@ -70,6 +72,9 @@ 2181E9B524C24FF600E3C73D /* cs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; 2A66531D24B6E172002F88EE /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; 42979EFF24B3A27200F15FBD /* el */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 505EC11C2C5BD89400F4E4EA /* StatusBarIconManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarIconManager.swift; sourceTree = ""; }; + 505EC11E2C5BD8ED00F4E4EA /* StatusBarIconLegacy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarIconLegacy.swift; sourceTree = ""; }; + 505EC1202C5BD95700F4E4EA /* StatusBarIconModern.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarIconModern.swift; sourceTree = ""; }; 5088F70726BEA46F009E3A15 /* KextInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KextInfo.swift; sourceTree = ""; }; 50B86AB924B22E9B008E4FE4 /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; 50B86ABC24B22F75008E4FE4 /* zh-Hans */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; @@ -90,7 +95,6 @@ A6B1F45424B9C60A00EBBE79 /* vi */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; BCA4DFAC243A307B002A862A /* StatusMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = ""; }; BCCB2AA3243708090005BB82 /* WiFiMenuItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WiFiMenuItemView.swift; sourceTree = ""; wrapsLines = 0; }; - BCF712F8243C8BE800BE3C05 /* StatusBarIconManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarIconManager.swift; sourceTree = ""; }; BCFA32E72424D2BE00E23603 /* HeliPort.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HeliPort.app; sourceTree = BUILT_PRODUCTS_DIR; }; BCFA32EA2424D2BE00E23603 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; BCFA32EC2424D2BF00E23603 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -145,6 +149,16 @@ path = Preferences; sourceTree = ""; }; + 505EC11B2C5BD85300F4E4EA /* StatusBarIcon */ = { + isa = PBXGroup; + children = ( + 505EC11C2C5BD89400F4E4EA /* StatusBarIconManager.swift */, + 505EC11E2C5BD8ED00F4E4EA /* StatusBarIconLegacy.swift */, + 505EC1202C5BD95700F4E4EA /* StatusBarIconModern.swift */, + ); + path = StatusBarIcon; + sourceTree = ""; + }; 50F4959E24BDEB6500AE4C08 /* HeliPort Launcher */ = { isa = PBXGroup; children = ( @@ -158,9 +172,9 @@ BCF712FA243C9EB100BE3C05 /* Appearance */ = { isa = PBXGroup; children = ( + 505EC11B2C5BD85300F4E4EA /* StatusBarIcon */, 50B86AB824B22E9B008E4FE4 /* Localizable.strings */, BCFA32EE2424D2BF00E23603 /* MainMenu.xib */, - BCF712F8243C8BE800BE3C05 /* StatusBarIconManager.swift */, BCA4DFAC243A307B002A862A /* StatusMenu.swift */, BCCB2AA3243708090005BB82 /* WiFiMenuItemView.swift */, 13AB3CA724DE47D10093D283 /* WiFiConfigWindow.swift */, @@ -400,12 +414,13 @@ F336D63C24B497B6004C98C4 /* NetworkManager+Data.swift in Sources */, F33A1F3F24C8347F008ED2BD /* NSLocalizedString+Extensions.swift in Sources */, F379277124A0A52E0087FF2B /* Log.swift in Sources */, + 505EC11F2C5BD8ED00F4E4EA /* StatusBarIconLegacy.swift in Sources */, F336D63E24B4986C004C98C4 /* itl_phy_mode+Description.swift in Sources */, - BCF712F9243C8BE800BE3C05 /* StatusBarIconManager.swift in Sources */, F336D64024B7B7D8004C98C4 /* itl80211_security+Description.swift in Sources */, F3915F0724AB1A1B00E6614D /* itl_80211_state+Extensions.swift in Sources */, 5088F70826BEA46F009E3A15 /* KextInfo.swift in Sources */, F33A1F3B24C83016008ED2BD /* Alert.swift in Sources */, + 505EC1212C5BD95700F4E4EA /* StatusBarIconModern.swift in Sources */, BCFA32EB2424D2BE00E23603 /* AppDelegate.swift in Sources */, BCCB2AA4243708090005BB82 /* WiFiMenuItemView.swift in Sources */, 1380C36124D54BFD00A448CF /* PrefsSavedNetworksView.swift in Sources */, @@ -415,6 +430,7 @@ 138D3CC824CE635800793AC1 /* Commands.swift in Sources */, 13C20DFA24D8B6D100B1E713 /* PrefsGeneralView.swift in Sources */, 13AB3CA824DE47D10093D283 /* WiFiConfigWindow.swift in Sources */, + 505EC11D2C5BD89400F4E4EA /* StatusBarIconManager.swift in Sources */, 1380C36524D5580200A448CF /* PrefsWindow.swift in Sources */, 50F4959824BDD26D00AE4C08 /* LoginItemManager.swift in Sources */, F34B2B8D24AA4C1E009AB1BB /* NSMenuItem+Extensions.swift in Sources */, diff --git a/HeliPort/AppDelegate.swift b/HeliPort/AppDelegate.swift index 6616e147..8fe88696 100644 --- a/HeliPort/AppDelegate.swift +++ b/HeliPort/AppDelegate.swift @@ -23,11 +23,16 @@ class AppDelegate: NSObject, NSApplicationDelegate { checkAPI() let statusBar = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateOff") - statusBar.button?.image?.isTemplate = true - statusBar.menu = StatusMenu() - StatusBarIcon.statusBar = statusBar + let iconProvider: StatusBarIconProvider = { + if #available(macOS 11, *) { + return StatusBarIconModern() + } + return StatusBarIconLegacy() + }() + _ = StatusBarIcon.shared(statusBar: statusBar, icons: iconProvider) + + statusBar.menu = StatusMenu() } private var drv_info = ioctl_driver_info() diff --git a/HeliPort/Appearance/StatusBarIcon/StatusBarIconLegacy.swift b/HeliPort/Appearance/StatusBarIcon/StatusBarIconLegacy.swift new file mode 100644 index 00000000..b8b57d2f --- /dev/null +++ b/HeliPort/Appearance/StatusBarIcon/StatusBarIconLegacy.swift @@ -0,0 +1,41 @@ +// +// StatusBarIconLegacy.swift +// HeliPort +// +// Created by Bat.bat on 25/6/2024. +// Copyright © 2020 OpenIntelWireless. All rights reserved. +// + +/* + * This program and the accompanying materials are licensed and made available + * under the terms and conditions of the The 3-Clause BSD License + * which accompanies this distribution. The full text of the license may be found at + * https://opensource.org/licenses/BSD-3-Clause + */ + +import Cocoa + +class StatusBarIconLegacy: StatusBarIconProvider { + var transition: CATransition? { return nil } + var off: NSImage { return #imageLiteral(resourceName: "LegacyStateOff") } + var connected: NSImage { return #imageLiteral(resourceName: "LegacyStateOn") } + var disconnected: NSImage { return #imageLiteral(resourceName: "LegacyStateDisconnected") } + var warning: NSImage { return #imageLiteral(resourceName: "LegacyStateWarning") } + var scanning: [NSImage] { + return [ + #imageLiteral(resourceName: "LegacyStateScanning1"), + #imageLiteral(resourceName: "LegacyStateScanning2"), + #imageLiteral(resourceName: "LegacyStateScanning3"), + #imageLiteral(resourceName: "LegacyStateScanning4") + ] + } + + func getRssiImage(_ RSSI: Int16) -> NSImage? { + switch RSSI { + case ..<(-100): return #imageLiteral(resourceName: "LegacySignalStrengthPoor") + case ..<(-80): return #imageLiteral(resourceName: "LegacySignalStrengthFair") + case ..<(-60): return #imageLiteral(resourceName: "LegacySignalStrengthGood") + default: return #imageLiteral(resourceName: "LegacySignalStrengthExcellent") + } + } +} diff --git a/HeliPort/Appearance/StatusBarIcon/StatusBarIconManager.swift b/HeliPort/Appearance/StatusBarIcon/StatusBarIconManager.swift new file mode 100644 index 00000000..9efab1f5 --- /dev/null +++ b/HeliPort/Appearance/StatusBarIcon/StatusBarIconManager.swift @@ -0,0 +1,128 @@ +// +// StatusBarIconManager.swift +// HeliPort +// +// Created by 梁怀宇 on 2020/4/7. +// Copyright © 2020 OpenIntelWireless. All rights reserved. +// + +/* + * This program and the accompanying materials are licensed and made available + * under the terms and conditions of the The 3-Clause BSD License + * which accompanies this distribution. The full text of the license may be found at + * https://opensource.org/licenses/BSD-3-Clause + */ + +import Cocoa + +protocol StatusBarIconProvider { + var transition: CATransition? { get } + var off: NSImage { get } + var connected: NSImage { get } + var disconnected: NSImage { get } + var warning: NSImage { get } + var scanning: [NSImage] { get } + func getRssiImage(_ RSSI: Int16) -> NSImage? +} + +class StatusBarIcon { + private static var instance: StatusBarIcon? + + private let statusBar: NSStatusItem + private let icons: StatusBarIconProvider + private var timer: Timer? + private var tickIndex: Int = 0 + private var tickDirection: Int = 1 + + private init(_ statusBar: NSStatusItem, _ icons: StatusBarIconProvider) { + self.statusBar = statusBar + self.icons = icons + } + + static func shared(statusBar: NSStatusItem? = nil, icons: StatusBarIconProvider? = nil) -> StatusBarIcon { + if let instance { + return instance + } + guard let statusBar, let icons else { + fatalError("Must provide statusBar and iconProvider for the first initialization.") + } + instance = StatusBarIcon(statusBar, icons) + return instance! + } + + func on() { + stopTimer() + disconnected() + } + + func off() { + stopTimer() + statusBar.button?.image = icons.off + } + + func connected() { + stopTimer() + statusBar.button?.image = icons.connected + } + + func disconnected() { + stopTimer() + statusBar.button?.image = icons.disconnected + } + + func connecting() { + guard timer == nil else { return } + tickIndex = 0 + tickDirection = 1 + DispatchQueue.global(qos: .default).async { + self.timer = Timer.scheduledTimer( + timeInterval: 0.3, + target: self, + selector: #selector(self.tick), + userInfo: nil, + repeats: true + ) + self.timer?.fire() + RunLoop.current.add(self.timer!, forMode: .common) + RunLoop.current.run() + } + } + + func warning() { + stopTimer() + statusBar.button?.image = icons.warning + } + + func error() { + stopTimer() + statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateError") + } + + func signalStrength(rssi: Int16) { + stopTimer() + statusBar.button?.image = icons.getRssiImage(rssi) + } + + func getRssiImage(rssi: Int16) -> NSImage? { + return icons.getRssiImage(rssi) + } + + @objc private func tick() { + DispatchQueue.main.async { + if let transition = self.icons.transition { + self.statusBar.button?.layer?.add(transition, forKey: kCATransition) + } + self.statusBar.button?.image = self.icons.scanning[self.tickIndex] + + self.tickIndex += self.tickDirection + if self.tickIndex == 0 || self.tickIndex == self.icons.scanning.endIndex - 1 { + self.tickDirection *= -1 + } + } + } + + private func stopTimer() { + timer?.invalidate() + timer = nil + } +} diff --git a/HeliPort/Appearance/StatusBarIcon/StatusBarIconModern.swift b/HeliPort/Appearance/StatusBarIcon/StatusBarIconModern.swift new file mode 100644 index 00000000..4536cd2c --- /dev/null +++ b/HeliPort/Appearance/StatusBarIcon/StatusBarIconModern.swift @@ -0,0 +1,44 @@ +// +// StatusBarIconModern.swift +// HeliPort +// +// Created by Bat.bat on 25/6/2024. +// Copyright © 2024 OpenIntelWireless. All rights reserved. +// + +/* + * This program and the accompanying materials are licensed and made available + * under the terms and conditions of the The 3-Clause BSD License + * which accompanies this distribution. The full text of the license may be found at + * https://opensource.org/licenses/BSD-3-Clause + */ + +import Cocoa + +class StatusBarIconModern: StatusBarIconProvider { + var transition: CATransition? { + let transition = CATransition() + transition.type = .fade + transition.duration = 0.2 + return transition + } + var off: NSImage { return #imageLiteral(resourceName: "ModernStateOff") } + var connected: NSImage { return #imageLiteral(resourceName: "ModernStateOn") } + var disconnected: NSImage { return #imageLiteral(resourceName: "ModernStateDisconnected") } + var warning: NSImage { return #imageLiteral(resourceName: "ModernStateWarning") } + var scanning: [NSImage] { + return [ + #imageLiteral(resourceName: "ModernStateScanning1"), + #imageLiteral(resourceName: "ModernStateScanning2"), + #imageLiteral(resourceName: "ModernStateScanning3") + ] + } + + func getRssiImage(_ RSSI: Int16) -> NSImage? { + switch RSSI { + case ..<(-90): return #imageLiteral(resourceName: "ModernSignalStrengthPoor") + case ..<(-70): return #imageLiteral(resourceName: "ModernSignalStrengthFair") + default: return #imageLiteral(resourceName: "ModernSignalStrengthGood") + } + } +} diff --git a/HeliPort/Appearance/StatusBarIconManager.swift b/HeliPort/Appearance/StatusBarIconManager.swift deleted file mode 100644 index d64cbffa..00000000 --- a/HeliPort/Appearance/StatusBarIconManager.swift +++ /dev/null @@ -1,125 +0,0 @@ -// -// StatusBarIconManager.swift -// HeliPort -// -// Created by 梁怀宇 on 2020/4/7. -// Copyright © 2020 OpenIntelWireless. All rights reserved. -// - -/* - * This program and the accompanying materials are licensed and made available - * under the terms and conditions of the The 3-Clause BSD License - * which accompanies this distribution. The full text of the license may be found at - * https://opensource.org/licenses/BSD-3-Clause - */ - -import Foundation -import Cocoa - -class StatusBarIcon: NSObject { - static var statusBar: NSStatusItem! - static var timer: Timer? - static var count: Int = 8 - static func on() { - timer?.invalidate() - timer = nil - disconnected() - } - - class func off() { - timer?.invalidate() - timer = nil - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateOff") - } - - class func connected() { - timer?.invalidate() - timer = nil - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateOn") - } - - class func disconnected() { - timer?.invalidate() - timer = nil - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateDisconnected") - } - - class func connecting() { - if timer != nil { - return - } - let queue = DispatchQueue.global(qos: .default) - queue.async { - self.timer = Timer.scheduledTimer( - timeInterval: 0.3, - target: self, - selector: #selector(self.tick), - userInfo: nil, - repeats: true - ) - let currentRunLoop = RunLoop.current - currentRunLoop.add( - self.timer!, - forMode: .common - ) - currentRunLoop.run() - } - } - - class func warning() { - timer?.invalidate() - timer = nil - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateWarning") - } - - class func error() { - timer?.invalidate() - timer = nil - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateError") - } - - class func signalStrength(rssi: Int16) { - timer?.invalidate() - timer = nil - let signalImage = getRssiImage(rssi) - statusBar.button?.image = signalImage - } - - @objc class func tick() { - DispatchQueue.main.async { - StatusBarIcon.count -= 1 - switch StatusBarIcon.count { - case 7: - statusBar.button?.image = #imageLiteral(resourceName: "WiFiSignalStrengthPoor") - case 6: - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateScanning2") - case 5: - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateScanning3") - case 4: - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateScanning4") - case 3: - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateScanning3") - case 2: - statusBar.button?.image = #imageLiteral(resourceName: "WiFiStateScanning2") - StatusBarIcon.count = 8 - default: - return - } - } - } - - class func getRssiImage(_ RSSI: Int16) -> NSImage? { - var signalImageName: NSImage - switch RSSI { - case ..<(-100): - signalImageName = #imageLiteral(resourceName: "WiFiStateScanning1") - case ..<(-80): - signalImageName = #imageLiteral(resourceName: "WiFiSignalStrengthFair") - case ..<(-60): - signalImageName = #imageLiteral(resourceName: "WiFiSignalStrengthGood") - default: - signalImageName = #imageLiteral(resourceName: "WiFiStateOn") - } - return signalImageName - } -} diff --git a/HeliPort/Appearance/StatusMenu.swift b/HeliPort/Appearance/StatusMenu.swift index a1280307..75f7cd16 100644 --- a/HeliPort/Appearance/StatusMenu.swift +++ b/HeliPort/Appearance/StatusMenu.swift @@ -43,17 +43,17 @@ final class StatusMenu: NSMenu, NSMenuDelegate { switch status { case ITL80211_S_INIT: - StatusBarIcon.disconnected() + StatusBarIcon.shared().disconnected() case ITL80211_S_AUTH, ITL80211_S_ASSOC: - StatusBarIcon.connecting() + StatusBarIcon.shared().connecting() case ITL80211_S_RUN: DispatchQueue.global(qos: .background).async { let isReachable = NetworkManager.isReachable() var staInfo = station_info_t() get_station_info(&staInfo) DispatchQueue.main.async { - guard isReachable else { StatusBarIcon.warning(); return } - StatusBarIcon.signalStrength(rssi: staInfo.rssi) + guard isReachable else { StatusBarIcon.shared().warning(); return } + StatusBarIcon.shared().signalStrength(rssi: staInfo.rssi) } } case ITL80211_S_SCAN: @@ -62,9 +62,9 @@ final class StatusMenu: NSMenu, NSMenuDelegate { * will never change to ITL80211_S_SCAN unless users manually disassociate. * Set the icon to disconnected here so it displays correctly when users manually disassociate. */ - StatusBarIcon.disconnected() + StatusBarIcon.shared().disconnected() default: - StatusBarIcon.error() + StatusBarIcon.shared().error() } } } @@ -159,7 +159,7 @@ final class StatusMenu: NSMenu, NSMenuDelegate { statusItem.title = newState ? .wifiOn : .wifiOff switchItem.title = newState ? .turnWiFiOff : .turnWiFiOn if newState != isNetworkCardEnabled { - newState ? StatusBarIcon.on() : StatusBarIcon.off() + newState ? StatusBarIcon.shared().on() : StatusBarIcon.shared().off() self.isNetworkListEmpty = true } } diff --git a/HeliPort/Appearance/WiFiMenuItemView.swift b/HeliPort/Appearance/WiFiMenuItemView.swift index 95a409a5..7f36c853 100644 --- a/HeliPort/Appearance/WiFiMenuItemView.swift +++ b/HeliPort/Appearance/WiFiMenuItemView.swift @@ -115,7 +115,7 @@ class WifiMenuItemView: NSView { willSet(networkInfo) { ssidLabel.stringValue = networkInfo.ssid lockImage.isHidden = networkInfo.auth.security == ITL80211_SECURITY_NONE - signalImage.image = StatusBarIcon.getRssiImage(Int16(networkInfo.rssi)) + signalImage.image = StatusBarIcon.shared().getRssiImage(rssi: Int16(networkInfo.rssi)) layoutSubtreeIfNeeded() } } diff --git a/HeliPort/Assets.xcassets/Contents.json b/HeliPort/Assets.xcassets/Contents.json index da4a164c..73c00596 100644 --- a/HeliPort/Assets.xcassets/Contents.json +++ b/HeliPort/Assets.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/HeliPort/Assets.xcassets/HoverColor.colorset/Contents.json b/HeliPort/Assets.xcassets/HoverColor.colorset/Contents.json new file mode 100644 index 00000000..3288c2f7 --- /dev/null +++ b/HeliPort/Assets.xcassets/HoverColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.150", + "blue" : "0.100", + "green" : "0.100", + "red" : "0.100" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.270", + "blue" : "0.900", + "green" : "0.900", + "red" : "0.900" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HeliPort/Assets.xcassets/SignalBackgroundColor.colorset/Contents.json b/HeliPort/Assets.xcassets/SignalBackgroundColor.colorset/Contents.json new file mode 100644 index 00000000..29201e2b --- /dev/null +++ b/HeliPort/Assets.xcassets/SignalBackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.150", + "blue" : "0.250", + "green" : "0.250", + "red" : "0.250" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.250", + "blue" : "0.750", + "green" : "0.750", + "red" : "0.750" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HeliPort/Assets.xcassets/WiFiLegacy/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiLegacy/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthExcellent.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthExcellent.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthExcellent.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthExcellent.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthExcellent.imageset/WiFiSignalStrengthExcellent@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthFair.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthFair.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthFair.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthFair.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthFair.imageset/WiFiSignalStrengthFair.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthFair.imageset/WiFiSignalStrengthFair.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthFair.imageset/WiFiSignalStrengthFair.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthFair.imageset/WiFiSignalStrengthFair.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthFair.imageset/WiFiSignalStrengthFair@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthFair.imageset/WiFiSignalStrengthFair@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthFair.imageset/WiFiSignalStrengthFair@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthFair.imageset/WiFiSignalStrengthFair@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthGood.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthGood.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthGood.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthGood.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthGood.imageset/WiFiSignalStrengthGood.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthGood.imageset/WiFiSignalStrengthGood.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthGood.imageset/WiFiSignalStrengthGood.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthGood.imageset/WiFiSignalStrengthGood.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthGood.imageset/WiFiSignalStrengthGood@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthGood.imageset/WiFiSignalStrengthGood@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthGood.imageset/WiFiSignalStrengthGood@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthGood.imageset/WiFiSignalStrengthGood@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthPoor.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthPoor.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthPoor.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthPoor.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthPoor.imageset/WiFiSignalStrengthPoor.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthPoor.imageset/WiFiSignalStrengthPoor.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthPoor.imageset/WiFiSignalStrengthPoor.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthPoor.imageset/WiFiSignalStrengthPoor.png diff --git a/HeliPort/Assets.xcassets/WiFiSignalStrengthPoor.imageset/WiFiSignalStrengthPoor@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthPoor.imageset/WiFiSignalStrengthPoor@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiSignalStrengthPoor.imageset/WiFiSignalStrengthPoor@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacySignalStrengthPoor.imageset/WiFiSignalStrengthPoor@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateDisconnected.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateDisconnected.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateDisconnected.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateDisconnected.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateDisconnected.imageset/WiFiStateDisconnected.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateDisconnected.imageset/WiFiStateDisconnected.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateDisconnected.imageset/WiFiStateDisconnected.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateDisconnected.imageset/WiFiStateDisconnected.png diff --git a/HeliPort/Assets.xcassets/WiFiStateDisconnected.imageset/WiFiStateDisconnected@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateDisconnected.imageset/WiFiStateDisconnected@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateDisconnected.imageset/WiFiStateDisconnected@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateDisconnected.imageset/WiFiStateDisconnected@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateOff.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOff.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateOff.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOff.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateOff.imageset/WiFiStateOff.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOff.imageset/WiFiStateOff.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateOff.imageset/WiFiStateOff.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOff.imageset/WiFiStateOff.png diff --git a/HeliPort/Assets.xcassets/WiFiStateOff.imageset/WiFiStateOff@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOff.imageset/WiFiStateOff@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateOff.imageset/WiFiStateOff@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOff.imageset/WiFiStateOff@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateOn.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOn.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateOn.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOn.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateOn.imageset/WiFiStateOn.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOn.imageset/WiFiStateOn.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateOn.imageset/WiFiStateOn.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOn.imageset/WiFiStateOn.png diff --git a/HeliPort/Assets.xcassets/WiFiStateOn.imageset/WiFiStateOn@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOn.imageset/WiFiStateOn@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateOn.imageset/WiFiStateOn@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateOn.imageset/WiFiStateOn@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning1.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning1.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning1.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning1.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning1.imageset/WiFiStateScanning1.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning1.imageset/WiFiStateScanning1.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning1.imageset/WiFiStateScanning1.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning1.imageset/WiFiStateScanning1.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning1.imageset/WiFiStateScanning1@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning1.imageset/WiFiStateScanning1@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning1.imageset/WiFiStateScanning1@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning1.imageset/WiFiStateScanning1@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning2.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning2.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning2.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning2.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning2.imageset/WiFiStateScanning2.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning2.imageset/WiFiStateScanning2.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning2.imageset/WiFiStateScanning2.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning2.imageset/WiFiStateScanning2.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning2.imageset/WiFiStateScanning2@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning2.imageset/WiFiStateScanning2@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning2.imageset/WiFiStateScanning2@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning2.imageset/WiFiStateScanning2@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning3.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning3.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning3.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning3.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning3.imageset/WiFiStateScanning3.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning3.imageset/WiFiStateScanning3.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning3.imageset/WiFiStateScanning3.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning3.imageset/WiFiStateScanning3.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning3.imageset/WiFiStateScanning3@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning3.imageset/WiFiStateScanning3@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning3.imageset/WiFiStateScanning3@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning3.imageset/WiFiStateScanning3@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning4.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning4.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning4.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning4.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning4.imageset/WiFiStateScanning4.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning4.imageset/WiFiStateScanning4.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning4.imageset/WiFiStateScanning4.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning4.imageset/WiFiStateScanning4.png diff --git a/HeliPort/Assets.xcassets/WiFiStateScanning4.imageset/WiFiStateScanning4@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning4.imageset/WiFiStateScanning4@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateScanning4.imageset/WiFiStateScanning4@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateScanning4.imageset/WiFiStateScanning4@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiStateWarning.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateWarning.imageset/Contents.json similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateWarning.imageset/Contents.json rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateWarning.imageset/Contents.json diff --git a/HeliPort/Assets.xcassets/WiFiStateWarning.imageset/WiFiStateWarning.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateWarning.imageset/WiFiStateWarning.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateWarning.imageset/WiFiStateWarning.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateWarning.imageset/WiFiStateWarning.png diff --git a/HeliPort/Assets.xcassets/WiFiStateWarning.imageset/WiFiStateWarning@2x.png b/HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateWarning.imageset/WiFiStateWarning@2x.png similarity index 100% rename from HeliPort/Assets.xcassets/WiFiStateWarning.imageset/WiFiStateWarning@2x.png rename to HeliPort/Assets.xcassets/WiFiLegacy/LegacyStateWarning.imageset/WiFiStateWarning@2x.png diff --git a/HeliPort/Assets.xcassets/WiFiModern/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/Contents.json new file mode 100644 index 00000000..8b5829c7 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiSignalStrengthFair.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/WiFiSignalStrengthFair.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/WiFiSignalStrengthFair.svg new file mode 100644 index 00000000..6afdff30 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthFair.imageset/WiFiSignalStrengthFair.svg @@ -0,0 +1,20 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/Contents.json new file mode 100644 index 00000000..fed19471 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiSignalStrengthGood.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/WiFiSignalStrengthGood.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/WiFiSignalStrengthGood.svg new file mode 100644 index 00000000..d5e11fd5 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthGood.imageset/WiFiSignalStrengthGood.svg @@ -0,0 +1,19 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/Contents.json new file mode 100644 index 00000000..e069ea3e --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiSignalStrengthPoor.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/WiFiSignalStrengthPoor.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/WiFiSignalStrengthPoor.svg new file mode 100644 index 00000000..fcdaccea --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernSignalStrengthPoor.imageset/WiFiSignalStrengthPoor.svg @@ -0,0 +1,21 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/Contents.json new file mode 100644 index 00000000..fbd5a8a6 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateDisconnected.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/WiFiStateDisconnected.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/WiFiStateDisconnected.svg new file mode 100644 index 00000000..2c899814 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateDisconnected.imageset/WiFiStateDisconnected.svg @@ -0,0 +1,22 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/Contents.json new file mode 100644 index 00000000..34187179 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateOff.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/WiFiStateOff.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/WiFiStateOff.svg new file mode 100644 index 00000000..17fe4523 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOff.imageset/WiFiStateOff.svg @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/Contents.json new file mode 100644 index 00000000..13d4d252 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateOn.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/WiFiStateOn.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/WiFiStateOn.svg new file mode 100644 index 00000000..d5e11fd5 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateOn.imageset/WiFiStateOn.svg @@ -0,0 +1,19 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/Contents.json new file mode 100644 index 00000000..88ac6966 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateScanning1.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/WiFiStateScanning1.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/WiFiStateScanning1.svg new file mode 100644 index 00000000..fcdaccea --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning1.imageset/WiFiStateScanning1.svg @@ -0,0 +1,21 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/Contents.json new file mode 100644 index 00000000..3facb1b5 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateScanning2.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/WiFiStateScanning2.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/WiFiStateScanning2.svg new file mode 100644 index 00000000..819ea3de --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning2.imageset/WiFiStateScanning2.svg @@ -0,0 +1,21 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/Contents.json new file mode 100644 index 00000000..d6be7883 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateScanning3.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/WiFiStateScanning3.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/WiFiStateScanning3.svg new file mode 100644 index 00000000..066bbb21 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateScanning3.imageset/WiFiStateScanning3.svg @@ -0,0 +1,21 @@ + + + + + diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/Contents.json b/HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/Contents.json new file mode 100644 index 00000000..54efd720 --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "WiFiStateWarning.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/WiFiStateWarning.svg b/HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/WiFiStateWarning.svg new file mode 100644 index 00000000..27002b9e --- /dev/null +++ b/HeliPort/Assets.xcassets/WiFiModern/ModernStateWarning.imageset/WiFiStateWarning.svg @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/HeliPort/NetworkManager.swift b/HeliPort/NetworkManager.swift index ba9314e2..90384a4e 100644 --- a/HeliPort/NetworkManager.swift +++ b/HeliPort/NetworkManager.swift @@ -39,7 +39,7 @@ final class NetworkManager { let getAuthInfoCallback: (_ auth: NetworkAuth, _ savePassword: Bool) -> Void = { auth, savePassword in DispatchQueue.global(qos: .background).async { - StatusBarIcon.connecting() + StatusBarIcon.shared().connecting() let result = connect_network(networkInfo.ssid, auth.password) DispatchQueue.main.async { if result { diff --git a/README.md b/README.md index dc6c071f..50e63c76 100644 --- a/README.md +++ b/README.md @@ -60,4 +60,5 @@ We desperately need contributors to help us improve this project, any help will - [@igorkulman](https://github.com/igorkulman) for code refactoring, password management and more - [@zxystd](https://github.com/zxystd) for writing [itlwm](https://github.com/OpenIntelWireless/itlwm) and APIs - [Everyone](https://github.com/OpenIntelWireless/HeliPort/pulls?q=is%3Apr+label%3Adocumentation+is%3Aclosed) who contributed to localization files -- All WiFi icons are from +- Legacy WiFi icons are from +- Modern WiFi icons are from (MIT License)