Commit graph

2308 commits

Author SHA1 Message Date
James Rich
2f13aee171
feat: Use node colors for contact chip (#1891) 2025-05-21 04:30:11 +00:00
James Rich
9e2fb3792f
fix(#1874): Check that Meshtastic URL is for a channel set (#1890) 2025-05-21 03:42:29 +00:00
James Rich
e1c1cef79b
fix: Ensure handleReceivedUser is called when adding contacts (#1886) 2025-05-21 03:34:52 +00:00
James Rich
f6e75e970b
Refactor: Remove "include unmessageable" filter (#1889) 2025-05-21 03:08:40 +00:00
James Rich
990cd103d7
Refactor: Improve shared contact import dialog (#1888) 2025-05-20 21:57:14 -05:00
Robert-0410
5a52239721
feat: Channel Configuration ui (#1873) 2025-05-20 21:22:30 -05:00
James Rich
87076321ba
feat: Unmessageable (#1858) 2025-05-20 21:05:40 +00:00
James Rich
c99fe642b5
feat: Add Contact Sharing via QR code (#1859) 2025-05-20 13:36:11 -05:00
James Rich
38b9515fca
refactor: Move "provide location" preference to DataStore (#1877) 2025-05-19 21:23:29 +00:00
Benjamin Faershtein
de49f6a48b
feat: Create a resend option for failed messages (#1876)
Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-05-19 16:11:05 -05:00
James Rich
6941b6f9df
fix: M3 bug squashing (#1872) 2025-05-19 07:03:01 -05:00
Slush
e90aa6c5ed
fix #1567: Allow using a different TCP port than default 4403 (#1861) 2025-05-19 06:30:23 -05:00
James Rich
4cba13ea14
feat: material3 (#1862) 2025-05-17 11:39:53 -05:00
James Rich
d5a5efdcf4
fix: Messages UI Tweaks (#1856) 2025-05-15 18:09:46 +00:00
James Rich
8cde47bdf9
refactor: migrate to Compose navigation (#1835)
Co-authored-by: andrekir <andrekir@pm.me>
2025-05-15 08:05:30 -05:00
Robert-0410
cd9167f19f
refactor: Node detail work (#1836) 2025-05-10 08:03:14 -05:00
Robert-0410
309ce27268
refactor(graphs): Missing iaq (#1752) 2025-05-08 10:31:07 -05:00
James Rich
cc88487500
chore: extract string resources for import and export config (#1822) 2025-05-05 18:20:49 -05:00
James Rich
9648d0af77
refactor: extract more hardcoded strings (#1814) 2025-05-01 19:05:32 -05:00
James Rich
e9588c74b4
refactor: Remove automatic short name generation from long name. (#1813) 2025-05-01 18:15:22 -05:00
James Rich
ace756b96a
fix (#1647): Satellite icon sizing 2025-04-29 15:45:31 -05:00
James Rich
9c51245003
refactor (i18n): extract string resources from config for translation (#1794) 2025-04-28 18:09:16 -05:00
James Rich
2a710ba85f
Fix: actually copy public key (#1793) 2025-04-28 14:57:15 -05:00
James Rich
1bd6173f9f
fix(#1787): handle unknown hardware details crash (#1789) 2025-04-26 19:37:49 -05:00
James Rich
53a8fd2579
feat: Add copy button to public/private key fields (#1782) 2025-04-25 16:39:35 -05:00
James Rich
18c204741a
feat: Update connected count string in strings.xml and MeshService.kt (#1776) 2025-04-22 09:54:10 -05:00
Joshua Soberg
edb514af64
Remove imePadding modifier to internal scaffold box (#1771) 2025-04-21 17:11:56 -05:00
James Rich
5d5a4938a2
fix: clear local DB after reset (#1746) 2025-04-21 13:52:41 -05:00
Robert-0410
25fe0a1e05
fix: avoiding NaN values for temperature readings (#1744) 2025-04-05 12:22:53 -04:00
James Rich
b6876bba64
fix: disable editing of Public Key field (#1737) 2025-03-31 12:18:13 -05:00
James Rich
d0816d3495
fix: Remove nodeDb size from status string (#1734) 2025-03-31 12:17:33 -05:00
James Rich
e9d6916529
fix: remove notification grouping (#1735) 2025-03-31 12:16:22 -05:00
James Rich
b20fb93e8f
fix: udp toggle display logic (#1728) 2025-03-27 20:40:25 -05:00
Robert-0410
5379f9dede
fix: use the appropriate min when scaling the barometric pressure data (#1719) 2025-03-27 20:27:30 -05:00
James Rich
a28dc377ae
fix: Handle node public key mismatch and show warning (#1720)
* Handle node public key mismatch and show warning

- Add a mismatchKey flag to Node and MessageTopBar to indicate a public key mismatch.
- Set the public key to a default error value (all zeros) when a node's public key changes.
- Display a warning in the MessageTopBar when a key mismatch is detected in PKC.
- Only clear all nodes when a different mynode number is present.

* feat: Add key mismatch detection to NodeInfoDao

This commit introduces a new feature to the `NodeInfoDao` that detects and handles public key mismatches for existing nodes.

-   A new function `upsertCheckKeyMatch` is added to `NodeInfoDao` that checks for public key changes when upserting a node. If a mismatch is detected, the public key is set to `ERROR_BYTE_STRING`, and a warning is logged.
- The function `upsertCheckKeyMatch` is used instead of `upsert` in `NodeRepository` and in `putAll` inside of `NodeInfoDao`.
-   A new test `testPkcMismatch` is added to `NodeInfoDaoTest` to verify the key mismatch detection.
- Changed `testNodes` to have unique public keys.
- Added `mismatchKey` state to the node model.

* detekt spacing

* Refactor: Correctly handle different node installations in NodeRepository

The logic for detecting different node installations in `NodeRepository.kt` was inverted, this commit fixes the logic to use `!=` instead of `==` to detect if the node number has changed.
2025-03-27 15:58:43 -05:00
todd2982
7902e21a4a
feat #1632: Accessibility updates (#1705)
* Add description for node sort option button

* Add description for location view button

* Update description for channel url copy button

* appease detekt

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-03-23 20:26:28 -05:00
niccellular
3bc4454c0e
Expose wantAck in Mesh Packet (#1703)
* Expose wantAck in Mesh Packet

* Update DataPacket.kt

* Update DataPacket.kt

* Update DataPacket.kt

* Update DataPacket.kt

* Refactor: Change wantAck field type in DataPacket

- Changed the `wantAck` field in `DataPacket` from `Int` to `Boolean`.
- Updated read/write and equals/hashcode functions accordingly.

* Update MeshService.kt

* Update MeshService.kt

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-03-21 20:51:52 -05:00
todd2982
123b296b6c
fix #1692: Clarify request options to exchange. (#1701) 2025-03-21 16:21:58 -05:00
todd2982
0a7d0ff4be
feat: Allow sorting by favorite nodes (#1700) 2025-03-21 16:16:54 -05:00
James Rich
8a8ee27ad9
fix: Conditionally show UDP settings (#1702)
Only show UDP settings if the device has both Ethernet and WiFi.
2025-03-21 15:33:32 -05:00
Ken Piper
373cfe7838
feat: Add a bit more info to the node marker popup (#1691) 2025-03-19 10:02:58 -05:00
Ken Piper
ff261c2304
fix: Add some smarts to low battery notification triggers (#1686)
* Add some smarts to low battery notification triggers

* Always bypass cooldown on critically-low battery

* thx detekt

* revert whitespace changes

* Switch newer timestamp code to more widely-compatible version

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-03-19 04:39:52 -05:00
Robert-0410
e839c43542
feat: Graph Barometric Pressure (#1684)
* refactor: condensed the process of drawing the lines in the env metrics

* feat: only include iaq in the env metric graph when we have actual values

* feat: plotting barometric pressure when we have actual values

* detekt: spacing after (

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-03-18 19:37:16 -05:00
James Rich
451be0b98c
feat #1688: Add UDP mesh toggle (#1689)
Adds a toggle to enable or disable mesh via UDP.
2025-03-18 18:44:39 -05:00
Andre K
6720764ed4
feat: support custom ports in TCP interface (#1534) 2025-03-17 18:13:27 -05:00
James Rich
f3ba084d5b
fix #1678: Update MeshService.kt to store the channel for received packets. (#1683)
* Update MeshService.kt to store the channel for received packets.

The channel for received packets is now stored, allowing for better tracking and management.

* Update node info creation to include channel data

- Updates `getOrCreateNodeInfo` to accept a channel parameter and to save the channel to the node info during instantiation of a new/unknown node.
- Updates `updateNodeInfo` to accept a channel parameter and pass it to the updated function.
- Updates call to `updateNodeInfo` in `handleReceivedData` to pass the packet channel data to it.
2025-03-17 17:47:48 -05:00
James Rich
8e5accd518
fix #1484: Filter out ignored nodes from map (#1676)
* fix #1484: Filter out ignored nodes from map

- Created a new `filteredNodeList` `StateFlow` in `UIState.kt` that filters out nodes marked as ignored.
- Updated `MapFragment.kt` to use `filteredNodeList` instead of `nodeList`, ensuring that ignored nodes are not displayed on the map.

* Refactor: Remove ExperimentalCoroutinesApi opt-in and add it to compiler args

- Removes the `@OptIn(ExperimentalCoroutinesApi::class)` annotation from multiple files.
- Adds `-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi` to the `freeCompilerArgs` in the `build.gradle` file, enabling the use of Experimental Coroutines API project-wide without the need for per-file opt-ins.
- The coroutine api is now applied globally.

Signed-off-by: James Rich <james.a.rich@gmail.com>

* detekt

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>

---------

Signed-off-by: James Rich <james.a.rich@gmail.com>
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-03-17 11:40:08 -05:00
renovate[bot]
559b47355d
chore(deps): update com.github.mik3y:usb-serial-for-android to v3.9.0 - abandoned (#1666)
* chore(deps): update com.github.mik3y:usb-serial-for-android to v3.9.0

* fix: Use SerialInputOutputManager.start() according to change https://github.com/mik3y/usb-serial-for-android/releases/tag/v3.9.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-03-14 06:14:24 -05:00
Robert-0410
7189d44b9c
feat: Updated the env metrics graph to use the latest graph feature (#1667)
refactor: removed unused constants and function
2025-03-13 15:29:50 -05:00
James Rich
5846bf5ee4
feat: Improve (battery) notification behavior (#1661)
* feat: Improve notification behavior

- Changes low battery notifications to be non-cancelable
- Cancel low battery notifications when battery level is no longer low.
- Add notification groups and improve notification settings.
- Add vibration to low battery notifications.

* Improve low battery notification

Add battery level progress bar to the low battery notification.
2025-03-12 05:02:14 -05:00