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.
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.
This PR fixes:
-several explicit uses of `new` that were not matched by `delete`
-dangling `CalendarTimeItem`s
-reset of focus on the `allDayEventCheckBox` check/uncheck
-exiting the app form `allEventsWindow` on `KEY_RF`
Added Dialog windows for "configuration successful"
"no configuration" and "update OS" for Onboarding.
Refactor Dialog window implementation and usage of
DialogMetadata in other applications.
- 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)
Added two new scroll bar types. Fixed for ListView
with equal height elements and PreRendered which
require whole list render - not recommended for big
lists but works with not equal heights elements.
Applied new types to all lists in Pure. Various
cleanups and refactors inside models and listView.
[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
Add an additional field for date of the event.
Set 'all day' event as a default option when you add a new event.
Change in the design of AllEventsWindow and EventDetailWindow according to UX redesign.
* Moved ApplicationLauncher to separate files - declutering
* WindowsStore renamed to WindowsFactory - Store needs to be splitted toavoid antipattern
* Options window build dynamically onBeforeShow
* Dialog windows dynamically built
-Create application->switchManyWindowsBack() method
-Create equivalent to empty window enum class
-Remove stored prevWindows variables
-Add bottom bar to empty window (equivalent to allEvents)
-Repair going back to previous windows functionality
-Repair switching window (with empty events DB)
-Add EventShift value to event records time
* 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