修复屏保逻辑(补)
authorxue <2144439972@qq.com>
Tue, 23 Dec 2025 07:52:52 +0000 (15:52 +0800)
committerxue <2144439972@qq.com>
Tue, 23 Dec 2025 07:52:52 +0000 (15:52 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp

index 4292f75..c091677 100644 (file)
@@ -386,6 +386,7 @@ namespace OHOS
             iconView->SetAutoEnable(false);
             iconView->SetPosition(0, 0, 360, 360);
             iconView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+            iconView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
             iconView->SetResizeMode(UIImageView::COVER);
             iconView->SetSrc("/user/res/1.bin");
             //iconView->SetVisible(false);
@@ -1009,7 +1010,9 @@ namespace OHOS
                     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView::ChangeView: 屏保模式已开启,跳过视频恢复");
                 }
             }
-            InvalidateGroup1(false);
+            // 如果屏保模式未开启,才调用InvalidateGroup1(false)隐藏iconView
+            // 如果屏保模式已开启,不应该隐藏iconView,否则会关闭屏保模式
+                InvalidateGroup1(false);
         }
         if(showView == THUNDERBIRD_BLUEVIEW )
         {
@@ -1050,13 +1053,7 @@ namespace OHOS
         }
         backGroundView->SetVisible(false);
 
-        // OTA界面已独立为slice,不再需要此检查
-        // 保存上一级视图信息(如果是GoBackToPreviousView调用,则不更新prevView_和prevSubView_)
-        // if (!isGoingBack_)
-        // {
-        //     prevView_ = currentView_;
-        //     prevSubView_ = currentSubView_;
-        // }
+
         ClickFunc(showView);
         group[showView]->SetVisible(true);
         group[showView]->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
@@ -1122,12 +1119,22 @@ namespace OHOS
         if(state == true)
         {
             iconView->SetVisible(true);
-            iconView->SetSrc("/user/res/yellowbg.bin");
+            SwitchIconImage("/user/res/yellowbg.bin");
         }
         else
         {
-            iconView->SetVisible(false);
-            iconView->SetSrc("/user/res/1.bin");
+            if (!GetIsOpenScreenImageModel())
+            {
+                // 屏保模式未开启,切换到默认图片并隐藏
+                SwitchIconImage("/user/res/1.bin");
+                iconView->SetVisible(false);
+            }
+            else
+            {
+                SwitchIconImage(LN_DEVICE_SCREEN_IMAGE_FILE);
+                // 屏保模式已开启,只刷新,不切换图片,不隐藏
+                iconView->Invalidate();
+            }
         }
     }