Commit graph

457 commits

Author SHA1 Message Date
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
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
6678df78b0 fix: text messages sent from connected standalone devices 2024-11-30 07:43:56 -03:00
andrekir
1219d3037e chore: add GPL-3.0 license headers to source files 2024-11-26 08:54:18 -03:00
andrekir
80f8f2a591 refactor: implement repository pattern replacement for AIDL methods 2024-11-21 20:30:25 -03:00
andrekir
02af81aeb0 fix: nodelist sort by viaMqtt 2024-11-15 06:49:40 -03:00
andrekir
cfdb245da2 refactor: convert connectionState to StateFlow 2024-11-12 09:15:45 -03:00
James Rich
80e915a36c
feat: show unique messaging notifications per contact (#1381)
* Show unique notifications per contact

Instead of a single notification for all messages, each contact now has its own, unique notification. This uses the `NotificationCompat.MessagingStyle` and the contact's name to create distinct notifications, enhancing message organization.

* feat: Add notification tap action to open contacts tab

This is done by:
- Adding an intent extra to the notification with the contact key for future use to navigate to the message thread.
- Adding a new action to the MainActivity to handle the intent.
- Updating the message notification to include the intent.

* Open message notification to the correct conversation

Adds an extra to the message notification intent to open the correct conversation. This ensures that when a user taps on a message notification, they are taken to the conversation with the sender of that message.
2024-11-04 19:05:39 -03:00
andrekir
414e0bb544 fix: clear public keys if the user is licensed 2024-11-03 06:48:32 -03:00
andrekir
605ef120c9 fix: remove build timestamp (breaking reproducible builds)
reverts 9f099f3edf
2024-11-02 06:13:36 -03:00
andrekir
1e081b4b30 refactor: improve handling for old firmware 2024-10-29 07:41:39 -03:00
andrekir
5cf9741b13 refactor: unified getUser repository call for convention 2024-10-25 07:50:34 -03:00
andrekir
9f099f3edf feat: replace invalid MeshPacket times (earlier than build time) 2024-10-23 19:20:28 -03:00
andrekir
199b9a29d5 refactor: extract traceroute text from MeshService 2024-10-23 19:05:43 -03:00
andrekir
7289896956 refactor: remove largeIcon from notifications 2024-10-22 12:13:34 -03:00
andrekir
8af78bc2eb fix(config): show error when radio disconnects before receiving confirmation 2024-10-19 13:29:39 -03:00
James Rich
f6ec3e8bab
feat: Add notification for new node seen (#1316)
* Add notification for new node seen

This change adds a new notification that is displayed when a new node is seen.
The notification includes the node's
 name.
It also updates the message notification to include the node name.

* Show individual notification for each new node

* Add new nodes notifications

Adds a new notification channel for new nodes seen.
This channel is set to high importance with sound and light.
2024-10-15 06:07:22 -03:00
andrekir
af56fff216 fix: position packet want_response handling
Process valid position broadcasts with `want_response` true except from position requests with an empty payload (latitude and longitude are zeroes).
2024-10-14 18:26:59 -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
James Rich
38942ec557
Add local device stats to the service notification (#1307)
This commit adds the local device stats to the service notification. This information includes the number of online and total nodes, as well as other local stats. It also updates the notification summary and adds local stats telemetry handling.
2024-10-13 08:10:28 -03:00
James Rich
ed2703c77a fix: Correctly compare hopStart and hopLimit for received packets
fixes: #1304

The calculation of `hopsAway` was using an incorrect comparison between `hopStart` and `hopLimit`. This commit fixes the logic to correctly determine the number of hops a packet has traveled.
2024-10-12 06:20:46 -03:00
James Rich
ebe0aeec14
Adds support for known 0 hopsAway (#1295) 2024-10-09 17:04:05 -03:00
andrekir
23f05c109b fix: remote admin backward compatibility
- only use PKC encryption when the remote node has a public key (2.5 -> 2.5)
- fall back to legacy admin if public key is not available (2.5 -> 2.4)
2024-10-08 08:29:23 -03:00
James Rich
f944a236ac
feat: Adds Request user info (#1279)
* Request user info

* safe calls

* Fix: Ensure NodeInfo is sent when requesting user info

The `requestUserInfo` function now correctly sends `NodeInfo` when requesting user info by using the `
toNodeInfo()` method on `ourNodeInfo`. This ensures the recipient receives the necessary information.

* fix: remove unused parameters, use service's node db for our node entity

---------

Co-authored-by: musznik <bymucha@gmail.com>
2024-10-03 05:02:13 -03:00
andrekir
c0692b80ec refactor: remove legacy BLE characteristic 2024-10-02 20:00:02 -03:00
Andre K
c30ee2f55f
refactor: replace MyNodeInfo with MyNodeEntity (#1277) 2024-10-02 06:18:30 -03:00
andrekir
bfa2eaef11 fix: PKC channel index in sent MeshPackets 2024-09-30 15:27:55 -03:00
DJ Holt
a358b8cb11 Complete request future if response is a ClientNotification 2024-09-29 07:28:58 -03:00
andrekir
96a69b7398 fix: position handling when fixed_position is enabled
closes #1265
2024-09-28 08:19:09 -03:00
andrekir
717c932ae2 refactor(MeshLog): add fields for query optimization
- Adds `from_num` and `port_num` fields as indices to the `MeshLog` entity to improve query performance.
- Sets default values for new columns for auto-migration and backward compatibility.
2024-09-26 05:55:38 -03:00
andrekir
a075dfbd3a feat: add dialog for message status information 2024-09-24 22:06:15 -03:00
andrekir
4f0652ad9f fix: remove node from service database in removeByNodenum 2024-09-24 07:53:09 -03:00
andrekir
22b1cf0f16 feat: add encryption status icon and dialog to node list items 2024-09-23 10:13:27 -03:00
andrekir
587c6c91f4 refactor: ensure backward compatibility for PKC encryption 2024-09-22 23:01:33 -03:00
Andre K
36a13d7687
fix(conifg): implement sessionPasskey handling for admin requests (#1263) 2024-09-20 06:07:35 -03:00
andrekir
8c07532995 fix(MeshService): revert nodeDBbyNodeNum to local variable
avoids performance issues causing data loss by reverting `nodeDBbyNodeNum` to a local `ConcurrentHashMap`
2024-09-19 18:17:30 -03:00
andrekir
852c6e1bc2 refactor: enable remote admin to set/remove fixed_position 2024-09-18 19:50:33 -03:00
andrekir
81d8a9f93f fix(MeshService): revert myNodeInfo to local variable
avoids performance issues and simplifies state management as `MyNodeInfo` is only relevant during an active session
2024-09-18 19:46:39 -03:00
andrekir
0b72486506 fix: deviceMetrics reference in NodeInfo.toEntity mapper 2024-09-17 07:52:34 -03:00
Andre K
396195a1b8
refactor: introduce NodeEntity protobuf-based database entity (#1250) 2024-09-16 17:57:30 -03:00
andrekir
2433cbc00a feat: show names with a lock for DMs using PKC 2024-09-16 10:30:15 -03:00
DJ Holt
610e5f1049
Show results for two-way traceroute, including SNR values between hops (#1248) 2024-09-16 09:16:06 -03:00
andrekir
ac928b40d4 fix: avoid starting FGS with location type without permission 2024-09-14 18:38:30 -03:00
andrekir
2ce306b5be fix(MeshService): ensure proper handling of NodeInfo user field 2024-09-14 17:48:09 -03:00
andrekir
9a332e8367 refactor(MeshService): remove redundant updateNodeInfo call 2024-09-13 19:08:36 -03:00
andrekir
a98d3899e6 refactor(MeshService): remove discardNodeDB and simplify logic 2024-09-13 19:03:28 -03:00
andrekir
1252b67fce refactor(MeshService): update getNodes() to use nodeDBbyNodeNum 2024-09-13 18:37:10 -03:00
andrekir
52e79da803 fix(MeshService): wait for node db initialization with a timeout 2024-09-13 18:36:30 -03:00