ai大模型UI完成需适配接口
authorluozheng <1732036298@qq.com>
Thu, 11 Jul 2024 06:48:23 +0000 (14:48 +0800)
committerluozheng <1732036298@qq.com>
Thu, 11 Jul 2024 06:48:23 +0000 (14:48 +0800)
19 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/aimodels/include/AiModelsModel.h
code/sdk/application/wearable/fd230app/nativeui/aimodels/include/AiModelsPresenter.h
code/sdk/application/wearable/fd230app/nativeui/aimodels/include/AiModelsView.h
code/sdk/application/wearable/fd230app/nativeui/aimodels/src/AiModelsModel.cpp
code/sdk/application/wearable/fd230app/nativeui/aimodels/src/AiModelsPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/aimodels/src/AiModelsView.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_ja.xml [deleted file]
code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang
code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h
code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_bg.bin
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang

index 809aa49..e7b0622 100644 (file)
@@ -438,7 +438,7 @@ namespace OHOS
         ScreenModels::GetInstance()->PreLoadAppimages();
         // NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
         //  注册按键事件
-        RebootModel::GetInstance()->RegisterKeyEvents();
+        RebootModel::GetInstance()->RegisterAllKeyEvents();
 
         // 开机检测充电状态
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get_charge_stat is %d", get_charge_stat());
index b39a9f0..00d64da 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-08 09:39:31
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 11:48:34
+ * @LastEditTime: 2024-07-10 21:20:02
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aimodels/include/AiModelsModel.h
  */
 
@@ -18,8 +18,11 @@ namespace OHOS
     {
     public:
         static AiModelsModel &GetInstance(void);
-        int16_t GetSelectAiModel(void);
-        void SetSelectAiModel(int16_t textId);
+        int GetSelectAiModel(void);
+        void SetSelectAiModel(int index);
+        bool ChangeAiModel(void);
+        int GetAiModelTextId(void);
+        void SetAiModelTextId(int textId);
 
     private:
         AiModelsModel();
@@ -27,7 +30,8 @@ namespace OHOS
         AiModelsModel(const AiModelsModel &) = delete;
         AiModelsModel &operator=(const AiModelsModel &) = delete;
 
-        int16_t selectAiModel; // 选择的ai模型
+        int selectAiModel; // 选择的ai模型
+        int textId;
     };
 }
 
index 08e4e4a..dda8635 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-08 09:39:10
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 11:48:26
+ * @LastEditTime: 2024-07-10 10:21:57
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aimodels/include/AiModelsPresenter.h
  */
 
@@ -29,6 +29,9 @@ namespace OHOS
 
         /*获取选择的ai模型*/
         int16_t GetSelectAiModel(void);
+        /*单击func key切换ai模型*/
+        void ChangeAiModel(void);
+        void SetAiModelTextId(int16_t id);
 
         void OnStart() override;
         void OnResume() override;
index ac3ec3c..3643e02 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-08 09:38:50
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 11:36:40
+ * @LastEditTime: 2024-07-10 10:11:28
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aimodels/include/AiModelsView.h
  */
 
index 22ff390..52c9c49 100644 (file)
@@ -2,11 +2,12 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-08 09:39:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 11:48:54
+ * @LastEditTime: 2024-07-10 21:20:06
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aimodels/src/AiModelsModel.cpp
  */
 
 #include "aimodels/include/AiModelsModel.h"
+#include "aimodels/include/AiModelsPresenter.h"
 #include "wearable_log.h"
 
 namespace OHOS
@@ -22,15 +23,41 @@ namespace OHOS
     }
 
     /*获取选择的ai模型*/
-    int16_t AiModelsModel::GetSelectAiModel(void)
+    int AiModelsModel::GetSelectAiModel(void)
     {
         return selectAiModel;
     }
 
     // 设置选择的ai模型
-    void AiModelsModel::SetSelectAiModel(int16_t textId)
+    void AiModelsModel::SetSelectAiModel(int index)
     {
-        selectAiModel = textId;
+        selectAiModel = index;
     }
 
+    /*单击func key切换ai模型*/
+    bool AiModelsModel::ChangeAiModel(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiModelsModel::ChangeAiModel");
+        AiModelsPresenter *aiModelsPresenter = AiModelsPresenter::GetInstance();
+        if (aiModelsPresenter == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiModelsModel::ChangeAiModel - AiModelsPresenter instance is nullptr");
+            return false;
+        }
+        aiModelsPresenter->ChangeAiModel();
+        return true;
+    }
+
+    /*获取已选择的ai模型的textid*/
+    int AiModelsModel::GetAiModelTextId(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiModelsModel::GetAiModelTextId - textId = %d", textId);
+        return textId;
+    }
+
+    void AiModelsModel::SetAiModelTextId(int id)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiModelsModel::SetAiModelTextId - id = %d", id);
+        textId = id;
+    }
 }
index cc0943f..545549c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:11:17
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 14:22:34
+ * @LastEditTime: 2024-07-10 10:22:18
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiModelsPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -40,6 +40,23 @@ namespace OHOS
         return model->GetSelectAiModel();
     }
 
+    void AiModelsPresenter::ChangeAiModel(void)
+    {
+        int index = GetSelectAiModel() + 1;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiModelsPresenter::index = %d", index);
+        if (index >= AIMODES_MAX_NUM)
+        {
+            index = AIMODES_DOUBAO;
+        }
+        model->SetSelectAiModel(index);
+        view_->UpdateAiModelsSelectStateAndTitleId();
+    }
+
+    void AiModelsPresenter::SetAiModelTextId(int16_t id)
+    {
+        model->SetAiModelTextId(id);
+    }
+
     // 启动时执行的逻辑
     void AiModelsPresenter::OnStart()
     {
index 5135480..89db668 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-05-07 11:25:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 11:56:24
+ * @LastEditTime: 2024-07-10 10:24:57
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/AiModels/src/AiModelsView.cpp
  */
 #include "aimodels/include/AiModelsPresenter.h"
@@ -38,9 +38,11 @@ namespace OHOS
     void AiModelsView::UpdateAiModelsSelectStateAndTitleId()
     {
         int index = presenter_->GetSelectAiModel();
+        int textId = AimodelsTextId[index];
+        presenter_->SetAiModelTextId(textId);
         if (AiModelsTitle != nullptr)
         {
-            AiModelsTitle->SetTextId(AimodelsTextId[index]);
+            AiModelsTitle->SetTextId(textId);
             AiModelsTitle->ForceResetText();
         }
         // 更新模型选中状态的函数中的循环优化
index 48722f4..724b735 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:14:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-04 18:31:22
+ * @LastEditTime: 2024-07-11 14:35:27
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
  */
 #ifndef AI_VOICE_MODEL_H
@@ -62,7 +62,7 @@ namespace OHOS
         void StopListenAndRecordingUserQuestion(void);
 
         // 定时器管理
-        void AIVoice_StartTimer(uint32_t interval = 1000);
+        void AIVoice_StartTimer(uint32_t interval = 2000);
         void AIVoice_StopTimer(void);
 
     private:
index 92ac487..711ffe4 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:14:50
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-09 18:29:38
+ * @LastEditTime: 2024-07-11 14:36:14
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
  */
 #include "aivoice/include/AiVoiceModel.h"
@@ -489,7 +489,7 @@ namespace OHOS
     static void AIVoice_TimerCallbackProc(int data)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AIVoice_TimerCallbackProc,Time = %d", Time);
-        Time -= 1;
+        Time -= 2;
         if (Time == 30)
         {
             AiVoiceModel::GetInstance().CheckFileAndSendAIIsReady();
diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_ja.xml b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_ja.xml
deleted file mode 100644 (file)
index b539e5f..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-<language id="language" direct="ltr" languageinfo="ja">
-       <lanstr id="STR_EXERCISE_GENERAL" value="一般的なトレーニング"/>
-       <lanstr id="STR_EXERCISE_FREETRAINING" value="フリートレーニング"/>
-       <lanstr id="STR_EXERCISE_RESISTANCETRAINING" value="筋力トレーニング"/>
-       <lanstr id="STR_EXERCISE_SPINBIKE" value="フライカート/室内フィットネスカート"/>
-       <lanstr id="STR_EXERCISE_TREADMILL" value="ステッパー"/>
-       <lanstr id="STR_EXERCISE_STROLLMACHINE" value="ウォークマン"/>
-       <lanstr id="STR_EXERCISE_HIIT" value="HIIT/高強度インターバルトレーニング"/>
-       <lanstr id="STR_EXERCISE_CROSSFIT" value="フィットネス"/>
-       <lanstr id="STR_EXERCISE_GROUPCALISTHENICS" value="マステ"/>
-       <lanstr id="STR_EXERCISE_YOGA" value="ヨガ"/>
-       <lanstr id="STR_EXERCISE_YOGACAT" value="ヨガ猫式"/>
-       <lanstr id="STR_EXERCISE_YOGACOW" value="ヨガ牛式"/>
-       <lanstr id="STR_EXERCISE_YOGACOBRA" value="ヨガコブラ式"/>
-       <lanstr id="STR_EXERCISE_YOGAHERO1" value="ヨガヒーロー式1"/>
-       <lanstr id="STR_EXERCISE_YOGAHERO2" value="ヨガヒーロー式2"/>
-       <lanstr id="STR_EXERCISE_YOGAHERO3" value="ヨガヒーロー式3"/>
-       <lanstr id="STR_EXERCISE_YOGAROLLING" value="ヨガローラー"/>
-       <lanstr id="STR_EXERCISE_OUTDOORWALKING" value="屋外ウォーキング"/>
-       <lanstr id="STR_EXERCISE_OUTDOORRUNNING" value="屋外ランニング"/>
-       <lanstr id="STR_EXERCISE_INDOORWALKING" value="インドアウォーキング"/>
-       <lanstr id="STR_EXERCISE_INDOORRUNNING" value="インドアランニング"/>
-       <lanstr id="STR_EXERCISE_OUTDOORBIKING" value="屋外サイクリング"/>
-       <lanstr id="STR_EXERCISE_JUMPINGROPE" value="縄跳び"/>
-       <lanstr id="STR_EXERCISE_PILATES" value="ピラティス"/>
-       <lanstr id="STR_EXERCISE_CROSS_FIT" value="ミックスフィットネス"/>
-       <lanstr id="STR_EXERCISE_FUNCTIONALTRAINING" value="機能的トレーニング"/>
-       <lanstr id="STR_EXERCISE_PHYSICALTRAINING" value="体力トレーニング"/>
-       <lanstr id="STR_EXERCISE_TAEKWONDO" value="テコンドー/キックボクシング"/>
-       <lanstr id="STR_EXERCISE_BOXING" value="ボクシング"/>
-       <lanstr id="STR_EXERCISE_KICKBOXING" value="キックボクシング"/>
-       <lanstr id="STR_EXERCISE_KARATE" value="空手"/>
-       <lanstr id="STR_EXERCISE_FENCING" value="フェンシング"/>
-       <lanstr id="STR_EXERCISE_CORETRAINING" value="コアトレーニング"/>
-       <lanstr id="STR_EXERCISE_BODYCOMBAT" value="ボクシング有酸素"/>
-       <lanstr id="STR_EXERCISE_KENDO" value="剣道"/>
-       <lanstr id="STR_EXERCISE_HORIZONTALBAR" value="鉄棒"/>
-       <lanstr id="STR_EXERCISE_PARALLELBARS" value="平行棒"/>
-       <lanstr id="STR_EXERCISE_CIRCUIT" value="サイクルトレーニング"/>
-       <lanstr id="STR_EXERCISE_AEROBICS" value="エアロビクス"/>
-       <lanstr id="STR_EXERCISE_CALISTHENICE" value="エアロビクス"/>
-       <lanstr id="STR_EXERCISE_P90X" value="P90X"/>
-       <lanstr id="STR_EXERCISE_KETTLEBELTRAINING" value="ポットベルトレーニング"/>
-       <lanstr id="STR_EXERCISE_MIXEDMARTIALARTS" value="総合格闘技"/>
-       <lanstr id="STR_EXERCISE_STAIRCLIMBINGMACHINE" value="階段昇降機"/>
-       <lanstr id="STR_EXERCISE_WEIGHTLIFTING" value="ウエイトリフティング"/>
-       <lanstr id="STR_EXERCISE_BARRE" value="Barre"/>
-       <lanstr id="STR_EXERCISE_HANDCYCLING" value="ハンドホイール"/>
-       <lanstr id="STR_EXERCISE_TRACKFIELD" value="陸上"/>
-       <lanstr id="STR_EXERCISE_WRESTLING" value="角力"/>
-       <lanstr id="STR_EXERCISE_MINDBODY" value="心身運動"/>
-       <lanstr id="STR_EXERCISE_FLEXIBILITY" value="柔軟体操"/>
-       <lanstr id="STR_EXERCISE_MIXEDCARDIO" value="混合有酸素"/>
-       <lanstr id="STR_EXERCISE_TRADITIONALSTRENGTHTRAINING" value="従来の筋力トレーニング"/>
-       <lanstr id="STR_EXERCISE_CROSSTRAINING" value="クロストレーニング"/>
-       <lanstr id="STR_EXERCISE_GYMNASTICS" value="体操"/>
-       <lanstr id="STR_EXERCISE_STEPTRAINING" value="ステップトレーニング"/>
-       <lanstr id="STR_EXERCISE_ELLIPTICALTRAINER" value="楕円マシン"/>
-       <lanstr id="STR_EXERCISE_ROWINGMACHINE" value="ローイングマシン"/>
-       <lanstr id="STR_DANCING_GENERAL" value="一般ダンス"/>
-       <lanstr id="STR_DANCING_BELLY" value="ベリーダンス"/>
-       <lanstr id="STR_DANCING_JAZZ" value="ジャズダンス"/>
-       <lanstr id="STR_DANCING_LATIN" value="ラテンダンス"/>
-       <lanstr id="STR_DANCING_BALLET" value="バレエ"/>
-       <lanstr id="STR_DANCING_STREET" value="ストリートダンス"/>
-       <lanstr id="STR_DANCING_PUBLICSQUARE" value="スクエアダンス"/>
-       <lanstr id="STR_DANCING_ZUMBA" value="ズンバ"/>
-       <lanstr id="STR_DANCING_SOCIALDANCE" value="ソシアルダンス"/>
-       <lanstr id="STR_DANCING_TAPDANCE" value="タップダンス"/>
-       <lanstr id="STR_RECREATIONAL_SPORTS" value="一般レジャースポーツ"/>
-       <lanstr id="STR_RECREATIONAL_SKATING" value="ローラースケート"/>
-       <lanstr id="STR_RECREATIONAL_MARTIALARTS" value="武道"/>
-       <lanstr id="STR_RECREATIONAL_TAICHI" value="太極拳"/>
-       <lanstr id="STR_RECREATIONAL_HULAHOOP" value="フラフープ"/>
-       <lanstr id="STR_RECREATIONAL_DISCSPORT" value="フリスビー"/>
-       <lanstr id="STR_RECREATIONAL_DARTS" value="ダーツ"/>
-       <lanstr id="STR_RECREATIONAL_ARCHERY" value="アーチェリー"/>
-       <lanstr id="STR_RECREATIONAL_HORSERIDING" value="馬に乗る"/>
-       <lanstr id="STR_RECREATIONAL_BATTLEGAME" value="対戦ゲーム"/>
-       <lanstr id="STR_RECREATIONAL_KITE" value="凧揚げ"/>
-       <lanstr id="STR_RECREATIONAL_TUGOFWAR" value="綱引き"/>
-       <lanstr id="STR_RECREATIONAL_SWING" value="ブランコ"/>
-       <lanstr id="STR_RECREATIONAL_STAIRCLIMBING" value="階段を登る"/>
-       <lanstr id="STR_RECREATIONAL_OBSTACLERACE" value="障害レース"/>
-       <lanstr id="STR_RECREATIONAL_FISHING" value="フィッシング"/>
-       <lanstr id="STR_RECREATIONAL_HUNTING" value="狩り"/>
-       <lanstr id="STR_RECREATIONAL_SCOOTERRIDING" value="カート"/>
-       <lanstr id="STR_RECREATIONAL_PARAGLIDING" value="パラグライダー"/>
-       <lanstr id="STR_RECREATIONAL_TEAMSPORTS" value="チーム競技"/>
-       <lanstr id="STR_RECREATIONAL_FINESSGAMING" value="フィットネスゲーム"/>
-       <lanstr id="STR_RECREATIONAL_HIKING" value="健行"/>
-       <lanstr id="STR_RECREATIONAL_EQUESTRIANSPORTS" value="馬術スポーツ"/>
-       <lanstr id="STR_RECREATIONAL_PLAY" value="遊び"/>
-       <lanstr id="STR_BALL_GAMES" value="一般的な球技"/>
-       <lanstr id="STR_BALL_BADMINTON" value="バドミントン"/>
-       <lanstr id="STR_BALL_TABLETENNIS" value="卓球"/>
-       <lanstr id="STR_BALL_TENNIS" value="テニス"/>
-       <lanstr id="STR_BALL_BILLIARDS" value="ボール"/>
-       <lanstr id="STR_BALL_BOWLING" value="ボウリング"/>
-       <lanstr id="STR_BALL_VOLLEYBALL" value="バレーボール"/>
-       <lanstr id="STR_BALL_SHUTTLECOCK" value="けん玉"/>
-       <lanstr id="STR_BALL_HANDBALL" value="ハンドボール"/>
-       <lanstr id="STR_BALL_BASEBALL" value="野球"/>
-       <lanstr id="STR_BALL_SOFTBALL" value="ソフトボール"/>
-       <lanstr id="STR_BALL_CRICKET" value="クリケット"/>
-       <lanstr id="STR_BALL_FOOTBALL" value="アメリカンフットボール"/>
-       <lanstr id="STR_BALL_BEACHSOCCER" value="ビーチサッカー"/>
-       <lanstr id="STR_BALL_BEACHVOLLEYBALL" value="ビーチバレーボール"/>
-       <lanstr id="STR_BALL_CROQUET" value="クロケット"/>
-       <lanstr id="STR_BALL_HOCKEY" value="ホッケー"/>
-       <lanstr id="STR_BALL_SQUASH" value="英国式スカッシュ"/>
-       <lanstr id="STR_BALL_SEPAKTAKRAW" value="フジボール"/>
-       <lanstr id="STR_BALL_DODGEBALL" value="ドッジボール"/>
-       <lanstr id="STR_BALL_BASKETBALL" value="バスケットボール"/>
-       <lanstr id="STR_BALL_SOCCER" value="サッカーボール"/>
-       <lanstr id="STR_BALL_GOLF" value="ゴルフボール"/>
-       <lanstr id="STR_BALL_POLO" value="ポロ"/>
-       <lanstr id="STR_BALL_RACQUETBALL" value="スカッシュ"/>
-       <lanstr id="STR_BALL_RUGBY" value="ラグビー"/>
-       <lanstr id="STR_BALL_GATEBALL" value="ゲートボール"/>
-       <lanstr id="STR_BALL_PICKLEBALL" value="ピックボール"/>
-       <lanstr id="STR_BALL_LACROSSE" value="バッグスティック"/>
-       <lanstr id="STR_WATER_ACTIVITIES" value="一般水上アクティビティ"/>
-       <lanstr id="STR_WATER_SAILING" value="ヨット"/>
-       <lanstr id="STR_WATER_SURFING" value="サーフィン"/>
-       <lanstr id="STR_WATER_WHITEWATERRAFTING" value="ロービング"/>
-       <lanstr id="STR_WATER_CANOEING" value="ドラゴンボート漕ぎ"/>
-       <lanstr id="STR_WATER_KAYAKING" value="ボート"/>
-       <lanstr id="STR_WATER_ROWING" value="ローイング"/>
-       <lanstr id="STR_WATER_MOTORBOAT" value="水上バイク"/>
-       <lanstr id="STR_WATER_SUP" value="パドルサーフィン"/>
-       <lanstr id="STR_WATER_SCUBADIVING" value="ダイビング"/>
-       <lanstr id="STR_WATER_DIVING" value="飛び込み"/>
-       <lanstr id="STR_WATER_KITESURFING" value="パラグライダーサーフィン"/>
-       <lanstr id="STR_WATER_WAKEBOARDING" value="ウェイクボード"/>
-       <lanstr id="STR_WATER_POLO" value="水球"/>
-       <lanstr id="STR_WATER_WINDSURFING" value="ウィンドサーフィン"/>
-       <lanstr id="STR_WATER_DRIFTING" value="ラフティングアクティビティ"/>
-       <lanstr id="STR_WATER_FITNESS" value="ウォーターフィットネス"/>
-       <lanstr id="STR_WATER_SPORTS" value="ウォータースポーツ"/>
-       <lanstr id="STR_WATER_OUTDOORSWIM" value="アウトドアスイミング"/>
-       <lanstr id="STR_WATER_INDOORSWIM" value="インドアスイム"/>
-       <lanstr id="STR_WATER_SWIMFREESTYLE" value="水泳_フリースタイル"/>
-       <lanstr id="STR_WATER_SWIMBREASTSTROKE" value="水泳_カエル式"/>
-       <lanstr id="STR_WATER_SWIMBACKSTROKE" value="水泳_仰向け"/>
-       <lanstr id="STR_WATER_SWIMBUTTERFLY" value="スイム_バタフライ"/>
-       <lanstr id="STR_ICE_SPORTS" value="一般氷上スポーツ"/>
-       <lanstr id="STR_ICE_SKATING" value="スケート"/>
-       <lanstr id="STR_ICE_HOCKEY" value="アイスホッケー"/>
-       <lanstr id="STR_ICE_CURLING" value="アイスストーン/カーリング"/>
-       <lanstr id="STR_ICE_SNOWMOBILING" value="スノーモービル"/>
-       <lanstr id="STR_ICE_SLED" value="そり"/>
-       <lanstr id="STR_ICE_BIATHLON" value="冬の2つ"/>
-       <lanstr id="STR_ICE_CROSSCOUNTRYSKING" value="クロスカントリースキー"/>
-       <lanstr id="STR_ICE_SKIING" value="スキー"/>
-       <lanstr id="STR_ICE_SNOWBOARDING" value="スノーボード/スノーボード"/>
-       <lanstr id="STR_ICE_SNOWSHOEING" value="スノーシュー健行"/>
-       <lanstr id="STR_ICE_SNOWSPORTS" value="スノースポーツ"/>
-       <lanstr id="STR_EXTREME_SPORTS" value="一般エクストリームスポーツ"/>
-       <lanstr id="STR_EXTREME_SKATEBOARDING" value="スケートボード"/>
-       <lanstr id="STR_EXTREME_ROCKCLIMBING" value="ロッククライミング"/>
-       <lanstr id="STR_EXTREME_BUNGEEJUMPING" value="ハイジャンプ/バンジージャンプイベント"/>
-       <lanstr id="STR_EXTREME_PARKOUR" value="パルクール"/>
-       <lanstr id="STR_EXTREME_BMX" value="BMX"/>
-       <lanstr id="STR_EXTREME_ORIENTERING" value="オリエンテーリング"/>
-       <lanstr id="STR_EXTREME_PARACHUTE" value="スカイダイビング"/>
-       <lanstr id="STR_EXTREME_RACING" value="レース"/>
-       <lanstr id="STR_EXTREME_TRIATHLONS" value="トライアスロン"/>
-       <lanstr id="STR_OTHER_ELEVATOR" value="エレベーターに乗る"/>
-       <lanstr id="STR_OTHER_ESCALATOR" value="エスカレーター"/>
-       <lanstr id="STR_OTHER_GARDENING" value="ガーデニングをする"/>
-       <lanstr id="STR_OTHER_HORSEWORK" value="家事をする"/>
-       <lanstr id="STR_OTHER_INVEHICLE" value="車の中で"/>
-       <lanstr id="STR_OTHER_MEDITATION" value="瞑想する"/>
-       <lanstr id="STR_OTHER_STILL" value="静止"/>
-       <lanstr id="STR_OTHER_TILTING" value="傾斜"/>
-       <lanstr id="STR_OTHER_WHEELCHAIR" value="車椅子で移動"/>
-       <lanstr id="STR_EXERCISE_LIST" value="フィットネスクラス"/>
-       <lanstr id="STR_BALL_LIST" value="ボール"/>
-       <lanstr id="STR_WATER_LIST" value="ウォータースポーツ"/>
-       <lanstr id="STR_DANCING_LIST" value="ダンスクラス"/>
-       <lanstr id="STR_EXTREME_LIST" value="エクストリームスポーツ"/>
-       <lanstr id="STR_ICE_LIST" value="アイススポーツ"/>
-       <lanstr id="STR_RECREATIONAL_LIST" value="レジャースポーツ"/>
-       <lanstr id="STR_OTHER_LIST" value="その他"/>
-       <lanstr id="STR_DANCING_TITLE" value="ダンススポーツ"/>
-       <lanstr id="STR_BALL_LIST_TITLE" value="球技"/>
-       <lanstr id="STR_OTHER_TITLE" value="その他のスポーツ"/>
-       <lanstr id="STR_EXERCISE_TITLE" value="フィットネススポーツ"/>
-       <lanstr id="STR_TRAINING" value="トレーニング"/>
-       <lanstr id="STR_RAPID_TRAINING" value="クイックトレーニング"/>
-       <lanstr id="STR_SET_GOALS" value="目標の設定"/>
-       <lanstr id="STR_DURATION" value="期間"/>
-       <lanstr id="STR_DURATION_SETTING" value="期間設定"/>
-       <lanstr id="STR_MINUTES" value="分"/>
-       <lanstr id="STR_CALORIE" value="カロリー"/>
-       <lanstr id="STR_CALORIE_SETTING" value="カロリー設定"/>
-       <lanstr id="STR_KILOCALORIE" value="kcal"/>
-       <lanstr id="STR_DISTANCE" value="距離"/>
-       <lanstr id="STR_RANGE_SETTING" value="距離設定{{STR_RANGE_SETTING"/>
-       <lanstr id="STR_METER" value="メートル"/>
-       <lanstr id="STR_KILOMETRE" value="キロメートル"/>
-       <lanstr id="STR_STEP_NUMBER" value="ステップ数"/>
-       <lanstr id="STR_STEP_SETTING" value="ステップ設定"/>
-       <lanstr id="STR_STEP" value="ステップ"/>
-       <lanstr id="STR_HEART_RATE" value="心拍数"/>
-       <lanstr id="STR_MEAN_HEART_RATE" value="平均心拍数"/>
-       <lanstr id="STR_TIMES_PER_MIN" value="回/分"/>
-       <lanstr id="STR_MEAN_HEART_RATE_MIN" value="平均心拍数(回/分)"/>
-       <lanstr id="STR_IN_THE" value="で"/>
-       <lanstr id="STR_LOWER_STRENGTH" value="低強度"/>
-       <lanstr id="STR_MEDIUM_STRENGTH" value="中程度の強さ"/>
-       <lanstr id="STR_HIGH_STRENGTH" value="高強度"/>
-       <lanstr id="STR_ULTRA_HIGH_STRENGTH" value="超高強度"/>
-       <lanstr id="STR_TRAINING_INTENSITY" value="トレーニング強度"/>
-       <lanstr id="STR_TRAINING_INTENSITY_DESCRIPTION" value="トレーニング強度は、トレーニング不足かトレーニング過多かを判断するために用いられ、心拍数をどれだけ増加させる運動強度が最適であるかを判断する。"/>
-       <lanstr id="STR_INTENSITY_INTERVAL_DESCRIPTION" value="この強度区間は目標心拍数(個人基本資料から計算)の強弱に対応するリアルタイム状態表示であり、訓練の質を高めるのに役立つ。"/>
-       <lanstr id="STR_TRAINING_STATE_MEANING" value="トレーニング状態代表の意味"/>
-       <lanstr id="STR_WARM_UP_EXERCISE" value="ウォーミングアップ"/>
-       <lanstr id="STR_FAT_BURNING_ZONE" value="脂肪燃焼ゾーン"/>
-       <lanstr id="STR_IMPROVE_CARDIOPULMONARY_FUNCTION" value="心肺機能の向上"/>
-       <lanstr id="STR_PROFESSIONAL_ATHLETE" value="プロスポーツ選手"/>
-       <lanstr id="STR_TRAINING_INTENSITY_NOTE" value="注:このトレーニング強度はプロの運動評価ではなく、データは参考にしてください。"/>
-       <lanstr id="STR_TRAINING_IN_PROGRESS" value="トレーニング中"/>
-       <lanstr id="STR_BREAK_TRAINING" value="トレーニング一時停止"/>
-       <lanstr id="STR_FINISH" value="の終了"/>
-       <lanstr id="STR_PAUSE" value="一時停止"/>
-       <lanstr id="STR_RESUME" value="続行"/>
-       <lanstr id="STR_GOAL_ACHIEVED" value="目標を達成しました"/>
-       <lanstr id="STR_ACCOMPLISH_GOAL" value="完了目標"/>
-       <lanstr id="STR_OK" value="OK"/>
-       <lanstr id="STR_LOOK_OUT" value="注意"/>
-       <lanstr id="STR_INSUFFICENT_EXERCISE_AMOUNT" value="現在の運動量が小さすぎて記録できません。運動を終了するかどうか"/>
-       <lanstr id="STR_END_MOVEMENT" value="モーションの終了"/>
-       <lanstr id="STR_END_THIS_MOVEMENT" value="この運動を終了するかどうか"/>
-       <lanstr id="STR_GOAL_ACCOMPLISHMENT_DEGREE" value="目標達成度"/>
-       <lanstr id="STR_TRAINING_DURATION" value="トレーニング時間"/>
-       <lanstr id="STR_OFF" value="オフ"/>
-       <lanstr id="STR_MORE" value="以上"/>
-</language>
index e787e95..a242fed 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang differ
index 8793c2a..ede429d 100644 (file)
@@ -1,15 +1,15 @@
-/*\r
-* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.\r
-* Description: language\r
-* Author: Graphic develop team\r
-* Create: 2021-07-06\r
-*/\r
-\r
-#ifndef UI_RESOURCE_STRING_H\r
-#define UI_RESOURCE_STRING_H\r
-#include <cstdint>\r
-namespace OHOS {\r
-enum UIResourceTextId : uint16_t {\r
+/*
+* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.
+* Description: language
+* Author: Graphic develop team
+* Create: 2021-07-06
+*/
+
+#ifndef UI_RESOURCE_STRING_H
+#define UI_RESOURCE_STRING_H
+#include <cstdint>
+namespace OHOS {
+enum UIResourceTextId : uint16_t {
     STR_EXERCISE_OUTDOORWALKING = 0,\r
     STR_EXERCISE_OUTDOORRUNNING = 1,\r
     STR_EXERCISE_OUTDOORBIKING = 2,\r
@@ -481,10 +481,14 @@ enum UIResourceTextId : uint16_t {
     STR_CONNECT_TIMEOUT = 468,\r
     STR_PLEASE_RESTART_CHAT = 469,\r
     STR_CONTINUE_CHAT = 470,\r
-    STR_MAX_ID = 471,\r
+    STR_AIMODELS_DOUBAO = 471,\r
+    STR_AIMODES_WENXINYIYAN = 472,\r
+    STR_AIMODES_KIMI = 473,\r
+    STR_AIMODES_CHATGPT = 474,\r
+    STR_MAX_ID = 475,\r
 }; // UIResourceTextId\r
-\r
-enum FontLanguageId : uint8_t {\r
+
+enum FontLanguageId : uint8_t {
     LANGUAGE_ID_EN,\r
     LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_MAX\r
index ad99cc0..053d7e3 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang differ
index 90c7ecd..4606d9f 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 19:09:49
+ * @LastEditTime: 2024-07-10 21:13:23
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
  */
@@ -28,9 +28,11 @@ public:
     void SetSelectViewId(int16_t value);
     bool GetExitsView(void);
     void SetExitsView(bool value);
-    bool RegisterLongPressEvents(void);
-    bool RegisterDoubleClickEvents(void);
-    void RegisterKeyEvents(void);
+    bool RegisterPowerKeyLongPressEvent(void);
+    bool RegisterPowerKeyDoubleClickEvent(void);
+    bool RegisterFuncKeyClickEvent(void);
+    bool RegisterFuncKeyDoubleClickEvent(void);
+    void RegisterAllKeyEvents(void);
 private:
     RebootModel();
     int16_t selectView{0};
index b083cd0..bc113aa 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 11:50:42
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-14 18:42:57
+ * @LastEditTime: 2024-07-11 14:41:49
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp
  */
 
@@ -13,6 +13,7 @@
 #include <NativeAbility.h>
 #include <AppViewIDs.h>
 #include "power_display_service.h"
+#include "aimodels/include/AiModelsModel.h"
 namespace OHOS
 {
     RebootModel::RebootModel() {}
@@ -55,76 +56,128 @@ namespace OHOS
     }
 #endif
 
-    /*
-     * @brief 长按四秒关机回调函数
-     */
-    static void OnKeyLongPress4s_Callback(void)
+    static void HandlePowerKeyLongPress(void)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnKeyLongPress4s_Callback");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandlePowerKeyLongPress");
         const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+
         if (display_api->get_screen_state() != SCREEN_ON)
         {
             display_api->turn_on_screen();
         }
+
         // 切换到关机/重启卡片
         NativeAbility::GetInstance().ChangeSlice(VIEW_SHUTDOWN_OR_REBOOT);
-
-        return;
     }
 
-    /*
-     * @brief 注册长按监听事件
-     * @return 注册成功返回true,反之返回false
-     */
-    bool RebootModel::RegisterLongPressEvents(void)
+    /*注册电源键的长按事件*/
+    bool RebootModel::RegisterPowerKeyLongPressEvent(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterLongPressEvents");
-        int32_t ret = uapi_button_register_event_cb(OnKeyLongPress4s_Callback, BUTTON_PWR_LONGPRESS_3S);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterPowerKeyLongPressEvent");
+        int32_t ret = uapi_button_register_event_cb(HandlePowerKeyLongPress, BUTTON_PWR_LONGPRESS_3S);
         if (ret != ERRCODE_SUCC)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register LongPress Events err,ret = %d", ret);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register PowerKey LongPress Event error, ret = %d", ret);
             return false;
         }
         return true;
     }
 
-    /*
-     * @brief 双击事件回调函数
-     */
-    static void OnKeyDoubleClick_Callback(void)
+    static void HandlePowerKeyDoubleClick(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandlePowerKeyDoubleClick");
+        // Handle PowerKey DoubleClick logic here
+    }
+
+    /*注册电源键的双击事件*/
+    bool RebootModel::RegisterPowerKeyDoubleClickEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterPowerKeyDoubleClickEvent");
+        // Register PowerKey DoubleClick event here
+        return true;
+    }
+
+    static void HandleFuncKeyOnClick(void)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnKeyDoubleClick_Callback");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyOnClick");
+
         const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+
         if (display_api->get_screen_state() == SCREEN_ON)
         {
-            // 切换到主题样式界面
-            NativeAbility::GetInstance().EnterSlice(VIEW_THEME_STYLE);
-            //NativeAbility::GetInstance().ChangeSlice(VIEW_SET_DESKTOP);
+            AiModelsModel &aiModelsModel = AiModelsModel::GetInstance();
+            if (!aiModelsModel.ChangeAiModel())
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to change AI model");
+            }
+        }
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping AI model change");
         }
+    }
+
+    /*注册功能键的单击事件*/
+    bool RebootModel::RegisterFuncKeyClickEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterFuncKeyClickEvent");
+        int32_t ret = uapi_button_register_event_cb(HandleFuncKeyOnClick, BUTTON1_CLICKUP);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey Click Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
 
-        return;
+    static void HandleFuncKeyDoubleClick(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyDoubleClick");
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+        if (display_api->get_screen_state() == SCREEN_ON)
+        {
+            // 切换到显示方式界面
+            NativeAbility::GetInstance().EnterSlice(VIEW_AI_MODELS);
+        }
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping Slice change");
+        }
     }
 
-    /*
-     * @brief 注册双击事件
-     * @return 注册成功返回true,反之返回false
-     */
-    bool RebootModel::RegisterDoubleClickEvents(void)
+    /*注册功能键双击事件*/
+    bool RebootModel::RegisterFuncKeyDoubleClickEvent(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterDoubleClickEvents");
-        int32_t ret = uapi_button_register_event_cb(OnKeyDoubleClick_Callback, BUTTON1_CLICKUP_2);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterFuncKeyDoubleClickEvent");
+        int32_t ret = uapi_button_register_event_cb(HandleFuncKeyDoubleClick, BUTTON1_CLICKUP_2);
         if (ret != ERRCODE_SUCC)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register DoubleClick Events err,ret = %d", ret);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey DoubleClick Event error, ret = %d", ret);
             return false;
         }
         return true;
     }
 
-    // 注册按键事件
-    void RebootModel::RegisterKeyEvents(void)
+    void RebootModel::RegisterAllKeyEvents(void)
     {
-        RegisterLongPressEvents();
-        RegisterDoubleClickEvents();
+        RegisterPowerKeyDoubleClickEvent();
+        RegisterPowerKeyLongPressEvent();
+        RegisterFuncKeyClickEvent();
+        RegisterFuncKeyDoubleClickEvent();
     }
 }
\ No newline at end of file
index 5e5e8b5..a242fed 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang differ
index 8793c2a..ede429d 100644 (file)
@@ -1,15 +1,15 @@
-/*\r
-* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.\r
-* Description: language\r
-* Author: Graphic develop team\r
-* Create: 2021-07-06\r
-*/\r
-\r
-#ifndef UI_RESOURCE_STRING_H\r
-#define UI_RESOURCE_STRING_H\r
-#include <cstdint>\r
-namespace OHOS {\r
-enum UIResourceTextId : uint16_t {\r
+/*
+* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.
+* Description: language
+* Author: Graphic develop team
+* Create: 2021-07-06
+*/
+
+#ifndef UI_RESOURCE_STRING_H
+#define UI_RESOURCE_STRING_H
+#include <cstdint>
+namespace OHOS {
+enum UIResourceTextId : uint16_t {
     STR_EXERCISE_OUTDOORWALKING = 0,\r
     STR_EXERCISE_OUTDOORRUNNING = 1,\r
     STR_EXERCISE_OUTDOORBIKING = 2,\r
@@ -481,10 +481,14 @@ enum UIResourceTextId : uint16_t {
     STR_CONNECT_TIMEOUT = 468,\r
     STR_PLEASE_RESTART_CHAT = 469,\r
     STR_CONTINUE_CHAT = 470,\r
-    STR_MAX_ID = 471,\r
+    STR_AIMODELS_DOUBAO = 471,\r
+    STR_AIMODES_WENXINYIYAN = 472,\r
+    STR_AIMODES_KIMI = 473,\r
+    STR_AIMODES_CHATGPT = 474,\r
+    STR_MAX_ID = 475,\r
 }; // UIResourceTextId\r
-\r
-enum FontLanguageId : uint8_t {\r
+
+enum FontLanguageId : uint8_t {
     LANGUAGE_ID_EN,\r
     LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_MAX\r
index ad99cc0..053d7e3 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang differ