Meshtastic-Apple/Meshtastic/Views/Settings/About.swift
Blake McAnally 4d547e48db This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation.
After this change, a developer can now clone the project and run without the build failing due to lint errors! 😃

* I ran `swiftlint --fix` to resolve many auto-correctable issues (mostly whitespace)
* Excluded the `Meshtastic/Protobufs` directory from lint, since that code is automatically generated.
* Converted some single letter method parameters to lowercase.
* Converted several instances `force_cast` to instead use `guard` or `if let` to unwrap optional values. During this change, some of the SwiftUI views became "too complex to be solved in a reasonable time", so I broke up the views into distinct sub-expressions.

I was able to build and run the app on an iOS simulator.
2024-05-31 21:48:50 -05:00

68 lines
1.9 KiB
Swift

//
// About.swift
// Meshtastic
//
// Copyright(c) Garth Vander Houwen 10/6/22.
//
import SwiftUI
import StoreKit
struct AboutMeshtastic: View {
let locale = Locale.current
var body: some View {
VStack {
List {
Section(header: Text("What is Meshtastic?")) {
Text("An open source, off-grid, decentralized, mesh network that runs on affordable, low-power radios.")
.font(.title3)
}
Section(header: Text("Apple Apps")) {
if locale.region?.identifier ?? "US" == "US" {
HStack {
Image("SOLAR_NODE")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 75)
.cornerRadius(5)
.padding()
VStack(alignment: .leading) {
Link("Buy Complete Radios", destination: URL(string: "http://garthvh.com")!)
.font(.title2)
Text("Get custom waterproof solar and detection sensor router nodes, aluminium desktop nodes and rugged handsets.")
.font(.callout)
}
}
}
Link("Help with App Development", destination: URL(string: "https://github.com/meshtastic/Meshtastic-Apple")!)
.font(.title2)
Button("Review the app") {
if let scene = UIApplication.shared.connectedScenes
.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
}
.font(.title2)
Text("Version: \(Bundle.main.appVersionLong) (\(Bundle.main.appBuild)) ")
}
Section(header: Text("Project information")) {
Link("Website", destination: URL(string: "https://meshtastic.org")!)
.font(.title2)
Link("Documentation", destination: URL(string: "https://meshtastic.org/docs/getting-started")!)
.font(.title2)
}
Text("Meshtastic® Copyright Meshtastic LLC")
.font(.caption)
}
}
.navigationTitle("about")
.navigationBarTitleDisplayMode(.inline)
}
}