为解决第一次绑定进入视频表盘死机增加了投票(还是会死机),暂时用宏控制
authorluozheng <1732036298@qq.com>
Sat, 30 Nov 2024 03:27:20 +0000 (11:27 +0800)
committerluozheng <1732036298@qq.com>
Sat, 30 Nov 2024 03:27:20 +0000 (11:27 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModelC.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_image_animator.cpp

index 08772ac..35b0755 100644 (file)
@@ -35,6 +35,7 @@
 #include "sleep/include/SleepModel.h"
 #include "MainModel.h"
 #include "../../../../../../../drivers/peripheral/utils/custom_runtime.h"
+#include "rebootandshutdown/include/RebootAndShutdownModelC.h"
 
 #if USE_OFFLINE_DIAL
 #include "DialViewGroup.h"
@@ -95,7 +96,16 @@ namespace OHOS
 
     void MainPresenterSample::OnPause(void) {}
 
-    void MainPresenterSample::OnResume(void) {}
+    void MainPresenterSample::OnResume(void) 
+    {
+    #if IS_SUPPORT_BIND_VOTE
+        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
+        {
+            uapi_remove_bind_vote();//页面已经展示后的调用逻辑。取消绑定投票
+            ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+        }
+    #endif
+    }
 
     void MainPresenterSample::OnStop(void)
     {
diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModelC.h b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModelC.h
new file mode 100644 (file)
index 0000000..9b3f7e0
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef REBOOT_AND_SHUTDOWN_C_H
+#define REBOOT_AND_SHUTDOWN_C_H
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C"
+{
+#endif
+#endif
+
+#define IS_SUPPORT_BIND_VOTE 0
+
+void uapi_add_bind_vote(void);
+void uapi_remove_bind_vote(void);
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif
+#endif
+#endif
\ No newline at end of file
index 94a3512..1f60029 100644 (file)
@@ -2,11 +2,12 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-18 14:55:27
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-24 20:54:15
+ * @LastEditTime: 2024-11-30 11:22:54
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
  */
 
 #include "rebootandshutdown/include/RebootAndShutdownModel.h"
+#include "rebootandshutdown/include/RebootAndShutdownModelC.h"
 #include "rebootandshutdown/include/ShutDownImageAnimatorView.h"
 #include "wearable_log.h"
 #include "ConfigModel.h"
 #define DEBUGOUTPUT 1
 
 extern "C" uint8_t uapi_dev_runtime_get_lock_status(void);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "pm.h"
+#include "pm_veto.h"
+
+void uapi_add_bind_vote(void)
+{
+  uint8_t res = pm_veto_get_id_cnt(PM_ID_HEART);
+  if (res == 0) {
+    uapi_pm_add_sleep_veto(PM_ID_HEART);
+  } else {
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,
+                  "uapi_add_bind_vote error");
+  }
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,
+                "投票成功,res:%d",res);
+}
+void uapi_remove_bind_vote(void)
+{
+  uint8_t res = pm_veto_get_id_cnt(PM_ID_HEART);
+  if (res == 1) {
+    uapi_pm_remove_sleep_veto(PM_ID_HEART);
+  } else {
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,
+                  "uapi_remove_bind_vote error");
+  }
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,
+                "移除投票成功 success,res:%d",res);
+}
+#ifdef __cplusplus
+}
+#endif
 namespace OHOS
 {
     static uint16_t intercept_slice_ids[] = {
@@ -54,10 +89,15 @@ namespace OHOS
     {
         if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
         {
-            uapi_systemVolumeSet(VOLUME_50);//恢复出厂设置系统音量要设置50%
-            uapi_callVolumeSet(VOLUME_100);//恢复出厂设置通话音量要设置100%
             uapi_set_screen_on_api();
+        #if IS_SUPPORT_BIND_VOTE
+            uapi_add_bind_vote();//绑定的时候投票防止系统进入深睡,导致绑定成功后进入视频表盘死机
+            // ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+        #else 
             ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+        #endif
+            uapi_systemVolumeSet(VOLUME_50);//恢复出厂设置系统音量要设置50%
+            uapi_callVolumeSet(VOLUME_100);//恢复出厂设置通话音量要设置100%
             NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
             NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
         }
index 621ff5d..586c3bb 100755 (executable)
@@ -113,7 +113,7 @@ void UIImageAnimatorView::SetImageAnimatorSrc(const ImageAnimatorInfo imageAnima
 
 void UIImageAnimatorView::ClearImagesCache()
 {
-    if (imageSrc_ != nullptr) {
+    if (imageSrc_ == nullptr) {
         return;
     }