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());
* @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
*/
{
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();
AiModelsModel(const AiModelsModel &) = delete;
AiModelsModel &operator=(const AiModelsModel &) = delete;
- int16_t selectAiModel; // 选择的ai模型
+ int selectAiModel; // 选择的ai模型
+ int textId;
};
}
* @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
*/
/*获取选择的ai模型*/
int16_t GetSelectAiModel(void);
+ /*单击func key切换ai模型*/
+ void ChangeAiModel(void);
+ void SetAiModelTextId(int16_t id);
void OnStart() override;
void OnResume() override;
* @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
*/
* @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
}
/*获取选择的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;
+ }
}
* @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"
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()
{
* @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"
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();
}
// 更新模型选中状态的函数中的循环优化
* @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
void StopListenAndRecordingUserQuestion(void);
// 定时器管理
- void AIVoice_StartTimer(uint32_t interval = 1000);
+ void AIVoice_StartTimer(uint32_t interval = 2000);
void AIVoice_StopTimer(void);
private:
* @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"
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();
+++ /dev/null
-<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>
-/*\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
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
* @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
*/
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};
* @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
*/
#include <NativeAbility.h>
#include <AppViewIDs.h>
#include "power_display_service.h"
+#include "aimodels/include/AiModelsModel.h"
namespace OHOS
{
RebootModel::RebootModel() {}
}
#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
version https://git-lfs.github.com/spec/v1
-oid sha256:672cf086d4e285b0f63da94d5dd448d343012999c3e8b0a9878ba9a1621fe859
-size 73064
+oid sha256:88c0f9a3719468cfab7a7396d43edaba4a1ce2b313e0e1f95833f0ef0032f52b
+size 77544
-/*\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
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