Commit graph

51 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
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
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
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
f12eed755d Config cleanup 2023-11-26 12:54:45 -08: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
3b76207247 Improved localization helper for strings 2023-05-05 09:27:24 -07:00
Garth Vander Houwen
e2796aac92 Add wake on tap or motion to display config 2023-03-25 00:41:57 -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
94723c07c2 Update protos 2023-03-14 19:16:04 -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
Garth Vander Houwen
3e779217d5 Pass admin channel index properly to most admin messages 2023-02-03 07:29:12 -08:00
Garth Vander Houwen
9112e5cde2 Properly disable forms when there is not an associated config 2023-01-31 22:59:43 -08:00
Garth Vander Houwen
5165548e05 Admin messages, improved role picker 2023-01-31 22:08:03 -08:00
Garth Vander Houwen
8141a36e06 Dont ever save positions at apple park
implement display mode
2023-01-25 23:01:45 -08:00
Garth Vander Houwen
cd0fdec368 localize save config string 2023-01-09 18:34:43 -08:00
Garth Vander Houwen
76e7eef10c Localize config save confirm 2022-12-30 11:08:59 -08:00
Garth Vander Houwen
5da522b911 More strings 2022-12-13 08:47:14 -08:00
Garth Vander Houwen
30a2898776 More strings 2022-12-13 07:49:46 -08:00
Garth Vander Houwen
0892214bcd Start of localization 2022-12-12 20:35:38 -08:00
Garth Vander Houwen
d9243f5a00 Add oled type override to display settings
Add button to close share channels help on mac
2022-12-11 14:14:08 -08:00
Garth Vander Houwen
c7a9883808 Go back to settings view after saving from a config view
Allow setting of a fixed ble pin
Fix bug that did not show devices to connect to after some failed connections
2022-12-09 18:19:00 -08:00
Garth Vander Houwen
861d824183 Navigation Stack view cleanup 2022-11-29 22:28:52 -08:00
Garth Vander Houwen
091874a9f2 Add flip screen display config option 2022-10-22 08:45:53 -07:00
Garth Vander Houwen
0d1e92189e Send user to set region on BLE connect if region is unset 2022-10-18 13:53:50 -07:00
Garth Vander Houwen
27a90c4dc4 Fix assorted nulls 2022-09-27 22:18:50 -07:00
Garth Vander Houwen
07f28252fd Move enums, add distance to node list work on BLE settings 2022-08-20 12:15:14 -07:00
Garth Vander Houwen
d7819b7404 Set wantAck to true for all admin messages, hook up waypoint to position in messages 2022-08-12 08:58:10 -07:00
Garth Vander Houwen
56da04827a New protos and assorted bug fixes 2022-08-11 23:34:09 -07:00
Garth Vander Houwen
602ff58db8 Extra logging for config packets 2022-08-07 08:31:39 -07:00
Garth Vander Houwen
f21a85d8e1 Check for nil nodes and config 2022-07-11 16:18:16 -07:00
Garth Vander Houwen
ddfcea4ace Handle empty positions, allow nrf52 saving for telemetry 2022-07-07 00:29:52 -07:00
Garth Vander Houwen
3553ee7076 Hook up admin messages to config updates 2022-07-02 19:50:08 -07:00
Garth Vander Houwen
b1250db164 Add DFU stubs, fix all the connected node indictors to be 4 bytes max 2022-07-01 19:44:25 -07:00
Garth Vander Houwen
ce35f49b7c More complete module configuration previews, less prone to crashing settings page 2022-07-01 10:57:54 -07:00
Garth Vander Houwen
7317b6fbe4 More settings updates 2022-06-29 20:04:20 -07:00
Garth Vander Houwen
6b10e9aabe Assorted updates 2022-06-28 06:56:50 -07:00