From d10fd1012fc8a452d4c01d1cb1d5a9b72ff17fd3 Mon Sep 17 00:00:00 2001 From: db Date: Tue, 24 Oct 2023 17:21:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=B2=89=E6=B5=B8=E5=BC=8F=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: db --- interfaces/innerkits/wm/window.h | 7 ++ .../window_runtime/window_napi/js_window.cpp | 88 +++++++++++++++++++ .../window_runtime/window_napi/js_window.h | 2 + .../include/scene_session_manager.h | 1 + .../session_manager/include/session_manager.h | 1 + .../zidl/scene_session_manager_interface.h | 2 + .../zidl/scene_session_manager_proxy.h | 1 + .../include/zidl/scene_session_manager_stub.h | 1 + .../src/scene_session_manager.cpp | 37 ++++++++ .../session_manager/src/session_manager.cpp | 12 +++ .../src/zidl/scene_session_manager_proxy.cpp | 38 ++++++++ .../src/zidl/scene_session_manager_stub.cpp | 18 ++++ wm/include/window_scene_session_impl.h | 1 + wm/src/window_scene_session_impl.cpp | 19 ++++ 14 files changed, 228 insertions(+) diff --git a/interfaces/innerkits/wm/window.h b/interfaces/innerkits/wm/window.h index 2703d12b8d..d83a837914 100644 --- a/interfaces/innerkits/wm/window.h +++ b/interfaces/innerkits/wm/window.h @@ -1376,6 +1376,13 @@ public: * @return True means floating window of app type, false means the opposite. */ virtual bool IsFloatingWindowAppType() const { return false; } + + /** + * @brief Is current window immersive or not. + * + * @return True means current app window is immersive, false means the opposite. + */ + virtual bool IsImmersiveFullScreen() const { return false; } }; } } diff --git a/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp b/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp index 7f7feaa308..77e8ab4b11 100644 --- a/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp +++ b/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp @@ -456,6 +456,13 @@ napi_value JsWindow::HideNonSystemFloatingWindows(napi_env env, napi_callback_in return (me != nullptr) ? me->OnHideNonSystemFloatingWindows(env, info) : nullptr; } +napi_value JsWindow::IsImmersiveFullScreen(napi_env env, napi_callback_info info) +{ + WLOGI("IsImmersiveFullScreen"); + JsWindow* me = CheckParamsAndGetThis(env, info); + return (me != nullptr) ? me->OnIsImmersiveFullScreen(env, info) : nullptr; +} + napi_value JsWindow::SetWindowTouchable(napi_env env, napi_callback_info info) { WLOGI("SetTouchable"); @@ -3234,6 +3241,86 @@ napi_value JsWindow::OnRaiseAboveTarget(napi_env env, napi_callback_info info) return result; } +napi_value JsWindow::OnIsImmersiveFullScreen(napi_env env, napi_callback_info info) +{ + WMError errCode = WMError::WM_OK; + size_t argc = 4; + napi_value argv[4] = {nullptr}; + napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr); + if (argc > 1) { + WLOGFE("Argc is invalid: %{public}zu", argc); + errCode = WMError::WM_ERROR_INVALID_PARAM; + } + wptr weakToken(windowToken_); + NapiAsyncTask::CompleteCallback complete = + [weakToken, errCode](napi_env env, NapiAsyncTask& task, int32_t status) { + auto weakWindow = weakToken.promote(); + if (weakWindow == nullptr) { + WLOGFE("window is nullptr"); + task.Reject(env, CreateJsError(env, static_cast(WMError::WM_ERROR_NULLPTR))); + return; + } + if (errCode != WMError::WM_OK) { + WLOGFE("window is nullptr or get invalid params"); + task.Reject(env, CreateJsError(env, static_cast(errCode))); + return; + } + + WMError ret = weakWindow->IsImmersiveFullScreen(); + if (ret == WMError::WM_OK) { + task.Resolve(env, NapiGetUndefined(env)); + } else { + task.Reject(env, CreateJsError(env, static_cast(ret), "Not in immersive scene.")); + } + WLOGI("Window [%{public}u, %{public}s]. Judge immersive scene end, ret = %{public}d", + weakWindow->GetWindowId(), weakWindow->GetWindowName().c_str(), ret); + }; + + napi_value lastParam = (argc == 0) ? nullptr : (GetType(env, argv[0]) == napi_function ? argv[0] : nullptr); + napi_value result = nullptr; + NapiAsyncTask::Schedule("JsWindow::OnIsImmersiveFullScreen", + env, CreateAsyncTaskWithLastParam(env, lastParam, nullptr, std::move(complete), &result)); + return result; +} + +napi_value JsWindow::OnIsImmersiveFullScreen(napi_env env, napi_callback_info info) +{ + WMError errCode = WMError::WM_OK; + size_t argc = 4; + napi_value argv[4] = {nullptr}; + napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr); + if (argc > 1) { + WLOGFE("Argc is invalid: %{public}zu", argc); + errCode = WMError::WM_ERROR_INVALID_PARAM; + } + wptr weakToken(windowToken_); + NapiAsyncTask::CompleteCallback complete = + [weakToken, errCode](napi_env env, NapiAsyncTask& task, int32_t status) { + auto weakWindow = weakToken.promote(); + if (weakWindow == nullptr) { + WLOGFE("window is nullptr"); + task.Reject(env, CreateJsError(env, static_cast(WMError::WM_ERROR_NULLPTR))); + return; + } + if (errCode != WMError::WM_OK) { + WLOGFE("window is nullptr or get invalid params"); + task.Reject(env, CreateJsError(env, static_cast(errCode))); + return; + } + + bool ret = weakWindow->IsImmersiveFullScreen(); + task.Resolve(env, CreateJsValue(env, ret)); + WLOGI("Window [%{public}u, %{public}s]. Judge immersive scene end, ret = %{public}d", + weakWindow->GetWindowId(), weakWindow->GetWindowName().c_str(), ret); + }; + + napi_value lastParam = (argc == 0) ? nullptr : (GetType(env, argv[0]) == napi_function ? argv[0] : nullptr); + napi_value result = nullptr; + NapiAsyncTask::Schedule("JsWindow::OnIsImmersiveFullScreen", + env, CreateAsyncTaskWithLastParam(env, lastParam, nullptr, std::move(complete), &result)); + return result; +} + napi_value JsWindow::OnSetWindowTouchable(napi_env env, napi_callback_info info) { WmErrorCode errCode = WmErrorCode::WM_OK; @@ -4599,6 +4686,7 @@ void BindFunctions(napi_env env, napi_value object, const char *moduleName) BindNativeFunction(env, object, "raiseAboveTarget", moduleName, JsWindow::RaiseAboveTarget); BindNativeFunction(env, object, "hideNonSystemFloatingWindows", moduleName, JsWindow::HideNonSystemFloatingWindows); + BindNativeFunction(env, object, "isImmersiveFullScreen", moduleName, JsWindow::IsImmersiveFullScreen); } } // namespace Rosen } // namespace OHOS diff --git a/interfaces/kits/napi/window_runtime/window_napi/js_window.h b/interfaces/kits/napi/window_runtime/window_napi/js_window.h index a0b3e7c1b0..6087dfd961 100644 --- a/interfaces/kits/napi/window_runtime/window_napi/js_window.h +++ b/interfaces/kits/napi/window_runtime/window_napi/js_window.h @@ -104,6 +104,7 @@ public: static napi_value ResetAspectRatio(napi_env env, napi_callback_info info); static napi_value Minimize(napi_env env, napi_callback_info info); static napi_value RaiseAboveTarget(napi_env env, napi_callback_info info); + static napi_value IsImmersiveFullScreen(napi_env env, napi_callback_info info); // colorspace, gamut static napi_value IsSupportWideGamut(napi_env env, napi_callback_info info); @@ -208,6 +209,7 @@ private: napi_value OnSetForbidSplitMove(napi_env env, napi_callback_info info); napi_value OnSnapshot(napi_env env, napi_callback_info info); napi_value OnSetSnapshotSkip(napi_env env, napi_callback_info info); + napi_value OnIsImmersiveFullScreen(napi_env env, napi_callback_info info); // animation Config napi_value OnOpacity(napi_env env, napi_callback_info info); diff --git a/window_scene/session_manager/include/scene_session_manager.h b/window_scene/session_manager/include/scene_session_manager.h index 961d028c29..8176ad26a3 100644 --- a/window_scene/session_manager/include/scene_session_manager.h +++ b/window_scene/session_manager/include/scene_session_manager.h @@ -204,6 +204,7 @@ public: sptr FindSessionByAffinity(std::string affinity); void PreloadInLakeApp(const std::string& bundleName); void AddWindowDragHotArea(int32_t type, WSRect& area); + WSError IsImmersiveFullScreen(); public: std::shared_ptr GetTaskScheduler() {return taskScheduler_;}; protected: diff --git a/window_scene/session_manager/include/session_manager.h b/window_scene/session_manager/include/session_manager.h index ce886417c0..8fdf49aaf6 100644 --- a/window_scene/session_manager/include/session_manager.h +++ b/window_scene/session_manager/include/session_manager.h @@ -46,6 +46,7 @@ public: sptr GetSceneSessionManagerProxy(); sptr GetScreenSessionManagerProxy(); + WMError IsImmersiveFullScreen(); protected: SessionManager() = default; diff --git a/window_scene/session_manager/include/zidl/scene_session_manager_interface.h b/window_scene/session_manager/include/zidl/scene_session_manager_interface.h index 36a0f151a8..5fd5f6dd09 100644 --- a/window_scene/session_manager/include/zidl/scene_session_manager_interface.h +++ b/window_scene/session_manager/include/zidl/scene_session_manager_interface.h @@ -87,6 +87,7 @@ public: TRANS_ID_REGISTER_COLLABORATOR, TRANS_ID_UNREGISTER_COLLABORATOR, TRANS_ID_UPDATE_TOUCHOUTSIDE_LISTENER, + TRANS_ID_IMMERSIVE_FULLSCREEN, }; virtual WSError CreateAndConnectSpecificSession(const sptr& sessionStage, @@ -133,6 +134,7 @@ public: virtual WSError RegisterIAbilityManagerCollaborator(int32_t type, const sptr &impl) = 0; virtual WSError UnregisterIAbilityManagerCollaborator(int32_t type) = 0; + virtual WSError IsImmersiveFullScreen() = 0; // interfaces of IWindowManager WMError CreateWindow(sptr& window, sptr& property, const std::shared_ptr& surfaceNode, diff --git a/window_scene/session_manager/include/zidl/scene_session_manager_proxy.h b/window_scene/session_manager/include/zidl/scene_session_manager_proxy.h index 46d986824f..ecb6feafd1 100644 --- a/window_scene/session_manager/include/zidl/scene_session_manager_proxy.h +++ b/window_scene/session_manager/include/zidl/scene_session_manager_proxy.h @@ -78,6 +78,7 @@ public: WSError RegisterIAbilityManagerCollaborator(int32_t type, const sptr &impl) override; WSError UnregisterIAbilityManagerCollaborator(int32_t type) override; + WSError IsImmersiveFullScreen() override; private: template diff --git a/window_scene/session_manager/include/zidl/scene_session_manager_stub.h b/window_scene/session_manager/include/zidl/scene_session_manager_stub.h index 5be96376e0..5d566f1886 100644 --- a/window_scene/session_manager/include/zidl/scene_session_manager_stub.h +++ b/window_scene/session_manager/include/zidl/scene_session_manager_stub.h @@ -77,6 +77,7 @@ private: int HandleRegisterCollaborator(MessageParcel &data, MessageParcel &reply); int HandleUnregisterCollaborator(MessageParcel &data, MessageParcel &reply); int HandleUpdateSessionTouchOutsideListener(MessageParcel& data, MessageParcel& reply); + int HandleIsImmersiveFullScreen(MessageParcel &data, MessageParcel &reply); }; } // namespace OHOS::Rosen #endif // OHOS_ROSEN_WINDOW_SCENE_SESSION_MANAGER_STUB_H \ No newline at end of file diff --git a/window_scene/session_manager/src/scene_session_manager.cpp b/window_scene/session_manager/src/scene_session_manager.cpp index 8d82ea3076..4f9777b42e 100644 --- a/window_scene/session_manager/src/scene_session_manager.cpp +++ b/window_scene/session_manager/src/scene_session_manager.cpp @@ -740,6 +740,43 @@ std::vector> SceneSessionManager::GetSceneSessionVectorByType return sceneSessionVector; } +WSError SceneSessionManager::IsImmersiveFullScreen() { + std::shared_lock lock(sceneSessionMapMutex_); + for (auto item = sceneSessionMap_.begin(); item != sceneSessionMap_.end(); ++item) { + auto sceneSession = item->second; + if (sceneSession == nullptr) { + WLOGFE("Session is nullptr"); + continue; + } + auto windowType = sceneSession->GetWindowType(); + if (!WindowHelper::IsMainWindow(windowType)) { + continue; + } + auto state = sceneSession->GetSessionState(); + if (state != SessionState::STATE_FOREGROUND && state != SessionState::STATE_ACTIVE) { + continue; + } + auto windowMode = sceneSession->GetWindowMode(); + if (windowMode != WindowMode::WINDOW_MODE_FULLSCREEN) { + continue; + } + auto property = sceneSession->GetSessionProperty(); + if (property == nullptr) { + WLOGFE("Property is nullptr"); + continue; + } + auto sysBarProperty = property->GetSystemBarProperty(); + if (sysBarProperty[WindowType::WINDOW_TYPE_STATUS_BAR].enable_ == false) { + WLOGFD("Current scene is immersive"); + return WSError::WS_OK; + } else { + WLOGFD("Current scene is not immersive"); + return WSError::WS_DO_NOTHING; + } + } + return WSError::WS_DO_NOTHING; +} + WSError SceneSessionManager::UpdateParentSessionForDialog(const sptr& sceneSession, sptr property) { diff --git a/window_scene/session_manager/src/session_manager.cpp b/window_scene/session_manager/src/session_manager.cpp index e9bfd22c1a..e537124e22 100644 --- a/window_scene/session_manager/src/session_manager.cpp +++ b/window_scene/session_manager/src/session_manager.cpp @@ -240,4 +240,16 @@ WMError SessionManager::BindDialogTarget(uint64_t persistentId, sptr(sceneSessionManagerProxy_->BindDialogTarget(persistentId, targetToken)); } + +WMError SessionManager::IsImmersiveFullScreen() +{ + WLOGFD("IsImmersiveFullScreen"); + std::lock_guard lock(mutex_); + GetSceneSessionManagerProxy(); + if (!sceneSessionManagerProxy_) { + WLOGFE("sceneSessionManagerProxy_ is nullptr"); + return WMError::WM_DO_NOTHING; + } + return static_cast(sceneSessionManagerProxy_->IsImmersiveFullScreen()); +} } // namespace OHOS::Rosen diff --git a/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp b/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp index 37400a1838..7a14522493 100644 --- a/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp +++ b/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp @@ -171,6 +171,44 @@ WSError SceneSessionManagerProxy::BindDialogTarget(uint64_t persistentId, sptr(ret); } +WSError SceneSessionManagerProxy::IsImmersiveFullScreen() +{ + MessageParcel data; + MessageParcel reply; + MessageOption option(MessageOption::TF_SYNC); + if (!data.WriteInterfaceToken(GetDescriptor())) { + WLOGFE("IsImmersiveFullScreen WriteInterfaceToken failed"); + return WSError::WS_ERROR_IPC_FAILED; + } + + if (Remote()->SendRequest(static_cast(SceneSessionManagerMessage::TRANS_ID_IMMERSIVE_FULLSCREEN), + data, reply, option) != ERR_NONE) { + WLOGFE("SendRequest failed"); + return WSError::WS_ERROR_IPC_FAILED; + } + int32_t ret = reply.ReadInt32(); + return static_cast(ret); +} + +WSError SceneSessionManagerProxy::IsImmersiveFullScreen() +{ + MessageParcel data; + MessageParcel reply; + MessageOption option(MessageOption::TF_SYNC); + if (!data.WriteInterfaceToken(GetDescriptor())) { + WLOGFE("IsImmersiveFullScreen WriteInterfaceToken failed"); + return WSError::WS_ERROR_IPC_FAILED; + } + + if (Remote()->SendRequest(static_cast(SceneSessionManagerMessage::TRANS_ID_IMMERSIVE_FULLSCREEN), + data, reply, option) != ERR_NONE) { + WLOGFE("SendRequest failed"); + return WSError::WS_ERROR_IPC_FAILED; + } + int32_t ret = reply.ReadInt32(); + return static_cast(ret); +} + WSError SceneSessionManagerProxy::UpdateSessionAvoidAreaListener(int32_t& persistentId, bool haveListener) { MessageParcel data; diff --git a/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp b/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp index 4a50038ae4..5b19cdb0d6 100644 --- a/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp +++ b/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp @@ -113,6 +113,8 @@ const std::map SceneSessionManagerStub::s &SceneSessionManagerStub::HandleUnregisterCollaborator), std::make_pair(static_cast(SceneSessionManagerMessage::TRANS_ID_UPDATE_TOUCHOUTSIDE_LISTENER), &SceneSessionManagerStub::HandleUpdateSessionTouchOutsideListener), + std::make_pair(static_cast(SceneSessionManagerMessage::TRANS_ID_IMMERSIVE_FULLSCREEN), + &SceneSessionManagerStub::HandleIsImmersiveFullScreen), }; int SceneSessionManagerStub::OnRemoteRequest(uint32_t code, @@ -524,6 +526,22 @@ int SceneSessionManagerStub::HandleBindDialogTarget(MessageParcel &data, Message return ERR_NONE; } +int SceneSessionManagerStub::HandleIsImmersiveFullScreen(MessageParcel &data, MessageParcel &reply) +{ + WLOGFI("run HandleIsImmersiveFullScreen!"); + const WSError& ret = IsImmersiveFullScreen(); + reply.WriteUint32(static_cast(ret)); + return ERR_NONE; +} + +int SceneSessionManagerStub::HandleIsImmersiveFullScreen(MessageParcel &data, MessageParcel &reply) +{ + WLOGFI("run HandleIsImmersiveFullScreen!"); + const WSError& ret = IsImmersiveFullScreen(); + reply.WriteUint32(static_cast(ret)); + return ERR_NONE; +} + int SceneSessionManagerStub::HandleNotifyDumpInfoResult(MessageParcel &data, MessageParcel &reply) { WLOGFI("HandleNotifyDumpInfoResult"); diff --git a/wm/include/window_scene_session_impl.h b/wm/include/window_scene_session_impl.h index 272bdc42ac..a7befa366f 100644 --- a/wm/include/window_scene_session_impl.h +++ b/wm/include/window_scene_session_impl.h @@ -76,6 +76,7 @@ public: WMError SetLayoutFullScreen(bool status) override; WMError SetFullScreen(bool status) override; WMError BindDialogTarget(sptr targetToken) override; + WMError IsImmersiveFullScreen() override; static void UpdateConfigurationForAll(const std::shared_ptr& configuration); static sptr GetTopWindowWithContext(const std::shared_ptr& context = nullptr); static sptr GetTopWindowWithId(uint32_t mainWinId); diff --git a/wm/src/window_scene_session_impl.cpp b/wm/src/window_scene_session_impl.cpp index 50da352e2c..41add776bd 100644 --- a/wm/src/window_scene_session_impl.cpp +++ b/wm/src/window_scene_session_impl.cpp @@ -1877,6 +1877,25 @@ WMError WindowSceneSessionImpl::BindDialogTarget(sptr targetToken return ret; } +WMError WindowSceneSessionImpl::IsImmersiveFullScreen() +{ + WMError ret = SessionManager::GetInstance().IsImmersiveFullScreen(); + if (ret != WMError::WM_OK) { + WLOGFE("Non immersive scene exists. errCode:%{public}d", static_cast(ret)); + } + return ret; +} + +bool WindowSceneSessionImpl::IsImmersiveFullScreen() const +{ + WMError ret = SessionManager::GetInstance().IsImmersiveFullScreen(); + if (ret != WMError::WM_OK) { + WLOGFE("Non immersive scene exists. errCode:%{public}d", static_cast(ret)); + return false; + } + return true; +} + WMError WindowSceneSessionImpl::SetTouchHotAreas(const std::vector& rects) { if (property_ == nullptr) { -- Gitee From ca16c656cba48e3faf1cd05c06c5ac81560b67dc Mon Sep 17 00:00:00 2001 From: db Date: Thu, 26 Oct 2023 18:20:30 +0800 Subject: [PATCH 2/2] remove redundant code Signed-off-by: db --- .../window_runtime/window_napi/js_window.cpp | 8 ++------ .../src/zidl/scene_session_manager_proxy.cpp | 19 ------------------- .../src/zidl/scene_session_manager_stub.cpp | 8 -------- wm/include/window_scene_session_impl.h | 2 +- wm/src/window_scene_session_impl.cpp | 10 ---------- 5 files changed, 3 insertions(+), 44 deletions(-) diff --git a/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp b/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp index 77e8ab4b11..7f1dd8cbdc 100644 --- a/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp +++ b/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp @@ -3266,12 +3266,8 @@ napi_value JsWindow::OnIsImmersiveFullScreen(napi_env env, napi_callback_info in return; } - WMError ret = weakWindow->IsImmersiveFullScreen(); - if (ret == WMError::WM_OK) { - task.Resolve(env, NapiGetUndefined(env)); - } else { - task.Reject(env, CreateJsError(env, static_cast(ret), "Not in immersive scene.")); - } + bool ret = weakWindow->IsImmersiveFullScreen(); + task.Resolve(env, CreateJsValue(env, ret)); WLOGI("Window [%{public}u, %{public}s]. Judge immersive scene end, ret = %{public}d", weakWindow->GetWindowId(), weakWindow->GetWindowName().c_str(), ret); }; diff --git a/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp b/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp index 7a14522493..969b282f2c 100644 --- a/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp +++ b/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp @@ -190,25 +190,6 @@ WSError SceneSessionManagerProxy::IsImmersiveFullScreen() return static_cast(ret); } -WSError SceneSessionManagerProxy::IsImmersiveFullScreen() -{ - MessageParcel data; - MessageParcel reply; - MessageOption option(MessageOption::TF_SYNC); - if (!data.WriteInterfaceToken(GetDescriptor())) { - WLOGFE("IsImmersiveFullScreen WriteInterfaceToken failed"); - return WSError::WS_ERROR_IPC_FAILED; - } - - if (Remote()->SendRequest(static_cast(SceneSessionManagerMessage::TRANS_ID_IMMERSIVE_FULLSCREEN), - data, reply, option) != ERR_NONE) { - WLOGFE("SendRequest failed"); - return WSError::WS_ERROR_IPC_FAILED; - } - int32_t ret = reply.ReadInt32(); - return static_cast(ret); -} - WSError SceneSessionManagerProxy::UpdateSessionAvoidAreaListener(int32_t& persistentId, bool haveListener) { MessageParcel data; diff --git a/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp b/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp index 5b19cdb0d6..65b717dba5 100644 --- a/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp +++ b/window_scene/session_manager/src/zidl/scene_session_manager_stub.cpp @@ -534,14 +534,6 @@ int SceneSessionManagerStub::HandleIsImmersiveFullScreen(MessageParcel &data, Me return ERR_NONE; } -int SceneSessionManagerStub::HandleIsImmersiveFullScreen(MessageParcel &data, MessageParcel &reply) -{ - WLOGFI("run HandleIsImmersiveFullScreen!"); - const WSError& ret = IsImmersiveFullScreen(); - reply.WriteUint32(static_cast(ret)); - return ERR_NONE; -} - int SceneSessionManagerStub::HandleNotifyDumpInfoResult(MessageParcel &data, MessageParcel &reply) { WLOGFI("HandleNotifyDumpInfoResult"); diff --git a/wm/include/window_scene_session_impl.h b/wm/include/window_scene_session_impl.h index a7befa366f..cee01133f7 100644 --- a/wm/include/window_scene_session_impl.h +++ b/wm/include/window_scene_session_impl.h @@ -76,7 +76,7 @@ public: WMError SetLayoutFullScreen(bool status) override; WMError SetFullScreen(bool status) override; WMError BindDialogTarget(sptr targetToken) override; - WMError IsImmersiveFullScreen() override; + bool IsImmersiveFullScreen() const override; static void UpdateConfigurationForAll(const std::shared_ptr& configuration); static sptr GetTopWindowWithContext(const std::shared_ptr& context = nullptr); static sptr GetTopWindowWithId(uint32_t mainWinId); diff --git a/wm/src/window_scene_session_impl.cpp b/wm/src/window_scene_session_impl.cpp index 41add776bd..0a9ad9e04b 100644 --- a/wm/src/window_scene_session_impl.cpp +++ b/wm/src/window_scene_session_impl.cpp @@ -1886,16 +1886,6 @@ WMError WindowSceneSessionImpl::IsImmersiveFullScreen() return ret; } -bool WindowSceneSessionImpl::IsImmersiveFullScreen() const -{ - WMError ret = SessionManager::GetInstance().IsImmersiveFullScreen(); - if (ret != WMError::WM_OK) { - WLOGFE("Non immersive scene exists. errCode:%{public}d", static_cast(ret)); - return false; - } - return true; -} - WMError WindowSceneSessionImpl::SetTouchHotAreas(const std::vector& rects) { if (property_ == nullptr) { -- Gitee