From 753e75cfef98043cc9faaa390d59ccee8cfe0a2a Mon Sep 17 00:00:00 2001 From: Caisking Date: Thu, 26 Jun 2025 14:12:42 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96gps=E7=8A=B6=E6=80=81=E7=9A=84?= =?utf8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/include/TraingModel.h | 3 +++ .../nativeui/traing/src/TraingModel.cpp | 11 ++++++++++ .../traing/src/TraingNomalPresenter.cpp | 14 +++++++++--- .../nativeui/traing/src/TraingNomalView.cpp | 22 +++++++++++++++---- 4 files changed, 43 insertions(+), 7 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index c46c6df11..83673f370 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -371,6 +371,8 @@ public: void AddGPSData(double latitude, double longitude); //获取轨迹点集 std::vector GetCanvasData()const; + bool GetGPSConnectState(); + void SetGPSConnectState(bool state); private: TraingModel(const TraingModel &) = delete; @@ -422,6 +424,7 @@ private: double longitude{0}; std::vector canvasData; // 轨迹点集 std::vector gpsData; // GPS数据集 + bool gpsconnect{false}; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index e0ca6f146..0196798e4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -2431,4 +2431,15 @@ std::vector TraingModel::GetCanvasData() const return canvasData; } +//获取GPS连接状态 +bool TraingModel::GetGPSConnectState() +{ + return gpsconnect; +} +//设置GPS连接状态 +void TraingModel::SetGPSConnectState(bool state) +{ + gpsconnect = state; +} + } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp index a8a3e4c46..4a6740da3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp @@ -97,9 +97,17 @@ namespace OHOS } if (strcmp(view.GetViewId(), BUTTONGO) == 0) { - // 开始训练 ->不返回 - NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_GPSNOTE); - + //默认前往运动卡片 + AppViewId viewid = VIEW_TRAININGCRAD; + #if defined(BOARD_W9) || defined(BOARD_N9) + bool gps_status = TraingModel::GetInstance()->GetGPSConnectState(); + if (!gps_status) + { + //未连接进入GPS提示界面 + viewid = VIEW_TRAINING_GPSNOTE; + } + #endif + NativeAbility::GetInstance().ChangeSlice(viewid); // 获取运动项目 ExerciseClass type = TraingModel::GetInstance()->GetSportId(); // 开启对应的运动 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp index 84ffe6ddf..1f20d6c3e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp @@ -68,16 +68,28 @@ namespace OHOS buttonSet_->SetOnClickListener(static_cast(TraingNomalPresenter::GetInstance())); container_->Add(buttonGo_); container_->Add(buttonSet_); - - InitUILabel(heartrate_label_, -32, 230, 200, 60, "heartrate_label_", "--", DEFAULT_VECTOR_FONT_FILENAME, 35); +#if defined(BOARD_W9) || defined(BOARD_N9) + InitUILabel(heartrate_label_, -32, 230, 200, 60, "heartrate_label_", "--", DEFAULT_VECTOR_FONT_FILENAME, 30); container_->Add(heartrate_label_); - InitUILabel(gps_label_, 295, 230, 200, 60, "label_time", "GPS", DEFAULT_VECTOR_FONT_FILENAME, 35); + InitUILabel(gps_label_, 295, 230, 200, 60, "label_time", "GPS", DEFAULT_VECTOR_FONT_FILENAME, 30); container_->Add(gps_label_); - InitImageView(gps_image_, 375, 193, 100, 100, "gps_image", GPS_1_IMAGE); + // 获取gps状态 + bool gps_status = TraingModel::GetInstance()->GetGPSConnectState(); + if (gps_status) + { + //连接状态 + InitImageView(gps_image_, 375, 193, 100, 100, "gps_image", GPS_1_IMAGE); + } + else + { + //断开状态 + InitImageView(gps_image_, 375, 193, 100, 100, "gps_image", GPS_2_IMAGE); + } container_->Add(gps_image_); InitImageView(heartrate_image_, 48, 193, 100, 100, "heartrate_image_", HEARTRATE_1_IMAGE); container_->Add(heartrate_image_); +#endif } /* DeInit:删除组件*/ void TraingNomalView::DeInit() @@ -101,6 +113,7 @@ namespace OHOS delete buttonSet_; buttonSet_ = nullptr; } +#if defined(BOARD_W9) || defined(BOARD_N9) if (heartrate_label_ != nullptr) { delete heartrate_label_; @@ -121,6 +134,7 @@ namespace OHOS delete heartrate_image_; heartrate_image_ = nullptr; } +#endif } void TraingNomalView::PreLoad(void) -- 2.17.1