From 9946aa4a7b234c451849bd525198fa8d18e2d9e8 Mon Sep 17 00:00:00 2001 From: wangbing Date: Fri, 6 Jun 2025 17:04:20 +0800 Subject: [PATCH 1/2] call wms interface Signed-off-by: wangbing --- services/abilitymgr/include/kiosk_manager.h | 2 +- services/abilitymgr/src/kiosk_manager.cpp | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/services/abilitymgr/include/kiosk_manager.h b/services/abilitymgr/include/kiosk_manager.h index ea7cf33ae7a..0cf6d19a6c1 100644 --- a/services/abilitymgr/include/kiosk_manager.h +++ b/services/abilitymgr/include/kiosk_manager.h @@ -42,7 +42,7 @@ public: private: KioskManager() = default; DISALLOW_COPY_AND_MOVE(KioskManager); - int32_t ExitKioskModeInner(const std::string &bundleName); + int32_t ExitKioskModeInner(const std::string &bundleName, sptr callerToken = nullptr); bool IsInKioskModeInner(); void notifyKioskModeChanged(bool isInKioskMode); bool IsInWhiteListInner(const std::string &bundleName); diff --git a/services/abilitymgr/src/kiosk_manager.cpp b/services/abilitymgr/src/kiosk_manager.cpp index 75b3abacfab..6dad1f93736 100644 --- a/services/abilitymgr/src/kiosk_manager.cpp +++ b/services/abilitymgr/src/kiosk_manager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,9 +16,10 @@ #include +#include "ability_manager_errors.h" #include "ability_manager_service.h" #include "ability_record.h" -#include "ability_manager_errors.h" +#include "ability_util.h" #include "common_event.h" #include "common_event_manager.h" #include "common_event_support.h" @@ -27,6 +28,7 @@ #include "ipc_skeleton.h" #include "kiosk_manager.h" #include "permission_constants.h" +#include "session_manager_lite.h" #include "singleton.h" #include "utils/want_utils.h" @@ -75,7 +77,9 @@ int32_t KioskManager::UpdateKioskApplicationList(const std::vector for (const auto &app : appList) { whitelist_.insert(app); } - + auto sceneSessionManager = Rosen::SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy(); + CHECK_POINTER_AND_RETURN_LOG(sceneSessionManager, ERR_INVALID_VALUE, "sceneSessionManager is nullptr"); + sceneSessionManager->UpdateKioskAppList(appList); return ERR_OK; } @@ -105,7 +109,9 @@ int32_t KioskManager::EnterKioskMode(sptr callerToken) kioskStatus_.kioskBundleUid_ = IPCSkeleton::GetCallingUid(); GetEnterKioskModeCallback()(); notifyKioskModeChanged(true); - + auto sceneSessionManager = Rosen::SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy(); + CHECK_POINTER_AND_RETURN_LOG(sceneSessionManager, ERR_INVALID_VALUE, "sceneSessionManager is nullptr"); + sceneSessionManager->EnterKioskMode(callerToken); return ERR_OK; } @@ -117,10 +123,10 @@ int32_t KioskManager::ExitKioskMode(sptr callerToken) return INVALID_PARAMETERS_ERR; } std::lock_guard lock(kioskManagermutex_); - return ExitKioskModeInner(record->GetAbilityInfo().bundleName); + return ExitKioskModeInner(record->GetAbilityInfo().bundleName, callerToken); } -int32_t KioskManager::ExitKioskModeInner(const std::string & bundleName) +int32_t ExitKioskModeInner(const std::string &bundleName, sptr callerToken = nullptr); { if (!IsInWhiteListInner(bundleName)) { return ERR_KIOSK_MODE_NOT_IN_WHITELIST; @@ -132,6 +138,9 @@ int32_t KioskManager::ExitKioskModeInner(const std::string & bundleName) GetExitKioskModeCallback()(); notifyKioskModeChanged(false); kioskStatus_.Clear(); + auto sceneSessionManager = Rosen::SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy(); + CHECK_POINTER_AND_RETURN_LOG(sceneSessionManager, ERR_INVALID_VALUE, "sceneSessionManager is nullptr"); + sceneSessionManager->ExitKioskMode(callerToken); return ERR_OK; } -- Gitee From 6bc1500ab5a706cd3525c1cbd37fa5f7ceb26577 Mon Sep 17 00:00:00 2001 From: wangbing Date: Mon, 9 Jun 2025 19:55:55 +0800 Subject: [PATCH 2/2] fix issue Signed-off-by: wangbing --- services/abilitymgr/src/kiosk_manager.cpp | 4 ++-- test/unittest/ability_manager_proxy_fourth_test/BUILD.gn | 1 + test/unittest/ability_manager_service_twelfth_test/BUILD.gn | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/services/abilitymgr/src/kiosk_manager.cpp b/services/abilitymgr/src/kiosk_manager.cpp index 8d3527ab903..24cf35ac5a8 100644 --- a/services/abilitymgr/src/kiosk_manager.cpp +++ b/services/abilitymgr/src/kiosk_manager.cpp @@ -108,7 +108,7 @@ int32_t KioskManager::EnterKioskMode(sptr callerToken) kioskStatus_.kioskBundleName_ = bundleName; kioskStatus_.kioskBundleUid_ = IPCSkeleton::GetCallingUid(); GetEnterKioskModeCallback()(); - notifyKioskModeChanged(true); + NotifyKioskModeChanged(true); auto sceneSessionManager = Rosen::SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy(); CHECK_POINTER_AND_RETURN_LOG(sceneSessionManager, ERR_INVALID_VALUE, "sceneSessionManager is nullptr"); sceneSessionManager->EnterKioskMode(callerToken); @@ -126,7 +126,7 @@ int32_t KioskManager::ExitKioskMode(sptr callerToken) return ExitKioskModeInner(record->GetAbilityInfo().bundleName, callerToken); } -int32_t ExitKioskModeInner(const std::string &bundleName, sptr callerToken = nullptr); +int32_t KioskManager::ExitKioskModeInner(const std::string &bundleName, sptr callerToken) { if (!IsInWhiteListInner(bundleName)) { return ERR_KIOSK_MODE_NOT_IN_WHITELIST; diff --git a/test/unittest/ability_manager_proxy_fourth_test/BUILD.gn b/test/unittest/ability_manager_proxy_fourth_test/BUILD.gn index cb04b82cd9d..660c33c3f51 100644 --- a/test/unittest/ability_manager_proxy_fourth_test/BUILD.gn +++ b/test/unittest/ability_manager_proxy_fourth_test/BUILD.gn @@ -77,6 +77,7 @@ ohos_unittest("ability_manager_proxy_fourth_test") { "napi:ace_napi", "samgr:samgr_proxy", "hisysevent:libhisysevent", + "window_manager:session_manager_lite", ] if (background_task_mgr_continuous_task_enable) { diff --git a/test/unittest/ability_manager_service_twelfth_test/BUILD.gn b/test/unittest/ability_manager_service_twelfth_test/BUILD.gn index 3494633e378..2eecc986dcd 100644 --- a/test/unittest/ability_manager_service_twelfth_test/BUILD.gn +++ b/test/unittest/ability_manager_service_twelfth_test/BUILD.gn @@ -114,6 +114,7 @@ ohos_unittest("ability_manager_service_twelfth_test") { "relational_store:native_dataability", "safwk:api_cache_manager", "samgr:samgr_proxy", + "window_manager:session_manager_lite", ] if (ability_runtime_graphics) { -- Gitee