2638 Commits

Author SHA1 Message Date
github-actions[bot]
7f42ffcda7 chore(l10n): New Crowdin Translations by GitHub Action (#1832)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-08 11:12:17 -05:00
github-actions[bot]
b81a485b2f chore: update device hardware list from Meshtastic API (#1830)
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2025-05-08 10:39:07 -05:00
github-actions[bot]
87f084e3ce chore(l10n): New Crowdin Translations by GitHub Action (#1811)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-08 10:38:51 -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
renovate[bot]
db0a942fdf chore(deps): update app/src/main/proto digest to 078ac8d (#1817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-04 17:10:55 -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
github-actions[bot]
7279b286d5 chore(l10n): New Crowdin Translations by GitHub Action (#1807)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-30 18:21:19 -05:00
github-actions[bot]
ab711cc06e chore: update device hardware list from Meshtastic API (#1806)
Co-authored-by: jamesarich <jamesarich@users.noreply.github.com>
2025-04-30 17:04:16 -05:00
github-actions[bot]
fbf9f0075c chore(l10n): New Crowdin translations by GitHub Action (#1803)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-30 16:59:25 -05:00
James Rich
ace756b96a fix (#1647): Satellite icon sizing 2025-04-29 15:45:31 -05:00
Crowdin Bot
8e21ab69dc New Crowdin translations by GitHub Action 2025-04-29 18:00:55 +00: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
5da7c66ea5 chore(translations): update crowdin translations (#1791) 2025-04-28 13:32:46 -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
James Rich
c4ef442037 chore(protos): Meshtastic Protobufs v2.6.2 (#1693) 2025-03-19 10:00:32 -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
James Rich
f2355f5a32 chore(proto): Meshtastic Protobufs v2.6.1 (#1677)
updates Meshtastic Protobufs to v2.6.1
2025-03-13 19:34:26 -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
Ken Piper
c7c29cb1c1 feat: Initial implementation of low battery notifications for nodes (#1653)
* Add initial implementation of low battery notifications for locally-connected and favorite nodes

* Hopefully make detekt happy

* detekt pls.

* Deduplicate some of the code

* detekt'd
2025-03-08 04:52:30 -06:00
James Rich
f7731f0c98 chore: Update minimum required firmware version (#1658)
Updated the minimum required firmware version to 2.3.15.
2025-03-07 14:27:28 -06:00
James Rich
6dfb6a56d6 feat: expand role confirmation to include REPEATER (#1657)
* Clarify role change behavior

The role change logic was modified to show a confirmation dialog when the role is set to `ROUTER`, `ROUTER_CLIENT`, or `REPEATER`. Previously, the dialog was only displayed when setting the role to `ROUTER`.

* Implement router role confirmation dialog

- Added a confirmation dialog when changing the device role to ROUTER, ROUTER_CLIENT, or REPEATER.
- The confirmation dialog ensures users are aware of the implications of selecting a role used for infrastructure.
- Updated the logic to set the selected role only after confirmation.
- Only show dialog when changing to infrastructure roles.

* remove deprecated ROUTER_CLIENT to avoid confusion
2025-03-07 14:26:57 -06:00
James Rich
d40672df40 fix #1654: Move the app rating dependency to googleImplementation (#1656)
* Move the app rating dependency to googleImplementation

The `awesome.app.rating` dependency is now under `googleImplementation` instead of `implementation` in `app/build.gradle`.

* Refactor alert DND dialog padding

Use `dpToPx` for padding in the alert DND dialog for better consistency.
2025-03-07 14:25:46 -06:00
James Rich
68cd540f9e fix #1634 #1552: Update Paxcount display condition (#1635)
Modify the Paxcount display logic to show the string if either `ble` or `wifi` is not zero, rather than requiring both to be non-zero.

Signed-off-by: James Rich <james.a.rich@gmail.com>
2025-03-05 07:59:28 -06:00