From 462a0c8efcc53eb34e63e26c4604e7511849a241 Mon Sep 17 00:00:00 2001 From: Willy-JL Date: Fri, 17 Feb 2023 23:30:28 +0000 Subject: [PATCH] Cleaner settings implementation (proper defaults) --- .../main/archive/helpers/archive_files.h | 2 +- .../desktop/animations/animation_storage.c | 1 - applications/services/dolphin/dolphin.c | 1 - .../services/gui/modules/file_browser.c | 2 +- .../services/power/power_service/power.h | 16 ++++++++-------- applications/services/xtreme/settings.c | 11 +++++++++++ applications/services/xtreme/settings.h | 4 ++-- .../xtreme_app/scenes/xtreme_app_scene_main.c | 17 ++++++++--------- 8 files changed, 31 insertions(+), 23 deletions(-) diff --git a/applications/main/archive/helpers/archive_files.h b/applications/main/archive/helpers/archive_files.h index 863a8e7da..431c701b3 100644 --- a/applications/main/archive/helpers/archive_files.h +++ b/applications/main/archive/helpers/archive_files.h @@ -84,7 +84,7 @@ static void ArchiveFile_t_clear(ArchiveFile_t* obj) { } static int ArchiveFile_t_cmp(const ArchiveFile_t* a, const ArchiveFile_t* b) { - if(!XTREME_SETTINGS()->sort_ignore_dirs) { + if(XTREME_SETTINGS()->sort_dirs_first) { if(a->type == ArchiveFileTypeFolder && b->type != ArchiveFileTypeFolder) { return -1; } diff --git a/applications/services/desktop/animations/animation_storage.c b/applications/services/desktop/animations/animation_storage.c index 0d09f18dd..f6181caa2 100644 --- a/applications/services/desktop/animations/animation_storage.c +++ b/applications/services/desktop/animations/animation_storage.c @@ -528,7 +528,6 @@ static BubbleAnimation* animation_storage_load_animation(const char* name) { animation->active_cycles = u32value; if(!flipper_format_read_uint32(ff, "Frame rate", &u32value, 1)) break; uint16_t anim_speed = XTREME_SETTINGS()->anim_speed; - anim_speed = (anim_speed == 0 ? 100 : anim_speed); u32value = (u32value * anim_speed) / 100; FURI_CONST_ASSIGN(animation->icon_animation.frame_rate, u32value < 1 ? 1 : u32value); if(!flipper_format_read_uint32(ff, "Duration", &u32value, 1)) break; diff --git a/applications/services/dolphin/dolphin.c b/applications/services/dolphin/dolphin.c index c46a843c8..8421f6815 100644 --- a/applications/services/dolphin/dolphin.c +++ b/applications/services/dolphin/dolphin.c @@ -94,7 +94,6 @@ Dolphin* dolphin_alloc() { dolphin->event_queue = furi_message_queue_alloc(8, sizeof(DolphinEvent)); dolphin->pubsub = furi_pubsub_alloc(); int32_t butthurt = XTREME_SETTINGS()->butthurt_timer; - butthurt = butthurt == 0 ? 43200 : butthurt; dolphin->butthurt_timer = xTimerCreate( NULL, (butthurt > 0) ? (butthurt * 1000) : -1, pdTRUE, dolphin, dolphin_butthurt_timer_callback); dolphin->flush_timer = diff --git a/applications/services/gui/modules/file_browser.c b/applications/services/gui/modules/file_browser.c index 5477192a0..841afda50 100644 --- a/applications/services/gui/modules/file_browser.c +++ b/applications/services/gui/modules/file_browser.c @@ -91,7 +91,7 @@ static int BrowserItem_t_cmp(const BrowserItem_t* a, const BrowserItem_t* b) { if(b->type == BrowserItemTypeBack) { return 1; } - if(!XTREME_SETTINGS()->sort_ignore_dirs) { + if(XTREME_SETTINGS()->sort_dirs_first) { if(a->type == BrowserItemTypeFolder && b->type != BrowserItemTypeFolder) { return -1; } diff --git a/applications/services/power/power_service/power.h b/applications/services/power/power_service/power.h index 6e41d5c6e..1752643d1 100644 --- a/applications/services/power/power_service/power.h +++ b/applications/services/power/power_service/power.h @@ -26,14 +26,14 @@ typedef enum { } PowerEventType; typedef enum { - BatteryIconOff = 1, - BatteryIconBar = 2, - BatteryIconPercent = 3, - BatteryIconInvertedPercent = 4, - BatteryIconRetro3 = 5, - BatteryIconRetro5 = 6, - BatteryIconBarPercent = 0, - BatteryIconCount = 7, + BatteryIconOff, + BatteryIconBar, + BatteryIconPercent, + BatteryIconInvertedPercent, + BatteryIconRetro3, + BatteryIconRetro5, + BatteryIconBarPercent, + BatteryIconCount, } BatteryIcon; typedef union { diff --git a/applications/services/xtreme/settings.c b/applications/services/xtreme/settings.c index bf1acae1b..15aeb3d80 100644 --- a/applications/services/xtreme/settings.c +++ b/applications/services/xtreme/settings.c @@ -31,6 +31,17 @@ void XTREME_SETTINGS_LOAD() { if(!loaded) { memset(xtreme_settings, 0, sizeof(XtremeSettings)); + xtreme_settings->asset_pack = ""; // SFW + xtreme_settings->anim_speed = 100; // 100% + xtreme_settings->cycle_anims = 0; // Meta.txt + xtreme_settings->unlock_anims = false; // OFF + xtreme_settings->battery_icon = BatteryIconBarPercent; // Bar % + xtreme_settings->status_icons = true; // ON + xtreme_settings->bar_borders = true; // ON + xtreme_settings->bar_background = false; // OFF + xtreme_settings->bad_bt = false; // USB + xtreme_settings->sort_dirs_first = true; // ON + xtreme_settings->butthurt_timer = 43200; // 12 H } } } diff --git a/applications/services/xtreme/settings.h b/applications/services/xtreme/settings.h index 8dd69ff7f..44ad37abf 100644 --- a/applications/services/xtreme/settings.h +++ b/applications/services/xtreme/settings.h @@ -11,7 +11,7 @@ #define MAX_PACK_NAME_LEN 32 -#define XTREME_SETTINGS_VERSION (2) +#define XTREME_SETTINGS_VERSION (3) #define XTREME_SETTINGS_PATH INT_PATH(XTREME_SETTINGS_FILE_NAME) #define XTREME_SETTINGS_MAGIC (0x69) @@ -28,7 +28,7 @@ typedef struct { bool bar_borders; bool bar_background; bool bad_bt; - bool sort_ignore_dirs; + bool sort_dirs_first; int32_t butthurt_timer; } XtremeSettings; diff --git a/applications/settings/xtreme_app/scenes/xtreme_app_scene_main.c b/applications/settings/xtreme_app/scenes/xtreme_app_scene_main.c index fead7956a..b7b5f7294 100644 --- a/applications/settings/xtreme_app/scenes/xtreme_app_scene_main.c +++ b/applications/settings/xtreme_app/scenes/xtreme_app_scene_main.c @@ -19,7 +19,7 @@ static void xtreme_app_scene_main_asset_pack_changed(VariableItem* item) { const char* const anim_speed_names[] = {"25%", "50%", "75%", "100%", "125%", "150%", "175%", "200%", "225%", "250%", "275%", "300%"}; const int32_t anim_speed_values[COUNT_OF(anim_speed_names)] = - {25, 50, 75, 0, 125, 150, 175, 200, 225, 250, 275, 300}; + {25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300}; static void xtreme_app_scene_main_anim_speed_changed(VariableItem* item) { XtremeApp* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); @@ -66,7 +66,7 @@ static void xtreme_app_scene_main_battery_icon_changed(VariableItem* item) { XtremeApp* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); variable_item_set_current_value_text(item, battery_icon_names[index]); - XTREME_SETTINGS()->battery_icon = (index + 1) % BatteryIconCount; + XTREME_SETTINGS()->battery_icon = index; app->save_settings = true; } @@ -137,7 +137,7 @@ const char* const butthurt_timer_names[] = { "24 H", "48 H"}; const int32_t butthurt_timer_values[COUNT_OF(butthurt_timer_names)] = - {-1, 1800, 3600, 7200, 14400, 21600, 28800, 0, 86400, 172800}; + {-1, 1800, 3600, 7200, 14400, 21600, 28800, 43200, 86400, 172800}; static void xtreme_app_scene_main_butthurt_timer_changed(VariableItem* item) { XtremeApp* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); @@ -151,7 +151,7 @@ static void xtreme_app_scene_main_sort_folders_before_changed(VariableItem* item XtremeApp* app = variable_item_get_context(item); bool value = variable_item_get_current_value_index(item); variable_item_set_current_value_text(item, value ? "ON" : "OFF"); - XTREME_SETTINGS()->sort_ignore_dirs = !value; + XTREME_SETTINGS()->sort_dirs_first = value; app->save_settings = true; } @@ -256,9 +256,8 @@ void xtreme_app_scene_main_on_enter(void* context) { BatteryIconCount, xtreme_app_scene_main_battery_icon_changed, app); - value_index = (xtreme_settings->battery_icon + BatteryIconCount - 1) % BatteryIconCount; - variable_item_set_current_value_index(item, value_index); - variable_item_set_current_value_text(item, battery_icon_names[value_index]); + variable_item_set_current_value_index(item, xtreme_settings->battery_icon); + variable_item_set_current_value_text(item, battery_icon_names[xtreme_settings->battery_icon]); item = variable_item_list_add( var_item_list, "Status Icons", 2, xtreme_app_scene_main_status_icons_changed, app); @@ -327,8 +326,8 @@ void xtreme_app_scene_main_on_enter(void* context) { 2, xtreme_app_scene_main_sort_folders_before_changed, app); - variable_item_set_current_value_index(item, !xtreme_settings->sort_ignore_dirs); - variable_item_set_current_value_text(item, !xtreme_settings->sort_ignore_dirs ? "ON" : "OFF"); + variable_item_set_current_value_index(item, xtreme_settings->sort_dirs_first); + variable_item_set_current_value_text(item, xtreme_settings->sort_dirs_first ? "ON" : "OFF"); FuriString* version_tag = furi_string_alloc_printf( "%s %s", version_get_gitbranchnum(NULL), version_get_builddate(NULL));