Commit graph

88 commits

Author SHA1 Message Date
Blake McAnally
fbf059be6a Refactor BLEManager.context setting on all the views, and just do that at the app root instead 2024-07-15 15:57:44 -05:00
Blake McAnally
58da532d32 Extract the generated protobufs into its own Swift package
This change modifies the process for generating and integrating the Meshtastic protobufs into the client application.

* The generated Swift code is now in a local SPM package `MeshtasticProtobufs`
* An Xcode Workspace file `Meshtastic.xcworkspace` was created to more easily manage the new build targets.
* The code generation script for the protos was modified to generate the Swift code into the new location.
* The README.md was updated to reflect these changes.

NOTE: After merging this PR, do not open the project file `Meshtastic.xcodeproj`. You must use the workspace `Meshtastic.xcworkspace`

Extracting out the generated protobuf code into its own library enables several opportunities for the project. This is just a first step, but with some more modularization, a standalone Apple Watch app or other targets starts to become a little bit more achievable to implement.

After extracting the protobufs into a Swift package, I validate these changes by building and running the Meshtastic app to an iPhone 15 Pro Max, and tried changing some settings on a local node. I then messaged back and forth using two local nodes connected to two different iOS devices.
2024-06-28 11:11:01 -05:00
Garth Vander Houwen
d6f5c77b1a position config 2024-06-23 14:40:28 -07:00
Garth Vander Houwen
847892d45d Log categories 2024-06-03 02:17:55 -07:00
Blake McAnally
4c7cd0d923 Adopt OSLog for logging and replace the majority of calls to print() 2024-06-01 11:30:29 -05:00
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
Garth Vander Houwen
8e07453afd Hid fixed postion checkbox if managing a node over the admin channel 2024-05-11 10:50:58 -07:00
Garth Vander Houwen
08ea85d717 Re order gps mode toggle
add additional position precision options
Updated fixed postion text
2024-05-04 16:03:38 -07:00
Garth Vander Houwen
a27ab21101 Remove extra log 2024-05-04 14:46:42 -07:00
Garth Vander Houwen
cd0ee611eb Remove positions when removing fixed position 2024-05-04 14:27:31 -07:00
Garth Vander Houwen
016a3b748f Clean up fixed position logging 2024-05-04 13:57:35 -07:00
Garth Vander Houwen
5299e75f60 Compact mqtt popover 2024-04-11 19:30:05 -07:00
Garth Vander Houwen
7c022813a2 Fixed position updates 2024-03-27 16:06:24 -07:00
Garth Vander Houwen
1c9d9b65b5 Hook up ui for new fixed position set and remove admin messages. 2024-03-26 23:36:11 -07:00
Garth Vander Houwen
7eb6659c0c Move fetch requests to mapcontent 2024-03-25 15:21:38 -07:00
Garth Vander Houwen
5d9b25b0aa Polish up the reduced position accuracy 2024-02-25 00:36:03 -08:00
Garth Vander Houwen
ed1214891b Add new protobufs, update all the config layouts 2024-02-21 23:35:28 -08:00
Garth Vander Houwen
a5d4f62ca4 Clean up descriptive text to be the same font and color on all the config views 2024-02-21 20:41:27 -08:00
Austin Payne
0daf9185e7 refactor: add SaveConfigButton view for settings 2024-02-21 00:07:17 -07:00
Austin Payne
c3cede2d76 refactor: add ConfigHeader view for settings 2024-02-21 00:07:17 -07:00
Garth Vander Houwen
52af088d8c Bump version, fix mqtt port bug, make connected node details smaller on all the settings views, clean up text on position config view 2024-02-19 21:39:53 -08:00
Garth Vander Houwen
48ef2e656c Add node info broadcast interval 2024-02-12 22:09:22 -08:00
Garth Vander Houwen
718842bafb Localize new settings 2024-02-06 16:47:12 -08:00
Garth Vander Houwen
8f6e1a2d0d Add app smart position and setting
Update protobufs
Use new GPS tri state on position config
2024-02-05 21:46:16 -08:00
Garth Vander Houwen
bc3fc5e50c Add 48 as a GPIO pin 2024-01-22 13:21:17 -08:00
Garth Vander Houwen
2c76631681 Move advanced altitude flags to advanced. 2024-01-18 10:14:51 -08:00
Garth Vander Houwen
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
1792de5d4a Add extra gpio pins 2024-01-13 20:48:30 -08:00
Garth Vander Houwen
6595fdfe3c Allow sending positions over all channels 2024-01-13 09:35:38 -08:00
Garth Vander Houwen
a60228d119 Put GPS setting in the right place 2023-12-21 11:31:40 -08:00
Garth Vander Houwen
126cdfbdb3 Settings rework - new async location handler 2023-12-06 12:32:17 -08:00
Garth Vander Houwen
67900bfa51 Remove GPS Update interval
Remove GPS Attempt Time options
Don't show positions with empty times in the elevation graph
Hook up ambient lighitng config
2023-11-28 20:03:08 -08:00
Garth Vander Houwen
0b11f8ed7d Assorted cleanup 2023-09-19 17:06:47 -07:00
Garth Vander Houwen
b6cfd07000 Question everything 2023-09-02 17:37:35 -07:00
Garth Vander Houwen
a990d7f2bd Lint 2023-08-26 23:17:30 -07:00
Garth Vander Houwen
24e69733f3 save gps pins 2023-08-10 12:14:25 -07:00
Garth Vander Houwen
3b76207247 Improved localization helper for strings 2023-05-05 09:27:24 -07:00
Garth Vander Houwen
b455fb25c6 Bump GPIO Pickers to 45 2023-04-03 17:48:58 -07:00
Garth Vander Houwen
6361ff3385 Smart position for packets sent from phone to device 2023-03-28 14:52:11 -07:00
Garth Vander Houwen
23f2fc5136 Clean up form for position config 2023-03-28 06:50:23 -07:00
Garth Vander Houwen
faf780a09a Add milliseconds to ack time
move device GPS config to the bottom
2023-03-27 17:41:34 -07:00
Garth Vander Houwen
0e677d1735 Updates for new position settings 2023-03-27 17:04:24 -07:00
Garth Vander Houwen
7f207bff27 Smart broadcast updates 2023-03-27 10:43:01 -07:00
Garth Vander Houwen
9059ceba55 Fix real time loading of all remote admin view 2023-03-19 18:37:23 -07:00
Garth Vander Houwen
416960388f Fix admin channel bug 2023-03-15 09:27:33 -07:00
Garth Vander Houwen
93006b258d Swift Lint 2023-03-14 12:44:10 -07:00
Garth Vander Houwen
b336307a22 ACK!
Admin message status content if you have an admin channel
2023-03-13 19:17:43 -07:00
Garth Vander Houwen
fdade220de SwiftLint Whitespace fixes 2023-03-06 10:33:18 -08:00
Garth Vander Houwen
4006de8696 Prevent some crashes 2023-03-05 14:40:07 -08:00
Garth Vander Houwen
af90966900 Fix getNodeInfo method that was the source of nil nodes 2023-02-06 18:45:03 -08:00