Prevent hacking related backgrounds from being displayed in dummy mode. (#2107)
* Prevent hacking related backgrounds from being displayed in dummy mode. * Add function call to animation manager to set dummy mode. * Reboot retains dummy mode background. Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
d541f142c8
commit
1c12613863
@ -52,6 +52,7 @@ struct AnimationManager {
|
||||
FuriString* freezed_animation_name;
|
||||
int32_t freezed_animation_time_left;
|
||||
ViewStack* view_stack;
|
||||
bool dummy_mode;
|
||||
};
|
||||
|
||||
static StorageAnimation*
|
||||
@ -93,6 +94,12 @@ void animation_manager_set_interact_callback(
|
||||
animation_manager->interact_callback = callback;
|
||||
}
|
||||
|
||||
void animation_manager_set_dummy_mode_state(AnimationManager* animation_manager, bool enabled) {
|
||||
furi_assert(animation_manager);
|
||||
animation_manager->dummy_mode = enabled;
|
||||
animation_manager_start_new_idle(animation_manager);
|
||||
}
|
||||
|
||||
static void animation_manager_check_blocking_callback(const void* message, void* context) {
|
||||
const StorageEvent* storage_event = message;
|
||||
|
||||
@ -363,7 +370,9 @@ static bool animation_manager_is_valid_idle_animation(
|
||||
|
||||
static StorageAnimation*
|
||||
animation_manager_select_idle_animation(AnimationManager* animation_manager) {
|
||||
UNUSED(animation_manager);
|
||||
if(animation_manager->dummy_mode) {
|
||||
return animation_storage_find_animation(HARDCODED_ANIMATION_NAME);
|
||||
}
|
||||
StorageAnimationList_t animation_list;
|
||||
StorageAnimationList_init(animation_list);
|
||||
animation_storage_fill_animation_list(&animation_list);
|
||||
|
@ -157,3 +157,11 @@ void animation_manager_unload_and_stall_animation(AnimationManager* animation_ma
|
||||
* @animation_manager instance
|
||||
*/
|
||||
void animation_manager_load_and_continue_animation(AnimationManager* animation_manager);
|
||||
|
||||
/**
|
||||
* Enable or disable dummy mode backgrounds of animation manager.
|
||||
*
|
||||
* @animation_manager instance
|
||||
* @enabled bool
|
||||
*/
|
||||
void animation_manager_set_dummy_mode_state(AnimationManager* animation_manager, bool enabled);
|
||||
|
@ -144,6 +144,7 @@ void desktop_unlock(Desktop* desktop) {
|
||||
void desktop_set_dummy_mode_state(Desktop* desktop, bool enabled) {
|
||||
view_port_enabled_set(desktop->dummy_mode_icon_viewport, enabled);
|
||||
desktop_main_set_dummy_mode_state(desktop->main_view, enabled);
|
||||
animation_manager_set_dummy_mode_state(desktop->animation_manager, enabled);
|
||||
desktop->settings.dummy_mode = enabled;
|
||||
DESKTOP_SETTINGS_SAVE(&desktop->settings);
|
||||
}
|
||||
@ -330,6 +331,8 @@ int32_t desktop_srv(void* p) {
|
||||
|
||||
view_port_enabled_set(desktop->dummy_mode_icon_viewport, desktop->settings.dummy_mode);
|
||||
desktop_main_set_dummy_mode_state(desktop->main_view, desktop->settings.dummy_mode);
|
||||
animation_manager_set_dummy_mode_state(
|
||||
desktop->animation_manager, desktop->settings.dummy_mode);
|
||||
|
||||
scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user