mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 23:18:35 -07:00
Merge remote-tracking branch 'ul/dev' into mntm-dev
This commit is contained in:
@@ -20,8 +20,6 @@ static void desktop_auto_lock_arm(Desktop*);
|
||||
static void desktop_auto_lock_inhibit(Desktop*);
|
||||
static void desktop_start_auto_lock_timer(Desktop*);
|
||||
static void desktop_apply_settings(Desktop*);
|
||||
static void desktop_auto_lock_add_inhibitor(Desktop* desktop);
|
||||
static void desktop_auto_lock_remove_inhibitor(Desktop* desktop);
|
||||
|
||||
static void desktop_loader_callback(const void* message, void* context) {
|
||||
furi_assert(context);
|
||||
@@ -127,22 +125,16 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) {
|
||||
animation_manager_unload_and_stall_animation(desktop->animation_manager);
|
||||
}
|
||||
|
||||
desktop_auto_lock_add_inhibitor(desktop);
|
||||
desktop_auto_lock_inhibit(desktop);
|
||||
desktop->app_running = true;
|
||||
|
||||
furi_semaphore_release(desktop->animation_semaphore);
|
||||
|
||||
} else if(event == DesktopGlobalAfterAppFinished) {
|
||||
animation_manager_load_and_continue_animation(desktop->animation_manager);
|
||||
desktop_auto_lock_remove_inhibitor(desktop);
|
||||
desktop_auto_lock_arm(desktop);
|
||||
desktop->app_running = false;
|
||||
|
||||
} else if(event == DesktopGlobalAddExternalInhibitor) {
|
||||
desktop_auto_lock_add_inhibitor(desktop);
|
||||
|
||||
} else if(event == DesktopGlobalRemoveExternalInhibitor) {
|
||||
desktop_auto_lock_remove_inhibitor(desktop);
|
||||
|
||||
} else if(event == DesktopGlobalAutoLock) {
|
||||
if(!desktop->app_running && !desktop->locked) {
|
||||
desktop_lock(desktop, desktop->settings.auto_lock_with_pin);
|
||||
@@ -213,24 +205,6 @@ static void desktop_auto_lock_arm(Desktop* desktop) {
|
||||
}
|
||||
}
|
||||
|
||||
static void desktop_auto_lock_add_inhibitor(Desktop* desktop) {
|
||||
furi_check(furi_semaphore_release(desktop->auto_lock_inhibitors) == FuriStatusOk);
|
||||
FURI_LOG_D(
|
||||
TAG,
|
||||
"%lu autolock inhibitors (+1)",
|
||||
furi_semaphore_get_count(desktop->auto_lock_inhibitors));
|
||||
desktop_auto_lock_inhibit(desktop);
|
||||
}
|
||||
|
||||
static void desktop_auto_lock_remove_inhibitor(Desktop* desktop) {
|
||||
furi_check(furi_semaphore_acquire(desktop->auto_lock_inhibitors, 0) == FuriStatusOk);
|
||||
uint32_t inhibitors = furi_semaphore_get_count(desktop->auto_lock_inhibitors);
|
||||
FURI_LOG_D(TAG, "%lu autolock inhibitors (-1)", inhibitors);
|
||||
if(inhibitors == 0) {
|
||||
desktop_auto_lock_arm(desktop);
|
||||
}
|
||||
}
|
||||
|
||||
static void desktop_auto_lock_inhibit(Desktop* desktop) {
|
||||
desktop_stop_auto_lock_timer(desktop);
|
||||
if(desktop->input_events_subscription) {
|
||||
@@ -387,7 +361,6 @@ static Desktop* desktop_alloc(void) {
|
||||
desktop->input_events_pubsub = furi_record_open(RECORD_INPUT_EVENTS);
|
||||
desktop->ascii_events_pubsub = furi_record_open(RECORD_ASCII_EVENTS);
|
||||
|
||||
desktop->auto_lock_inhibitors = furi_semaphore_alloc(UINT32_MAX, 0);
|
||||
desktop->auto_lock_timer =
|
||||
furi_timer_alloc(desktop_auto_lock_timer_callback, FuriTimerTypeOnce, desktop);
|
||||
|
||||
@@ -546,18 +519,6 @@ void desktop_api_set_settings(Desktop* instance, const DesktopSettings* settings
|
||||
view_dispatcher_send_custom_event(instance->view_dispatcher, DesktopGlobalSaveSettings);
|
||||
}
|
||||
|
||||
void desktop_api_add_external_inhibitor(Desktop* instance) {
|
||||
furi_assert(instance);
|
||||
view_dispatcher_send_custom_event(
|
||||
instance->view_dispatcher, DesktopGlobalAddExternalInhibitor);
|
||||
}
|
||||
|
||||
void desktop_api_remove_external_inhibitor(Desktop* instance) {
|
||||
furi_assert(instance);
|
||||
view_dispatcher_send_custom_event(
|
||||
instance->view_dispatcher, DesktopGlobalRemoveExternalInhibitor);
|
||||
}
|
||||
|
||||
/*
|
||||
* Application thread
|
||||
*/
|
||||
|
||||
@@ -21,17 +21,3 @@ FuriPubSub* desktop_api_get_status_pubsub(Desktop* instance);
|
||||
void desktop_api_get_settings(Desktop* instance, DesktopSettings* settings);
|
||||
|
||||
void desktop_api_set_settings(Desktop* instance, const DesktopSettings* settings);
|
||||
|
||||
/**
|
||||
* @brief Adds 1 to the count of active external autolock inhibitors
|
||||
*
|
||||
* Autolocking will not get triggered while there's at least 1 inhibitor
|
||||
*/
|
||||
void desktop_api_add_external_inhibitor(Desktop* instance);
|
||||
|
||||
/**
|
||||
* @brief Removes 1 from the count of active external autolock inhibitors
|
||||
*
|
||||
* Autolocking will not get triggered while there's at least 1 inhibitor
|
||||
*/
|
||||
void desktop_api_remove_external_inhibitor(Desktop* instance);
|
||||
|
||||
@@ -74,7 +74,6 @@ struct Desktop {
|
||||
FuriPubSub* input_events_pubsub;
|
||||
FuriPubSubSubscription* input_events_subscription;
|
||||
|
||||
FuriSemaphore* auto_lock_inhibitors;
|
||||
FuriTimer* auto_lock_timer;
|
||||
FuriTimer* update_clock_timer;
|
||||
|
||||
|
||||
@@ -58,8 +58,6 @@ typedef enum {
|
||||
DesktopGlobalApiUnlock,
|
||||
DesktopGlobalSaveSettings,
|
||||
DesktopGlobalReloadSettings,
|
||||
DesktopGlobalAddExternalInhibitor,
|
||||
DesktopGlobalRemoveExternalInhibitor,
|
||||
|
||||
DesktopMainEventLockKeypad,
|
||||
DesktopLockedEventOpenPowerOff,
|
||||
|
||||
Reference in New Issue
Block a user