[MOS-550] Implement eink partial refresh
Detect parts of the screen changed since last update and merge them into
bigger regions. These regions defines parts of the context sent to the
display.
Refresh the region covering all of the parts since this is the most time
consuming part and the size of the refreshed region doesn't change the
time much.
Refresh the whole screen if deep refresh is requested and previously
fast refresh was used. This is needed to prevent unwanted artifacts in
some cases.
Refactor some parts of the gui and display code.
[MOS-504] Mixed SMS messages
Refactor the old part of SMS handler and
parse the concatenated messages using
std::unordered_map and std::map. Added
unittest to the SMS parser.
[MOS-666] Fix disappearing setting bars in German
Fix of the issue that with German language
selected manual volume setting bar and
vibration volume setting bar would
disappear when focused.
[MOS-686] Fix the accessibility of user files by MTP
User files accessible via MTP only if phone is unlocked
[MOS-350] Fix some SIM card pop-ups not showing
Also: enhanced a log, improved the English translations.
[MOS-424] Improvement of logger module
Due to losing bytes the logger has a worker
which is responsible for dumping logs to
the file. The logger also has its own timer
to dump logs every 15 minutes. EventManager
is not responsible for interval dumping logs
now.
[MOS-714] Fix passcode lock time discrepancy
Fix of the issue that passcode lock time
wasn't updating on 'Wrong passcode' popup,
what led to discrepancy of the time
between lock screen and the popup.
[MOS-691] Fix memory leaks in APN settings
Replace objects created on heap with class members.
[MOS-709] Added Polish translation to calendar
Added Polish translation to
a calendar title.
[MOS-91] Fix cellular DMA errors
Fix "DMA is busy" errors when booting the GSM modem at the stage of
finding the appropriate baudrate.
[MOS-662][MOS-301] Fix E-ink shutdown while restoring data
While restoring system data the timer can turn off power of E-ink
to save the power. To avoid this situation we need to power on
the E-ink before wiping out the display. The restore procedure
also performs reversing services list to close. In this case
we do it twice so the order is wrong.
[MOS-676] Fix destroying wrong sentinels
If the service is closed the governor removes connected
sentinel. The base iterator refers to the element that is next
in the reversed list. Adding std::next the iterator points to
the correct element.
[MOS-92] Fix continuing music playback after BT disconnection
Fix of the issue that after disconnecting
BT A2DP device during music playback
and reconnecting it without leaving
music player app the sound was not
audible anywhere.
Additionally unified behaviour of music
playback on connection/disconnection
of audio devices.
[MOS-259][MOS-602] Fix no calllog entries in DND mode
Fixed no calllog entries in DND mode, which were caused
by not starting the call in DB interface, so no entry was created.
Moreover, small optimizing of the DND handling.
[MOS-74] Fix wrong tethering popup order
After connecting to PC with locked phone there were pop-ups
of tethering and unlocking the screen in the wrong order.
[MOS-101] Parse MMS notification and show [MMS] in message thread
The `[MMS]` notification is shown in message thread of the correct
number
- Add PDU WAP Push MMS Notification parser
- Use it in ServiceCellular to parse the raw message
- Refactor hexToBytes and bytesToHex utils
- Add endsWith util
- Add unit tests
[MOS-608] Fix crash on phone turn off
Fix of the crash that sometimes happened
during system closing.
[MOS-647][MOS-671] BT volume control fixes
Set of fixes for Bluetooth volume control issues:
* split OS volume from A2DP device volume;
* added translations for additional popup required
to indicate what volume is being set;
* fixed issue that on some devices setting the lowest
volume level would set the highest in reality;
* fixed Bluetooth auto-turnoff functionality;
* minor code cleanup.
[MOS-668] Modify USB notifications logging
Modified USB notificaitons logging so no logs are being created
when USB data is received, thus logs are not overloaded and are
smaller