diff --git a/window_scene/session_manager/src/scene_session_dirty_manager.cpp b/window_scene/session_manager/src/scene_session_dirty_manager.cpp index c669dc38301024794f132e86336929ce704ca8f3..4014d01f3433d8238934e1bb1387ce6cb9ab7571 100644 --- a/window_scene/session_manager/src/scene_session_dirty_manager.cpp +++ b/window_scene/session_manager/src/scene_session_dirty_manager.cpp @@ -41,10 +41,12 @@ static int32_t g_screenRotationOffset = system::GetIntParameter("const. constexpr float ZORDER_UIEXTENSION_INDEX = 0.1; constexpr int WINDOW_NAME_TYPE_UNKNOWN = 0; constexpr int WINDOW_NAME_TYPE_THUMBNAIL = 1; -constexpr int WINDOW_NAME_TYPE_VOICEINPUT = 2; +constexpr int WINDOW_NAME_TYPE_XIAOYI = 2; const std::string SCREENSHOT_WINDOW_NAME_PREFIX = "ScreenShotWindow"; const std::string PREVIEW_WINDOW_NAME_PREFIX = "PreviewWindow"; const std::string VOICEINPUT_WINDOW_NAME_PREFIX = "__VoiceHardwareInput"; +const std::string SWITCH_INPUT_METHOD_WINDOW_NAME_PREFIX = "__SwitchInputMethod"; +const std::string MORE_SETTING_WINDOW_NAME_PREFIX = "__MoreSettingDialog"; const std::string SCREEN_LOCK_WINDOW = "scbScreenLock"; } // namespace @@ -869,8 +871,10 @@ std::pair> SceneSessionDirtyMa }; if (startsWith(windowName, SCREENSHOT_WINDOW_NAME_PREFIX) || startsWith(windowName, PREVIEW_WINDOW_NAME_PREFIX)) { windowNameType = WINDOW_NAME_TYPE_THUMBNAIL; - } else if (startsWith(windowName, VOICEINPUT_WINDOW_NAME_PREFIX)) { - windowNameType = WINDOW_NAME_TYPE_VOICEINPUT; + } else if (startsWith(windowName, VOICEINPUT_WINDOW_NAME_PREFIX) || + startsWith(windowName, SWITCH_INPUT_METHOD_WINDOW_NAME_PREFIX) || + startsWith(windowName, MORE_SETTING_WINDOW_NAME_PREFIX)) { + windowNameType = WINDOW_NAME_TYPE_XIAOYI; } auto pixelMap = windowSessionProperty->GetWindowMask(); MMI::WindowInfo windowInfo = { diff --git a/window_scene/test/unittest/event_distribution/scene_session_dirty_manager_test2.cpp b/window_scene/test/unittest/event_distribution/scene_session_dirty_manager_test2.cpp index 503315491889f20a6776e78b86b6ad5b18b89b0a..bcb09c08f50814a35f26d322fb76586cd71f6816 100644 --- a/window_scene/test/unittest/event_distribution/scene_session_dirty_manager_test2.cpp +++ b/window_scene/test/unittest/event_distribution/scene_session_dirty_manager_test2.cpp @@ -753,6 +753,44 @@ HWTEST_F(SceneSessionDirtyManagerTest2, GetWindowInfoWithVoiceInputPrefix, TestS EXPECT_EQ(result.first.windowNameType, 2); } + +/** + * @tc.name: GetWindowInfoWithSwitchInputMethodPrefix + * @tc.desc: windowInfo with switch input method prefix + * @tc.type: FUNC + */ +HWTEST_F(SceneSessionDirtyManagerTest2, GetWindowInfoWithSwitchInputMethodPrefix, TestSize.Level2) +{ + std::vector lastWindowInfoList; + SessionInfo info; + sptr session = new (std::nothrow) SceneSession(info, nullptr); + sptr windowSessionProperty = session->GetSessionProperty(); + session->SetSessionProperty(windowSessionProperty); + windowSessionProperty->SetWindowName("__SwitchInputMethodExample"); + + auto result = manager_->GetWindowInfo(session, SceneSessionDirtyManager::WindowAction::WINDOW_ADD); + + EXPECT_EQ(result.first.windowNameType, 2); +} + +/** + * @tc.name: GetWindowInfoWithMoreSettingPrefix + * @tc.desc: windowInfo with more setting prefix + * @tc.type: FUNC + */ +HWTEST_F(SceneSessionDirtyManagerTest2, GetWindowInfoWithMoreSettingPrefix, TestSize.Level2) +{ + std::vector lastWindowInfoList; + SessionInfo info; + sptr session = new (std::nothrow) SceneSession(info, nullptr); + sptr windowSessionProperty = session->GetSessionProperty(); + session->SetSessionProperty(windowSessionProperty); + windowSessionProperty->SetWindowName("__MoreSettingDialogExample"); + + auto result = manager_->GetWindowInfo(session, SceneSessionDirtyManager::WindowAction::WINDOW_ADD); + + EXPECT_EQ(result.first.windowNameType, 2); +} } // namespace } // namespace Rosen } // namespace OHOS