Merge #3144 into fd272 from refs/changes/3144/head 3146/target/1
author袁清梦 <3449750381@qq.com>
Wed, 28 Jan 2026 02:32:31 +0000 (02:32 +0000)
committeraliyun3243248791 <accounts_67aaf52ad497cd558d73ac32@mail.teambition.com>
Wed, 28 Jan 2026 02:32:31 +0000 (02:32 +0000)
Code review from 袁清梦

* refs/changes/3144/head: (5 commits squashed)

  - 减低未佩戴检测的灵敏度

  - 优化运动配速检测

  - Merge branch &#39;fd272&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into fd272

  - 修复无法跳转连接手机APP的bug

  - 优化蓝牙通话的文案

Signed-off-by: Caisking <3449750381@qq.com>
Merged-by: 薛文强 <accounts_67aaf52ad497cd558d73ac32@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/3144
code/sdk/application/wearable/fd272/nativeapp/nativeui/findphone/src/FindPhonePresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/heartrate/src/HeartModel.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/DialingMethodView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp

index a58206e..d6e544b 100644 (file)
@@ -25,8 +25,7 @@
 
 namespace OHOS
 {
-    // REGIST_MENU_PRO(VIEW_FIND_PHONE, FindPhoneView, FindPhonePresenter, PNG_APPLIST_FINDPHONE_IMAGE_BIG,
-    //                 PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, "查找手机", STR_FIND_PHONE);
+    REGIST_SLICE(VIEW_FIND_PHONE, FindPhoneView, FindPhonePresenter);
 
     // 当前Presenter属性实例化的内存指针
     static FindPhonePresenter *g_pFindPhonePresenter = nullptr;
index bb65cf7..5c0a9f1 100644 (file)
@@ -64,7 +64,7 @@
 extern "C" {\r
 #endif\r
 \r
-#define MAX_UNWEAR_COUNT 2\r
+#define MAX_UNWEAR_COUNT 10\r
 #define MAX_VALID_HRS_COUNT 10    //最大有效数\r
 #define MAX_DISVALID_HRS_COUNT 15 //最大无效数\r
 #define MIN_DISPLAY_HEART 50      //最新心率\r
index 49aa675..bef3196 100644 (file)
@@ -206,11 +206,11 @@ namespace OHOS
                 .height = 105,
                 .fontSize = 30,
                 .lineHeigh = 35,
-                .text = "请插入手表SIM卡或连接手机并确认开启蓝牙通话后再进行拨号",
+                .text = "请连接手机并确认开启蓝牙通话后再进行拨号",
                 .lineBreakMode = UILabel::LINE_BREAK_WRAP,
             };
             No_HFP_Label = TelephonyInitInterface::LabelViewInit(labelParam);
-            No_HFP_Label->SetTextId(STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE);
+            // No_HFP_Label->SetTextId(STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE);
             if (No_HFP_Label == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
index 2992e16..aafcf1c 100644 (file)
    // sportdata->cdc = cyweeInfo->step_frequency;
    // sportdata->std = cyweeInfo->step_length;
  
-   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " pace %d", sportdata->pc);
- 
-   sportdata->pc = cyweeInfo->pace;
- 
-   // 更新最慢配速
-   if (sportdata->spc < sportdata->pc && sportdata->pc != 0) {
-     sportdata->spc = sportdata->pc;
-   }
- 
-   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "spc %d", sportdata->spc);
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " pace %d", sportdata->pc);
+
+  // 通过距离和时间自己计算配速,而不是使用CYWEE提供的配速
+  // 配速单位:秒/公里
+  // 计算公式:配速 = 时间(秒) * 1000 / 距离(米)
+  int calculatedPace = 0;
+  if (sportdata->distance > 0 && sportdata->duration > 0) {
+    // 距离单位是米,需要转换为公里:距离(公里) = 距离(米) / 1000
+    // 配速(秒/公里) = 时间(秒) / 距离(公里) = 时间(秒) * 1000 / 距离(米)
+    calculatedPace = (sportdata->duration * 1000) / sportdata->distance;
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, 
+                  "CalculatePace: distance=%d米, duration=%d秒, calculatedPace=%d秒/公里",
+                  sportdata->distance, sportdata->duration, calculatedPace);
+  } else {
+    // 如果距离或时间为0,使用CYWEE提供的配速作为后备
+    calculatedPace = cyweeInfo->pace;
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, 
+                  "CalculatePace: 距离或时间为0,使用CYWEE配速=%d", calculatedPace);
+  }
+  
+  sportdata->pc = calculatedPace;
+
+  // 更新最慢配速
+  if (sportdata->spc < sportdata->pc && sportdata->pc != 0) {
+    sportdata->spc = sportdata->pc;
+  }
+
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "spc %d", sportdata->spc);
  
  
 #if 0
      return;
    }
  
-   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[apc:%d fpc:%d cdc:%d std:%d]",
-                 cyweeInfo->avg_pace, cyweeInfo->max_pace,
-                 cyweeInfo->avg_step_freq, cyweeInfo->avg_step_len);
-   //平均配速
-   if (cyweeInfo->avg_pace != 0) {
-     sportdata->apc = cyweeInfo->avg_pace;
-   }
-   //最快配速
-   if (cyweeInfo->max_pace != 0) {
-     sportdata->fpc = cyweeInfo->max_pace;
-   }
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[apc:%d fpc:%d cdc:%d std:%d]",
+                cyweeInfo->avg_pace, cyweeInfo->max_pace,
+                cyweeInfo->avg_step_freq, cyweeInfo->avg_step_len);
+  
+  // 通过距离和时间自己计算平均配速和最快配速
+  // 平均配速 = 总时间(秒) * 1000 / 总距离(米)
+  if (sportdata->distance > 0 && sportdata->duration > 0) {
+    int calculatedAvgPace = (sportdata->duration * 1000) / sportdata->distance;
+    sportdata->apc = calculatedAvgPace;
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, 
+                  "CalculateAvgPace: distance=%d米, duration=%d秒, avgPace=%d秒/公里",
+                  sportdata->distance, sportdata->duration, calculatedAvgPace);
+  } else if (cyweeInfo->avg_pace != 0) {
+    // 如果距离或时间为0,使用CYWEE提供的平均配速作为后备
+    sportdata->apc = cyweeInfo->avg_pace;
+  }
+  
+  // 最快配速:配速越小表示速度越快,所以最快配速应该是最小的配速值
+  // 如果当前配速不为0且小于之前的最快配速(或最快配速为0),则更新最快配速
+  if (sportdata->pc > 0) {
+    if (sportdata->fpc == 0 || sportdata->pc < sportdata->fpc) {
+      sportdata->fpc = sportdata->pc;
+      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, 
+                    "UpdateFastestPace: fpc=%d秒/公里", sportdata->fpc);
+    }
+  } else if (cyweeInfo->max_pace != 0) {
+    // 如果当前配速为0,使用CYWEE提供的最快配速作为后备
+    sportdata->fpc = cyweeInfo->max_pace;
+  }
    //平均步频
    if (cyweeInfo->avg_step_freq != 0) {
      sportdata->cdc = cyweeInfo->avg_step_freq;