* 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
* 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>
- 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.
* Initial Hops Away feature
* Generate our own hopsAway, comparing hopStart to hopLimit
* Remove import of hopsAway from device nodeInfo, as this only shows 0 when hopStart isn't included on packets (with this info, we can't differentiate between a node which is Hops Away but on old firmware, or nodes which are on new firmware but direct. Both are 0)
Check if hopStart is 0 but hopLimit is not 0, if true set hopsAway to -1.
Show nodes with hopsAway with -1 with a (!) appended to the RSSI details, to show this probably isn't true. (eg they are using old firmware)
Change the default of hopsAway to -1, until we know it is direct (0) or hops away (1+)
* tidy up: move from nested if else to when
* Revert Project_Default.xml
* Move hopsAway when block in to updateNodeInfo() block above it.
Move hopsAway var to end of NodeInfo Class.
Schema update due to change above.
* hopsAway now follows firmware implementation.
hopsAway now imported from radio (installNodeInfo)
* reformat
---------
Co-authored-by: andrekir <andrekir@pm.me>