优化gps状态的判断逻辑 1892/1 1892/head
authorCaisking <Casiking@zhihuishixun.com>
Thu, 26 Jun 2025 06:12:42 +0000 (14:12 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Thu, 26 Jun 2025 06:12:42 +0000 (14:12 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp

index c46c6df..83673f3 100644 (file)
@@ -371,6 +371,8 @@ public:
   void AddGPSData(double latitude, double longitude);
   //获取轨迹点集
   std::vector<CanvasPoint> GetCanvasData()const;
+  bool GetGPSConnectState();
+  void SetGPSConnectState(bool state);
 
 private:
   TraingModel(const TraingModel &) = delete;
@@ -422,6 +424,7 @@ private:
   double longitude{0};
   std::vector<CanvasPoint> canvasData; // 轨迹点集
   std::vector<GPSData> gpsData;              // GPS数据集
+  bool gpsconnect{false};
 };
 } // namespace OHOS
 
index e0ca6f1..0196798 100644 (file)
@@ -2431,4 +2431,15 @@ std::vector<CanvasPoint> TraingModel::GetCanvasData() const
     return canvasData;
 }
 
+//获取GPS连接状态
+bool TraingModel::GetGPSConnectState()
+{
+    return gpsconnect;
+}
+//设置GPS连接状态
+void TraingModel::SetGPSConnectState(bool state)
+{
+    gpsconnect = state;
+}
+
 } // namespace OHOS
index a8a3e4c..4a6740d 100644 (file)
@@ -97,9 +97,17 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), BUTTONGO) == 0)\r
         {\r
-            // 开始训练 ->不返回\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_GPSNOTE);\r
-\r
+            //默认前往运动卡片\r
+            AppViewId viewid = VIEW_TRAININGCRAD;\r
+        #if defined(BOARD_W9) || defined(BOARD_N9)\r
+            bool gps_status = TraingModel::GetInstance()->GetGPSConnectState();\r
+            if (!gps_status)\r
+            {\r
+               //未连接进入GPS提示界面\r
+               viewid = VIEW_TRAINING_GPSNOTE;\r
+            }\r
+        #endif\r
+            NativeAbility::GetInstance().ChangeSlice(viewid);\r
             // 获取运动项目\r
             ExerciseClass type = TraingModel::GetInstance()->GetSportId();\r
             // 开启对应的运动\r
index 84ffe6d..1f20d6c 100644 (file)
@@ -68,16 +68,28 @@ namespace OHOS
         buttonSet_->SetOnClickListener(static_cast<UIView::OnClickListener *>(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)