diff --git a/frameworks/core/components_ng/pattern/rich_editor_drag/preview_menu_controller.cpp b/frameworks/core/components_ng/pattern/rich_editor_drag/preview_menu_controller.cpp index 0f43bf06c5da6254f806ecd4a8d2dc0b20769505..a6b9c719cca50336eb7b49a783c8bac00a70d45b 100644 --- a/frameworks/core/components_ng/pattern/rich_editor_drag/preview_menu_controller.cpp +++ b/frameworks/core/components_ng/pattern/rich_editor_drag/preview_menu_controller.cpp @@ -332,15 +332,15 @@ RefPtr PreviewMenuController::CreateContactAndAddressPreviewNode(Text flexLayoutProperty->UpdatePadding({ padding, padding, padding, padding }); flexLayoutProperty->UpdateFlexDirection(FlexDirection::ROW); flexLayoutProperty->UpdateCrossAxisAlign(FlexAlign::CENTER); - std::optional minHeight = CalcLength(PREVIEW_MIN_HEIGHT); + std::optional minHeight = CalcLength(Dimension(PREVIEW_MIN_HEIGHT.ConvertToPx())); std::optional maxHeight = CalcLength(GetPreviewMaxHeight(frameNode)); - std::optional maxWidth = CalcLength(PREVIEW_MAX_WIDTH); + std::optional maxWidth = CalcLength(Dimension(PREVIEW_MAX_WIDTH.ConvertToPx())); flexLayoutProperty->UpdateCalcMinSize(CalcSize(std::nullopt, minHeight)); flexLayoutProperty->UpdateCalcMaxSize(CalcSize(maxWidth, maxHeight)); // Adaptive internal content height for URL and address. if (type == TextDataDetectType::EMAIL || type == TextDataDetectType::PHONE_NUMBER) { - std::optional height = CalcLength(PREVIEW_MIN_HEIGHT); + std::optional height = CalcLength(Dimension(PREVIEW_MIN_HEIGHT.ConvertToPx())); flexLayoutProperty->UpdateUserDefinedIdealSize(CalcSize(std::nullopt, height)); } frameNode->MarkDirtyNode(PROPERTY_UPDATE_MEASURE); @@ -358,8 +358,8 @@ RefPtr PreviewMenuController::CreateLinkingPreviewNode() flexLayoutProperty->UpdateCrossAxisAlign(FlexAlign::CENTER); flexLayoutProperty->UpdateMainAxisAlign(FlexAlign::CENTER); std::optional maxHeight = CalcLength(GetPreviewMaxHeight(frameNode)); - std::optional maxWidth = CalcLength(PREVIEW_MAX_WIDTH); - std::optional minHeight = CalcLength(PREVIEW_MIN_HEIGHT); + std::optional maxWidth = CalcLength(Dimension(PREVIEW_MAX_WIDTH.ConvertToPx())); + std::optional minHeight = CalcLength(Dimension(PREVIEW_MIN_HEIGHT.ConvertToPx())); flexLayoutProperty->UpdateCalcMinSize(CalcSize(std::nullopt, minHeight)); flexLayoutProperty->UpdateCalcMaxSize(CalcSize(maxWidth, maxHeight)); std::optional height = CalcLength(Dimension(PERCENT_FULL, DimensionUnit::PERCENT)); @@ -370,16 +370,17 @@ RefPtr PreviewMenuController::CreateLinkingPreviewNode() Dimension PreviewMenuController::GetPreviewMaxHeight(const RefPtr& frameNode) { - CHECK_NULL_RETURN(frameNode, PREVIEW_MAX_WIDTH); + auto maxWidth = Dimension(PREVIEW_MAX_WIDTH.ConvertToPx()); + CHECK_NULL_RETURN(frameNode, maxWidth); auto context = frameNode->GetContext(); - CHECK_NULL_RETURN(context, PREVIEW_MAX_WIDTH); + CHECK_NULL_RETURN(context, maxWidth); auto safeAreaManager = context->GetSafeAreaManager(); - CHECK_NULL_RETURN(safeAreaManager, PREVIEW_MAX_WIDTH); + CHECK_NULL_RETURN(safeAreaManager, maxWidth); auto bottom = safeAreaManager->GetSafeAreaWithoutProcess().bottom_.Length(); auto top = safeAreaManager->GetSafeAreaWithoutProcess().top_.Length(); auto containerId = Container::CurrentId(); auto container = AceEngine::Get().GetContainer(containerId); - CHECK_NULL_RETURN(container, PREVIEW_MAX_WIDTH); + CHECK_NULL_RETURN(container, maxWidth); // Get FreeMultiWindow status of main window or host window auto isFreeMultiWindow = container->IsFreeMultiWindow(); float height; diff --git a/test/unittest/core/pattern/text/preview_menu_controller_test_ng.cpp b/test/unittest/core/pattern/text/preview_menu_controller_test_ng.cpp index 52367b815a8d003ce387bc6067dcc0a005f69189..12375206c698b6a92d0be2381cbf67b92ffe3902 100644 --- a/test/unittest/core/pattern/text/preview_menu_controller_test_ng.cpp +++ b/test/unittest/core/pattern/text/preview_menu_controller_test_ng.cpp @@ -80,17 +80,17 @@ void PreviewMenuControllerTest::VerifyContactAndAddressNodeProperties( auto&& calcLayoutConstraint = flexLayoutProperty->GetCalcLayoutConstraint(); // Verify size constraints auto calcMinSize = calcLayoutConstraint->minSize; - EXPECT_EQ(calcMinSize->Height(), CalcLength(PREVIEW_MIN_HEIGHT)); + EXPECT_EQ(calcMinSize->Height(), CalcLength(Dimension(PREVIEW_MIN_HEIGHT.ConvertToPx()))); auto calcMaxSize = calcLayoutConstraint->maxSize; - EXPECT_EQ(calcMaxSize->Width(), CalcLength(PREVIEW_MAX_WIDTH)); - EXPECT_EQ(calcMaxSize->Height(), CalcLength(PREVIEW_MAX_WIDTH)); + EXPECT_EQ(calcMaxSize->Width(), CalcLength(Dimension(PREVIEW_MAX_WIDTH.ConvertToPx()))); + EXPECT_EQ(calcMaxSize->Height(), CalcLength(Dimension(PREVIEW_MAX_WIDTH.ConvertToPx()))); // Verify special handling for phone/email types if (type == TextDataDetectType::EMAIL || type == TextDataDetectType::PHONE_NUMBER) { auto idealSize = calcLayoutConstraint->selfIdealSize; ASSERT_TRUE(idealSize.has_value()); - EXPECT_EQ(idealSize->Height(), CalcLength(PREVIEW_MIN_HEIGHT)); + EXPECT_EQ(idealSize->Height(), CalcLength(Dimension(PREVIEW_MIN_HEIGHT.ConvertToPx()))); } else { auto idealSize = calcLayoutConstraint->selfIdealSize; EXPECT_FALSE(idealSize.has_value()); @@ -437,13 +437,13 @@ HWTEST_F(PreviewMenuControllerTest, CreateLinkingPreviewNodeTest001, TestSize.Le EXPECT_TRUE(maxSize.has_value()); EXPECT_TRUE(maxSize->Width().has_value()); EXPECT_TRUE(maxSize->Height().has_value()); - EXPECT_EQ(maxSize->Height(), CalcLength(PREVIEW_MAX_WIDTH)); - EXPECT_EQ(maxSize->Width(), CalcLength(PREVIEW_MAX_WIDTH)); + EXPECT_EQ(maxSize->Height(), CalcLength(Dimension(PREVIEW_MAX_WIDTH.ConvertToPx()))); + EXPECT_EQ(maxSize->Width(), CalcLength(Dimension(PREVIEW_MAX_WIDTH.ConvertToPx()))); auto minSize = calcLayoutConstraint->minSize; EXPECT_TRUE(minSize.has_value()); EXPECT_TRUE(minSize->Height().has_value()); - EXPECT_EQ(minSize->Height(), CalcLength(PREVIEW_MIN_HEIGHT)); + EXPECT_EQ(minSize->Height(), CalcLength(Dimension(PREVIEW_MIN_HEIGHT.ConvertToPx()))); // Verify ideal size auto idealSize = calcLayoutConstraint->selfIdealSize;