Add a new interface `NotificationManager::Dismiss(id)` to delete a
notification with the specified `id`.
The animate the notification dismiss the `RightAnim` transition to a
black screen is used. After the dismiss the new message is swiped in
from below or above.
If we dismiss the oldest message (when we are at 5/5, or 3/3), then the
new message after a dismiss should appear to come from below.
Otherwise (when we are at 2/3) the new message after a dismiss should
appear to come from above.
Rework the index code to show the index of the currently viewed
notification. Instead of calculating the index relative to the oldest
`id` introduce a new interface `NotificationManager::IndexOf(id)`. This
is done because the `id` of the notifications in the buffer aren't
continuous anymore (as some messages could have been dismissed).
Rework notification ring buffer to have a beginIdx and a size
internally to make the dismissal of notifications easier.
Fixes: https://github.com/InfiniTimeOrg/InfiniTime/issues/176
Co-authored-by: Simon Willshire <me@simonwillshire.com>
Co-authored-by: Reinhold Gschweicher <pyro4hell@gmail.com>
The variable `title` is defined as `const char*`, which means, that
`strchr()` returns a `const char*` as well according to
https://www.cplusplus.com/reference/cstring/strchr/
But in the same line the return value is assigned to a non-const
`char*`, which shouldn't be allowed (error with `-pedantic`).
Because the `lv_label` creates an internal copy of the title sting, just
modify that one instead and replace newline in the copied string.
Don't use relative imports like `../foo.h` as those depend on the
relative position of both files. Rather than that use imports relative
to the `src` directory, which explicitly is part of the include
directories.
new navigation
add some color to the apps
redesign menus
new settings menu
new quick settings
code clean up
size reduction by converting navigation images to font
and more...