mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 09:28:36 -07:00
Add a cycle animations setting
This commit is contained in:
@@ -118,9 +118,12 @@ static void animation_manager_check_blocking_callback(const void* message, void*
|
|||||||
static void animation_manager_timer_callback(void* context) {
|
static void animation_manager_timer_callback(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
AnimationManager* animation_manager = context;
|
AnimationManager* animation_manager = context;
|
||||||
if(animation_manager->new_idle_callback) {
|
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
|
||||||
|
DESKTOP_SETTINGS_LOAD(settings);
|
||||||
|
if(!settings->dont_cycle_animations && animation_manager->new_idle_callback) {
|
||||||
animation_manager->new_idle_callback(animation_manager->context);
|
animation_manager->new_idle_callback(animation_manager->context);
|
||||||
}
|
}
|
||||||
|
free(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void animation_manager_interact_callback(void* context) {
|
static void animation_manager_interact_callback(void* context) {
|
||||||
|
|||||||
@@ -64,4 +64,5 @@ typedef struct {
|
|||||||
uint8_t displayBatteryPercentage;
|
uint8_t displayBatteryPercentage;
|
||||||
bool is_sfwmode;
|
bool is_sfwmode;
|
||||||
uint8_t sfw_mode;
|
uint8_t sfw_mode;
|
||||||
|
uint8_t dont_cycle_animations;
|
||||||
} DesktopSettings;
|
} DesktopSettings;
|
||||||
|
|||||||
@@ -39,6 +39,14 @@ const uint32_t displayBatteryPercentage_value[BATTERY_VIEW_COUNT] = {
|
|||||||
|
|
||||||
uint8_t origBattDisp_value = 0;
|
uint8_t origBattDisp_value = 0;
|
||||||
|
|
||||||
|
#define CYCLE_ANIMATIONS_COUNT 2
|
||||||
|
const char* const cycle_animations_text[CYCLE_ANIMATIONS_COUNT] = {
|
||||||
|
"ON",
|
||||||
|
"OFF",
|
||||||
|
};
|
||||||
|
const uint32_t cycle_animations_value[CYCLE_ANIMATIONS_COUNT] =
|
||||||
|
{0, 1};
|
||||||
|
|
||||||
static void desktop_settings_scene_start_var_list_enter_callback(void* context, uint32_t index) {
|
static void desktop_settings_scene_start_var_list_enter_callback(void* context, uint32_t index) {
|
||||||
DesktopSettingsApp* app = context;
|
DesktopSettingsApp* app = context;
|
||||||
view_dispatcher_send_custom_event(app->view_dispatcher, index);
|
view_dispatcher_send_custom_event(app->view_dispatcher, index);
|
||||||
@@ -60,6 +68,14 @@ static void desktop_settings_scene_start_battery_view_changed(VariableItem* item
|
|||||||
app->settings.displayBatteryPercentage = index;
|
app->settings.displayBatteryPercentage = index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void desktop_settings_scene_start_cycle_animations_changed(VariableItem* item) {
|
||||||
|
DesktopSettingsApp* app = variable_item_get_context(item);
|
||||||
|
uint8_t index = variable_item_get_current_value_index(item);
|
||||||
|
|
||||||
|
variable_item_set_current_value_text(item, cycle_animations_text[index]);
|
||||||
|
app->settings.dont_cycle_animations = auto_lock_delay_value[index];
|
||||||
|
}
|
||||||
|
|
||||||
void desktop_settings_scene_start_on_enter(void* context) {
|
void desktop_settings_scene_start_on_enter(void* context) {
|
||||||
DesktopSettingsApp* app = context;
|
DesktopSettingsApp* app = context;
|
||||||
VariableItemList* variable_item_list = app->variable_item_list;
|
VariableItemList* variable_item_list = app->variable_item_list;
|
||||||
@@ -102,6 +118,18 @@ void desktop_settings_scene_start_on_enter(void* context) {
|
|||||||
variable_item_set_current_value_index(item, value_index);
|
variable_item_set_current_value_index(item, value_index);
|
||||||
variable_item_set_current_value_text(item, battery_view_count_text[value_index]);
|
variable_item_set_current_value_text(item, battery_view_count_text[value_index]);
|
||||||
|
|
||||||
|
item = variable_item_list_add(
|
||||||
|
variable_item_list,
|
||||||
|
"Cycle animations",
|
||||||
|
CYCLE_ANIMATIONS_COUNT,
|
||||||
|
desktop_settings_scene_start_cycle_animations_changed,
|
||||||
|
app);
|
||||||
|
|
||||||
|
value_index = value_index_uint32(
|
||||||
|
app->settings.dont_cycle_animations, cycle_animations_value, CYCLE_ANIMATIONS_COUNT);
|
||||||
|
variable_item_set_current_value_index(item, value_index);
|
||||||
|
variable_item_set_current_value_text(item, cycle_animations_text[value_index]);
|
||||||
|
|
||||||
variable_item_list_set_enter_callback(
|
variable_item_list_set_enter_callback(
|
||||||
variable_item_list, desktop_settings_scene_start_var_list_enter_callback, app);
|
variable_item_list, desktop_settings_scene_start_var_list_enter_callback, app);
|
||||||
view_dispatcher_switch_to_view(app->view_dispatcher, DesktopSettingsAppViewVarItemList);
|
view_dispatcher_switch_to_view(app->view_dispatcher, DesktopSettingsAppViewVarItemList);
|
||||||
|
|||||||
Reference in New Issue
Block a user