* 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>
- enforce Unidirectional Data Flow removing nodeDB updates via `MainActivity`/`UIState`
- merge `MyNodeInfoDao` into `NodeInfoDao`
- move node list re-indexing to database
Uses Hilt to get the database initialization off of the
main thread.
The initial introduction always has a disproportionate
fan-out of boilerplate. In this case, all entry points which
were using UIViewModel needed to be annotated in order to let
the code gen know that they needed to support it.
The PacketRepository is injected into things via the main
thread (e.g., the MeshService) but due to the lazy declaration,
the database isn't hydrated until the DAO is access while on an
IO thread.