1. Prepare Pure and Bell specific `Application`
classes and add them to `app` target:
- `products/BellHybrid/apps/Application.cpp`
- `products/PurePhone/apps/Application.cpp`
2. Update `CMakeLists.txt` files.
3. Move `ApplicationBell` implementation to Bell-specific
`Application` class and remove `ApplicationBell` files.
4. Change Bell apps parent classes from `ApplicationBell`
to Bell-specific `Application` class.
5. Rename `Application` to `ApplicationCommon` in the rest of the files.
- add ChangeDateAndTimeWindow,
- extract EventTimeItem to common widgets folder
and rename it to TimeWidget,
- extract EventDateItem to common widgets folder
and rename it to DateWidget,
- replace timeWidget with common TimeWidget
in NightshiftWindow,
- refactor time setting in
DesktopMainWindow and TopBar,
- Remove dead code from EventManager
(GetNextAlarmTimestamp and HandleAlarmTrigger)
[EGD-3572] Application has an instance of Settings - removed from derived apps
[EGD-3572] Application is the owner of Settings handling for its windows/widgets
[EGD-3572] Settings header moved to service-db public section
* Timers now are Application thread safe
* Timers now have consistent API independend of Application (no more c style timers)
* Timers can have either: callback or override onTimer() method - this
way we can create more complicated timers or just use existing ones
* gui::Timer added via adapter class GuiTimer to decouple sys::Timer
with gui::Timer
* Fixed race in wrapper
* Updated docs
* fixed using std and cpp_freertos and DataReceivedHandler hidden in Application.hpp
Use specialized class to to pass phone number between apps and services
instead of ambigious std::string. Introduced class (utils::PhoneNumber)
wraps calls to libphonenumber providing more convienient interface.
However using libphonenumber directly may be resource hungry in terms
of stack, heap and cpu usage, so helper class has been introduced to
pass information about phone numbers (utils::PhoneNumber::View). It is
designed to maintain integrity thus can be created from an instance of
utils::PhoneNumber only or moved/copied to.
Add new field to the calllog db holding e164 formatted number. Both
entered and e164 numbers will be needed to be able to match with
contacts correctly.
Add constexpr information about country codes (utils::country).