* Feat: Show channel number and name in direct message title
This commit updates the message title to include the channel number and name when viewing direct messages.
This improves the user experience by providing more context about the conversation.
* Refactor: Improve message fragment toolbar
Use MaterialToolbar's built-in title and subtitle features to display channel name and number, simplifying the layout and improving UI consistency.
* Highlight the node in the node list tab when the user taps on the node chip in messages
* Represent main tabs as enum for more reliable referencing
* Extract tab labels to string resources for easier translation
Annotate resource IDs with their corresponding Android types
* Index off nodes actually in the adapter since they are sorted
* Update viewmodel when tab changes to prevent jumping to other tabs in onResume
* Mark strings as non-translatable for now
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.
- fix our messages right margin; received left margin (compare "msg.from" to "^local" to "determine if this is my message (originated on this device)";
- night/colors.xml: changed colorMyMsg to #28463C; (colorMsg & colorMyMsg were the same on Dark theme);
- fix val one_day typo (= 86400000 ms/day);
- if errorMessage --> setCardBackgroundColor(Color.RED).