优化抬腕亮屏翻腕灭屏,增加状态判断 672/2 672/head
authorcheng <chengyf@zhihuishixun.com>
Sat, 10 Aug 2024 10:46:02 +0000 (18:46 +0800)
committercheng <chengyf@zhihuishixun.com>
Sat, 10 Aug 2024 10:46:02 +0000 (18:46 +0800)
code/sdk/drivers/peripheral/config/include/ConfigModelC.h
code/sdk/drivers/peripheral/config/src/ConfigModel.cpp
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 92f0412..4072d18 100644 (file)
@@ -102,6 +102,9 @@ int get_sedentary_time_from_config_model(void);
 //设置睡眠频率
 void set_config_heart(int heartRateDetectionFreq);
 
+// for c file
+bool mmi_flip_wrist_switch_get(void);
+
 #ifdef __cplusplus
 #if __cplusplus
 }
index 393bd53..4ecbe79 100644 (file)
@@ -1518,6 +1518,12 @@ int get_sedentary_time_from_config_model(void)
     return sedentary_time;
 }
 
+// get flip wrist switch for c file
+bool mmi_flip_wrist_switch_get(void)
+{
+    return (OHOS::ConfigModel::GetInstance()->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_RAISE_TO_WAKE));
+}
+
 #ifdef __cplusplus
 #if __cplusplus
 }
index 206b559..80d7e6d 100644 (file)
@@ -667,26 +667,17 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) {
              break;
         case IDX_ALGO_WATCH_HANDUP:
             CWM_OS_dbgPrintf("HANDUP_DOWN MSG [%d]\n",(int)sensorEVT->fData[1]);
-            #if defined(SUPPORT_POWER_MANAGER)
-            const power_display_svr_api_t *display_api = power_display_svr_get_api();
-            #endif
             if ((int)sensorEVT->fData[1] == 2)
             {
             #if defined(SUPPORT_POWER_MANAGER)
-                //display_api->set_screen_set_keepon_timeout(0);
                 CWM_OS_dbgPrintf("[cwyee] turn_off_screen");
+                mmi_screen_on_off_by_flip_wrist(false);
             #endif
             }else if ((int)sensorEVT->fData[1] == 1)
             {
             #if defined(SUPPORT_POWER_MANAGER)
-                if (display_api->get_screen_state() != SCREEN_ON) 
-                {
-                    CWM_OS_dbgPrintf("[cwyee] turn_on_screen");
-                    display_api->turn_on_screen();
-                }
-                // display_api->set_screen_set_keepon_timeout(0);
-                // display_api->set_screen_set_keepon_timeout(1000);
-                // uapi_setScreenDuration(1000);
+                CWM_OS_dbgPrintf("[cwyee] turn_on_screen");
+                mmi_screen_on_off_by_flip_wrist(true);  
             #endif
             }
             break;
index 55eb4cf..204b77e 100644 (file)
@@ -1020,6 +1020,7 @@ errcode_t uapi_get_WeekStr(char *p_week)
 /// @brief 控制屏幕是否常亮
 /// @param turnOnFlag 1:常亮屏幕 
 /// @param turnOnFlag 0:取消常亮 
+static bool s_screen_always_on = false;
 void ScreenAlwaysOnCtr(uint8_t turnOnFlag)
 {
     const power_display_svr_api_t *display_api = power_display_svr_get_api();
@@ -1033,10 +1034,45 @@ void ScreenAlwaysOnCtr(uint8_t turnOnFlag)
         }
         //当设置的值是-1 的时候,设置屏幕常亮
         display_api->set_screen_set_keepon_timeout(-1);
+        s_screen_always_on = true;
     }
     else
     {
         display_api->set_screen_set_keepon_timeout(0);
+        s_screen_always_on = false;
+    }
+}
+
+// Is the screen always on
+bool mmi_screen_always_on_flag_get(void)
+{
+    return s_screen_always_on;
+}
+
+// value:
+//  true-turn on screen
+//  false-turn off screen
+void mmi_screen_on_off_by_flip_wrist(bool value)
+{
+    if(false == mmi_flip_wrist_switch_get())
+    {
+        return;
+    }
+
+    const power_display_svr_api_t * display_api = power_display_svr_get_api();
+    if (false == value)
+    {
+        if(false == mmi_screen_always_on_flag_get())
+        {
+            display_api->turn_off_screen();
+        }
+    }
+    else
+    {
+        if (SCREEN_ON != display_api->get_screen_state()) 
+        {
+            display_api->turn_on_screen();
+        }
     }
 }
 
index 7ce3caf..9514c42 100644 (file)
@@ -102,6 +102,11 @@ char *uapi_get_local_yyyymmdd_date(void);
 
 void ScreenAlwaysOnCtr(uint8_t turnOnFlag);
 
+// Is the screen always on
+bool mmi_screen_always_on_flag_get(void);
+
+void mmi_screen_on_off_by_flip_wrist(bool value);
+
 void uapi_setScreenBrightness(int value);
 
 void uapi_setScreenDuration(int32_t time);