mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-10 05:59:08 -07:00
Merge remote-tracking branch 'OFW/astra/3934-alarm-improvements' into dev
This commit is contained in:
@@ -249,7 +249,7 @@ static void gui_redraw(Gui* gui) {
|
||||
|
||||
canvas_reset(gui->canvas);
|
||||
|
||||
if(gui->lockdown) {
|
||||
if(gui_is_lockdown(gui)) {
|
||||
gui_redraw_desktop(gui);
|
||||
bool need_attention =
|
||||
(gui_view_port_find_enabled(gui->layers[GuiLayerWindow]) != 0 ||
|
||||
@@ -299,7 +299,7 @@ static void gui_input(Gui* gui, InputEvent* input_event) {
|
||||
|
||||
ViewPort* view_port = NULL;
|
||||
|
||||
if(gui->lockdown) {
|
||||
if(gui_is_lockdown(gui)) {
|
||||
view_port = gui_view_port_find_enabled(gui->layers[GuiLayerDesktop]);
|
||||
} else {
|
||||
view_port = gui_view_port_find_enabled(gui->layers[GuiLayerFullscreen]);
|
||||
@@ -495,6 +495,23 @@ void gui_set_lockdown(Gui* gui, bool lockdown) {
|
||||
gui_update(gui);
|
||||
}
|
||||
|
||||
void gui_set_lockdown_inhibit(Gui* gui, bool inhibit) {
|
||||
furi_check(gui);
|
||||
|
||||
gui_lock(gui);
|
||||
gui->lockdown_inhibit = inhibit;
|
||||
gui_unlock(gui);
|
||||
|
||||
// Request redraw
|
||||
gui_update(gui);
|
||||
}
|
||||
|
||||
bool gui_is_lockdown(const Gui* gui) {
|
||||
furi_check(gui);
|
||||
|
||||
return gui->lockdown && !gui->lockdown_inhibit;
|
||||
}
|
||||
|
||||
Canvas* gui_direct_draw_acquire(Gui* gui) {
|
||||
furi_check(gui);
|
||||
|
||||
|
||||
@@ -110,6 +110,23 @@ size_t gui_get_framebuffer_size(const Gui* gui);
|
||||
*/
|
||||
void gui_set_lockdown(Gui* gui, bool lockdown);
|
||||
|
||||
/** Inhibit lockdown mode
|
||||
*
|
||||
* Lockdown mode can be inhibited by calling this function with inhibit set to true.
|
||||
* This is used to show information even when flipper is locked.
|
||||
*
|
||||
* @param gui Gui instance
|
||||
* @param inhibit true to inhibit lockdown mode
|
||||
*/
|
||||
void gui_set_lockdown_inhibit(Gui* gui, bool inhibit);
|
||||
|
||||
/** Check if Gui is in lockdown mode
|
||||
*
|
||||
* @param gui Gui instance
|
||||
* @return bool true if Gui is in lockdown mode
|
||||
*/
|
||||
bool gui_is_lockdown(const Gui* gui);
|
||||
|
||||
/** Acquire Direct Draw lock and get Canvas instance
|
||||
*
|
||||
* This method return Canvas instance for use in monopoly mode. Direct draw lock
|
||||
|
||||
@@ -51,6 +51,7 @@ struct Gui {
|
||||
|
||||
// Layers and Canvas
|
||||
bool lockdown;
|
||||
bool lockdown_inhibit;
|
||||
bool direct_draw;
|
||||
ViewPortArray_t layers[GuiLayerMAX];
|
||||
Canvas* canvas;
|
||||
|
||||
Reference in New Issue
Block a user