卡片管理按照顺序配置
authorCaisking <3449750381@qq.com>
Thu, 27 Jun 2024 12:48:26 +0000 (20:48 +0800)
committerCaisking <3449750381@qq.com>
Thu, 27 Jun 2024 12:48:26 +0000 (20:48 +0800)
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/set_card/src/SetCardModel.cpp

index d8dfa8d..6b9ee61 100644 (file)
 
 namespace OHOS
 {
-    static const int CARD_SETTING_COUNT_MAX = 8;
+    static const int CARD_SETTING_COUNT_MAX = 10;
     typedef enum
     {
         WATCH_FACE = 0, /* 主表盘枚举值不能修改 */
-        SETCARD,
         HEART_RATE,
         COMPASS,
         MUSIC_PLAYER,
@@ -27,6 +26,7 @@ namespace OHOS
         TRAINING,
         GOAL,
         SLEEP,
+        SETCARD,
         MAX_CARD,
     } CardId;
 
diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartModel.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartModel.h b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartModel.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartPresenter.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartPresenter.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartView.cpp b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartView.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartView.h b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/set_heart/SetHeartView.h
new file mode 100644 (file)
index 0000000..e69de29
index 1d82fac..0c36737 100644 (file)
@@ -1,3 +1,9 @@
+/***\r
+ * @Date: 2024-06-21 09:56:18\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-06-27 09:38:03\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h\r
+ */\r
 /*\r
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
  * Description: MainModel.h\r
 #include <string>\r
 #include "UiConfig.h"\r
 \r
-namespace OHOS {\r
-    typedef struct {\r
+namespace OHOS\r
+{\r
+    struct CardInfo\r
+    {\r
         CardId id;\r
         const char *cardImg;\r
-    } CardInfo;\r
-\r
-    typedef struct {\r
+        bool isVisible;\r
+    };\r
+    struct CardInfoSet\r
+    {\r
+        CardId id;\r
+        bool isVisible;\r
+    };\r
+    typedef struct\r
+    {\r
         DialId id;\r
         const char *dialName;\r
         const char *dialImg;\r
         uint8_t freq;\r
     } DialInfo;\r
 \r
-    typedef struct {\r
+    typedef struct\r
+    {\r
         uint8_t dialFlag;\r
         uint8_t dialId;\r
         std::string dialFullName;\r
     } DialSetting;\r
 \r
-    class MainModel {\r
+    class MainModel\r
+    {\r
     public:\r
         static MainModel &GetInstance(void);\r
         void InitCardSettings(void);\r
@@ -47,6 +63,9 @@ namespace OHOS {
         void SetFromSetCardView(bool isFrom);\r
         void SetFromCardId(uint8_t cardId);\r
         uint8_t GetFromCardId(void);\r
+        void printCardSettings();\r
+        const char *getCardNameFromMap(uint8_t cardId) const;\r
+\r
     private:\r
         void InitDialSettingDefault(void);\r
         MainModel();\r
@@ -54,7 +73,7 @@ namespace OHOS {
         MainModel &operator=(const MainModel &);\r
         virtual ~MainModel();\r
 \r
-        CardId cardSettings[CARD_SETTING_COUNT_MAX] = { MAX_CARD };\r
+        CardId cardSettings[CARD_SETTING_COUNT_MAX] = {MAX_CARD};\r
         uint8_t cardSettingCount{0};\r
         DialSetting dialSetting;\r
         bool isFromSetCardView{false};\r
index bb5a7d5..c6c68d9 100644 (file)
@@ -17,21 +17,46 @@ namespace OHOS
     static const int DIAL_SETTING_VALUE_LEN = 64;\r
     // 更新主界面卡片需要更新Map\r
     const CardInfo cardInfoMap[] = {\r
-        {SETCARD, PNG_SET_CARD_MAIN},\r
-        {HEART_RATE, PNG_SET_CARD_HEART},\r
-        {COMPASS, PNG_SET_CARD_COMPASS},\r
-        {MUSIC_PLAYER, PNG_SET_CARD_PLAYER},\r
-        {BLOODOXGEN, PNG_SET_CARD_BLOOD},\r
-        {WEATHER, PNG_SET_CARD_WEATHER},\r
-        {TRAINING, PNG_SET_CARD_TRAIN},\r
-        {GOAL, PNG_SET_CARD_ACTIVITY},\r
-        {SLEEP, PNG_SET_CARD_SLEEP},\r
+        {HEART_RATE, PNG_SET_CARD_HEART, true},\r
+        {COMPASS, PNG_SET_CARD_COMPASS, true},\r
+        {MUSIC_PLAYER, PNG_SET_CARD_PLAYER, true},\r
+        {BLOODOXGEN, PNG_SET_CARD_BLOOD, false},\r
+        {WEATHER, PNG_SET_CARD_WEATHER, false},\r
+        {TRAINING, PNG_SET_CARD_TRAIN, false},\r
+        {GOAL, PNG_SET_CARD_ACTIVITY, false},\r
+        {SLEEP, PNG_SET_CARD_SLEEP, false},\r
+        /*在前方增加卡片*/\r
+        {SETCARD, PNG_SET_CARD_MAIN, true},\r
+    };\r
+    /*维护卡片*/\r
+    CardInfoSet cardInfoSet[] =\r
+        {\r
+            {HEART_RATE, true},\r
+            {COMPASS, true},\r
+            {MUSIC_PLAYER, true},\r
+            {BLOODOXGEN, false},\r
+            {WEATHER, false},\r
+            {TRAINING, false},\r
+            {GOAL, false},\r
+            {SLEEP, false},\r
+            {SETCARD, true},\r
     };\r
     /*自定义map?*/\r
     const DialInfo dialInfoMap[] = {\r
         {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD},\r
     };\r
 \r
+    const CardInfo printfMap[] = {\r
+        {HEART_RATE, "心率卡片"},\r
+        {COMPASS, "指南针"},\r
+        {MUSIC_PLAYER, "音乐"},\r
+        {BLOODOXGEN, "血氧"},\r
+        {WEATHER, "天气"},\r
+        {TRAINING, "训练"},\r
+        {GOAL, "每日目标"},\r
+        {SLEEP, "睡眠"},\r
+        {SETCARD, "设置卡片"},\r
+    };\r
     MainModel::MainModel() {}\r
 \r
     MainModel::~MainModel() {}\r
@@ -41,33 +66,51 @@ namespace OHOS
         static MainModel instance;\r
         return instance;\r
     }\r
+    /* ---------------------------------- 卡片配置 ---------------------------------- */\r
+    void MainModel::printCardSettings(void)\r
+    {\r
+        uint8_t i;\r
+        printf("_____________________________________________________\r\n");\r
+        for (i = 0; i < cardSettingCount; i++)\r
+        {\r
+            uint8_t cardId = cardSettings[i];\r
+            const char *cardname = getCardNameFromMap(cardId);\r
+            printf("cardSettings[%d]:Id: %d, CardName: %s\r\n", i, cardId, cardname);\r
+        }\r
 \r
-    const CardInfo *MainModel::GetCardInfo(CardId card) const\r
+        for (uint8_t m = 0; m < (sizeof(cardInfoSet) / sizeof(cardInfoSet[0])); m++)\r
+        {\r
+            // printf("cardInfoSet[%d]:Id %d, Visible: %s\n", m, cardInfoSet[m].id, cardInfoSet[m].isVisible ? "true" : "false");\r
+        }\r
+        printf("_____________________________________________________\r\n");\r
+    }\r
+\r
+    const char *MainModel::getCardNameFromMap(uint8_t cardId) const\r
     {\r
-        for (uint8_t i = 0; i < (sizeof(cardInfoMap) / sizeof(cardInfoMap[0])); i++)\r
+        for (uint8_t i = 0; i < (sizeof(printfMap) / sizeof(printfMap[0])); i++)\r
         {\r
-            if (card == cardInfoMap[i].id)\r
+            if (cardId == printfMap[i].id)\r
             {\r
-                return &cardInfoMap[i];\r
+                return printfMap[i].cardImg;\r
             }\r
         }\r
-        return nullptr;\r
+        return "Unknown";\r
     }\r
-\r
-    const DialInfo *MainModel::GetDialInfo(DialId dialId) const\r
+    const CardInfo *MainModel::GetCardInfo(CardId card) const\r
     {\r
-        for (uint8_t i = 0; i < (sizeof(dialInfoMap) / sizeof(dialInfoMap[0])); i++)\r
+        for (uint8_t i = 0; i < (sizeof(cardInfoMap) / sizeof(cardInfoMap[0])); i++)\r
         {\r
-            if (dialId == dialInfoMap[i].id)\r
+            if (card == cardInfoMap[i].id)\r
             {\r
-                return &dialInfoMap[i];\r
+                printf("cardInfoMap[%d]:%d\n", i, cardInfoMap[i].id);\r
+                return &cardInfoMap[i];\r
             }\r
         }\r
         return nullptr;\r
     }\r
-\r
     void MainModel::InitCardSettings(void)\r
     {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitCardSettings");\r
         char temp[CARD_SETTING_VALUE_LEN] = {0};\r
         int len;\r
         int index = 0;\r
@@ -76,9 +119,10 @@ namespace OHOS
         len = UtilsGetValue("card_setting", temp, CARD_SETTING_VALUE_LEN);\r
         if (len >= 0)\r
         {\r
-            /* 读取用户card配置 */\r
+            // 更新用户卡片配置及更新卡片可见性\r
             char *setBuffer = nullptr;\r
             char *setValue = strtok_s(temp, ",", &setBuffer);\r
+            index = 0; // 重置 index\r
             while (setValue != nullptr)\r
             {\r
                 if (index >= CARD_SETTING_COUNT_MAX)\r
@@ -89,67 +133,168 @@ namespace OHOS
                 setValue = strtok_s(nullptr, ",", &setBuffer);\r
             }\r
             cardSettingCount = index;\r
+\r
+            // 更新卡片可见性\r
+            for (size_t i = 0; i < sizeof(cardInfoSet) / sizeof(cardInfoSet[0]); i++)\r
+            {\r
+                bool visible = false;\r
+                for (size_t j = 0; j < cardSettingCount; j++)\r
+                {\r
+                    if (cardInfoSet[i].id == cardSettings[j])\r
+                    {\r
+                        printf("CardSettings:cardInfoSet[%d] is set cardSettings[%d]\r\n", i, j);\r
+                        visible = true;\r
+                        break;\r
+                    }\r
+                }\r
+                cardInfoSet[i].isVisible = visible;\r
+            }\r
         }\r
         else\r
         {\r
-            /* 使用默认card配置 */\r
-            cardSettings[index++] = SETCARD; // 默认卡片增加设置卡片\r
-            cardSettings[index++] = WATCH_FACE;\r
-            cardSettings[index++] = HEART_RATE;\r
-            cardSettings[index++] = COMPASS;\r
-            cardSettings[index++] = MUSIC_PLAYER;\r
+            for (uint8_t i = 0; i < (sizeof(cardInfoMap) / sizeof(cardInfoMap[0])); i++)\r
+            {\r
+                if (index == 0)\r
+                {\r
+                    /* 表盘卡片[不被卡片管理,必须设置] */\r
+                    cardSettings[index++] = WATCH_FACE;\r
+                    printf("cardSettings[%d] is set [%d]\r\n", index, i, WATCH_FACE);\r
+                }\r
+                if (cardInfoMap[i].isVisible)\r
+                {\r
+                    printf("cardSettings[%d] is set cardInfoMap[%d]:%d\r\n", index, i, cardInfoMap[i].id);\r
+                    cardSettings[index++] = cardInfoMap[i].id;\r
+                }\r
+            }\r
             cardSettingCount = index;\r
         }\r
-    }\r
 \r
+        printCardSettings();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitCardSettings");\r
+    }\r
     void MainModel::DeleteCardSetting(uint8_t index)\r
     {\r
+        /*设置卡片类型为false cardsetting 重新遍历map里面为ture的卡片{表盘必须存在}*/\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DeleteCardSetting");\r
+        printf("删除卡片:cardSettings[%d] is %d \r\n", index + 1, cardSettings[index + 1]);\r
+        // printCardSettings();\r
         char temp[CARD_SETTING_VALUE_LEN] = {0};\r
-        for (uint8_t i = 0; i < cardSettingCount; i++)\r
+\r
+        if (cardSettingCount > CARD_SETTING_COUNT_MAX)\r
         {\r
-            if (i == index + 1)\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettingCount %d is error", cardSettingCount);\r
+            return;\r
+        }\r
+        // 检查要插入的位置是否有效\r
+        if (index < 0 || index > cardSettingCount)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index %d is error or cardSettingCount %d is error", index, cardSettingCount);\r
+            return;\r
+        }\r
+        int count = sizeof(cardInfoSet) / sizeof(cardInfoSet[0]);\r
+        printf("count:%d\r\n", count);\r
+        // 设置map里面的属性\r
+        for (uint8_t i = 0; i < count; i++)\r
+        {\r
+            // 需要被删除的卡片\r
+            if (cardSettings[index + 1] == cardInfoSet[i].id)\r
             {\r
-                uint8_t j = i;\r
-                for (; j < cardSettingCount - 1; j++)\r
-                {\r
-                    cardSettings[j] = cardSettings[j + 1];\r
-                }\r
-                cardSettings[j] = MAX_CARD;\r
-                cardSettingCount--;\r
+                cardInfoSet[i].isVisible = false;\r
+                printf("删除卡片:cardSettings[%d] is %d \r\n", index + 1, cardSettings[index + 1]);\r
+                printf("设置删除卡片属性:cardInfoSet[%d] is %d \r\n", i, cardInfoSet[i].isVisible);\r
+            }\r
+            printf("cardInfoSet[%d]:id%d\r\n", i, cardInfoSet[i].id);\r
+        }\r
+        int mapindex = 0;\r
+        // 重新生成cardSettings\r
+        for (uint8_t i = 0; i < CARD_SETTING_COUNT_MAX; i++)\r
+        {\r
+            cardSettings[i] = MAX_CARD;\r
+        }\r
+        printCardSettings();\r
+        for (uint8_t i = 0; i < (sizeof(cardInfoSet) / sizeof(cardInfoSet[0])); i++)\r
+        {\r
+            if (mapindex == 0)\r
+            {\r
+                /* 表盘卡片[不被卡片管理,必须设置] */\r
+                cardSettings[mapindex++] = WATCH_FACE;\r
+            }\r
+            // 设置其他卡片\r
+            if (cardInfoSet[i].isVisible)\r
+            {\r
+                // printf("cardSettings[%d]\r\n", i);\r
+                cardSettings[mapindex++] = cardInfoSet[i].id;\r
             }\r
         }\r
 \r
-        for (uint8_t i = 0; i < cardSettingCount; i++)\r
+        cardSettingCount = mapindex;\r
+\r
+        // 更新存储内容\r
+        for (uint8_t k = 0; k < cardSettingCount; k++)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettings[%d] = %d", i, cardSettings[i]);\r
-            (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]);\r
+            (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[k]);\r
         }\r
         (void)UtilsSetValue("card_setting", temp);\r
+\r
+        // printf("index:%d\r\n", index);\r
+        printCardSettings();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DeleteCardSetting");\r
     }\r
 \r
     void MainModel::AddCardSetting(uint8_t index)\r
     {\r
+        /*设置卡片类型为ture cardsetting 重新遍历map里面为ture的卡片{表盘必须存在}*/\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddCardSetting");\r
         char temp[CARD_SETTING_VALUE_LEN] = {0};\r
-        if (cardSettingCount >= CARD_SETTING_COUNT_MAX)\r
+\r
+        if (cardSettingCount > CARD_SETTING_COUNT_MAX)\r
         {\r
             return;\r
         }\r
-        for (int i = 0; i < cardSettingCount; i++)\r
+\r
+        // 检查要插入的位置是否有效\r
+        if (index < 0 || index > cardSettingCount)\r
         {\r
-            if (cardSettings[i] == cardInfoMap[index].id)\r
+            return;\r
+        }\r
+\r
+        // 设置map里面的属性\r
+        int mapindex = 0;\r
+\r
+        for (uint8_t i = 0; i < (sizeof(cardInfoSet) / sizeof(cardInfoSet[0])); i++)\r
+        {\r
+            if (mapindex == 0)\r
             {\r
-                return;\r
+                /* 表盘卡片[不被卡片管理,必须设置] */\r
+                cardSettings[mapindex++] = WATCH_FACE;\r
+            }\r
+            // 需要被添加的卡片 因为添加是显示所有卡片,所以是使用map\r
+            if (cardInfoMap[index].id == cardInfoSet[i].id)\r
+            {\r
+                cardInfoSet[i].isVisible = true;\r
+                printf("添加卡片:cardSettings[%d] is %d \r\n", index, cardInfoMap[index].id);\r
+                printf("设置添加卡片属性:cardInfoSet[%d] is %d \r\n", i, cardInfoSet[i].isVisible);\r
+            }\r
+            // 设置其他卡片\r
+            if (cardInfoSet[i].isVisible)\r
+            {\r
+                cardSettings[mapindex++] = cardInfoSet[i].id;\r
+                printf("set cardInfoSet[%d]\r\n", i);\r
             }\r
         }\r
-        cardSettings[cardSettingCount++] = cardInfoMap[index].id;\r
-        for (uint8_t i = 0; i < cardSettingCount; i++)\r
+        cardSettingCount = mapindex;\r
+\r
+        // 更新存储内容\r
+        for (uint8_t j = 0; j < cardSettingCount; j++)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettings[%d] = %d", i, cardSettings[i]);\r
-            (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]);\r
+            (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[j]);\r
         }\r
         (void)UtilsSetValue("card_setting", temp);\r
-    }\r
 \r
+        printf("index:%d\r\n", index);\r
+        printCardSettings();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddCardSetting");\r
+    }\r
     uint8_t MainModel::GetCardSettingCount(void)\r
     {\r
         return cardSettingCount;\r
@@ -159,7 +304,38 @@ namespace OHOS
     {\r
         return cardSettings;\r
     }\r
+    bool MainModel::IsFromSetCardView(void) const\r
+    {\r
+        return isFromSetCardView;\r
+    }\r
+\r
+    void MainModel::SetFromSetCardView(bool isFrom)\r
+    {\r
+        isFromSetCardView = isFrom;\r
+    }\r
 \r
+    void MainModel::SetFromCardId(uint8_t cardId)\r
+    {\r
+        fromCardId = cardId;\r
+    }\r
+\r
+    uint8_t MainModel::GetFromCardId(void)\r
+    {\r
+        return fromCardId;\r
+    }\r
+\r
+    /* ---------------------------------- 表盘配置 ---------------------------------- */\r
+    const DialInfo *MainModel::GetDialInfo(DialId dialId) const\r
+    {\r
+        for (uint8_t i = 0; i < (sizeof(dialInfoMap) / sizeof(dialInfoMap[0])); i++)\r
+        {\r
+            if (dialId == dialInfoMap[i].id)\r
+            {\r
+                return &dialInfoMap[i];\r
+            }\r
+        }\r
+        return nullptr;\r
+    }\r
     void MainModel::InitDialSettingDefault(void)\r
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitDialSettingDefault");\r
@@ -238,23 +414,73 @@ namespace OHOS
         return dialSetting;\r
     }\r
 \r
-    bool MainModel::IsFromSetCardView(void) const\r
-    {\r
-        return isFromSetCardView;\r
-    }\r
+}\r
 \r
-    void MainModel::SetFromSetCardView(bool isFrom)\r
+#if 0\r
+    void MainModel::DeleteCardSetting(uint8_t index)\r
     {\r
-        isFromSetCardView = isFrom;\r
+        char temp[CARD_SETTING_VALUE_LEN] = {0};\r
+        for (uint8_t i = 0; i < cardSettingCount; i++)\r
+        {\r
+            if (i == index + 1)\r
+            {\r
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "i:%d index:%d", i, index);\r
+                uint8_t j = i;\r
+                for (; j < cardSettingCount - 1; j++)\r
+                {\r
+                    cardSettings[j] = cardSettings[j + 1];\r
+                }\r
+                cardSettings[j] = MAX_CARD;\r
+                cardSettingCount--;\r
+            }\r
+        }\r
+\r
+        for (uint8_t i = 0; i < cardSettingCount; i++)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettings[%d] = %d", i, cardSettings[i]);\r
+            (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]);\r
+        }\r
+        (void)UtilsSetValue("card_setting", temp);\r
+\r
+        printf("\r\n***************DeleteCardSetting********************\r\n");\r
+        printCardSettings();\r
+        printf("\r\n_____________________________________________________\r\n");\r
     }\r
 \r
-    void MainModel::SetFromCardId(uint8_t cardId)\r
+    void MainModel::AddCardSetting(uint8_t index)\r
     {\r
-        fromCardId = cardId;\r
+        char temp[CARD_SETTING_VALUE_LEN] = {0};\r
+        if (cardSettingCount >= CARD_SETTING_COUNT_MAX)\r
+        {\r
+            return;\r
+        }\r
+        for (int i = 0; i < cardSettingCount; i++)\r
+        {\r
+            if (cardSettings[i] == cardInfoMap[index].id)\r
+            {\r
+                return;\r
+            }\r
+        }\r
+        cardSettings[cardSettingCount++] = cardInfoMap[index].id;\r
+        for (uint8_t i = 0; i < cardSettingCount; i++)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettings[%d] = %d", i, cardSettings[i]);\r
+            (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]);\r
+        }\r
+        (void)UtilsSetValue("card_setting", temp);\r
+\r
+        printf("\r\n***************AddCardSetting********************\r\n");\r
+        printCardSettings();\r
     }\r
 \r
-    uint8_t MainModel::GetFromCardId(void)\r
+    else\r
     {\r
-        return fromCardId;\r
+        /* 使用默认card配置 */\r
+        cardSettings[index++] = WATCH_FACE;\r
+        cardSettings[index++] = HEART_RATE;\r
+        cardSettings[index++] = COMPASS;\r
+        cardSettings[index++] = MUSIC_PLAYER;\r
+        cardSettings[index++] = SETCARD; // 默认卡片增加设置卡片\r
+        cardSettingCount = index;\r
     }\r
-}
\ No newline at end of file
+#endif\r
index de73526..d662e70 100644 (file)
@@ -30,7 +30,6 @@ namespace OHOS
     // 严格按照Id对应
     static const MainViewMapper CardMapper[] = {
         {WATCH_FACE, &MainViewSample::InitWatchFacePage},
-        {SETCARD, &MainViewSample::InitSetMainPage},
         {HEART_RATE, &MainViewSample::InitHeartRatePage},
         {COMPASS, &MainViewSample::InitCompassPage},
         {MUSIC_PLAYER, &MainViewSample::InitMusicPlayerPage},
@@ -39,6 +38,7 @@ namespace OHOS
         {TRAINING, &MainViewSample::InitTrainingPage},
         {GOAL, &MainViewSample::InitGoalPage},
         {SLEEP, &MainViewSample::InitSleepPage},
+        {SETCARD, &MainViewSample::InitSetMainPage},
 
 #if 0
         {ACTIVITY, &MainViewSample::InitActivityPage},
index 69b97f8..4f32dbc 100644 (file)
@@ -30,7 +30,7 @@ namespace OHOS
         cardShowCount = 0;
         for (uint8_t i = 0; i < cardCount; i++)
         {
-            if (cardSettings[i] == WATCH_FACE || cardSettings[i] == SETCARD)
+            if (cardSettings[i] == WATCH_FACE)
             {
                 continue;
             }