In order to synchronize the Low Power mode, the services were
immediately informed about the frequency change,
so that they can update their resources (e.g. PWM filling)
and services may request the maximum CPU frequency in order
to perform a task (e.g. screen redraw, telephone conversation)
It is necessary that the PureOS update mechanism enters Update Package
Installation Mode (where most of the services are stopped)
when the PureOS update package gets downloaded into the phone.
Feature was already removed some time ago but still some reminders
persist. This commit only removed mentioned reminders.
Some minor style fixes suggested by clang tidy were also applied.
Reduce firmware size by refactoring global data defined in public
headers.
Each global variable which require runtime initialization adds
initialization code to every translation unit which includes the header
where the variable is defined and declared.
* 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
Till now there was no clear way to register hanlder for message in
Service, with this approach one can register function/lambda handler
for Message which encurages handling messages in functions rather than
in hudge switch cases.
With aproach like this our Messages resembe something between Command
and State pattern. In state pattern `Message` would be `Event` send,
whereas Service would be `Context`.
Augment handling phone numbers with libphonenumber:
- add "as you type" formatting to phone numbers,
- normalize phone number handling by using libphonenumber's phone
number representation.
Clean up the code by moving application logic back to the application
and window data back to the window and reordering includes.
Application's stack size has been increased due to formatter stack
utilization level.