/* * SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD * * SPDX-License-Identifier: MIT */ #include "workers.h" #include #include #include #include using namespace smooth_ui_toolkit::lvgl_cpp; using namespace setup_workers; static std::string _tag = "Setup-AIAgent"; namespace { static const std::array _idle_motion_level_labels = {{"Off", "Low", "Medium", "High"}}; } // namespace XiaozhiPowerSavingWorker::XiaozhiPowerSavingWorker() { mclog::info("XiaozhiPowerSavingWorker start"); for (uint32_t seconds = 0; seconds <= 3600; seconds += 300) { _idle_shutdown_levels.push_back(seconds); } _config = GetHAL().getXiaozhiConfig(); int current_index = static_cast(_idle_shutdown_levels.size()) - 1; for (size_t i = 0; i < _idle_shutdown_levels.size(); ++i) { if (_idle_shutdown_levels[i] >= _config.idleShutdownTimeSeconds) { current_index = static_cast(i); break; } } _panel = std::make_unique(lv_screen_active()); _panel->setBgColor(lv_color_hex(0xEDF4FF)); _panel->align(LV_ALIGN_CENTER, 0, 0); _panel->setBorderWidth(0); _panel->setSize(320, 240); _panel->setRadius(0); _panel->setPadding(0, 50, 24, 18); _panel->setScrollDir(LV_DIR_VER); _panel->setScrollbarMode(LV_SCROLLBAR_MODE_ACTIVE); _panel_idle_shutdown = std::make_unique(_panel->get()); _panel_idle_shutdown->setSize(296, 148); _panel_idle_shutdown->align(LV_ALIGN_TOP_MID, 0, 20); _panel_idle_shutdown->setBgColor(lv_color_hex(0xD2E3FF)); _panel_idle_shutdown->setBorderWidth(0); _panel_idle_shutdown->setRadius(18); _panel_idle_shutdown->setPadding(0, 0, 0, 0); _panel_idle_shutdown->removeFlag(LV_OBJ_FLAG_SCROLLABLE); _label_idle_title = std::make_unique