Commit graph

101 commits

Author SHA1 Message Date
James Rich
924bd25f60
feat(firmware): add firmware edition handling (#2508)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-07-25 12:07:01 +00:00
DaneEvans
f5d9c361fe
Mqttflag (#2421) 2025-07-20 00:00:23 +00:00
Justin E. Mann
fbd62cbf10
Add soil temperature and soil moisture environmental metrics to app (#2419)
Co-authored-by: DaneEvans <dane@goneepic.com>
2025-07-12 13:52:06 +00:00
James Rich
9259e21aed
refactor: Improve node public key handling and security (#2395)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-07-09 14:43:10 +00:00
Joshua Soberg
4500ba0c0a
ui update/cleanup: Message padding updates (#2289) 2025-06-28 22:23:33 +00:00
James Rich
496de47766
Refactor: Improve GitHub release workflow and build configuration (#2251) 2025-06-25 18:16:55 -05:00
James Rich
c4c115b901
feat: show online and total node count in the title bar (#2209) 2025-06-21 21:10:36 -05:00
James Rich
468c4ab6b7
fix: Fetch original message when displaying a reply (#2152) 2025-06-18 16:05:02 +00:00
James Rich
357efa9028
feat: Implement message reply functionality (#2147) 2025-06-17 20:15:07 -05:00
Łukasz Kosson
7a5813ebb3
feat: filter node list by user id or node number (#2078)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-12 16:20:26 -05:00
Łukasz Kosson
e781d6774b
feat: allow hiding offline and/or non-direct nodes from list and map (#2052)
Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-06-09 12:44:53 -05:00
Łukasz Kosson
9a371ee9cd
feat: show per-message SNR, RSSI and hop count (#2040)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-06-06 15:41:25 -05:00
James Rich
38982bc37b
refactor: recommended and required firmware updates (#2012) 2025-06-03 19:58:21 -05:00
James Rich
88d74642ae
refactor: FirmwareReleaseDao to return non-nullable lists (#1991) 2025-05-31 12:09:57 -05:00
James Rich
25ecdc912e
fix: clear data when changing devices (#1985) 2025-05-30 13:17:09 -05:00
James Rich
41349ad9cc
refactor(#1940): Improve firmware version comparison (#1952) 2025-05-27 16:19:03 -05:00
James Rich
02bb3f02e4
feat: network module (#1905) 2025-05-22 08:30:08 -05:00
James Rich
f6e75e970b
Refactor: Remove "include unmessageable" filter (#1889) 2025-05-21 03:08:40 +00:00
James Rich
87076321ba
feat: Unmessageable (#1858) 2025-05-20 21:05:40 +00:00
James Rich
5d5a4938a2
fix: clear local DB after reset (#1746) 2025-04-21 13:52:41 -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
0a7d0ff4be
feat: Allow sorting by favorite nodes (#1700) 2025-03-21 16:16:54 -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
andrekir
13b615a470 chore: update license header 2025-01-02 07:00:51 -03:00
Andre K
60e7e18116
feat(config): implement excluded modules validation (#1460)
* feat(config): implement excluded modules validation

* feat: hide excluded configs from metadata

* refactor: save local metadata from WantConfig

* refactor: delete metadata from deleted nodes

* fix: always request metadata for admin routes

* feat: show node firmware when metadata is available

* refactor: rename filter function

* feat: add `ServiceAction` request metadata
2025-01-02 06:38:33 -03:00
andrekir
1ea55b2209 refactor: move ignore node to is_ignored field in NodeInfo 2024-12-07 08:18:18 -03:00
andrekir
4a1319a645 refactor: replace user with node in Message model 2024-12-05 19:50:15 -03:00
James Rich
2234f5a713
feat: add emoji reactions to message bubbles (#1421)
* Add tapback emojis to message bubbles

Added TapBackEmojiItem composable to display tapback emojis.
Included it in MessageItem composable for incoming messages.
Added a FlowRow to show tapback emojis below the message bubble.

* feat: Add EmojiPicker View

* feat: show emojis for local messages

* feat: Add emoji tapbacks to messages

This commit introduces the ability to send and receive emoji tapbacks for messages.

- Adds emoji and replyId fields to DataPacket.
- Adds emoji tapback support to the MeshService
- Modifies UIState to handle emojis in message lists.

* feat: store tapbacks in database

Store tapbacks in the database and display them in the message list.
- Add a new table to the database to store tapbacks.
- Add a new DAO method to insert and retrieve tapbacks.
- Update the message list UI to display tapbacks.

* refactor: relation db and other changes

---------

Co-authored-by: Andre K <andrekir@pm.me>
2024-12-03 08:57:35 -03:00
andrekir
174a4d0771 refactor: ensure node database flows on IO thread 2024-11-26 09:57:23 -03:00
andrekir
1219d3037e chore: add GPL-3.0 license headers to source files 2024-11-26 08:54:18 -03:00
andrekir
e33cf85df6 refactor: migrate DebugPanel to Compose 2024-11-19 17:07:51 -03:00
Andre K
475e9fc22c
refactor: migrate QuickChat to Compose (#1419) 2024-11-19 11:59:28 -03:00
andrekir
02af81aeb0 fix: nodelist sort by viaMqtt 2024-11-15 06:49:40 -03:00
Robert-0410
013e3de792
refactor: Conducting time filter at the component lvl to avoid metric nav cards from being disabled when we don't have recent data (#1402) 2024-11-13 07:24:40 -03:00
Robert-0410
7e54ad950c
feat: Metrics time selection (#1396) 2024-11-11 17:54:26 -03:00
andrekir
adbe5952fc feat: position logs 2024-11-02 17:22:54 -03:00
andrekir
cfb38e9951 feat: add option to delete traceroute log 2024-10-26 05:57:18 -03:00
Andre K
a557bff3d7
feat: traceroute log (#1348) 2024-10-25 08:14:32 -03:00
andrekir
a3b4b70db9 fix(metrics): replace telemetry times with receive time 2024-10-25 07:55:47 -03:00
andrekir
eb80d419eb refactor(logs): add optional portNum parameter to getMeshPacketsFrom 2024-10-23 18:10:08 -03:00
Robert-0410
bb345e7437
feat: Signal Metrics (#1340) 2024-10-23 17:31:31 -03:00
andrekir
c98a5c7caf feat: add info cards for environment and power metrics 2024-10-19 13:28:16 -03:00
andrekir
eacf3a87a0 feat: create NodeEntity.isUnknownUser property 2024-10-14 17:20:06 -03:00
andrekir
fe56d257f5 chore: add detekt formatting rule set
https://detekt.dev/docs/next/rules/formatting/
2024-10-14 07:56:29 -03:00
andrekir
b503c10789 refactor: finish transition from NodeInfo to NodeEntity 2024-10-12 07:14:59 -03:00
James Rich
cf2315cb66
Sort nodes with unknown hops last (#1302)
Nodes with -1 hops (unknown) are now sorted last when sorting by hops_away. This ensures a more intuitive ordering
 in the UI.
2024-10-11 07:54:06 -03:00
James Rich
ebe0aeec14
Adds support for known 0 hopsAway (#1295) 2024-10-09 17:04:05 -03:00
andrekir
16e91c0ebf refactor: sync isOnline status with firmware (2 hours) 2024-10-02 17:03:36 -03:00
Andre K
c30ee2f55f
refactor: replace MyNodeInfo with MyNodeEntity (#1277) 2024-10-02 06:18:30 -03:00
andrekir
cca06784fc feat: add PowerMetrics data to nodes telemetry
closes #994
2024-10-01 19:50:03 -03:00