Commit graph

73 commits

Author SHA1 Message Date
Blake McAnally
b011cbde42 Create dedicated data layer types for querying and updating CoreData 2024-07-10 16:03:38 -05:00
Garth Vander Houwen
09dfc90266 Fix disable channel crash, use a switch to make generate qr code more readable 2024-07-07 09:40:06 -07:00
Garth Vander Houwen
0b7dfc2227 Fix channel delete bug 2024-07-02 09:28:55 -07: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
Garth Vander Houwen
51929b3a35 Swiftlint fixes 2024-06-02 18:32:14 -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
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
2627858e33 Fix some crashes 2024-04-19 13:36:17 -07:00
Garth Vander Houwen
2b785b66b0 PINK! 2024-04-10 19:59:35 -07:00
Garth Vander Houwen
6144786cf9 Move all app settings to the settings bundle and link from the app settings view
Add enter shortcut to alert ok buttons on the node list
2024-04-10 18:43:24 -07:00
Garth Vander Houwen
7cdf77ba2e Delete nodes on that channel when deleting a channel 2024-04-03 13:33:55 -07:00
Garth Vander Houwen
6a41cf63be Put qr code experiment in place, fix up channel editor 2024-04-02 21:49:36 -07:00
Garth Vander Houwen
78c0bca781 Add favorite and distance filter to the node list 2024-04-02 06:17:03 -07:00
Garth Vander Houwen
ee891f62c7 Add channel fixes 2024-04-01 12:16:09 -07:00
Garth Vander Houwen
d64acccc3e Remove VIP, clean up add channel method 2024-04-01 10:51:06 -07:00
Garth Vander Houwen
8528f08572 Convert channels to use the selected pattern for the sheet 2024-03-17 10:26:42 -07:00
Garth Vander Houwen
8d2b705068 Split channel form out into its own view 2024-03-17 10:08:03 -07:00
Garth Vander Houwen
989b6c41e5 Add 1 byte key to channel validation. 2024-03-10 00:25:02 -08:00
Garth Vander Houwen
2ba208fa8e Bump version and protos 2024-03-09 20:07:12 -08:00
Garth Vander Houwen
d3d16e206e Release Cleanup
Add back block range test functionaitly, hook it up to the device range test settings.
Delete messages when deleting a channel
Make pax counter clear work properly
2024-02-27 11:26:26 -08:00
Garth Vander Houwen
5d9b25b0aa Polish up the reduced position accuracy 2024-02-25 00:36:03 -08:00
Garth Vander Houwen
85c2a9e938 Hook up the position precision channel settings 2024-02-24 22:33:11 -08:00
Garth Vander Houwen
e462055ad7 Reduced precision map circles for the node map 2024-02-24 16:25:08 -08:00
Garth Vander Houwen
5a0f180acf Update protobufs, hook up precision 2024-02-24 14:11:03 -08:00
Garth Vander Houwen
c61d39a7e1 Pull device hardware from a local json file 2024-02-24 10:43:15 -08:00
Garth Vander Houwen
3798cd43be Channel Location Precision mockup 2024-02-23 23:18:48 -08:00
Garth Vander Houwen
4288415cf1 Sliding into channels 2024-02-23 16:08:01 -08:00
Garth Vander Houwen
dd1c1522b5 Handle duty cycle of 0 for UNSET region 2024-02-21 17:42:46 -08:00
Garth Vander Houwen
79d5aab240 Stop clearing channels on each connect 2024-02-20 21:24:32 -08:00
Garth Vander Houwen
15ee57f23b Add a function to find the first missing channel index and use it. 2024-02-20 19:20:21 -08:00
Garth Vander Houwen
3c623d3441 Traceroute has position flag
Fix MQTT server port crash
Adjust device metrics grid colums
Fix some index issues in the channel editor
Clean up settings view, add duty cycle warning
2024-02-20 18:50:49 -08:00
Garth Vander Houwen
bfd71ca263 array of restricted channels for messages 2024-02-17 14:46:09 -08:00
Garth Vander Houwen
3409de0da4 Use a segmented picker so you can see the disabled role 2024-02-16 21:43:29 -08:00
Garth Vander Houwen
a18905eedb Show the whole key 2024-02-16 21:20:19 -08:00
Garth Vander Houwen
069239e1b8 Channel Key validation 2024-02-16 21:11:57 -08:00
Garth Vander Houwen
2b15fd93a6 Default to 128bit keys 2024-02-06 10:04:04 -08:00
Garth Vander Houwen
350ec121d7 Revert broken channel key validation
Remove block range test
Add notes that router role is not for mobile nodes
2024-01-28 09:36:19 -08:00
Garth Vander Houwen
6034d90360 Add some padding to the channel key validation 2024-01-24 10:40:26 -08:00
Ed Haber
12ee105106 Allow users to enter an existing key when adding a channel
Allow the key field to be edited by a user and validate that the user supplied key is valid base64 encoded and the correct key length.
2024-01-19 14:13:51 -05:00
Garth Vander Houwen
1437f1b5e4 Make channel key text so selection works properly 2024-01-14 22:03:02 -08:00
Garth Vander Houwen
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
24868b4a28 Assorted updates 2023-11-26 10:45:03 -08:00
Garth Vander Houwen
b6cfd07000 Question everything 2023-09-02 17:37:35 -07:00
Garth Vander Houwen
42cc9725b2 Simplify circle text so they are all consistant 2023-09-01 00:22:30 -07:00
Garth Vander Houwen
59d05a533b Lint fixes 2023-03-14 13:01:35 -07:00
Garth Vander Houwen
93006b258d Swift Lint 2023-03-14 12:44:10 -07:00
Garth Vander Houwen
b7a68ddbc7 Linting 2023-03-06 15:30:10 -08:00
Garth Vander Houwen
05c00aeb20 Lint! 2023-03-06 13:26:04 -08:00