Commit graph

477 commits

Author SHA1 Message Date
James Rich
357efa9028
feat: Implement message reply functionality (#2147) 2025-06-17 20:15:07 -05:00
rcarteraz
7497540f80
fix: remove TAK from unmessageble roles(#2146) 2025-06-17 16:56:15 -05:00
James Rich
3ef504c567
feat: prompt user to regenerate compromised keys (#2131) 2025-06-16 17:06:23 +00:00
James Rich
a5ade9252a
Refactor: Implement global cooldown for Traceroute button (#2129) 2025-06-16 11:48:08 +00:00
James Rich
446ddab469
refactor: NodeDetail screen and firmware version display (#2120) 2025-06-15 03:30:43 +00:00
Jeremiah K
eaa149a0e9
Persist node sort preference across app restarts (#2115) 2025-06-14 18:22:16 +00:00
Jeremiah K
4de1b1516f
Fix: Device selection lags (#2086) 2025-06-13 11:34:44 +00:00
James Rich
606d1520d8
refactor: Client Notification Support (#2095) 2025-06-12 20:00:28 -05:00
James Rich
ad8f91482e
refactor: ClientNotification messages as an alert dialog (#2072) 2025-06-10 15:15:58 +00:00
Benjamin Faershtein
e7657c4763
feat: Added map filter + small waypoint fix (#2065)
Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-06-10 12:03:30 +00:00
Łukasz Kosson
f5b34d6408
fix: cancel new message notification when message is marked as read (#2057)
Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-06-09 12:45:20 -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
James Rich
2a05fc072d
refactor: organize navigation (#2042) 2025-06-06 15:45:26 -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
3216559035
fix: connections ui and unmessageable logic (#2016) 2025-06-04 06:53:22 -05:00
James Rich
38982bc37b
refactor: recommended and required firmware updates (#2012) 2025-06-03 19:58:21 -05:00
James Rich
868d705b2d
fix: per-device location sharing (#2010) 2025-06-03 21:04:24 +00:00
James Rich
6915249121
refactor: Move version checks to Main.kt (#1995) 2025-05-31 20:36:35 -05:00
James Rich
25ecdc912e
fix: clear data when changing devices (#1985) 2025-05-30 13:17:09 -05:00
James Rich
ad1897c564
Refactor: organize ui screens to separate packages (#1982) 2025-05-29 18:18:45 -05:00
James Rich
e31d4170b6
feat: add Host Metrics Log screen (#1969) 2025-05-28 20:57:38 +00:00
James Rich
6332b3bd42
feat(node): consolidate node chip and menu (#1941) 2025-05-26 19:36:32 -05:00
James Rich
9b1f27cf17
refactor: add tooltips, unmessageable tweaks (#1925) 2025-05-23 18:08:45 -05:00
James Rich
02bb3f02e4
feat: network module (#1905) 2025-05-22 08:30:08 -05:00
James Rich
76cdb83406
feat: Add node to favorites when sending a direct message (#1899) 2025-05-21 17:48:02 +00:00
James Rich
0057a6f2de
feat: Add request metadata action to NodeDetail (#1896) 2025-05-21 15:50:33 +00:00
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
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
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
James Rich
4cba13ea14
feat: material3 (#1862) 2025-05-17 11:39:53 -05: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
309ce27268
refactor(graphs): Missing iaq (#1752) 2025-05-08 10:31:07 -05:00
James Rich
1bd6173f9f
fix(#1787): handle unknown hardware details crash (#1789) 2025-04-26 19:37:49 -05:00
Robert-0410
25fe0a1e05
fix: avoiding NaN values for temperature readings (#1744) 2025-04-05 12:22:53 -04: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
Andre K
6720764ed4
feat: support custom ports in TCP interface (#1534) 2025-03-17 18:13:27 -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
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
Joshua Soberg
749c4b4918
fix #1616: Calculate DP to pixel value for map label offset (#1637) 2025-03-04 14:40:57 -06:00
Joshua Soberg
5da827473a
fix #1616 (a11y): Use SP font size for marker labels on the map (#1630)
* Use and SP font size for marker labels on the map

* Fix detekt issue
2025-03-02 09:14:12 -06:00
Joshua Soberg
37489604f0
Introduction of stable Compose UI State and some simple animations in Debug Panel (#1575)
* Add dependency to KotlinX immutable collections

* Build a Compose-stable UI state vs using a database model. Move appropriate mapping logic for converting database model -> UI state into the view model. Introduce animations to new log placement and automated scroll.

* Center the top card row vertically

* Move log message generation into separate method

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-16 06:09:41 -06:00
Ken Piper
e15ad23c46
feat: Initial implementation of adding nodes to favorites (#1520)
* Implement initial support for adding and removing nodes from favorites

* Make favorite nodes' names show up bold in the node list

* Forgot to add this here when I was fixing the previous merge conflicts. Whoops!

* Make detekt happy

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-16 06:02:02 -06:00
Robert-0410
b067a0c0b3
feat: Power graph (#1556)
* Refactor: We can draw the horizontal lines for the graphs independent of min and max entries.

* Added navigation to the PowerMetrics log with a skeleton screen.

* Drew channel 1 voltage.

* Refactor: Assigned colors for the data within the enum instead of a list-ordinal combo.

* Plotted Ch1 current line.

* Refactor: Did not need the parameters being used to get the desired ui in the TimeLabels composable.

* Added a row to help distinguish between units.

* Refactor: MetricsTimeSelector.kt to SlidingSelector.kt; the new version allows for generic options.

* Added a sliding selector to choose between power channels and changed the legend data to instead display current and voltage.

* We now plot the line for which the user has selected a power channel option.

* Don't need the current line to be dotted anymore.

* Don't think we need to display an info dialog for voltage and current.

* Wrote card to display the power channel data entries.

* detekt

* Refactor: current color change to accommodate the themes better

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-15 22:37:05 -06:00
Joshua Soberg
24abd1ac4a
fixes #1557: Filter out emojis when creating short names (#1578)
* Filter out emojis from text when finding initials

* Confirm non-English non-emoji unicde isn't filtered

* Remove unused example unit test

---------

Co-authored-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2025-02-15 22:25:35 -06:00
James Rich
e11d726e27
feat: Add RAK2560 hardware model and graphic (#1543)
Adds the RAK2560 to the list of supported devices and associates it with the corresponding vector drawable.
2025-02-15 22:17:57 -06:00