mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 12:42:30 +04:00
@@ -440,13 +440,15 @@ static void power_auto_poweroff_callback(const void* value, void* context) {
|
|||||||
static void power_auto_poweroff_timer_callback(void* context) {
|
static void power_auto_poweroff_timer_callback(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
Power* power = context;
|
Power* power = context;
|
||||||
//check charging state and dont poweroff if battery not fully charged
|
|
||||||
power_check_charging_state(power);
|
//poweroff if not charging now or if connected to charger and charging done
|
||||||
if (power->state == PowerStateCharged) {
|
if (((!furi_hal_power_is_charging())) || (furi_hal_power_is_charging_done())) {
|
||||||
power_off(power);
|
power_off(power);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
//else we dont poweroff device and restart timer
|
||||||
FURI_LOG_D(TAG, "We dont auto_power_off until battery is charging");
|
FURI_LOG_D(TAG, "We dont auto_power_off until battery is charging");
|
||||||
|
power_start_auto_poweroff_timer(power);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -493,12 +495,10 @@ static void power_loader_callback(const void* message, void* context) {
|
|||||||
static void power_settings_apply(Power* power) {
|
static void power_settings_apply(Power* power) {
|
||||||
//apply auto_poweroff settings
|
//apply auto_poweroff settings
|
||||||
if(power->settings.auto_poweroff_delay_ms && !power->app_running) {
|
if(power->settings.auto_poweroff_delay_ms && !power->app_running) {
|
||||||
return;
|
|
||||||
power_auto_poweroff_arm(power);
|
power_auto_poweroff_arm(power);
|
||||||
} else if (power_is_running_auto_poweroff_timer(power)) {
|
} else if (power_is_running_auto_poweroff_timer(power)) {
|
||||||
power_auto_poweroff_disarm(power);
|
power_auto_poweroff_disarm(power);
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// do something depend from power queue message
|
// do something depend from power queue message
|
||||||
@@ -662,6 +662,10 @@ int32_t power_srv(void* p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Power* power = power_alloc();
|
Power* power = power_alloc();
|
||||||
|
|
||||||
|
// load inital settings for power service
|
||||||
|
power_init_settings(power);
|
||||||
|
|
||||||
power_update_info(power);
|
power_update_info(power);
|
||||||
|
|
||||||
furi_record_create(RECORD_POWER, power);
|
furi_record_create(RECORD_POWER, power);
|
||||||
@@ -671,9 +675,6 @@ int32_t power_srv(void* p) {
|
|||||||
power->app_running = loader_is_locked(loader);
|
power->app_running = loader_is_locked(loader);
|
||||||
furi_record_close(RECORD_LOADER);
|
furi_record_close(RECORD_LOADER);
|
||||||
|
|
||||||
// load inital settings for power service
|
|
||||||
power_init_settings(power);
|
|
||||||
|
|
||||||
furi_event_loop_run(power->event_loop);
|
furi_event_loop_run(power->event_loop);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -2,18 +2,18 @@
|
|||||||
#include <lib/toolbox/value_index.h>
|
#include <lib/toolbox/value_index.h>
|
||||||
|
|
||||||
enum PowerSettingsSubmenuIndex {
|
enum PowerSettingsSubmenuIndex {
|
||||||
PowerSettingsSubmenuIndexAutoPowerOff,
|
|
||||||
PowerSettingsSubmenuIndexBatteryInfo,
|
PowerSettingsSubmenuIndexBatteryInfo,
|
||||||
PowerSettingsSubmenuIndexReboot,
|
PowerSettingsSubmenuIndexReboot,
|
||||||
PowerSettingsSubmenuIndexOff,
|
PowerSettingsSubmenuIndexOff,
|
||||||
|
PowerSettingsSubmenuIndexAutoPowerOff,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define AUTO_POWEROFF_DELAY_COUNT 9
|
#define AUTO_POWEROFF_DELAY_COUNT 8
|
||||||
const char* const auto_poweroff_delay_text[AUTO_POWEROFF_DELAY_COUNT] =
|
const char* const auto_poweroff_delay_text[AUTO_POWEROFF_DELAY_COUNT] =
|
||||||
{"OFF","5 sec","5min", "10min", "15min", "30min", "45min", "60min", "90min"};
|
{"OFF","5min", "10min", "15min", "30min", "45min", "60min", "90min"};
|
||||||
|
|
||||||
const uint32_t auto_poweroff_delay_value[AUTO_POWEROFF_DELAY_COUNT] =
|
const uint32_t auto_poweroff_delay_value[AUTO_POWEROFF_DELAY_COUNT] =
|
||||||
{0, 5000, 300000, 600000, 900000, 1800000, 2700000, 3600000, 5400000};
|
{0, 300000, 600000, 900000, 1800000, 2700000, 3600000, 5400000};
|
||||||
|
|
||||||
// change variable_item_list visible text and app_poweroff_delay_time_settings when user change item in variable_item_list
|
// change variable_item_list visible text and app_poweroff_delay_time_settings when user change item in variable_item_list
|
||||||
static void power_settings_scene_start_auto_poweroff_delay_changed(VariableItem* item) {
|
static void power_settings_scene_start_auto_poweroff_delay_changed(VariableItem* item) {
|
||||||
@@ -34,6 +34,10 @@ void power_settings_scene_start_on_enter(void* context) {
|
|||||||
PowerSettingsApp* app = context;
|
PowerSettingsApp* app = context;
|
||||||
VariableItemList* variable_item_list = app->variable_item_list;
|
VariableItemList* variable_item_list = app->variable_item_list;
|
||||||
|
|
||||||
|
variable_item_list_add(variable_item_list, "Battery Info", 1, NULL, NULL);
|
||||||
|
variable_item_list_add(variable_item_list, "Reboot", 1, NULL, NULL);
|
||||||
|
variable_item_list_add(variable_item_list, "Power OFF", 1, NULL, NULL);
|
||||||
|
|
||||||
VariableItem* item;
|
VariableItem* item;
|
||||||
uint8_t value_index;
|
uint8_t value_index;
|
||||||
item = variable_item_list_add(
|
item = variable_item_list_add(
|
||||||
@@ -49,11 +53,7 @@ void power_settings_scene_start_on_enter(void* context) {
|
|||||||
AUTO_POWEROFF_DELAY_COUNT);
|
AUTO_POWEROFF_DELAY_COUNT);
|
||||||
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, auto_poweroff_delay_text[value_index]);
|
variable_item_set_current_value_text(item, auto_poweroff_delay_text[value_index]);
|
||||||
|
|
||||||
variable_item_list_add(variable_item_list, "Battery Info", 1, NULL, NULL);
|
|
||||||
variable_item_list_add(variable_item_list, "Reboot", 1, NULL, NULL);
|
|
||||||
variable_item_list_add(variable_item_list, "Power OFF", 1, NULL, NULL);
|
|
||||||
|
|
||||||
variable_item_list_set_selected_item(
|
variable_item_list_set_selected_item(
|
||||||
variable_item_list, scene_manager_get_scene_state(app->scene_manager, PowerSettingsAppSceneStart));
|
variable_item_list, scene_manager_get_scene_state(app->scene_manager, PowerSettingsAppSceneStart));
|
||||||
variable_item_list_set_enter_callback( //callback to show next mennu screen
|
variable_item_list_set_enter_callback( //callback to show next mennu screen
|
||||||
|
|||||||
Reference in New Issue
Block a user