mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-07-25 01:38:11 -07:00
fix issues Shutdown on idle
This commit is contained in:
@@ -71,8 +71,6 @@ static void power_auto_shutdown_inhibit(Power* power) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void power_auto_shutdown_timer_callback(void* context) {
|
||||
furi_assert(context);
|
||||
Power* power = context;
|
||||
@@ -91,7 +89,7 @@ static void auto_shutdown_update(Power* power) {
|
||||
power_auto_shutdown_arm(power);
|
||||
}
|
||||
}
|
||||
}else if(old_time){
|
||||
} else if(old_time) {
|
||||
power_auto_shutdown_inhibit(power);
|
||||
}
|
||||
}
|
||||
@@ -277,7 +275,7 @@ int32_t power_srv(void* p) {
|
||||
UNUSED(p);
|
||||
Power* power = power_alloc();
|
||||
if(!LOAD_POWER_SETTINGS(&power->shutdown_idle_delay_ms)) {
|
||||
memset(&power->shutdown_idle_delay_ms, 0, sizeof(uint32_t));
|
||||
power->shutdown_idle_delay_ms = 0;
|
||||
SAVE_POWER_SETTINGS(&power->shutdown_idle_delay_ms);
|
||||
}
|
||||
power_auto_shutdown_arm(power);
|
||||
@@ -285,7 +283,6 @@ int32_t power_srv(void* p) {
|
||||
furi_record_create(RECORD_POWER, power);
|
||||
|
||||
while(1) {
|
||||
|
||||
//Check current setting for automatic shutdown
|
||||
auto_shutdown_update(power);
|
||||
|
||||
|
||||
@@ -9,17 +9,8 @@
|
||||
|
||||
#define SAVE_POWER_SETTINGS(x) \
|
||||
saved_struct_save( \
|
||||
POWER_SETTINGS_PATH, \
|
||||
(x), \
|
||||
sizeof(uint32_t), \
|
||||
POWER_SETTINGS_MAGIC, \
|
||||
POWER_SETTINGS_VER)
|
||||
|
||||
POWER_SETTINGS_PATH, (x), sizeof(uint32_t), POWER_SETTINGS_MAGIC, POWER_SETTINGS_VER)
|
||||
|
||||
#define LOAD_POWER_SETTINGS(x) \
|
||||
saved_struct_load( \
|
||||
POWER_SETTINGS_PATH, \
|
||||
(x), \
|
||||
sizeof(uint32_t), \
|
||||
POWER_SETTINGS_MAGIC, \
|
||||
POWER_SETTINGS_VER)
|
||||
POWER_SETTINGS_PATH, (x), sizeof(uint32_t), POWER_SETTINGS_MAGIC, POWER_SETTINGS_VER)
|
||||
|
||||
@@ -51,7 +51,10 @@ PowerSettingsApp* power_settings_app_alloc(uint32_t first_scene) {
|
||||
app->dialog = dialog_ex_alloc();
|
||||
view_dispatcher_add_view(
|
||||
app->view_dispatcher, PowerSettingsAppViewDialog, dialog_ex_get_view(app->dialog));
|
||||
view_dispatcher_add_view(app->view_dispatcher, PowerSettingsAppViewVariableItemList, variable_item_list_get_view(app->variable_item_list));
|
||||
view_dispatcher_add_view(
|
||||
app->view_dispatcher,
|
||||
PowerSettingsAppViewVariableItemList,
|
||||
variable_item_list_get_view(app->variable_item_list));
|
||||
|
||||
// Set first scene
|
||||
scene_manager_next_scene(app->scene_manager, first_scene);
|
||||
|
||||
@@ -34,5 +34,3 @@ typedef enum {
|
||||
PowerSettingsAppViewDialog,
|
||||
PowerSettingsAppViewVariableItemList
|
||||
} PowerSettingsAppView;
|
||||
|
||||
|
||||
|
||||
@@ -2,4 +2,4 @@ ADD_SCENE(power_settings, start, Start)
|
||||
ADD_SCENE(power_settings, battery_info, BatteryInfo)
|
||||
ADD_SCENE(power_settings, reboot, Reboot)
|
||||
ADD_SCENE(power_settings, power_off, PowerOff)
|
||||
ADD_SCENE(power_settings,shutdown_idle, ShutdownIdle)
|
||||
ADD_SCENE(power_settings, shutdown_idle, ShutdownIdle)
|
||||
|
||||
@@ -4,21 +4,13 @@
|
||||
#define SHUTDOWN_IDLE_DELAY_COUNT 8
|
||||
#define SCENE_EVENT_SELECT_SHUTDOWN_IDLE_DELAY 0
|
||||
|
||||
const char* const shutdown_idle_delay_text[SHUTDOWN_IDLE_DELAY_COUNT] = {
|
||||
"OFF",
|
||||
"15min",
|
||||
"30min",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"48h"
|
||||
};
|
||||
const char* const shutdown_idle_delay_text[SHUTDOWN_IDLE_DELAY_COUNT] =
|
||||
{"OFF", "15min", "30min", "1h", "6h", "12h", "24h", "48h"};
|
||||
|
||||
const uint32_t shutdown_idle_delay_value[SHUTDOWN_IDLE_DELAY_COUNT] =
|
||||
{0, 900000, 1800000, 3600000, 21600000, 43200000, 86400000, 172800000};
|
||||
|
||||
static void power_settings_scene_shutodwn_idle_callback(void* context, uint32_t index) {
|
||||
static void power_settings_scene_shutodwn_idle_callback(void* context, uint32_t index) {
|
||||
PowerSettingsApp* app = context;
|
||||
view_dispatcher_send_custom_event(app->view_dispatcher, index);
|
||||
}
|
||||
@@ -34,7 +26,7 @@ static void power_settings_scene_start_shutdown_idle_delay_changed(VariableItem*
|
||||
void power_settings_scene_shutdown_idle_on_enter(void* context) {
|
||||
PowerSettingsApp* app = context;
|
||||
LOAD_POWER_SETTINGS(&app->shutdown_idle_delay_ms);
|
||||
VariableItemList* variable_item_list = app->variable_item_list;
|
||||
VariableItemList* variable_item_list = app->variable_item_list;
|
||||
VariableItem* item;
|
||||
uint8_t value_index;
|
||||
|
||||
@@ -45,7 +37,6 @@ void power_settings_scene_shutdown_idle_on_enter(void* context) {
|
||||
power_settings_scene_start_shutdown_idle_delay_changed,
|
||||
app);
|
||||
|
||||
|
||||
variable_item_list_set_enter_callback(
|
||||
variable_item_list, power_settings_scene_shutodwn_idle_callback, app);
|
||||
|
||||
@@ -62,10 +53,8 @@ bool power_settings_scene_shutdown_idle_on_event(void* context, SceneManagerEven
|
||||
bool consumed = false;
|
||||
|
||||
if(event.type == SceneManagerEventTypeCustom) {
|
||||
switch(event.event) {
|
||||
case SCENE_EVENT_SELECT_SHUTDOWN_IDLE_DELAY:
|
||||
if(event.event == SCENE_EVENT_SELECT_SHUTDOWN_IDLE_DELAY) {
|
||||
consumed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return consumed;
|
||||
|
||||
@@ -35,7 +35,7 @@ void power_settings_scene_start_on_enter(void* context) {
|
||||
PowerSettingsSubmenuIndexOff,
|
||||
power_settings_scene_start_submenu_callback,
|
||||
app);
|
||||
submenu_add_item(
|
||||
submenu_add_item(
|
||||
submenu,
|
||||
"Shutdown on Idle",
|
||||
PowerSettingsSubmenuShutdownIdle,
|
||||
@@ -58,7 +58,7 @@ bool power_settings_scene_start_on_event(void* context, SceneManagerEvent event)
|
||||
scene_manager_next_scene(app->scene_manager, PowerSettingsAppSceneReboot);
|
||||
} else if(event.event == PowerSettingsSubmenuIndexOff) {
|
||||
scene_manager_next_scene(app->scene_manager, PowerSettingsAppScenePowerOff);
|
||||
}else if(event.event == PowerSettingsSubmenuShutdownIdle){
|
||||
} else if(event.event == PowerSettingsSubmenuShutdownIdle) {
|
||||
scene_manager_next_scene(app->scene_manager, PowerSettingsAppSceneShutdownIdle);
|
||||
}
|
||||
scene_manager_set_scene_state(app->scene_manager, PowerSettingsAppSceneStart, event.event);
|
||||
|
||||
Reference in New Issue
Block a user