Butthurt timer xfw app setting

This commit is contained in:
Willy-JL
2023-02-16 03:43:01 +00:00
parent eccc467220
commit c7e02a5faa
3 changed files with 59 additions and 19 deletions
+4 -1
View File
@@ -7,6 +7,7 @@
#include <stdint.h>
#include <furi.h>
#include "furi_hal_random.h"
#include <xtreme/settings.h>
#define DOLPHIN_LOCK_EVENT_FLAG (0x1)
#define TAG "Dolphin"
@@ -92,8 +93,10 @@ Dolphin* dolphin_alloc() {
dolphin->state = dolphin_state_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, HOURS_IN_TICKS(2 * 24), pdTRUE, dolphin, dolphin_butthurt_timer_callback);
NULL, (butthurt > 0) ? (butthurt * 1000) : -1, pdTRUE, dolphin, dolphin_butthurt_timer_callback);
dolphin->flush_timer =
xTimerCreate(NULL, 30 * 1000, pdFALSE, dolphin, dolphin_flush_timer_callback);
dolphin->clear_limits_timer = xTimerCreate(
+1
View File
@@ -29,6 +29,7 @@ typedef struct {
bool bar_background;
bool bad_bt;
bool sort_ignore_dirs;
int32_t butthurt_timer;
} XtremeSettings;
XtremeSettings* XTREME_SETTINGS();
@@ -116,14 +116,6 @@ static void xtreme_app_scene_main_subghz_bypass_changed(VariableItem* item) {
app->save_subghz = true;
}
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;
app->save_settings = true;
}
static void xtreme_app_scene_main_xp_level_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
app->dolphin_level = variable_item_get_current_value_index(item) + 1;
@@ -133,6 +125,36 @@ static void xtreme_app_scene_main_xp_level_changed(VariableItem* item) {
app->save_level = true;
}
const char* const butthurt_timer_names[] = {
"OFF",
"30 M",
"1 H",
"2 H",
"4 H",
"6 H",
"8 H",
"12 H",
"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};
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);
variable_item_set_current_value_text(item, butthurt_timer_names[index]);
XTREME_SETTINGS()->butthurt_timer = butthurt_timer_values[index];
app->save_settings = true;
app->require_reboot = true;
}
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;
app->save_settings = true;
}
void xtreme_app_scene_main_on_enter(void* context) {
XtremeApp* app = context;
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
@@ -272,16 +294,7 @@ void xtreme_app_scene_main_on_enter(void* context) {
variable_item_set_current_value_text(item, app->subghz_bypass ? "ON" : "OFF");
variable_item_list_add(var_item_list, " = Misc =", 0, NULL, app);
item = variable_item_list_add(
var_item_list,
"Sort Dirs First",
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_list_add(var_item_list, " = Dolphin =", 0, NULL, app);
char level_str[4];
snprintf(level_str, 4, "%i", app->dolphin_level);
@@ -294,6 +307,29 @@ void xtreme_app_scene_main_on_enter(void* context) {
variable_item_set_current_value_index(item, app->dolphin_level - 1);
variable_item_set_current_value_text(item, level_str);
item = variable_item_list_add(
var_item_list,
"Butthurt Timer",
COUNT_OF(butthurt_timer_names),
xtreme_app_scene_main_butthurt_timer_changed,
app);
value_index = value_index_int32(
xtreme_settings->butthurt_timer, butthurt_timer_values, COUNT_OF(butthurt_timer_names));
variable_item_set_current_value_index(item, value_index);
variable_item_set_current_value_text(item, butthurt_timer_names[value_index]);
variable_item_list_add(var_item_list, " = Misc =", 0, NULL, app);
item = variable_item_list_add(
var_item_list,
"Sort Dirs First",
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");
FuriString* version_tag = furi_string_alloc_printf(
"%s %s", version_get_gitbranchnum(NULL), version_get_builddate(NULL));
variable_item_list_add(var_item_list, furi_string_get_cstr(version_tag), 0, NULL, app);