#include "battery_service.h"\r
#endif\r
\r
+#ifdef ENABLE_HP4570\r
+#include "hp4570.h"\r
+#endif\r
+\r
// int32_t user_get_random_bytes(uint32_t size, uint8_t *randnum)\r
// {\r
// return uapi_drv_cipher_trng_get_random_bytes(randnum, size);\r
\r
if(check_power_on_voltage())\r
{\r
+ #if defined(SUPPORT_BATTERY_SERVICE)\r
+\r
+ extern uint8_t get_charge_stat(void);\r
+ if(!get_charge_stat())\r
+ {\r
+ PRINT("low power, need charge\n");\r
+ uapi_tcxo_delay_ms(1000);\r
+ mcu_poweroff();\r
+ return;\r
+ }\r
+\r
+ #ifdef ENABLE_HP4570\r
+ hp4570n_init(HP4570N);\r
+ #endif\r
//显示充电图片\r
+ ShowGraphicChargingLogo();\r
+\r
\r
while(1)\r
{\r
+ if(!get_charge_stat())\r
+ {\r
+ PRINT("low power, need charge\n");\r
+ uapi_tcxo_delay_ms(1000);\r
+ mcu_poweroff();\r
+ return;\r
+ }\r
#ifdef SUPPORT_POWER_MANAGER\r
const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
display_api->turn_on_screen();\r
else\r
mcu_reset();\r
}\r
+ #endif\r
}\r
\r
\r
static OHOS::UIImageView *g_ota_logo = nullptr;
static OHOS::ImageInfo *g_ota_imgInfo = nullptr;
+ static bool g_showChargingLogo = false;
+ static OHOS::UIImageView *g_charging_logo = nullptr;
+ static OHOS::ImageInfo *g_charging_imgInfo = nullptr;
+
static uint32_t *g_boot_animation_task_handle = NULL;
static OHOS::UIViewGroup *group = nullptr;
#else
#define IMAGE_OPEN_LOGO_PATH "/system/FOOING_LOGO.bin"
#endif
+
+ #ifdef SINGLE_USER_PARTITION
+ #define IMAGE_CHARGING_LOGO_PATH "/user/res/charge/20.bin"
+ #else
+ #define IMAGE_CHARGING_LOGO_PATH "/res/charge/20.bin"
+ #endif
#else
// 默认通用Logo
});
}
+ void HideGraphicChargingLogo(void)
+ {
+ if (!g_showChargingLogo) {
+ return;
+ }
+ g_showChargingLogo = false;
+ GraphicService::GetInstance()->PostGraphicEvent(
+ []
+ {
+ if (g_charging_logo != nullptr) {
+ OHOS::RootView::GetInstance()->Remove(g_charging_logo);
+ delete g_charging_logo;
+ g_charging_logo = nullptr;
+ OHOS::ImageCacheManager::GetInstance().UnloadSingleRes(IMAGE_CHARGING_LOGO_PATH);
+ g_charging_imgInfo = nullptr;
+ }
+ });
+ }
+
static void boot_animation_task(void *arg)
{
unused(arg);
}
HideGraphicLogo();
HideGraphicOtaLogo();
+ HideGraphicChargingLogo();
OHOS::GraphicEventHandler::GetInstance()->PostGraphicEvent(
[]
{
LOS_Msleep(500);
}
+ void ShowGraphicChargingLogo(void)
+ {
+ if (g_showChargingLogo) {
+ return;
+ }
+ g_showChargingLogo = true;
+ g_charging_logo = new OHOS::UIImageView();
+ g_charging_logo->SetPosition(0, 0, OHOS::Screen::GetInstance().GetWidth(), OHOS::Screen::GetInstance().GetHeight());
+ g_charging_logo->SetAutoEnable(false);
+ g_charging_logo->SetResizeMode(OHOS::UIImageView::CENTER);
+ g_charging_imgInfo = OHOS::ImageCacheManager::GetInstance().LoadSingleRes(IMAGE_CHARGING_LOGO_PATH);
+ g_charging_logo->SetSrc(g_charging_imgInfo);
+ GraphicService::GetInstance()->PostGraphicEvent(
+ []
+ {
+ OHOS::RootView::GetInstance()->Add(g_charging_logo);
+ OHOS::RootView::GetInstance()->Invalidate();
+ });
+ LOS_Msleep(500);
+ }
+
//开机动画初始化
void boot_animation_init_deinit(void)
{