实现:恢复出厂设置后必须绑定二维码才能进入主界面 569/1 569/head 570/target/1 571/target/1 572/target/1
authorluozheng <1732036298@qq.com>
Sat, 20 Jul 2024 11:23:23 +0000 (19:23 +0800)
committerluozheng <1732036298@qq.com>
Sat, 20 Jul 2024 11:23:23 +0000 (19:23 +0800)
14 files changed:
code/sdk/application/wearable/fd230app/nativeui/languagecode/LanguageInit.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/include/LanguageSwitchModel.h
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchView.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModel.h
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.h
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/drivers/peripheral/config/include/ConfigModel.h
code/sdk/drivers/peripheral/config/src/ConfigModel.cpp

index d9e55d8..047731c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-30 09:14:38
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 17:18:54
+ * @LastEditTime: 2024-07-20 18:03:40
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/LanguageInit.cpp
  */
 #include <fstream>
@@ -126,12 +126,10 @@ namespace OHOS
             */
             //thelanguage = 0;
             NativeAbility::GetInstance().SetDefaultSliceId(VIEW_LANGUAGE_SWITCH);
-            LanguageSwitchModel::GetInstance().SetisFirstTimeStart(true);
         }
         else
         {
             NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
-            LanguageSwitchModel::GetInstance().SetisFirstTimeStart(false);
         }
         FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, thelanguage);
         return true;
index 9e954e4..9181f0c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 16:36:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 18:05:27
+ * @LastEditTime: 2024-07-20 17:59:33
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/include/LanguageSwitchModel.h
  */
 
@@ -33,7 +33,6 @@ namespace OHOS
         const LanguageSwitchModel &operator=(const LanguageSwitchModel &) = delete;
         static const uint16_t LANGUAGE_ITEM_MAX = MAX_LANGUAGE; // 语言总数
         std::string PreLanguageCode;                            // 上一次切换的语言
-        bool isFirstTimeStart; // 手表是否是第一次启动
     };
 
 }
index 93602c5..72e3b28 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 16:36:46
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 17:17:45
+ * @LastEditTime: 2024-07-20 17:59:51
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp
  */
 #include "languagecode/include/LanguageSwitchModel.h"
@@ -53,14 +53,4 @@ namespace OHOS
     {
         return PreLanguageCode.c_str();
     }
-
-    void LanguageSwitchModel::SetisFirstTimeStart(bool value)
-    {
-        isFirstTimeStart = value;
-    }
-
-    bool LanguageSwitchModel::GetisFirstTimeStart(void)
-    {
-        return isFirstTimeStart;
-    }
 }
\ No newline at end of file
index c673d3e..fa31424 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:17:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-28 09:32:58
+ * @LastEditTime: 2024-07-20 18:11:50
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -13,7 +13,7 @@
 #include "common/key_code.h"
 #include <custom_utils.h>
 #include "languagecode/LanguageInit.h"
-
+#include "ConfigModel.h"
 namespace OHOS
 {
     extern Language languages[];
@@ -49,12 +49,10 @@ namespace OHOS
         {
             return;
         }
-        else
+
+        for (uint8_t i = 0; i < MAX_LANGUAGE; i++)
         {
-            for (uint8_t i = 0; i < MAX_LANGUAGE; i++)
-            {
-                view_->AddLanguageItemToList(languages[i]);
-            }
+            view_->AddLanguageItemToList(languages[i]);
         }
     }
 
@@ -94,6 +92,14 @@ namespace OHOS
     bool LanguageSwitchPresenter::OnClick(UIView &view, const ClickEvent &event)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnClick");
+
+        /* -------------------------------------------------------------------------- */
+        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
+        {
+            NativeAbility::GetInstance().EnterSlice(VIEW_WATCH_QR_CODE);
+        }
+        /* -------------------------------------------------------------------------- */
+
         UNUSED(event);
         const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
         UILabelButtonExt *p_UILabelButtonExt = dynamic_cast<UILabelButtonExt *>(&view);
@@ -129,15 +135,6 @@ namespace OHOS
             // 更新上一个语言ID
             p_LanguageSwitchModel->SetLastLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode());
         }
-        if (p_LanguageSwitchModel->GetisFirstTimeStart() == true)
-        {
-            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
-            NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN); // 暂定选完语言后设置默认的Sliceid为主界面
-        }
-        else
-        {
-            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
-        }
         return true;
     }
 
index bdb883d..9f86091 100644 (file)
@@ -5,12 +5,12 @@ namespace OHOS
 {
 
     static constexpr int16_t TITLE_LABEL_X = 83;
-    static constexpr int16_t TITLE_LABEL_Y = 52;
+    static constexpr int16_t TITLE_LABEL_Y = 50;
     static constexpr int16_t TITLE_LABEL_W = 300;
     static constexpr int16_t TITLE_LABEL_H = 40;
     static constexpr int16_t TITLE_LABEL_TEXT_FONT = 30;
     static constexpr int16_t TITLE_LABEL_LINE_HEIGHT = 35;
-    static constexpr int16_t TITLE_LABEL_TEXT_ROLLSPEED = 40;
+    static constexpr int16_t TITLE_LABEL_TEXT_ROLLSPEED = 70;
 
     static constexpr int16_t LANGUAGE_LIST_X = 43;
     static constexpr int16_t LANGUAGE_LIST_Y = 120;
@@ -108,7 +108,7 @@ namespace OHOS
         LanguageSwitchViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, TITLE_LABEL_LINE_HEIGHT);
         // LanguageSwitchViewTitleLabel->SetText("语言");
         LanguageSwitchViewTitleLabel->SetTextId(STR_LANGUAGE_SELECTION);
-        LanguageSwitchViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+        LanguageSwitchViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
         LanguageSwitchViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
         LanguageSwitchViewTitleLabel->SetRollSpeed(TITLE_LABEL_TEXT_ROLLSPEED);
         LanguageSwitchViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TITLE_LABEL_TEXT_FONT);
index 3e1f048..2702c81 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-18 14:55:21
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-18 14:56:47
+ * @LastEditTime: 2024-07-20 18:53:51
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModel.h
  */
 
@@ -15,6 +15,7 @@ namespace OHOS
     {
     public:
         static RebootAndShutdownModel &GetInstance(void);
+        void HandFirstTimeStartJumpToMainView(void);
 
     private:
         RebootAndShutdownModel();
index 2e9fbbe..618de55 100644 (file)
@@ -2,13 +2,16 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-18 14:55:27
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-18 14:56:16
+ * @LastEditTime: 2024-07-20 18:55:10
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
  */
 
 #include "rebootandshutdown/include/RebootAndShutdownModel.h"
 #include "wearable_log.h"
-
+#include "ConfigModel.h"
+#include "NativeAbility.h"
+#include <AppViewIDs.h>
+#include "settings/include/SettingModel.h"
 namespace OHOS
 {
     RebootAndShutdownModel::RebootAndShutdownModel() {}
@@ -21,4 +24,12 @@ namespace OHOS
         return instance;
     }
 
+    void RebootAndShutdownModel::HandFirstTimeStartJumpToMainView(void)
+    {
+        if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == true)
+        {
+            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+            ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+        }
+    }
 }
index f2fbfb1..bc5ac2a 100644 (file)
@@ -8,7 +8,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-16 09:38:05
+ * @LastEditTime: 2024-07-20 19:11:16
  * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
  */
 /*
@@ -79,7 +79,8 @@ typedef enum {
 
     UI_AI_JUMP_TO_RESULT_VIEW,  //跳转到返回结果视图
     UI_UPDATE_USER_QUESTION_STR,//更新用户问题的字符串       
-    UI_UPDATE_AI_ANSWER_STR,    //更新AI答案的字符串       
+    UI_UPDATE_AI_ANSWER_STR,    //更新AI答案的字符串
+    UI_HAND_WATCH_FIRST_PAIRED, //手表已配对:给第一次手表启动用配对成功调用       
     MAX_NUM_HANDLER, 
 } UiServiceMsgId;
 
index 1056e00..4ba3c78 100644 (file)
@@ -18,6 +18,7 @@
 #include <iostream>
 #include "displaybrightness/include/DisplayBrightnessModel.h"
 #include "soundandvibration/include/SoundAndVibrationModel.h"
+#include "rebootandshutdown/include/RebootAndShutdownModel.h"
 #include "sleep/include/SleepModel.h"
 #include "aivoice/include/AiVoiceModel.h"
 #include "weather/include/WeatherModel.h"
@@ -106,6 +107,7 @@ static void HandleUpdateSilentMode(Request *request);
 static void HandleAiJumpToResultView(Request *request);
 static void HandleUpdateUserQuestionStr(Request *request);
 static void HandleUpdateAIAnswerStr(Request *request);
+static void HandleWatchFirstPaired(Request *request);
 static void HandleUpdateSleep(Request *request);
 
 
@@ -135,6 +137,7 @@ MsgHandlerEntry msgHandlers[] = {
     {UI_AI_JUMP_TO_RESULT_VIEW, HandleAiJumpToResultView},
     {UI_UPDATE_USER_QUESTION_STR,HandleUpdateUserQuestionStr},
     {UI_UPDATE_AI_ANSWER_STR, HandleUpdateAIAnswerStr},
+    {UI_HAND_WATCH_FIRST_PAIRED,HandleWatchFirstPaired},
 
     {UI_UPDATE_SLEEP_DATA, HandleUpdateSleep},
     };
@@ -545,6 +548,14 @@ void HandleUpdateAIAnswerStr(Request *request)
         std::bind(&OHOS::AiVoiceModel::UpdateAiAnswerStr, &OHOS::AiVoiceModel::GetInstance()));
 }
 
+//处理手表第一次启动用来跳转主界面的
+void HandleWatchFirstPaired(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateAIAnswerStr");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::RebootAndShutdownModel::HandFirstTimeStartJumpToMainView, &OHOS::RebootAndShutdownModel::GetInstance()));
+}
+
 void HandleUpdateSleep(Request *request)
 {
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected");
index d9bff33..071f256 100644 (file)
@@ -84,8 +84,10 @@ void ble_disconnect_ok(void)
     SendMsgToUIService(PHONE_DISCONNECTED_TO_UI, 0, nullptr, 0);
 }
 
-
-
+void hand_watch_first_time_Paired(void)
+{
+    SendMsgToUIService(UI_HAND_WATCH_FIRST_PAIRED, 0, nullptr, 0);
+}
 
 void ble_set_ai_Question_str(char *buf)
 {
index 6a75ac2..0269a5b 100644 (file)
@@ -327,6 +327,8 @@ void ble_connect_ok(void);
 
 void ble_disconnect_ok(void);
 
+void hand_watch_first_time_Paired(void);
+
 #ifdef __cplusplus
 #if __cplusplus
 }
index 15259fa..c9a6aaf 100644 (file)
@@ -342,7 +342,8 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s
            \r
             int ret=gap_reconnect_media_device(&phone_addr);\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret);\r
-        }       \r
+        }\r
+        hand_watch_first_time_Paired();       \r
     }\r
    \r
 \r
index 11cf5c5..8282eb5 100644 (file)
@@ -126,6 +126,7 @@ namespace OHOS
 
             CONFIGMOFEL_ITEM_DMP_CHINA_MOBILE_ADDRESS,//移动入库地址默认测试是适配地址 b.fxltsbl.com 出正式需要修改商用地址 a.fxltsbl.com
             CONFIGMODEL_ITEM_SELECT_AIMODEL,//ai模型
+            CONFIGMODEL_ITEM_FIRSTTIMESTART,//手表是否是第一次启动
             CONFIGMODEL_ITEM_MAX,
         } ;
 
@@ -272,6 +273,9 @@ namespace OHOS
         /* ---------------------------------- ai模型相关set与get ---------------------------------- */
         void SetSelectAiModel(int value);
         int GetSelectAiModel(void);
+        /* -------------------------------------------------------------------------- */
+        void SetisFirstTimeStart(bool value);
+        bool GetisFirstTimeStart(void);
         /* --------------------------------- 用户配置信息 --------------------------------- */
         void SetUserAge(int age);
         int GetUserAge();
@@ -362,7 +366,8 @@ namespace OHOS
             #endif
             {ConfigDataType::DATATYPE_INT,     "time_hour_show_model",       "24"          },//CONFIGMODEL_ITEM_24HOUR,//默认24小时模式显示 ,12 12小时显示 ,24 24小时显示
                        {ConfigDataType::DATATYPE_STRING,     "dmp_china_mobile_address", "b.fxltsbl.com"},//CONFIGMOFEL_ITEM_DMP_CHINA_MOBILE_ADDRESS 移动入库地址 测试使用适配地址 IP = b.fxltsbl.com 出正式使用商用地址 IP = a.fxltsbl.com
-            {ConfigDataType::DATATYPE_INT,     "select_aimodel",       "0"          },//CONFIGMODEL_SELECT_AIMODEL 0:豆包 1:文心一言 2:kimi 3:ChatGPT
+            {ConfigDataType::DATATYPE_INT,     "select_aimodel",       "0"          },//CONFIGMODEL_ITEM_SELECT_AIMODEL 0:豆包 1:文心一言 2:kimi 3:ChatGPT
+            {ConfigDataType::DATATYPE_BOOL,     "is_first_time_start",       "true"    }, //CONFIGMODEL_ITEM_FIRSTTIMESTART true :手表第一次启动,否则不是
         };
         ConfigModel();                                        // 私有构造函数,确保无法在外部实例化
         ConfigModel(const ConfigModel &) = delete;            // 禁止拷贝构造
index fd6aa90..93bcf2a 100644 (file)
@@ -1182,6 +1182,18 @@ namespace OHOS
     {
         return get_configData_int(CONFIGMODEL_ITEM_SELECT_AIMODEL);
     }
+
+    /*设置手表是否是第一次启动*/
+    void ConfigModel::SetisFirstTimeStart(bool value)
+    {
+        set_condigData_Bool(CONFIGMODEL_ITEM_FIRSTTIMESTART,value);
+    }
+
+    /*获取手表是否是第一次启动*/
+    bool ConfigModel::GetisFirstTimeStart(void)
+    {
+       return get_configData_bool(CONFIGMODEL_ITEM_FIRSTTIMESTART);
+    }
 /* -------------------------------------------------------------------------- */
     /*设置用户年龄[后续使用结构体统一配置]*/
     void ConfigModel::SetUserAge(int age)