Merge #1022 into sdk602patch0626 from refs/changes/1022/head
author袁清梦 <3449750381@qq.com>
Thu, 26 Sep 2024 12:23:50 +0000 (12:23 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 26 Sep 2024 12:23:50 +0000 (12:23 +0000)
Code review from 袁清梦

* refs/changes/1022/head: (3 commits squashed)

  - app发起运动进行状态改变的时候进行时长校验

  - #660 手表,已经设置密码锁,关机后在开机、重启、长按电源键10S强制重启,现在需要等手表自动息屏后才会上锁

  - scrollview里面添加list,如果list item较少,滑动会有大片空白出现。

Signed-off-by: Caisking <3449750381@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1022
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
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/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_list.cpp

index 0bdcea9..5d58f72 100644 (file)
 #include "schedule/include/ScheduleData.h"
 #include "sleepmode/include/SleepModePresenter.h"
 
+#include "ui_service.h"  
+extern "C" void uapi_dev_runtime_set_lock_status(uint8_t status);  
+extern "C" uint8_t uapi_dev_runtime_get_lock_status(void);  
+
 #ifdef SUPPORT_ALIPAY_SEC
 #include "AlipayMainView.h"
 #include "AlipayPresenter.h"
@@ -529,10 +533,25 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is Charging!");
                 DialModelCharge::GetInstance()->UpdatechargeStatus(1);
             }
+
             /*开机读取天气历史数据*/
-          
             C_ScheduleDataReadFromFile();
             mmi_sleep_mode_switch_read();
+
+            /*开机如果设置了密码锁,进行锁屏*/
+            int lockstate = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH);  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "lockstate = %d", lockstate);  
+            // 打印锁定状态判断  
+            if (lockstate == 1)  
+            {  
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Native ability state is active.");  
+                if (uapi_dev_runtime_get_lock_status() == 0)  
+                {  
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Device is unlocked (lock status == 0).");  
+                    uapi_dev_runtime_set_lock_status(1); // 上锁  
+                    OHOS::MainModel::GetInstance().setDialState(OHOS::DialState::LOCK, true);  
+                }  
+            }
         }
     }
 
index 2231fc5..887efca 100644 (file)
@@ -243,6 +243,7 @@ namespace OHOS
         SportData *GetSportdata();                                             /*获取训练数据*/
         void SetIntensity(int heart);                                          /*设置训练强度*/
         UIResourceTextId GetIntensity();                                       /*获取训练强度STR*/
+        uint32_t GetSportTime();                                               /*获取目前运动时长*/
         bool SaveSportData();                                                  /*保存数据*/
         void SendLiveData();                                                   /*发送实时数据*/
         int CalculateAverageHeartRate(int newHeartRate);                       /*平均心率计算*/
index 3998ebb..fc3b2da 100644 (file)
@@ -1230,7 +1230,11 @@ namespace OHOS
     {
         return Openstate;
     }
-
+    /*获取运动时长*/
+    uint32_t TraingModel::GetSportTime()
+    {
+    return sportdata->duration;
+    }
     /*获取训练量是否达标*/
     bool TraingModel::GetMomentum() {
 #if 0
index 9d1ea29..725313a 100644 (file)
@@ -26,6 +26,7 @@
 #include "traing/training_card/include/TrainingControlView.h"\r
 #include "uicomponents/UIComponents.h"\r
 #include "vibrator_service.h"\r
+\r
 #include <chrono>\r
 #include <iomanip>\r
 #include <iostream>\r
@@ -420,14 +421,20 @@ bool TraingCardPresenter::send_sport_cmd(training_ble *cmd) {
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ExerciseState::End   [%d]\r\n",\r
                 cmdState);\r
 \r
+  uint32_t sport_time = TraingModel::GetInstance()->GetSportTime();\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sport_time[%d]\r\n", sport_time);\r
+\r
   switch (cmdState) {\r
   case ExerciseState::End:\r
+    reply_APP_SportStopModeCmd(sport_time);\r
     handleEndState();\r
     break;\r
   case ExerciseState::Pause:\r
+    reply_APP_SportPasueResetCmd(sport_time);\r
     handlePauseState();\r
     break;\r
   case ExerciseState::Continue:\r
+    reply_APP_SportPasueResetCmd(sport_time);\r
     handleContinueState();\r
     break;\r
   case ExerciseState::Start:\r
index 4e55dca..a3914a4 100644 (file)
@@ -3899,7 +3899,7 @@ static void OpenSportModeCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *to
     }\r
 }\r
 \r
-void reply_APP_StopSportModeCmd(uint16_t time)\r
+void reply_APP_SportStopModeCmd(uint16_t time)\r
 {\r
     char data[3]={0};\r
     uint32_t data_len=3;\r
index 0afd573..7b8b25d 100644 (file)
@@ -828,7 +828,7 @@ void GetwatchSaveMac(uint8_t *mac,uint8_t *mactype);
 
 void reply_APP_SportPasueResetCmd(uint16_t time);
 
-void reply_APP_StopSportModeCmd(uint16_t time);
+void reply_APP_SportStopModeCmd(uint16_t time);
 
 ///////////////////////////自定义文件传输协议/////////////////////////////
 #define OTA_FILE_MSG_CMD  0x0601 
index 242f67e..6756905 100755 (executable)
@@ -380,13 +380,35 @@ bool UIList::DragYInner(int16_t distance)
                 }
                 distance = CalculateElasticDragLen(reboundSize, offset, distance);
             }
-            if ((childrenTail_->GetRelativeRect().GetBottom() + distance) <
+            if (childrenTail_->GetRelativeRect().GetBottom() <
+                (listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM))) {
+                distance = 0;
+            } else if ((childrenTail_->GetRelativeRect().GetBottom() + distance) <
                 (listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM))) {
                     distance = listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM)
                         - childrenTail_->GetRelativeRect().GetBottom();
             }
         }
     }
+    // } else {
+    //     if (childrenTail_ != nullptr) {
+    //         if (isElastic_ && (reboundSize > 0) &&
+    //             (childrenTail_->GetRelativeRect().GetBottom() <
+    //             (listHeight - scrollBlankSize_ - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM)))) {
+    //             int16_t offset = (listHeight - scrollBlankSize_ - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM))
+    //                 - (childrenTail_->GetRelativeRect().GetBottom());
+    //             if (offset > reboundSize) {
+    //                 offset = reboundSize;
+    //             }
+    //             distance = CalculateElasticDragLen(reboundSize, offset, distance);
+    //         }
+    //         if ((childrenTail_->GetRelativeRect().GetBottom() + distance) <
+    //             (listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM))) {
+    //                 distance = listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM)
+    //                     - childrenTail_->GetRelativeRect().GetBottom();
+    //         }
+    //     }
+    // }
 
     return MoveOffset(0, distance);
 }