主界面卡片:血氧,训练。上拉界面使用ImageCacheManager管理
authorCaisking <3449750381@qq.com>
Fri, 15 Mar 2024 08:50:28 +0000 (16:50 +0800)
committerCaisking <3449750381@qq.com>
Fri, 15 Mar 2024 08:50:28 +0000 (16:50 +0800)
21 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_image.h
code/sdk/application/wearable/fd230app/nativeui/heart_blood/include/BloodCardView.h
code/sdk/application/wearable/fd230app/nativeui/heart_blood/src/BloodCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp
code/sdk/application/wearable/fd230app/nativeui/screensetting/include/ScreenModels.h
code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingView.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/QQ-icon.bin [deleted file]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/WeChat-icon.bin [deleted file]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/message-icon.bin [deleted file]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin [deleted file]
code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_check.cpp
code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_clock_dial/UiConfig.h

index 87a4d50..80e31f2 100644 (file)
@@ -46,6 +46,9 @@ namespace OHOS
     static constexpr const char *COMPASS_IAMGES = APP_RES_PATH "/compass/compass.bin";
     static constexpr const char *DROPDOWN_IAMGES = APP_RES_PATH "/dropdown/dropdown.bin";
     static constexpr const char *HEART_IAMGES = APP_RES_PATH "/heart/heart.bin";
+    static constexpr const char *BLOOD_IAMGES = APP_RES_PATH "/Blood/BloodOxygen.bin";
+    static constexpr const char *TRAINING_IAMGES = APP_RES_PATH "/Training/Training.bin";
+    static constexpr const char *MESSAGE_IAMGES = APP_RES_PATH "/Message/Message.bin";
     /* ----------------------------------- 打电话图片 ---------------------------------- */
     static constexpr const char *PNG_AGREEING_IMAGE_PATH = APP_RES_PATH "/AGREEING.bin";
     static constexpr const char *PNG_DISSGREE_IMAGE_PATH = APP_RES_PATH "/DISSGREE.bin";
@@ -356,7 +359,7 @@ namespace OHOS
     static constexpr const char *B024_009_IMAGE_PATH = APP_RES_PATH "/HOURHAND.bin";
     static constexpr const char *B024_010_IMAGE_PATH = APP_RES_PATH "/SECONDHAND.bin";
     static constexpr const char *B024_011_IMAGE_PATH = APP_RES_PATH "/MINUTEHAND.bin";
-    static constexpr const char *PNG_APPLIST_PHONE_IMAGE = APP_RES_PATH "/phone.bin";                     // 电话
+    static constexpr const char *PNG_APPLIST_PHONE_IMAGE = APP_RES_PATH "/phone.bin"; // 电话
     /* -------------------------------------------------------------------------- */
     static constexpr const char *PNG_NEW_WLAN_WIFI = APP_RES_PATH "/FULL_SIGNAL_OPEN.bin";
     static constexpr const char *FULL_SIGNAL_ENCRYPTION = APP_RES_PATH "/FULL_SIGNAL_ENCRYPTION.bin";
index 53562a7..85e8200 100644 (file)
@@ -1,7 +1,8 @@
 #ifndef UI_RESOURCE_IMAGE_H
 #define UI_RESOURCE_IMAGE_H
 #include <cstdint>
-namespace OHOS {
+namespace OHOS
+{
     static const int DIR_MASK = 0xfff00000;
     static const int PNG_MASK = 0x000fffff;
 
@@ -50,14 +51,14 @@ namespace OHOS {
     static const int CLOCK_CLOCK7 = 0x30000e;
     static const int CLOCK_CLOCK8 = 0x30000f;
     static const int CLOCK_CLOCK9 = 0x300010;
-    static const int CLOCK_CLASSIC_GEOMETRY  = 0x300011;
+    static const int CLOCK_CLASSIC_GEOMETRY = 0x300011;
     static const int CLOCK_CLOCK_HOUR = 0x300012;
     static const int CLOCK_CLOCK_MINUTE = 0x300013;
-    static const int CLOCK_CLOCK_SECOND  = 0x300014;
+    static const int CLOCK_CLOCK_SECOND = 0x300014;
     static const int CLOCK_HOUR = 0x300015;
     static const int CLOCK_MINUTE = 0x300016;
     static const int CLOCK_SECOND = 0x300017;
-   /* -------------------------------------------------------------------------- */
+    /* -------------------------------------------------------------------------- */
     static const int DROPDOWN_BLUETOOTHCONNECTED = 0x400001;    // 蓝牙连接中
     static const int DROPDOWN_BLUETOOTHDISCONNECTED = 0x400002; // 蓝牙未连接
     static const int DROPDOWN_EARPHONESCONNECTED = 0x400003;    // 耳机连接中
@@ -71,9 +72,22 @@ namespace OHOS {
     static const int DROPDOWN_SAVEPOWER = 0x40000b;             // 省电模式
     static const int DROPDOWN_SETTING = 0x40000c;               // 设置
     /* -------------------------------------------------------------------------- */
-    static const int COMPASS_COMPASS0 = 0x500001;              //背景
-    static const int COMPASS_COMPASS1 = 0x500002;              //标记点图片
-    static const int COMPASS_COMPASS2 = 0x500003;              //三角
-
+    static const int COMPASS_COMPASS0 = 0x500001; // 背景
+    static const int COMPASS_COMPASS1 = 0x500002; // 标记点图片
+    static const int COMPASS_COMPASS2 = 0x500003; // 三角
+    /* -------------------------------------------------------------------------- */
+    static const int BLOODOXYGEN_BACKGOUND = 0x600001;
+    static const int MESSAGE_MESSAGE = 0x700001;
+    static const int MESSAGE_QQ = 0x700002;
+    static const int MESSAGE_SYSTEM = 0x700003;
+    static const int MESSAGE_WECHAT = 0x700004;
+    static const int TRAINING_BOUTTONGROUND = 0x800001;
+    static const int TRAINING_BUTTONGROUND2 = 0x800002;
+    static const int TRAINING_MORE = 0x800003;
+    static const int TRAINING_RIDING_BIG2 = 0x800004;
+    static const int TRAINING_RUNNING_BIG = 0x800005;
+    static const int TRAINING_WALKING_BIG = 0x800006;
+    /* -------------------------------------------------------------------------- */
+    
 }
 #endif
index b801322..071457a 100644 (file)
@@ -50,7 +50,9 @@ namespace OHOS
         UILabel *titleLabel = nullptr;\r
         UILabel *bloodLabel = nullptr;\r
         UILabel *timeLabel = nullptr;\r
+\r
         bool viewiInitStatus{false};\r
+        bool resLoadStatus{false};\r
 \r
         int bloodoxygen;\r
     };\r
index b56fe3c..da0f002 100644 (file)
@@ -1,6 +1,5 @@
 \r
 #include "heart_blood/include/BloodCardView.h"\r
-\r
 #include "common/image_cache_manager.h"\r
 #include "UiConfig.h"\r
 #include "ui_resource_image.h"\r
@@ -12,6 +11,7 @@
 #include "DialModelHeartRate.h"\r
 #include "BloodOxygenModel.h"\r
 #include "BloodOxygenPresenter.h"\r
+#include "UiConfig.h"\r
 namespace OHOS\r
 {\r
     static BloodCardView *g_pBloodCardView{nullptr};\r
@@ -171,9 +171,6 @@ namespace OHOS
         background->SetPosition(0, 0);   // widget's left position and top position\r
         background->Resize(466, 466);    // widget's width and height\r
         background->SetViewId("image1"); // Set style\r
-        // Set additional property\r
-        char *image1imagesPath = "/user/res/Blood/beijing.bin";\r
-        background->SetSrc(image1imagesPath);\r
 \r
         // Add to rootView\r
         Add(background);\r
@@ -239,6 +236,7 @@ namespace OHOS
             titleLabel = nullptr;\r
         }\r
     }\r
+    /* -------------------------------------------------------------------------- */\r
     void BloodCardView::PreLoad(void)\r
     {\r
         if (!viewiInitStatus)\r
@@ -246,10 +244,30 @@ namespace OHOS
             InitView();\r
             viewiInitStatus = true;\r
         }\r
+        if (!resLoadStatus)\r
+        {\r
+            ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(BLOODOXYGEN_BACKGOUND, BLOOD_IAMGES);\r
+            if (image == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::LoadTrainingImage  fail");\r
+                return;\r
+            }\r
+            background->SetSrc(image);\r
+            resLoadStatus = true;\r
+        }\r
     }\r
 \r
     void BloodCardView::UnLoad(void)\r
     {\r
+#if 0\r
+        if (resLoadStatus)\r
+        {\r
+            ImageInfo *img = nullptr;\r
+            background->SetSrc(img);\r
+            ImageCacheManager::GetInstance().UnloadOneInMultiRes(BLOODOXYGEN_BACKGOUND, BLOOD_IAMGES);\r
+            resLoadStatus = false;\r
+        }\r
+#endif\r
     }\r
-\r
+    /* -------------------------------------------------------------------------- */\r
 }\r
index 4d10dc7..3e7eb93 100644 (file)
@@ -29,7 +29,7 @@
 #include "DialViewGroup.h"
 #endif
 #include "ui_service.h"
-
+#define TESTCHECK 0
 namespace OHOS
 {
 
@@ -191,7 +191,7 @@ namespace OHOS
 
     void MainPresenterSample::OnSwipe(UISwipeView &view)
     {
-#if 0
+#if TESTCHECK
         MemCheck::GetInstance()->DumpMemInfo();
         printf("total size:%d\n", view_->GetHorCurrentPage());
 #endif
index 794edf1..17e5283 100644 (file)
@@ -30,7 +30,7 @@ namespace OHOS
         {WATCH_FACE, &MainViewSample::InitWatchFacePage},
         {HEART_RATE, &MainViewSample::InitHeartRatePage},
         {BloodOxygen, &MainViewSample::InitBloodOxygenPage},
-        //{TRAINING, &MainViewSample::InitTrainingPage},
+        {TRAINING, &MainViewSample::InitTrainingPage},
         {COMPASS, &MainViewSample::InitCompassPage},
         //{WEATHER, &MainViewSample::InitWeatherPage},
         {MUSIC_PLAYER, &MainViewSample::InitMusicPlayerPage},
index 0a23d50..4a387c5 100644 (file)
@@ -1,7 +1,8 @@
 
 #include "message/include/MessageModel.h"
 #include "common/image_cache_manager.h"
-
+#include "UiConfig.h"
+#include "ui_resource_image.h"
 namespace OHOS
 {
 
@@ -17,10 +18,10 @@ namespace OHOS
 
     void MessageModel::InitMessageListItem()
     {
-        ImageInfo *imgSystem = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_System);
-        ImageInfo *imgNote = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_Note);
-        ImageInfo *imgWechat = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_Wechat);
-        ImageInfo *imgQQ = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_QQ);
+        ImageInfo *imgSystem = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_SYSTEM, MESSAGE_IAMGES);
+        ImageInfo *imgNote = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_MESSAGE, MESSAGE_IAMGES);
+        ImageInfo *imgWechat = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_WECHAT, MESSAGE_IAMGES);
+        ImageInfo *imgQQ = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_QQ, MESSAGE_IAMGES);
 
         Messages[0] = {0, imgSystem, "系统", "暂无信息", false};
         Messages[1] = {1, imgNote, "信息", "暂无信息", false};
index 4fa64e7..5804c04 100644 (file)
@@ -18,7 +18,7 @@ namespace OHOS
     {
         WATCH_FACE = 0,
         HEART_RATE,
-        //TRAINING,
+        TRAINING,
         BloodOxygen,
         COMPASS,
         //WEATHER,
index d8970a3..8b593c1 100644 (file)
 #include "UiConfig.h"
 #include "ui_resource_image.h"
 
-namespace OHOS {
-
-ScreenModels::ScreenModels()
+namespace OHOS
 {
-}
 
-ScreenModels::~ScreenModels()
-{
-}
+    ScreenModels::ScreenModels()
+    {
+    }
 
-ScreenModels *ScreenModels::GetInstance(void)
-{
-    static ScreenModels screenModel;
-    return &screenModel;
-}
+    ScreenModels::~ScreenModels()
+    {
+    }
 
-bool ScreenModels::SetUpListCase(void)
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpListCase");
-    listMainView = new List<CardInfo>();
-    if (listMainView == nullptr) {
-        return false;
+    ScreenModels *ScreenModels::GetInstance(void)
+    {
+        static ScreenModels screenModel;
+        return &screenModel;
     }
-    listMainView->Clear();
-    return true;
-}
 
-bool ScreenModels::InitCardConfig(void)
-{
-    if (SetUpListCase() == false) {
-        return false;
+    bool ScreenModels::SetUpListCase(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpListCase");
+        listMainView = new List<CardInfo>();
+        if (listMainView == nullptr)
+        {
+            return false;
+        }
+        listMainView->Clear();
+        return true;
     }
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig1");
-    int32_t fd = open(CARD_CONFIG_PATH, O_RDWR, S_IRWXU);
-    ListNode<CardInfo> *node;
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig2");
-    struct CardInfo cardInfoData;
-    if (fd < 0) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail");
-        fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU);
-        if (fd < 0) {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail 2");
+
+    bool ScreenModels::InitCardConfig(void)
+    {
+        if (SetUpListCase() == false)
+        {
             return false;
         }
-        SetCardConfigDefault();
-        node = listMainView->Begin();
-        for (int32_t i = 0; i < maxPage; i++) {
-            cardInfoData = node->data_;
-            node = node->next_;
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Init write cardInfoData.i:%d ", cardInfoData.cardId);
-            if (write(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo)) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init SaveGlobalHealthToFile fail");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig1");
+        int32_t fd = open(CARD_CONFIG_PATH, O_RDWR, S_IRWXU);
+        ListNode<CardInfo> *node;
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig2");
+        struct CardInfo cardInfoData;
+        if (fd < 0)
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail");
+            fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU);
+            if (fd < 0)
+            {
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail 2");
+                return false;
+            }
+            SetCardConfigDefault();
+            node = listMainView->Begin();
+            for (int32_t i = 0; i < maxPage; i++)
+            {
+                cardInfoData = node->data_;
+                node = node->next_;
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Init write cardInfoData.i:%d ", cardInfoData.cardId);
+                if (write(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo))
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init SaveGlobalHealthToFile fail");
+                }
             }
+            close(fd);
+            return true;
         }
-        close(fd);
-        return true;
-    } else {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig3");
-        for (int32_t i = 0; i < maxPage; i++) {
-            if (read(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo)) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init Read GlobalHealthToFile fail");
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig3");
+            for (int32_t i = 0; i < maxPage; i++)
+            {
+                if (read(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo))
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init Read GlobalHealthToFile fail");
+                }
+                listMainView->PushBack(cardInfoData);
             }
-            listMainView->PushBack(cardInfoData);
+            close(fd);
+            return true;
         }
-        close(fd);
-        return true;
+        return false;
     }
-    return false;
-}
 
-bool ScreenModels::SaveCardConfig(void)
-{
-    int32_t fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU);
-    if (fd < 0) {
-        close(fd);
-        return false;
-    } else {
-        if (write(fd, &listMainView, listMainView->Size()) != listMainView->Size()) {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SaveGlobalHealthToFile fail");
+    bool ScreenModels::SaveCardConfig(void)
+    {
+        int32_t fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU);
+        if (fd < 0)
+        {
+            close(fd);
+            return false;
+        }
+        else
+        {
+            if (write(fd, &listMainView, listMainView->Size()) != listMainView->Size())
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SaveGlobalHealthToFile fail");
+            }
+            close(fd);
+            return true;
         }
-        close(fd);
-        return true;
     }
-}
 
-void ScreenModels::SetCardConfigDefault(void)
-{
-    int16_t i;
-    struct CardInfo cardInfoData;
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetCardConfigDefault");
-    for (i = 0; i < MAX_CARD; i++) {
-        cardInfoData.cardId = i;
-        listMainView->PushBack(cardInfoData);
+    void ScreenModels::SetCardConfigDefault(void)
+    {
+        int16_t i;
+        struct CardInfo cardInfoData;
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetCardConfigDefault");
+        for (i = 0; i < MAX_CARD; i++)
+        {
+            cardInfoData.cardId = i;
+            listMainView->PushBack(cardInfoData);
+        }
     }
-}
 
-int16_t ScreenModels::GetCardPage(uint16_t page)
-{
-    ListNode<CardInfo> *node = listMainView->Begin();
-    for (uint8_t i = 0; i < page; i++) {
-        if (node->next_ != NULL) {
-            node = node->next_;
-        } else {
-            return -1;
+    int16_t ScreenModels::GetCardPage(uint16_t page)
+    {
+        ListNode<CardInfo> *node = listMainView->Begin();
+        for (uint8_t i = 0; i < page; i++)
+        {
+            if (node->next_ != NULL)
+            {
+                node = node->next_;
+            }
+            else
+            {
+                return -1;
+            }
         }
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetCardPage cardId:%d", node->data_.cardId);
+        return node->data_.cardId;
     }
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetCardPage cardId:%d", node->data_.cardId);
-    return node->data_.cardId;
-}
 
-int16_t ScreenModels::GetLastCardPage(void)
-{
-    ListNode<CardInfo> *node = listMainView->Begin();
-    for (uint8_t i = 0; i < MAX_CARD; i++) {
-        if (node->next_ == NULL) {
-            node = node->next_;
+    int16_t ScreenModels::GetLastCardPage(void)
+    {
+        ListNode<CardInfo> *node = listMainView->Begin();
+        for (uint8_t i = 0; i < MAX_CARD; i++)
+        {
+            if (node->next_ == NULL)
+            {
+                node = node->next_;
+            }
         }
+        return node->data_.cardId;
     }
-    return node->data_.cardId;
-}
 
-int16_t ScreenModels::GetMaxCard(void)
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetMaxCard maxPage:%d", maxPage);
-    return maxPage;
-}
+    int16_t ScreenModels::GetMaxCard(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetMaxCard maxPage:%d", maxPage);
+        return maxPage;
+    }
 
-void ScreenModels::LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId)
-{
-    for (uint32_t i = startId; i <= lastId; i++) {
-        ImageInfo* image = ImageCacheManager::GetInstance().LoadOneInMultiRes(i, file);
-        if (image == nullptr) {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x fail", i);
-            return;
+    void ScreenModels::LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId)
+    {
+        for (uint32_t i = startId; i <= lastId; i++)
+        {
+            ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(i, file);
+            if (image == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x fail", i);
+                return;
+            }
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x", i);
         }
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x", i);
     }
-}
 
-bool ScreenModels::LoadAppImages(std::string file, UIImageView *view, uint32_t resId)
-{
-    ImageInfo* image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);
-    if (image == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppImages %x fail", resId);
-        return false;
+    bool ScreenModels::LoadAppImages(std::string file, UIImageView *view, uint32_t resId)
+    {
+        ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);
+        if (image == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppImages %x fail", resId);
+            return false;
+        }
+        view->SetSrc(image);
+        return true;
     }
-    view->SetSrc(image);
-    return true;
-}
 
-void ScreenModels::PreLoadAppimages(void)
-{
-    LoadAppMultiImages(PLAYER_IAMGES, PLAYER_BACKGROUND, PLAYER_PLAYING);
-    LoadAppMultiImages(CLOCK_IAMGES, CLOCK_CLOCK0, CLOCK_SECOND);
-    LoadAppMultiImages(COMPASS_IAMGES, COMPASS_COMPASS0, COMPASS_COMPASS2);
-    LoadAppMultiImages(DROPDOWN_IAMGES, DROPDOWN_BLUETOOTHCONNECTED, DROPDOWN_SETTING);
-    LoadAppMultiImages(HEART_IAMGES, HEART_HEARTRATECOOR, HEART_HEARTRATE_TOP);
-}
+    void ScreenModels::PreLoadAppimages(void)
+    {
+        LoadAppMultiImages(PLAYER_IAMGES, PLAYER_BACKGROUND, PLAYER_PLAYING);
+        LoadAppMultiImages(CLOCK_IAMGES, CLOCK_CLOCK0, CLOCK_SECOND);
+        LoadAppMultiImages(COMPASS_IAMGES, COMPASS_COMPASS0, COMPASS_COMPASS2);
+        LoadAppMultiImages(DROPDOWN_IAMGES, DROPDOWN_BLUETOOTHCONNECTED, DROPDOWN_SETTING);
+        LoadAppMultiImages(HEART_IAMGES, HEART_HEARTRATECOOR, HEART_HEARTRATE_TOP);
+        LoadAppMultiImages(BLOOD_IAMGES, BLOODOXYGEN_BACKGOUND, BLOODOXYGEN_BACKGOUND);
+        LoadAppMultiImages(TRAINING_IAMGES, TRAINING_BOUTTONGROUND, TRAINING_WALKING_BIG);
+        LoadAppMultiImages(MESSAGE_IAMGES, MESSAGE_MESSAGE, MESSAGE_WECHAT);
+    }
 }
index de0c21c..e52c832 100644 (file)
@@ -1,4 +1,3 @@
-
 #ifndef _Traing_VIEW_H
 #define _Traing_VIEW_H
 
@@ -41,6 +40,9 @@ namespace OHOS
         void PreLoad(void) override;
         void UnLoad(void) override;
 
+        bool LoadImage(UIImageView *view, uint32_t resId);
+        bool LoadImage(UILabelButtonExt *view, uint32_t resId);
+
     private:
         UIView::OnDragListener *draglistener{nullptr};
         TraingView(TraingView &&) = delete;
@@ -56,7 +58,9 @@ namespace OHOS
         UIImageView *image2 = nullptr;
         UIImageView *image3 = nullptr;
         UIImageView *imagemore = nullptr;
+
         bool viewiInitStatus{false};
+        bool resLoadStatus{false};
     };
 } // namespace OHOS
 #endif // Traing_PRESENTER_H
index 835b424..86c1c43 100644 (file)
@@ -7,6 +7,7 @@
 #include <ui_scroll_view.h>\r
 #include "components/ui_button.h"\r
 #include "components/ui_view_group.h"\r
+#include "common/image_cache_manager.h"\r
 \r
 namespace OHOS\r
 {\r
@@ -31,22 +32,78 @@ namespace OHOS
     {\r
         return g_pTraingView;\r
     }\r
+    bool TraingView::InitLable()\r
+    {\r
+        // 检查标签指针是否为空\r
+        if (titleLabel == nullptr)\r
+        {\r
+            titleLabel = new UILabel();\r
+        }\r
+        // 设置标签的位置和大小\r
+        titleLabel->SetPosition(173, 52);\r
+        titleLabel->Resize(200, 60);\r
+        // 设置标签的视图 ID\r
+        titleLabel->SetViewId("titleLabel");\r
+        // 设置标签的样式\r
+        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // 设置标签的文本和其他属性\r
+        titleLabel->SetText("快速训练");\r
+        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        titleLabel->SetRollSpeed(0);\r
+        Add(titleLabel);\r
+\r
+        return true;\r
+    }\r
+    /* -------------------------------------------------------------------------- */\r
+    // 加载图片函数(针对UILabelButtonExt)\r
+    bool TraingView::LoadImage(UILabelButtonExt *view, uint32_t resId)\r
+    {\r
+        std::string file = TRAINING_IAMGES;\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingView LoadImage: %s, resID=0x%x", TRAINING_IAMGES, resId);\r
+        ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);\r
+        if (image == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::LoadImage %x fail", resId);\r
+            return false;\r
+        }\r
+        // Assuming SetImageSrc is the correct function for UILabelButtonExt\r
+        view->SetImageSrc(image, nullptr);\r
+        return true;\r
+    }\r
+\r
+    // 加载图片函数(针对UIImageView)\r
+    bool TraingView::LoadImage(UIImageView *view, uint32_t resId)\r
+    {\r
+        std::string file = TRAINING_IAMGES;\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingView LoadImage: %s, resID=0x%x", TRAINING_IAMGES, resId);\r
+        ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);\r
+        if (image == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::LoadImage %x fail", resId);\r
+            return false;\r
+        }\r
+        view->SetSrc(image); // Assuming SetSrc is the correct function for UIImageView\r
+        return true;\r
+    }\r
+\r
     bool TraingView::AddButton()\r
     {\r
         struct ButtonInfo\r
         {\r
             std::string text;\r
-            const char *defaultImgSrc;\r
+            uint32_t defaultImgSrc;\r
             UILabelButtonExt *button;\r
             uint16_t posX;\r
             uint16_t posY;\r
         };\r
 \r
         ButtonInfo buttons[] = {\r
-            {"健走", PNG_TRAING_BUTTONGRONG2_IMAGE, Button1, 86, 118},\r
-            {"骑行", PNG_TRAING_BUTTONGRONG_IMAGE, Button2, 236, 118},\r
-            {"跑步", PNG_TRAING_BUTTONGRONG_IMAGE, Button3, 86, 268},\r
-            {"更多", PNG_TRAING_BOUTTONMORE_IMAGE, ButtonMore, 236, 268}};\r
+            {"健走", TRAINING_BUTTONGROUND2, Button1, 86, 118},\r
+            {"骑行", TRAINING_BOUTTONGROUND, Button2, 236, 118},\r
+            {"跑步", TRAINING_BOUTTONGROUND, Button3, 86, 268},\r
+            {"更多", TRAINING_MORE, ButtonMore, 236, 268}};\r
 \r
         for (auto &buttonInfo : buttons)\r
         {\r
@@ -54,11 +111,15 @@ namespace OHOS
             {\r
                 buttonInfo.button = new UILabelButtonExt();\r
             }\r
+\r
+            if (!LoadImage(buttonInfo.button, buttonInfo.defaultImgSrc))\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d], triangulation load fail", __LINE__);\r
+                return false;\r
+            }\r
+\r
             buttonInfo.button->SetPosition(buttonInfo.posX, buttonInfo.posY);\r
             buttonInfo.button->Resize(140, 140);\r
-\r
-            char *triggeredImgSrc = nullptr;\r
-            buttonInfo.button->SetImageSrc(buttonInfo.defaultImgSrc, triggeredImgSrc);\r
             buttonInfo.button->SetText(buttonInfo.text.c_str());\r
             buttonInfo.button->SetLabelPosition(0, 70);\r
             buttonInfo.button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);\r
@@ -71,46 +132,21 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    bool TraingView::InitLable()\r
-    {\r
-        // 检查标签指针是否为空\r
-        if (titleLabel == nullptr)\r
-        {\r
-            titleLabel = new UILabel();\r
-        }\r
-        // 设置标签的位置和大小\r
-        titleLabel->SetPosition(173, 52);\r
-        titleLabel->Resize(200, 60);\r
-        // 设置标签的视图 ID\r
-        titleLabel->SetViewId("titleLabel");\r
-        // 设置标签的样式\r
-        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        // 设置标签的文本和其他属性\r
-        titleLabel->SetText("快速训练");\r
-        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
-        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        titleLabel->SetRollSpeed(0);\r
-        Add(titleLabel);\r
-\r
-        return true;\r
-    }\r
-\r
     bool TraingView::InitImage()\r
     {\r
         struct ImageInfo\r
         {\r
             UIImageView *image;\r
-            const char *imagePath;\r
+            const int imagePath;\r
             uint16_t posX;\r
             uint16_t posY;\r
             const char *viewId;\r
         };\r
 \r
         ImageInfo images[] = {\r
-            {image1, PNG_TRAING_WALKINGBIG_IMAGE, 126, 298, "image3"},\r
-            {image2, PNG_TRAING_RIDINGBIG_IMAGE, 276, 148, "image2"},\r
-            {image3, PNG_TRAING_RUNNINGBIG_IMAGE, 126, 148, "image1"}};\r
+            {image1, TRAINING_WALKING_BIG, 126, 298, "image3"},\r
+            {image2, TRAINING_RIDING_BIG2, 276, 148, "image2"},\r
+            {image3, TRAINING_RUNNING_BIG, 126, 148, "image1"}};\r
 \r
         for (auto &imageInfo : images)\r
         {\r
@@ -120,14 +156,18 @@ namespace OHOS
             }\r
             imageInfo.image->SetPosition(imageInfo.posX, imageInfo.posY);\r
             imageInfo.image->Resize(100, 100);\r
+            if (!LoadImage(imageInfo.image, imageInfo.imagePath))\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d], triangulation load fail", __LINE__);\r
+                return false;\r
+            }\r
             imageInfo.image->SetViewId(imageInfo.viewId);\r
-            imageInfo.image->SetSrc(imageInfo.imagePath);\r
             Add(imageInfo.image);\r
         }\r
 \r
         return true;\r
     }\r
-\r
+    /* -------------------------------------------------------------------------- */\r
     bool TraingView::InitView()\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::InitView()");\r
@@ -177,7 +217,6 @@ namespace OHOS
             delete titleLabel;\r
             titleLabel = nullptr;\r
         }\r
-\r
     }\r
 \r
     void TraingView::PreLoad(void)\r
@@ -187,9 +226,18 @@ namespace OHOS
             InitView();\r
             viewiInitStatus = true;\r
         }\r
+        if (!resLoadStatus)\r
+        {\r
+            resLoadStatus = true;\r
+        }\r
     }\r
 \r
     void TraingView::UnLoad(void)\r
     {\r
+        if (resLoadStatus)\r
+        {\r
+            //ImageCacheManager::GetInstance().UnloadAllInMultiRes(TRAINING_IAMGES);\r
+            resLoadStatus = false;\r
+        }\r
     }\r
 }\r
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin
new file mode 100644 (file)
index 0000000..61d09cc
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin
new file mode 100644 (file)
index 0000000..63c845a
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin
new file mode 100644 (file)
index 0000000..3959e68
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/QQ-icon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/QQ-icon.bin
deleted file mode 100644 (file)
index 7323d1e..0000000
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/QQ-icon.bin and /dev/null differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/WeChat-icon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/WeChat-icon.bin
deleted file mode 100644 (file)
index b25634d..0000000
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/WeChat-icon.bin and /dev/null differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/message-icon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/message-icon.bin
deleted file mode 100644 (file)
index 8cacf1c..0000000
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/message-icon.bin and /dev/null differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin
deleted file mode 100644 (file)
index f4674c9..0000000
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin and /dev/null differ
index 6408577..d0544c1 100755 (executable)
@@ -33,6 +33,9 @@
 #include "securec.h"
 #include "hals/gralloc_engines.h"
 
+
+#define SUPPRESS_DUMP 1
+
 namespace OHOS {
 using std::string;
 const uint8_t OFFSET_TIME = 3;
@@ -162,7 +165,9 @@ void MemCheck::DumpMemInfo()
     int32_t total = 0;
     int32_t count = 0;
     int32_t max = 0;
+#if SUPPRESS_DUMP
     printf("current malloc/new memory:\n");
+#endif
     MemAllocInfo* allocPtr = allocHead;
     while (allocPtr->next != nullptr) {
         total += allocPtr->next->size;
@@ -173,8 +178,10 @@ void MemCheck::DumpMemInfo()
         allocPtr = allocPtr->next;
     }
     printf("total size: %d, max: %d, count: %d\n", total, max, count);
+#if SUPPRESS_DUMP
     printf("--------\n");
     GrallocEngines::GetInstance()->DumpMem();
+#endif
 }
 
 #ifndef VERSION_IOT
index c0c5c9b..3630f9e 100755 (executable)
 #include <cstdint>
 #include "graphic_config.h"
 
-namespace OHOS {
-    #ifndef UNUSED
-    #define UNUSED(x) ((void)(x))
-    #endif
+namespace OHOS
+{
+#ifndef UNUSED
+#define UNUSED(x) ((void)(x))
+#endif
 
-    #define LA_HORIZONTAL_RESOLUTION 400 // watch width
-    #define LA_VERTICAL_RESOLUTION 400   // watch height
-    #define NORMAL_BUTTON_WIDTH 100 // normal button width
-    #define NORMAL_BUTTON_HEIGHT 50 // normal button height
-    #define NORMAL_MARGIN 5 // normal margin
-    #define DIAL_SQUARE 250   // watch plate sauqre
-    #define SETTING_ITEM_HEIGHT 100   // setting item height
-    #define UN_OPACITY 255   // UN_OPACITY
+#define LA_HORIZONTAL_RESOLUTION 400 // watch width
+#define LA_VERTICAL_RESOLUTION 400   // watch height
+#define NORMAL_BUTTON_WIDTH 100      // normal button width
+#define NORMAL_BUTTON_HEIGHT 50      // normal button height
+#define NORMAL_MARGIN 5              // normal margin
+#define DIAL_SQUARE 250              // watch plate sauqre
+#define SETTING_ITEM_HEIGHT 100      // setting item height
+#define UN_OPACITY 255               // UN_OPACITY
 
-    #define MILLESECOND 1
-    #define SECOND 1000         // 1s 1000ms
-    #define MINUTE (60 * SECOND)  // 1min 60s
-    #define HOUR (60 * MINUTE)    // 1hour 60min
+#define MILLESECOND 1
+#define SECOND 1000          // 1s 1000ms
+#define MINUTE (60 * SECOND) // 1min 60s
+#define HOUR (60 * MINUTE)   // 1hour 60min
 
-    #define FONT_COMMON 20 // 20px
+#define FONT_COMMON 20 // 20px
 
     constexpr int16_t SCREEN_HORIZONTAL_RESOLUTION = 454; // watch width
-    constexpr int16_t SCREEN_VERTICAL_RESOLUTION = 454; // watch width
+    constexpr int16_t SCREEN_VERTICAL_RESOLUTION = 454;   // watch width
 
-    constexpr const char *CLOCK_IAMGES = RES_PATH"/clock.bin";
-    constexpr const char *PLAYER_IAMGES = RES_PATH"/player/player.bin";
-    constexpr const char *COMPASS_IAMGES = RES_PATH"/compass.bin";
-    constexpr const char *DROPDOWN_IAMGES = RES_PATH"/dropdown.bin";
-    constexpr const char *HEART_IAMGES = RES_PATH"/heart.bin";
-    constexpr const char *PNG_BLUETOOTH_HINTS_PATH = RES_PATH"/BLUETOOTH_HINTS.bin";
-    constexpr const char *PNG_BLOODOXYGEN_IMAGE_PATH = RES_PATH"/BLOODOXYGEN_VIEW.bin";
+    constexpr const char *CLOCK_IAMGES = RES_PATH "/clock.bin";
+    constexpr const char *PLAYER_IAMGES = RES_PATH "/player/player.bin";
+    constexpr const char *COMPASS_IAMGES = RES_PATH "/compass.bin";
+    constexpr const char *DROPDOWN_IAMGES = RES_PATH "/dropdown.bin";
+    constexpr const char *HEART_IAMGES = RES_PATH "/heart.bin";
+    constexpr const char *PNG_BLUETOOTH_HINTS_PATH = RES_PATH "/BLUETOOTH_HINTS.bin";
+    constexpr const char *PNG_BLOODOXYGEN_IMAGE_PATH = RES_PATH "/BLOODOXYGEN_VIEW.bin";
 
-    constexpr const char *PNG_BLOOD_ICON_ENTER = RES_PATH"/BLOOD_ICON_ENTER.bin";
+    constexpr const char *PNG_BLOOD_ICON_ENTER = RES_PATH "/BLOOD_ICON_ENTER.bin";
 
-    constexpr const char *PNG_AGREEING_IMAGE_PATH = RES_PATH"/AGREEING.bin";
-    constexpr const char *PNG_DISSGREE_IMAGE_PATH = RES_PATH"/DISSGREE.bin";
-    constexpr const char *PNG_MICROPHONE_OPEN_IMAGE_PATH = RES_PATH"/MICRO_PHONE_OPEN.bin";
-    constexpr const char *PNG_MICROPHONE_CLOSE_IMAGE_PATH = RES_PATH"/MICRO_PHONE_CLOSE.bin";
-    constexpr const char *PNG_HANDUP_IMAGE_PATH = RES_PATH"/HANDUP.bin";
-    constexpr const char *PNG_ANSWER_TMAGE_PATH = RES_PATH"/ANSWER_PHONE.bin";
-    constexpr const char *PNG_CALLING_TMAGE_PATH = RES_PATH"/CALLING_PHONE.bin";
-    constexpr const char *PNG_CALLER_TMAGE_PATH = RES_PATH"/CALLER_LOG_IMAGE.bin";
-    constexpr const char *PNG_NO_CALLER_LOG_IMAGE = RES_PATH"/NO_CALLER_LOG_IMAGE.bin";
-    constexpr const char *PNG_APPLIST_CALLER_IMAGE = RES_PATH"/APPLIST_CALLER_IMAGE.bin";
-    constexpr const char *PNG_APPLIST_COMPASS_IMAGE = RES_PATH"/APPLIST_COMPASS_IMAGE.bin";
+    constexpr const char *PNG_AGREEING_IMAGE_PATH = RES_PATH "/AGREEING.bin";
+    constexpr const char *PNG_DISSGREE_IMAGE_PATH = RES_PATH "/DISSGREE.bin";
+    constexpr const char *PNG_MICROPHONE_OPEN_IMAGE_PATH = RES_PATH "/MICRO_PHONE_OPEN.bin";
+    constexpr const char *PNG_MICROPHONE_CLOSE_IMAGE_PATH = RES_PATH "/MICRO_PHONE_CLOSE.bin";
+    constexpr const char *PNG_HANDUP_IMAGE_PATH = RES_PATH "/HANDUP.bin";
+    constexpr const char *PNG_ANSWER_TMAGE_PATH = RES_PATH "/ANSWER_PHONE.bin";
+    constexpr const char *PNG_CALLING_TMAGE_PATH = RES_PATH "/CALLING_PHONE.bin";
+    constexpr const char *PNG_CALLER_TMAGE_PATH = RES_PATH "/CALLER_LOG_IMAGE.bin";
+    constexpr const char *PNG_NO_CALLER_LOG_IMAGE = RES_PATH "/NO_CALLER_LOG_IMAGE.bin";
+    constexpr const char *PNG_APPLIST_CALLER_IMAGE = RES_PATH "/APPLIST_CALLER_IMAGE.bin";
+    constexpr const char *PNG_APPLIST_COMPASS_IMAGE = RES_PATH "/APPLIST_COMPASS_IMAGE.bin";
 
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_0 = RES_PATH"/COUNTDOWN_IMAGE_01.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_1 = RES_PATH"/COUNTDOWN_IMAGE_02.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_2 = RES_PATH"/COUNTDOWN_IMAGE_03.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_3 = RES_PATH"/COUNTDOWN_IMAGE_04.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_4 = RES_PATH"/COUNTDOWN_IMAGE_05.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_5 = RES_PATH"/COUNTDOWN_IMAGE_06.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_6 = RES_PATH"/COUNTDOWN_IMAGE_07.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_7 = RES_PATH"/COUNTDOWN_IMAGE_08.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_8 = RES_PATH"/COUNTDOWN_IMAGE_09.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_9 = RES_PATH"/COUNTDOWN_IMAGE_10.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_10 = RES_PATH"/COUNTDOWN_IMAGE_11.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_11 = RES_PATH"/COUNTDOWN_IMAGE_12.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_12 = RES_PATH"/COUNTDOWN_IMAGE_13.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_13 = RES_PATH"/COUNTDOWN_IMAGE_14.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_14 = RES_PATH"/COUNTDOWN_IMAGE_15.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_15 = RES_PATH"/COUNTDOWN_IMAGE_16.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_16 = RES_PATH"/COUNTDOWN_IMAGE_17.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_17 = RES_PATH"/COUNTDOWN_IMAGE_18.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_18 = RES_PATH"/COUNTDOWN_IMAGE_19.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_19 = RES_PATH"/COUNTDOWN_IMAGE_20.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_20 = RES_PATH"/COUNTDOWN_IMAGE_21.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_21 = RES_PATH"/COUNTDOWN_IMAGE_22.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_22 = RES_PATH"/COUNTDOWN_IMAGE_23.bin";
-    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_23 = RES_PATH"/COUNTDOWN_IMAGE_24.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_0 = RES_PATH "/COUNTDOWN_IMAGE_01.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_1 = RES_PATH "/COUNTDOWN_IMAGE_02.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_2 = RES_PATH "/COUNTDOWN_IMAGE_03.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_3 = RES_PATH "/COUNTDOWN_IMAGE_04.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_4 = RES_PATH "/COUNTDOWN_IMAGE_05.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_5 = RES_PATH "/COUNTDOWN_IMAGE_06.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_6 = RES_PATH "/COUNTDOWN_IMAGE_07.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_7 = RES_PATH "/COUNTDOWN_IMAGE_08.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_8 = RES_PATH "/COUNTDOWN_IMAGE_09.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_9 = RES_PATH "/COUNTDOWN_IMAGE_10.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_10 = RES_PATH "/COUNTDOWN_IMAGE_11.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_11 = RES_PATH "/COUNTDOWN_IMAGE_12.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_12 = RES_PATH "/COUNTDOWN_IMAGE_13.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_13 = RES_PATH "/COUNTDOWN_IMAGE_14.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_14 = RES_PATH "/COUNTDOWN_IMAGE_15.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_15 = RES_PATH "/COUNTDOWN_IMAGE_16.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_16 = RES_PATH "/COUNTDOWN_IMAGE_17.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_17 = RES_PATH "/COUNTDOWN_IMAGE_18.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_18 = RES_PATH "/COUNTDOWN_IMAGE_19.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_19 = RES_PATH "/COUNTDOWN_IMAGE_20.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_20 = RES_PATH "/COUNTDOWN_IMAGE_21.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_21 = RES_PATH "/COUNTDOWN_IMAGE_22.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_22 = RES_PATH "/COUNTDOWN_IMAGE_23.bin";
+    constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_23 = RES_PATH "/COUNTDOWN_IMAGE_24.bin";
 
-    constexpr const char *PNG_PROGRESS_BAR_TMAGE = RES_PATH"/PROGRESS_BAR_TMAGE.bin";
-    constexpr const char *TEMP_WAITING = RES_PATH"/TEMP_WAITING.bin";
-    constexpr const char *TEMP_REPORT = RES_PATH"/TEMP_REPORT.bin";
-    constexpr const char *TEMP_POINT = RES_PATH"/TEMP_POINT.bin";
-    constexpr const char *TEMP_REV_POINTER = RES_PATH"/TEMP_REV_POINTER.bin";
+    constexpr const char *PNG_PROGRESS_BAR_TMAGE = RES_PATH "/PROGRESS_BAR_TMAGE.bin";
+    constexpr const char *TEMP_WAITING = RES_PATH "/TEMP_WAITING.bin";
+    constexpr const char *TEMP_REPORT = RES_PATH "/TEMP_REPORT.bin";
+    constexpr const char *TEMP_POINT = RES_PATH "/TEMP_POINT.bin";
+    constexpr const char *TEMP_REV_POINTER = RES_PATH "/TEMP_REV_POINTER.bin";
 
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_0 = RES_PATH"/BLOOD_FLOW_IMAGE_02.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_1 = RES_PATH"/BLOOD_FLOW_IMAGE_03.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_2 = RES_PATH"/BLOOD_FLOW_IMAGE_04.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_3 = RES_PATH"/BLOOD_FLOW_IMAGE_05.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_4 = RES_PATH"/BLOOD_FLOW_IMAGE_06.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_5 = RES_PATH"/BLOOD_FLOW_IMAGE_07.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_6 = RES_PATH"/BLOOD_FLOW_IMAGE_08.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_7 = RES_PATH"/BLOOD_FLOW_IMAGE_09.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_8 = RES_PATH"/BLOOD_FLOW_IMAGE_10.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_9 = RES_PATH"/BLOOD_FLOW_IMAGE_11.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_10 = RES_PATH"/BLOOD_FLOW_IMAGE_12.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_11 = RES_PATH"/BLOOD_FLOW_IMAGE_13.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_12 = RES_PATH"/BLOOD_FLOW_IMAGE_14.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_13 = RES_PATH"/BLOOD_FLOW_IMAGE_15.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_14 = RES_PATH"/BLOOD_FLOW_IMAGE_16.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_15 = RES_PATH"/BLOOD_FLOW_IMAGE_17.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_16 = RES_PATH"/BLOOD_FLOW_IMAGE_18.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_17 = RES_PATH"/BLOOD_FLOW_IMAGE_19.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_18 = RES_PATH"/BLOOD_FLOW_IMAGE_20.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_19 = RES_PATH"/BLOOD_FLOW_IMAGE_21.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_20 = RES_PATH"/BLOOD_FLOW_IMAGE_22.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_21 = RES_PATH"/BLOOD_FLOW_IMAGE_23.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_22 = RES_PATH"/BLOOD_FLOW_IMAGE_24.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_23 = RES_PATH"/BLOOD_FLOW_IMAGE_25.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_24 = RES_PATH"/BLOOD_FLOW_IMAGE_26.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_25 = RES_PATH"/BLOOD_FLOW_IMAGE_27.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_26 = RES_PATH"/BLOOD_FLOW_IMAGE_28.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_27 = RES_PATH"/BLOOD_FLOW_IMAGE_29.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_28 = RES_PATH"/BLOOD_FLOW_IMAGE_30.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_29 = RES_PATH"/BLOOD_FLOW_IMAGE_31.bin";
-    constexpr const char *PNG_BLOOD_FLOW_IMAGE_30 = RES_PATH"/BLOOD_FLOW_IMAGE_32.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_0 = RES_PATH "/BLOOD_FLOW_IMAGE_02.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_1 = RES_PATH "/BLOOD_FLOW_IMAGE_03.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_2 = RES_PATH "/BLOOD_FLOW_IMAGE_04.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_3 = RES_PATH "/BLOOD_FLOW_IMAGE_05.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_4 = RES_PATH "/BLOOD_FLOW_IMAGE_06.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_5 = RES_PATH "/BLOOD_FLOW_IMAGE_07.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_6 = RES_PATH "/BLOOD_FLOW_IMAGE_08.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_7 = RES_PATH "/BLOOD_FLOW_IMAGE_09.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_8 = RES_PATH "/BLOOD_FLOW_IMAGE_10.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_9 = RES_PATH "/BLOOD_FLOW_IMAGE_11.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_10 = RES_PATH "/BLOOD_FLOW_IMAGE_12.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_11 = RES_PATH "/BLOOD_FLOW_IMAGE_13.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_12 = RES_PATH "/BLOOD_FLOW_IMAGE_14.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_13 = RES_PATH "/BLOOD_FLOW_IMAGE_15.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_14 = RES_PATH "/BLOOD_FLOW_IMAGE_16.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_15 = RES_PATH "/BLOOD_FLOW_IMAGE_17.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_16 = RES_PATH "/BLOOD_FLOW_IMAGE_18.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_17 = RES_PATH "/BLOOD_FLOW_IMAGE_19.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_18 = RES_PATH "/BLOOD_FLOW_IMAGE_20.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_19 = RES_PATH "/BLOOD_FLOW_IMAGE_21.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_20 = RES_PATH "/BLOOD_FLOW_IMAGE_22.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_21 = RES_PATH "/BLOOD_FLOW_IMAGE_23.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_22 = RES_PATH "/BLOOD_FLOW_IMAGE_24.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_23 = RES_PATH "/BLOOD_FLOW_IMAGE_25.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_24 = RES_PATH "/BLOOD_FLOW_IMAGE_26.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_25 = RES_PATH "/BLOOD_FLOW_IMAGE_27.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_26 = RES_PATH "/BLOOD_FLOW_IMAGE_28.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_27 = RES_PATH "/BLOOD_FLOW_IMAGE_29.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_28 = RES_PATH "/BLOOD_FLOW_IMAGE_30.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_29 = RES_PATH "/BLOOD_FLOW_IMAGE_31.bin";
+    constexpr const char *PNG_BLOOD_FLOW_IMAGE_30 = RES_PATH "/BLOOD_FLOW_IMAGE_32.bin";
 
-    constexpr const char *PNG_BK_FACE_IMAGE = RES_PATH"/BACK_GROUND.bin";
-    constexpr const char *PNG_PLAYER_FACE_IMAGE = RES_PATH"/PLAYER.bin";
-    constexpr const char *PNG_PLAYER_HL_FACE_IMAGE = RES_PATH"/PLAYERHIGHLIGHT.bin";
-    constexpr const char *PNG_NEXTBUTTON_FACE_IMAGE = RES_PATH"/NEXT_BUTTON.bin";
-    constexpr const char *PNG_PREBUTTON_FACE_IMAGE = RES_PATH"/PRE_BUTTOW.bin";
-    constexpr const char *PNG_PLAYERS_MODE_1 = RES_PATH"/PLAYERSMODEL_LOOP.bin";
-    constexpr const char *PNG_PLAYERS_MODE_2 = RES_PATH"/PLAYERSMODEL_REPEATS.bin";
-    constexpr const char *PNG_PLAYERS_MODE_3 = RES_PATH"/PLAYERSMODEL_RANDOM.bin";
-    constexpr const char *PNG_PLAYERS_MODE_4 = RES_PATH"/PLAYERSMODEL_SEQUENCE.bin";
-    constexpr const char *PNG_SOUNDBUTTON2 = RES_PATH"/SOUND_IMAGE.bin";
-    constexpr const char *PNG_OPTIONSBUTTON_FACE_IMAGE = RES_PATH"/OPTIONS_IMAGE.bin";
-    constexpr const char *PNG_PULLBUTTON_FACE_IMAGE = RES_PATH"/BLOOD_FLOW_IMAGE_01.bin";
-    constexpr const char *PNG_MUTE_BUTTON = RES_PATH"/MUTE_BUTTON.bin";
-    constexpr const char *PNG_DECREASE_BUTTON = RES_PATH"/DECREASE_BUTTON.bin";
-    constexpr const char *PNG_INCREASE_BUTTON = RES_PATH"/INCREASE_BUTTON.bin";
+    constexpr const char *PNG_BK_FACE_IMAGE = RES_PATH "/BACK_GROUND.bin";
+    constexpr const char *PNG_PLAYER_FACE_IMAGE = RES_PATH "/PLAYER.bin";
+    constexpr const char *PNG_PLAYER_HL_FACE_IMAGE = RES_PATH "/PLAYERHIGHLIGHT.bin";
+    constexpr const char *PNG_NEXTBUTTON_FACE_IMAGE = RES_PATH "/NEXT_BUTTON.bin";
+    constexpr const char *PNG_PREBUTTON_FACE_IMAGE = RES_PATH "/PRE_BUTTOW.bin";
+    constexpr const char *PNG_PLAYERS_MODE_1 = RES_PATH "/PLAYERSMODEL_LOOP.bin";
+    constexpr const char *PNG_PLAYERS_MODE_2 = RES_PATH "/PLAYERSMODEL_REPEATS.bin";
+    constexpr const char *PNG_PLAYERS_MODE_3 = RES_PATH "/PLAYERSMODEL_RANDOM.bin";
+    constexpr const char *PNG_PLAYERS_MODE_4 = RES_PATH "/PLAYERSMODEL_SEQUENCE.bin";
+    constexpr const char *PNG_SOUNDBUTTON2 = RES_PATH "/SOUND_IMAGE.bin";
+    constexpr const char *PNG_OPTIONSBUTTON_FACE_IMAGE = RES_PATH "/OPTIONS_IMAGE.bin";
+    constexpr const char *PNG_PULLBUTTON_FACE_IMAGE = RES_PATH "/BLOOD_FLOW_IMAGE_01.bin";
+    constexpr const char *PNG_MUTE_BUTTON = RES_PATH "/MUTE_BUTTON.bin";
+    constexpr const char *PNG_DECREASE_BUTTON = RES_PATH "/DECREASE_BUTTON.bin";
+    constexpr const char *PNG_INCREASE_BUTTON = RES_PATH "/INCREASE_BUTTON.bin";
 
-    constexpr const char *PNG_SETTTING_BUTTON_IMAGE = RES_PATH"/SETTTING_BUTTON.bin";
-    constexpr const char *PNG_BLUETOOTH_IMAGE = RES_PATH"/BLUETOOTH_IMAGE.bin";
-    constexpr const char *PNG_WATCH_IMAGE = RES_PATH"/WATCH_IMAGE.bin";
-    constexpr const char *PNG_PHONE_IMAGE = RES_PATH"/PHONE_IMAGE.bin";
-    constexpr const char *PNG_REBOOT_BUTTON_IMAGE = RES_PATH"/REBOOT_BUTTON.bin";
-    constexpr const char *PNG_SHUTDOWN_BUTTON_IMAGE = RES_PATH"/SHUTDOWN_BUTTON.bin";
-    constexpr const char *PNG_SETTTING_REBOOT_IMAGE = RES_PATH"/SETTTING_REBOOT.bin";
-    constexpr const char *PNG_SETTTING_SHUTDOWN_IMAGE = RES_PATH"/SETTTING_SHUTDOWN.bin";
+    constexpr const char *PNG_SETTTING_BUTTON_IMAGE = RES_PATH "/SETTTING_BUTTON.bin";
+    constexpr const char *PNG_BLUETOOTH_IMAGE = RES_PATH "/BLUETOOTH_IMAGE.bin";
+    constexpr const char *PNG_WATCH_IMAGE = RES_PATH "/WATCH_IMAGE.bin";
+    constexpr const char *PNG_PHONE_IMAGE = RES_PATH "/PHONE_IMAGE.bin";
+    constexpr const char *PNG_REBOOT_BUTTON_IMAGE = RES_PATH "/REBOOT_BUTTON.bin";
+    constexpr const char *PNG_SHUTDOWN_BUTTON_IMAGE = RES_PATH "/SHUTDOWN_BUTTON.bin";
+    constexpr const char *PNG_SETTTING_REBOOT_IMAGE = RES_PATH "/SETTTING_REBOOT.bin";
+    constexpr const char *PNG_SETTTING_SHUTDOWN_IMAGE = RES_PATH "/SETTTING_SHUTDOWN.bin";
 
-    constexpr const char *PNG_CONNECT_PHONE_IMAGE = RES_PATH"/CONNECT_PHONE.bin";
-    constexpr const char *PNG_BLUETOOTH_STITLE = RES_PATH"/BLUETOOTH_TITLE.bin";
+    constexpr const char *PNG_CONNECT_PHONE_IMAGE = RES_PATH "/CONNECT_PHONE.bin";
+    constexpr const char *PNG_BLUETOOTH_STITLE = RES_PATH "/BLUETOOTH_TITLE.bin";
 
-    constexpr const char *PNG_NEW_DEVICE = RES_PATH"/NEW_DEVICE.bin";
-    constexpr const char *PNG_BT_LIST = RES_PATH"/BT_LIST.bin";
-    constexpr const char *PNG_SELECTION_BOX = RES_PATH"/SELECTION_BOX.bin";
-    constexpr const char *PNG_GANTAN = RES_PATH"/GANTAN.bin";
-    constexpr const char *PNG_RIGHT = RES_PATH"/RIGHT.bin";
+    constexpr const char *PNG_NEW_DEVICE = RES_PATH "/NEW_DEVICE.bin";
+    constexpr const char *PNG_BT_LIST = RES_PATH "/BT_LIST.bin";
+    constexpr const char *PNG_SELECTION_BOX = RES_PATH "/SELECTION_BOX.bin";
+    constexpr const char *PNG_GANTAN = RES_PATH "/GANTAN.bin";
+    constexpr const char *PNG_RIGHT = RES_PATH "/RIGHT.bin";
 
-    constexpr const char *PNG_NEW_WLAN_WIFI = RES_PATH"/FULL_SIGNAL_OPEN.bin";
-    constexpr const char *FULL_SIGNAL_ENCRYPTION = RES_PATH"/FULL_SIGNAL_ENCRYPTION.bin";
+    constexpr const char *PNG_NEW_WLAN_WIFI = RES_PATH "/FULL_SIGNAL_OPEN.bin";
+    constexpr const char *FULL_SIGNAL_ENCRYPTION = RES_PATH "/FULL_SIGNAL_ENCRYPTION.bin";
 
-    #define PNG_MAIN_FACE_IMAGE RES_PATH"/MAIN_FACE_IMAGE.bin"
-    #define B024_009_IMAGE_PATH RES_PATH"/HOURHAND.bin"
-    #define B024_010_IMAGE_PATH RES_PATH"/SECONDHAND.bin"
-    #define B024_011_IMAGE_PATH RES_PATH"/MINUTEHAND.bin"
-    #define ALARM_ADD_BUTTON_PATH RES_PATH"/BLUE_ADD.bin"
-    #define ALARM_CLOCK_CLOSE_ADD_PATH RES_PATH"/CLOSE_RING_CLOCK.bin"
-    #define ALARM_CLOCK_ADD_PATH RES_PATH"/POP_UP_CLOCK.bin"
-    #define ALARM_CLOCK_POP_ADD_PATH RES_PATH"/RING_CLOCK.bin"
-    #define ALARM_DELETE_ADD_PATH RES_PATH"/DELETE.bin"
-    #define ALARM_TRUE_ADD_PATH RES_PATH"/TRUE_ADD.bin"
-    #define TEMP_MEASURE RES_PATH"/TEMP_MEASURE.bin"
-    #define TEMP_UP_DROP RES_PATH"/TEMP_UP_DROP.bin"
-    #define TEMP_EXIT RES_PATH"/TEMP_EXIT.bin"
-    #define TEMP_ROTATE RES_PATH"/TEMP_ROTATE.bin"
-    #define TEMP_ICON_ENTER RES_PATH"/TEMP_ICON_ENTER.bin"
-    #define TEMP_BACKGROUND RES_PATH"/TEMP_BACKGROUND.bin"
-    #define TEMP_WARN RES_PATH"/TEMP_WARN.bin"
-    #define TEMP_LITTLE_MEASURE RES_PATH"/TEMP_LITTLE_MEASURE.bin"
-    #define TEMP_HOT RES_PATH"/TEMP_HOT.bin"
-    #define TEMP_COLD RES_PATH"/TEMP_COLD.bin"
-    #define TEMP_LIT_TIP RES_PATH"/TEMP_LIT_TIP.bin"
-    #define TEMP_ABOUT_STUDY RES_PATH"/TEMP_ABOUT_STUDY.bin"
-    #define TEMP_TRUE RES_PATH"/TEMP_TRUE.bin"
-    #define TEMP_DELETE RES_PATH"/TEMP_DELETE.bin"
+#define PNG_MAIN_FACE_IMAGE RES_PATH "/MAIN_FACE_IMAGE.bin"
+#define B024_009_IMAGE_PATH RES_PATH "/HOURHAND.bin"
+#define B024_010_IMAGE_PATH RES_PATH "/SECONDHAND.bin"
+#define B024_011_IMAGE_PATH RES_PATH "/MINUTEHAND.bin"
+#define ALARM_ADD_BUTTON_PATH RES_PATH "/BLUE_ADD.bin"
+#define ALARM_CLOCK_CLOSE_ADD_PATH RES_PATH "/CLOSE_RING_CLOCK.bin"
+#define ALARM_CLOCK_ADD_PATH RES_PATH "/POP_UP_CLOCK.bin"
+#define ALARM_CLOCK_POP_ADD_PATH RES_PATH "/RING_CLOCK.bin"
+#define ALARM_DELETE_ADD_PATH RES_PATH "/DELETE.bin"
+#define ALARM_TRUE_ADD_PATH RES_PATH "/TRUE_ADD.bin"
+#define TEMP_MEASURE RES_PATH "/TEMP_MEASURE.bin"
+#define TEMP_UP_DROP RES_PATH "/TEMP_UP_DROP.bin"
+#define TEMP_EXIT RES_PATH "/TEMP_EXIT.bin"
+#define TEMP_ROTATE RES_PATH "/TEMP_ROTATE.bin"
+#define TEMP_ICON_ENTER RES_PATH "/TEMP_ICON_ENTER.bin"
+#define TEMP_BACKGROUND RES_PATH "/TEMP_BACKGROUND.bin"
+#define TEMP_WARN RES_PATH "/TEMP_WARN.bin"
+#define TEMP_LITTLE_MEASURE RES_PATH "/TEMP_LITTLE_MEASURE.bin"
+#define TEMP_HOT RES_PATH "/TEMP_HOT.bin"
+#define TEMP_COLD RES_PATH "/TEMP_COLD.bin"
+#define TEMP_LIT_TIP RES_PATH "/TEMP_LIT_TIP.bin"
+#define TEMP_ABOUT_STUDY RES_PATH "/TEMP_ABOUT_STUDY.bin"
+#define TEMP_TRUE RES_PATH "/TEMP_TRUE.bin"
+#define TEMP_DELETE RES_PATH "/TEMP_DELETE.bin"
 
-    #define PNG_COMPASS_FACE_IMAGE RES_PATH"/COMPASS.bin"
-    #define PNG_COMPASS_DEGREE_IMAGE RES_PATH"/CORRESPONDENCE_DEGREE.bin"
-    #define PNG_COMPASS_CENTER_IMAGE RES_PATH"/ROTATE_CENTER_IMAGE.bin"
-    #define COMPASS_CALIBRATE_IMAGE RES_PATH"/COMPASS_CALIBRATE_IMAGE.bin"
+#define PNG_COMPASS_FACE_IMAGE RES_PATH "/COMPASS.bin"
+#define PNG_COMPASS_DEGREE_IMAGE RES_PATH "/CORRESPONDENCE_DEGREE.bin"
+#define PNG_COMPASS_CENTER_IMAGE RES_PATH "/ROTATE_CENTER_IMAGE.bin"
+#define COMPASS_CALIBRATE_IMAGE RES_PATH "/COMPASS_CALIBRATE_IMAGE.bin"
 
-    #define PNG_HEARTRATE_IMAGE_PATH RES_PATH"/HEARTRATE_IMAGE_PATH.bin"
-    #define PNG_HAND24HOUR_IMAGE_PATH RES_PATH"/HAND24HOUR_IMAGE_PATH.bin"
-    #define PNG_PROGRESS_IMAGE_PATH RES_PATH"/PROGRESS_IMAGE_PATH.bin"
-    #define PNG_BIGCIRCLE_IMAGE_PATH RES_PATH"/BIGCIRCLE_IMAGE_PATH.bin"
-    #define PNG_MEDCIRCLE_IMAGE_PATH RES_PATH"/MEDCIRCLE_IMAGE_PATH.bin"
-    #define PNG_SMALLCIRCLE_IMAGE_PATH RES_PATH"/SMALLCIRCLE_IMAGE_PATH.bin"
-    #define PNG_MONDAY_IMAGE_PATH RES_PATH"/MONDAY_IMAGE_PATH.bin"
-    #define PNG_TUESDAY_IMAGE_PATH RES_PATH"/TUESDAY_IMAGE_PATH.bin"
-    #define PNG_WEDNESDAY_IMAGE_PATH RES_PATH"/WEDNESDAY_IMAGE_PATH.bin"
-    #define PNG_THURSDAY_IMAGE_PATH RES_PATH"/THURSDAY_IMAGE_PATH.bin"
-    #define PNG_FIRDAY_IMAGE_PATH RES_PATH"/FIRDAY_IMAGE_PATH.bin"
-    #define PNG_SATURDAY_IMAGE_PATH RES_PATH"/SATURDAY_IMAGE_PATH.bin"
-    #define PNG_SUNDAY_IMAGE_PATH RES_PATH"/SUNDAY_IMAGE_PATH.bin"
-    #define PNG_CIRCLE_IMAGE_PATH RES_PATH"/CIRCLE_IMAGE_PATH.bin"
+#define PNG_HEARTRATE_IMAGE_PATH RES_PATH "/HEARTRATE_IMAGE_PATH.bin"
+#define PNG_HAND24HOUR_IMAGE_PATH RES_PATH "/HAND24HOUR_IMAGE_PATH.bin"
+#define PNG_PROGRESS_IMAGE_PATH RES_PATH "/PROGRESS_IMAGE_PATH.bin"
+#define PNG_BIGCIRCLE_IMAGE_PATH RES_PATH "/BIGCIRCLE_IMAGE_PATH.bin"
+#define PNG_MEDCIRCLE_IMAGE_PATH RES_PATH "/MEDCIRCLE_IMAGE_PATH.bin"
+#define PNG_SMALLCIRCLE_IMAGE_PATH RES_PATH "/SMALLCIRCLE_IMAGE_PATH.bin"
+#define PNG_MONDAY_IMAGE_PATH RES_PATH "/MONDAY_IMAGE_PATH.bin"
+#define PNG_TUESDAY_IMAGE_PATH RES_PATH "/TUESDAY_IMAGE_PATH.bin"
+#define PNG_WEDNESDAY_IMAGE_PATH RES_PATH "/WEDNESDAY_IMAGE_PATH.bin"
+#define PNG_THURSDAY_IMAGE_PATH RES_PATH "/THURSDAY_IMAGE_PATH.bin"
+#define PNG_FIRDAY_IMAGE_PATH RES_PATH "/FIRDAY_IMAGE_PATH.bin"
+#define PNG_SATURDAY_IMAGE_PATH RES_PATH "/SATURDAY_IMAGE_PATH.bin"
+#define PNG_SUNDAY_IMAGE_PATH RES_PATH "/SUNDAY_IMAGE_PATH.bin"
+#define PNG_CIRCLE_IMAGE_PATH RES_PATH "/CIRCLE_IMAGE_PATH.bin"
 
-    #define PNG_SETTING_NEXT_IMAGE RES_PATH"/SETTING_NEXT.bin"
+#define PNG_SETTING_NEXT_IMAGE RES_PATH "/SETTING_NEXT.bin"
 
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE01 = RES_PATH"/VOICE_ASSISTANT_01.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE02 = RES_PATH"/VOICE_ASSISTANT_02.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE03 = RES_PATH"/VOICE_ASSISTANT_03.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE04 = RES_PATH"/VOICE_ASSISTANT_04.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE05 = RES_PATH"/VOICE_ASSISTANT_05.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE06 = RES_PATH"/VOICE_ASSISTANT_06.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE07 = RES_PATH"/VOICE_ASSISTANT_07.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE08 = RES_PATH"/VOICE_ASSISTANT_08.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE09 = RES_PATH"/VOICE_ASSISTANT_09.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE10 = RES_PATH"/VOICE_ASSISTANT_10.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE11 = RES_PATH"/VOICE_ASSISTANT_11.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE12 = RES_PATH"/VOICE_ASSISTANT_12.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE13 = RES_PATH"/VOICE_ASSISTANT_13.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE14 = RES_PATH"/VOICE_ASSISTANT_14.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE15 = RES_PATH"/VOICE_ASSISTANT_15.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE16 = RES_PATH"/VOICE_ASSISTANT_16.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE17 = RES_PATH"/VOICE_ASSISTANT_17.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE18 = RES_PATH"/VOICE_ASSISTANT_18.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE19 = RES_PATH"/VOICE_ASSISTANT_19.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE20 = RES_PATH"/VOICE_ASSISTANT_20.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE21 = RES_PATH"/VOICE_ASSISTANT_21.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE22 = RES_PATH"/VOICE_ASSISTANT_22.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE23 = RES_PATH"/VOICE_ASSISTANT_23.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE24 = RES_PATH"/VOICE_ASSISTANT_24.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE25 = RES_PATH"/VOICE_ASSISTANT_25.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE26 = RES_PATH"/VOICE_ASSISTANT_26.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE27 = RES_PATH"/VOICE_ASSISTANT_27.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE28 = RES_PATH"/VOICE_ASSISTANT_28.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE29 = RES_PATH"/VOICE_ASSISTANT_29.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE30 = RES_PATH"/VOICE_ASSISTANT_30.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE31 = RES_PATH"/VOICE_ASSISTANT_31.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE32 = RES_PATH"/VOICE_ASSISTANT_32.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE33 = RES_PATH"/VOICE_ASSISTANT_33.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE34 = RES_PATH"/VOICE_ASSISTANT_34.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE35 = RES_PATH"/VOICE_ASSISTANT_35.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE36 = RES_PATH"/VOICE_ASSISTANT_36.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE37 = RES_PATH"/VOICE_ASSISTANT_37.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE38 = RES_PATH"/VOICE_ASSISTANT_38.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE39 = RES_PATH"/VOICE_ASSISTANT_39.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE40 = RES_PATH"/VOICE_ASSISTANT_40.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE41 = RES_PATH"/VOICE_ASSISTANT_41.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE42 = RES_PATH"/VOICE_ASSISTANT_42.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE43 = RES_PATH"/VOICE_ASSISTANT_43.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE44 = RES_PATH"/VOICE_ASSISTANT_44.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE45 = RES_PATH"/VOICE_ASSISTANT_45.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE46 = RES_PATH"/VOICE_ASSISTANT_46.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE47 = RES_PATH"/VOICE_ASSISTANT_47.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE48 = RES_PATH"/VOICE_ASSISTANT_48.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE49 = RES_PATH"/VOICE_ASSISTANT_49.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE50 = RES_PATH"/VOICE_ASSISTANT_50.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE51 = RES_PATH"/VOICE_ASSISTANT_51.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE52 = RES_PATH"/VOICE_ASSISTANT_52.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE53 = RES_PATH"/VOICE_ASSISTANT_53.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE54 = RES_PATH"/VOICE_ASSISTANT_54.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE55 = RES_PATH"/VOICE_ASSISTANT_55.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE56 = RES_PATH"/VOICE_ASSISTANT_56.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE57 = RES_PATH"/VOICE_ASSISTANT_57.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE58 = RES_PATH"/VOICE_ASSISTANT_58.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE59 = RES_PATH"/VOICE_ASSISTANT_59.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE60 = RES_PATH"/VOICE_ASSISTANT_60.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE61 = RES_PATH"/VOICE_ASSISTANT_61.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE62 = RES_PATH"/VOICE_ASSISTANT_62.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE63 = RES_PATH"/VOICE_ASSISTANT_63.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE64 = RES_PATH"/VOICE_ASSISTANT_64.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE65 = RES_PATH"/VOICE_ASSISTANT_65.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE66 = RES_PATH"/VOICE_ASSISTANT_66.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE67 = RES_PATH"/VOICE_ASSISTANT_67.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE68 = RES_PATH"/VOICE_ASSISTANT_68.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE69 = RES_PATH"/VOICE_ASSISTANT_69.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE70 = RES_PATH"/VOICE_ASSISTANT_70.bin";
-    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE71 = RES_PATH"/VOICE_ASSISTANT_71.bin";
-    constexpr const char *PNG_APPLIST_VOCASSIST_IMAGE = RES_PATH"/APPLIST_VOCASSIST_IMAGE.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE01 = RES_PATH "/VOICE_ASSISTANT_01.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE02 = RES_PATH "/VOICE_ASSISTANT_02.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE03 = RES_PATH "/VOICE_ASSISTANT_03.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE04 = RES_PATH "/VOICE_ASSISTANT_04.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE05 = RES_PATH "/VOICE_ASSISTANT_05.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE06 = RES_PATH "/VOICE_ASSISTANT_06.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE07 = RES_PATH "/VOICE_ASSISTANT_07.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE08 = RES_PATH "/VOICE_ASSISTANT_08.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE09 = RES_PATH "/VOICE_ASSISTANT_09.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE10 = RES_PATH "/VOICE_ASSISTANT_10.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE11 = RES_PATH "/VOICE_ASSISTANT_11.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE12 = RES_PATH "/VOICE_ASSISTANT_12.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE13 = RES_PATH "/VOICE_ASSISTANT_13.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE14 = RES_PATH "/VOICE_ASSISTANT_14.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE15 = RES_PATH "/VOICE_ASSISTANT_15.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE16 = RES_PATH "/VOICE_ASSISTANT_16.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE17 = RES_PATH "/VOICE_ASSISTANT_17.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE18 = RES_PATH "/VOICE_ASSISTANT_18.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE19 = RES_PATH "/VOICE_ASSISTANT_19.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE20 = RES_PATH "/VOICE_ASSISTANT_20.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE21 = RES_PATH "/VOICE_ASSISTANT_21.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE22 = RES_PATH "/VOICE_ASSISTANT_22.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE23 = RES_PATH "/VOICE_ASSISTANT_23.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE24 = RES_PATH "/VOICE_ASSISTANT_24.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE25 = RES_PATH "/VOICE_ASSISTANT_25.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE26 = RES_PATH "/VOICE_ASSISTANT_26.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE27 = RES_PATH "/VOICE_ASSISTANT_27.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE28 = RES_PATH "/VOICE_ASSISTANT_28.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE29 = RES_PATH "/VOICE_ASSISTANT_29.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE30 = RES_PATH "/VOICE_ASSISTANT_30.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE31 = RES_PATH "/VOICE_ASSISTANT_31.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE32 = RES_PATH "/VOICE_ASSISTANT_32.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE33 = RES_PATH "/VOICE_ASSISTANT_33.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE34 = RES_PATH "/VOICE_ASSISTANT_34.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE35 = RES_PATH "/VOICE_ASSISTANT_35.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE36 = RES_PATH "/VOICE_ASSISTANT_36.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE37 = RES_PATH "/VOICE_ASSISTANT_37.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE38 = RES_PATH "/VOICE_ASSISTANT_38.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE39 = RES_PATH "/VOICE_ASSISTANT_39.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE40 = RES_PATH "/VOICE_ASSISTANT_40.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE41 = RES_PATH "/VOICE_ASSISTANT_41.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE42 = RES_PATH "/VOICE_ASSISTANT_42.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE43 = RES_PATH "/VOICE_ASSISTANT_43.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE44 = RES_PATH "/VOICE_ASSISTANT_44.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE45 = RES_PATH "/VOICE_ASSISTANT_45.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE46 = RES_PATH "/VOICE_ASSISTANT_46.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE47 = RES_PATH "/VOICE_ASSISTANT_47.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE48 = RES_PATH "/VOICE_ASSISTANT_48.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE49 = RES_PATH "/VOICE_ASSISTANT_49.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE50 = RES_PATH "/VOICE_ASSISTANT_50.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE51 = RES_PATH "/VOICE_ASSISTANT_51.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE52 = RES_PATH "/VOICE_ASSISTANT_52.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE53 = RES_PATH "/VOICE_ASSISTANT_53.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE54 = RES_PATH "/VOICE_ASSISTANT_54.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE55 = RES_PATH "/VOICE_ASSISTANT_55.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE56 = RES_PATH "/VOICE_ASSISTANT_56.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE57 = RES_PATH "/VOICE_ASSISTANT_57.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE58 = RES_PATH "/VOICE_ASSISTANT_58.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE59 = RES_PATH "/VOICE_ASSISTANT_59.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE60 = RES_PATH "/VOICE_ASSISTANT_60.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE61 = RES_PATH "/VOICE_ASSISTANT_61.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE62 = RES_PATH "/VOICE_ASSISTANT_62.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE63 = RES_PATH "/VOICE_ASSISTANT_63.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE64 = RES_PATH "/VOICE_ASSISTANT_64.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE65 = RES_PATH "/VOICE_ASSISTANT_65.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE66 = RES_PATH "/VOICE_ASSISTANT_66.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE67 = RES_PATH "/VOICE_ASSISTANT_67.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE68 = RES_PATH "/VOICE_ASSISTANT_68.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE69 = RES_PATH "/VOICE_ASSISTANT_69.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE70 = RES_PATH "/VOICE_ASSISTANT_70.bin";
+    constexpr const char *PNG_VOICE_ASSISTANT_IMAGE71 = RES_PATH "/VOICE_ASSISTANT_71.bin";
+    constexpr const char *PNG_APPLIST_VOCASSIST_IMAGE = RES_PATH "/APPLIST_VOCASSIST_IMAGE.bin";
 
-    constexpr const char *PNG_STEP_SHOE_IMAGE_PATH = RES_PATH"/SHOE_IMAGE.bin";
+    constexpr const char *PNG_STEP_SHOE_IMAGE_PATH = RES_PATH "/SHOE_IMAGE.bin";
 
-    #define PNG_HEARTRATECOOR_IMAGE_PATH RES_PATH"/HEARTRATECOOR.bin"
-    #define PNG_A004_009_IMAGE_PATH RES_PATH"/HEARTRATE_TOP.bin"
-    #define PNG_A004_006_IMAGE_PATH RES_PATH"/HEARTRATE_BOTTOM.bin"
-    #define PNG_A004_070_IMAGE_PATH RES_PATH"/HEARTBEAT_IMAGE_01.bin"
-    #define PNG_A004_071_IMAGE_PATH RES_PATH"/HEARTBEAT_IMAGE_02.bin"
+#define PNG_HEARTRATECOOR_IMAGE_PATH RES_PATH "/HEARTRATECOOR.bin"
+#define PNG_A004_009_IMAGE_PATH RES_PATH "/HEARTRATE_TOP.bin"
+#define PNG_A004_006_IMAGE_PATH RES_PATH "/HEARTRATE_BOTTOM.bin"
+#define PNG_A004_070_IMAGE_PATH RES_PATH "/HEARTBEAT_IMAGE_01.bin"
+#define PNG_A004_071_IMAGE_PATH RES_PATH "/HEARTBEAT_IMAGE_02.bin"
 
-    constexpr const char *PNG_A019_080_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_01.bin";
-    constexpr const char *PNG_A019_081_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_02.bin";
-    constexpr const char *PNG_A019_082_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_03.bin";
-    constexpr const char *PNG_A019_083_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_04.bin";
-    constexpr const char *PNG_A019_084_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_05.bin";
-    constexpr const char *PNG_A019_085_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_06.bin";
-    constexpr const char *PNG_A019_086_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_07.bin";
-    constexpr const char *PNG_A019_087_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_08.bin";
+    constexpr const char *PNG_A019_080_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_01.bin";
+    constexpr const char *PNG_A019_081_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_02.bin";
+    constexpr const char *PNG_A019_082_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_03.bin";
+    constexpr const char *PNG_A019_083_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_04.bin";
+    constexpr const char *PNG_A019_084_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_05.bin";
+    constexpr const char *PNG_A019_085_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_06.bin";
+    constexpr const char *PNG_A019_086_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_07.bin";
+    constexpr const char *PNG_A019_087_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_08.bin";
 
-    constexpr const char *PNG_A019_088_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_09.bin";
-    constexpr const char *PNG_A019_089_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_10.bin";
-    constexpr const char *PNG_A019_090_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_11.bin";
-    constexpr const char *PNG_A019_091_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_12.bin";
-    constexpr const char *PNG_A019_092_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_13.bin";
-    constexpr const char *PNG_A019_093_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_14.bin";
-    constexpr const char *PNG_A019_094_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_15.bin";
-    constexpr const char *PNG_A019_095_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_16.bin";
-    constexpr const char *PNG_BLUETOOTHEAR = RES_PATH"/BLUETOOTHEAR.bin";
-    constexpr const char *PNG_STANDBY_DIAL_ANTLERS = RES_PATH"/STANDBY_DIAL_ANTLERS.bin";
+    constexpr const char *PNG_A019_088_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_09.bin";
+    constexpr const char *PNG_A019_089_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_10.bin";
+    constexpr const char *PNG_A019_090_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_11.bin";
+    constexpr const char *PNG_A019_091_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_12.bin";
+    constexpr const char *PNG_A019_092_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_13.bin";
+    constexpr const char *PNG_A019_093_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_14.bin";
+    constexpr const char *PNG_A019_094_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_15.bin";
+    constexpr const char *PNG_A019_095_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_16.bin";
+    constexpr const char *PNG_BLUETOOTHEAR = RES_PATH "/BLUETOOTHEAR.bin";
+    constexpr const char *PNG_STANDBY_DIAL_ANTLERS = RES_PATH "/STANDBY_DIAL_ANTLERS.bin";
     // AppList
 
-    constexpr const char *PNG_APPLIST_ALARM_IMAGE = RES_PATH"/APPLIST_ALARM.bin"; // 闹钟
-    constexpr const char *PNG_APPLIST_SPO2_IMAGE = RES_PATH"/APPLIST_SPO2.bin";  // 血氧
-    constexpr const char *PNG_APPLIST_SETTING_IMAGE = RES_PATH"/APPLIST_SETTING.bin";  // 设置
-    constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB = RES_PATH"/DROPDOWN_DN_DISTURB.bin"; // 勿扰
-    constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN = RES_PATH"/DROPDOWN_BRI_SCREEN.bin"; // 亮屏
-    constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE = RES_PATH"/DROPDOWN_FIND_PHONE.bin"; // 找手机
-    constexpr const char *PNG_MAIN_DROP_DOWN_ALARM = RES_PATH"/DROPDOWN_ALARM.bin"; // 闹钟
-    constexpr const char *PNG_MAIN_DROP_DOWN_SETTING = RES_PATH"/DROPDOWN_SETTING.bin"; // 设置
-    constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH = RES_PATH"/DROPDOWN_BLUETOOTH.bin"; // 蓝牙状态
-    constexpr const char *PNG_MAIN_DROP_DOWN_BATTERY = RES_PATH"/DROPDOWN_BATTERY.bin"; // 电量显示
-    constexpr const char *PNG_APPLIST_TEMP_IMAGE = RES_PATH"/TEMP_IMAGE.bin"; // 体温
+    constexpr const char *PNG_APPLIST_ALARM_IMAGE = RES_PATH "/APPLIST_ALARM.bin";            // 闹钟
+    constexpr const char *PNG_APPLIST_SPO2_IMAGE = RES_PATH "/APPLIST_SPO2.bin";              // 血氧
+    constexpr const char *PNG_APPLIST_SETTING_IMAGE = RES_PATH "/APPLIST_SETTING.bin";        // 设置
+    constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB = RES_PATH "/DROPDOWN_DN_DISTURB.bin"; // 勿扰
+    constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN = RES_PATH "/DROPDOWN_BRI_SCREEN.bin"; // 亮屏
+    constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE = RES_PATH "/DROPDOWN_FIND_PHONE.bin";  // 找手机
+    constexpr const char *PNG_MAIN_DROP_DOWN_ALARM = RES_PATH "/DROPDOWN_ALARM.bin";          // 闹钟
+    constexpr const char *PNG_MAIN_DROP_DOWN_SETTING = RES_PATH "/DROPDOWN_SETTING.bin";      // 设置
+    constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH = RES_PATH "/DROPDOWN_BLUETOOTH.bin";  // 蓝牙状态
+    constexpr const char *PNG_MAIN_DROP_DOWN_BATTERY = RES_PATH "/DROPDOWN_BATTERY.bin";      // 电量显示
+    constexpr const char *PNG_APPLIST_TEMP_IMAGE = RES_PATH "/TEMP_IMAGE.bin";                // 体温
 
-    constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB_B = RES_PATH"/DROPDOWN_DN_DISTURB_B.bin";
-    constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN_B = RES_PATH"/DROPDOWN_BRI_SCREEN_B.bin";
-    constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE_B = RES_PATH"/DROPDOWN_FIND_PHONE_B.bin";
-    constexpr const char *PNG_MAIN_DROP_DOWN_ALARM_B = RES_PATH"/DROPDOWN_ALARM_B.bin";
-    constexpr const char *PNG_MAIN_DROP_DOWN_SETTING_B = RES_PATH"/DROPDOWN_SETTING_B.bin";
-    constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH_B = RES_PATH"/DROPDOWN_BLUETOOTH_B.bin";
+    constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB_B = RES_PATH "/DROPDOWN_DN_DISTURB_B.bin";
+    constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN_B = RES_PATH "/DROPDOWN_BRI_SCREEN_B.bin";
+    constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE_B = RES_PATH "/DROPDOWN_FIND_PHONE_B.bin";
+    constexpr const char *PNG_MAIN_DROP_DOWN_ALARM_B = RES_PATH "/DROPDOWN_ALARM_B.bin";
+    constexpr const char *PNG_MAIN_DROP_DOWN_SETTING_B = RES_PATH "/DROPDOWN_SETTING_B.bin";
+    constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH_B = RES_PATH "/DROPDOWN_BLUETOOTH_B.bin";
 
     // 室内步行
-    constexpr const char *PNG_APPLIST_WALK_IMAGE = RES_PATH"/APPLIST_WALK.bin"; // Applist图标
-    constexpr const char *PNG_WALK_BACK_GROUND = RES_PATH"/WALK_BACK_GROUND.bin";
-    constexpr const char *PNG_WALK_IMAGE = RES_PATH"/INDOORWALK.bin";
-    constexpr const char *PNG_AEROBIC_IMAGE = RES_PATH"/AEROBIC.bin";
-    constexpr const char *PNG_ANAEROBIC_IMAGE = RES_PATH"/ANAEROBIC.bin";
-    constexpr const char *PNG_OPTIONS_BOX1_IMAGE = RES_PATH"/OPTIONS_BOX1.bin";
-    constexpr const char *PNG_OPTIONS_BOX2_IMAGE = RES_PATH"/OPTIONS_BOX2.bin";
-    constexpr const char *PNG_OPTIONS_BOX3_IMAGE = RES_PATH"/OPTIONS_BOX3.bin";
-    constexpr const char *PNG_OPTIONS_BOX4_IMAGE = RES_PATH"/OPTIONS_BOX4.bin";
-    constexpr const char *PNG_WALK_TIME_IMAGE = RES_PATH"/TIME_IMAGE.bin";
-    constexpr const char *PNG_WALK_DISTANCES_IMAGE = RES_PATH"/DISTANCES_IMAGE.bin";
-    constexpr const char *PNG_WALK_HEART_IMAGE = RES_PATH"/HEART_IMAGE.bin";
-    constexpr const char *PNG_WALK_SPEED_IMAGE = RES_PATH"/SPEED_IMAGE.bin";
-    constexpr const char *PNG_WALK_STEPS_IMAGE = RES_PATH"/STEPS_IMAGE.bin";
+    constexpr const char *PNG_APPLIST_WALK_IMAGE = RES_PATH "/APPLIST_WALK.bin"; // Applist图标
+    constexpr const char *PNG_WALK_BACK_GROUND = RES_PATH "/WALK_BACK_GROUND.bin";
+    constexpr const char *PNG_WALK_IMAGE = RES_PATH "/INDOORWALK.bin";
+    constexpr const char *PNG_AEROBIC_IMAGE = RES_PATH "/AEROBIC.bin";
+    constexpr const char *PNG_ANAEROBIC_IMAGE = RES_PATH "/ANAEROBIC.bin";
+    constexpr const char *PNG_OPTIONS_BOX1_IMAGE = RES_PATH "/OPTIONS_BOX1.bin";
+    constexpr const char *PNG_OPTIONS_BOX2_IMAGE = RES_PATH "/OPTIONS_BOX2.bin";
+    constexpr const char *PNG_OPTIONS_BOX3_IMAGE = RES_PATH "/OPTIONS_BOX3.bin";
+    constexpr const char *PNG_OPTIONS_BOX4_IMAGE = RES_PATH "/OPTIONS_BOX4.bin";
+    constexpr const char *PNG_WALK_TIME_IMAGE = RES_PATH "/TIME_IMAGE.bin";
+    constexpr const char *PNG_WALK_DISTANCES_IMAGE = RES_PATH "/DISTANCES_IMAGE.bin";
+    constexpr const char *PNG_WALK_HEART_IMAGE = RES_PATH "/HEART_IMAGE.bin";
+    constexpr const char *PNG_WALK_SPEED_IMAGE = RES_PATH "/SPEED_IMAGE.bin";
+    constexpr const char *PNG_WALK_STEPS_IMAGE = RES_PATH "/STEPS_IMAGE.bin";
 }
 
 #endif // UI_CONFIG_H