From 983988eb22bcfe91fe578e76ccf6dcd3d3dbc1c3 Mon Sep 17 00:00:00 2001 From: chenminghui Date: Wed, 24 Jul 2024 09:57:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8D=95=E5=8F=B7:=20issue=E5=8D=95?= =?UTF-8?q?=E5=8F=B7=EF=BC=9A#IAF4KE=20=E6=8F=8F=E8=BF=B0=EF=BC=9A?= =?UTF-8?q?=E8=A3=81=E5=89=AAdistributed=5Fnotification=5Fservice=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=20=E9=97=AE=E9=A2=98=E6=A0=B9=E5=9B=A0:=E8=A3=81?= =?UTF-8?q?=E5=89=AAdistributed=5Fnotification=5Fservice=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=20=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88:=E5=88=A0=E9=99=A4distr?= =?UTF-8?q?ibuted=5Fnotification=5Fservice=E6=A8=A1=E5=9D=97=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BB=A3=E7=A0=81=20=E6=98=AF=E5=90=A6=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=8F=98=E6=88=90=E8=A7=84=E8=8C=83=E8=87=AA=E6=A3=80?= =?UTF-8?q?=EF=BC=9AY=20=E6=98=AF=E5=90=A6=E7=BC=96=E8=AF=91=E4=B8=94?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E9=80=9A=E8=BF=87=EF=BC=9AY=20=E5=BD=B1?= =?UTF-8?q?=E5=93=8D=E7=9A=84=E8=AE=BE=E5=A4=87=E4=B8=8E=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=EF=BC=9ANA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenminghui --- ability_runtime.gni | 6 +++++ frameworks/native/ability/native/ability.cpp | 3 +++ interfaces/inner_api/wantagent/BUILD.gn | 6 ++++- .../kits/native/ability/native/ability.h | 2 ++ .../native/dummy_notification_request.h | 2 ++ .../include/mock_ability.cpp | 2 ++ .../mock_i_remote_object.h | 2 ++ .../ohos_application_test.cpp | 24 +++++++++++++++++++ .../ability_test.cpp | 2 ++ 9 files changed, 48 insertions(+), 1 deletion(-) diff --git a/ability_runtime.gni b/ability_runtime.gni index e7848c2544c..57c4204d80e 100644 --- a/ability_runtime.gni +++ b/ability_runtime.gni @@ -107,6 +107,12 @@ declare_args() { ability_runtime_use_memmgr_plugin = false ability_runtime_use_memmgr = false cj_frontend = true + pb_distributed_notification_part_enabled = true + + if (defined(global_parts_info) && + !defined(global_parts_info.notification_distributed_notification_service)) { + pb_distributed_notification_part_enabled = false + } if (!defined(global_parts_info) || defined(global_parts_info.account_os_account)) { diff --git a/frameworks/native/ability/native/ability.cpp b/frameworks/native/ability/native/ability.cpp index 06061f3e557..62f723c8900 100644 --- a/frameworks/native/ability/native/ability.cpp +++ b/frameworks/native/ability/native/ability.cpp @@ -726,8 +726,11 @@ void Ability::Dump(const std::string &extra) void Ability::Dump(const std::vector ¶ms, std::vector &info) {} + +#ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE void Ability::KeepBackgroundRunning(int id, const NotificationRequest ¬ificationRequest) {} +#endif void Ability::CancelBackgroundRunning() {} diff --git a/interfaces/inner_api/wantagent/BUILD.gn b/interfaces/inner_api/wantagent/BUILD.gn index 04aa0574bf9..630078a98a5 100644 --- a/interfaces/inner_api/wantagent/BUILD.gn +++ b/interfaces/inner_api/wantagent/BUILD.gn @@ -26,9 +26,13 @@ config("wantagent_innerkits_public_config") { "${ability_runtime_native_path}/ability/native/*", "${ability_runtime_test_path}/fuzztest/*", "${device_usage_statistics_path}/*", - "${distributed_notification_service_path}/*", ] + if (pb_distributed_notification_part_enabled) { + visibility += [ "${distributed_notification_service_path}/*" ] + defines = [ "PB_DISTRIBUTED_NOTIFICATION_ENABLE" ] + } + include_dirs = [ "${ability_base_kits_path}/configuration/include", "${ability_runtime_path}/interfaces/kits/native/ability/native", diff --git a/interfaces/kits/native/ability/native/ability.h b/interfaces/kits/native/ability/native/ability.h index 1c462cade95..3e8ba50f43e 100644 --- a/interfaces/kits/native/ability/native/ability.h +++ b/interfaces/kits/native/ability/native/ability.h @@ -727,7 +727,9 @@ public: * @param notificationRequest Indicates the NotificationRequest instance containing information for displaying a * notification bar. */ + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE virtual void KeepBackgroundRunning(int id, const NotificationRequest ¬ificationRequest) final; + #endif /** * @brief Cancels background running of this ability to free up system memory. diff --git a/interfaces/kits/native/ability/native/dummy_notification_request.h b/interfaces/kits/native/ability/native/dummy_notification_request.h index 758a1867cc4..a3b35155696 100644 --- a/interfaces/kits/native/ability/native/dummy_notification_request.h +++ b/interfaces/kits/native/ability/native/dummy_notification_request.h @@ -18,11 +18,13 @@ namespace OHOS { namespace AppExecFwk { +#ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE class NotificationRequest { public: NotificationRequest() = default; ~NotificationRequest() = default; }; +#endif } // namespace AppExecFwk } // namespace OHOS #endif // OHOS_ABILITY_RUNTIME_DUMMY_NOTIFICATION_REQUEST_H diff --git a/test/mock/frameworks_kits_ability_native_test/include/mock_ability.cpp b/test/mock/frameworks_kits_ability_native_test/include/mock_ability.cpp index 9b435821176..cfb7ca89a6d 100644 --- a/test/mock/frameworks_kits_ability_native_test/include/mock_ability.cpp +++ b/test/mock/frameworks_kits_ability_native_test/include/mock_ability.cpp @@ -201,10 +201,12 @@ void Ability::Dump(const std::string& extra) return; } +#ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE void Ability::KeepBackgroundRunning(int id, const NotificationRequest& notificationRequest) { return; } +#endif void Ability::CancelBackgroundRunning() { diff --git a/test/unittest/appkit/ohos_application_test/mock_i_remote_object.h b/test/unittest/appkit/ohos_application_test/mock_i_remote_object.h index 8dffa7a5138..66edbb244d8 100644 --- a/test/unittest/appkit/ohos_application_test/mock_i_remote_object.h +++ b/test/unittest/appkit/ohos_application_test/mock_i_remote_object.h @@ -22,6 +22,7 @@ #include "iremote_object.h" namespace OHOS { +#ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE namespace Notification { class MockIRemoteObject : public IRemoteObject { public: @@ -78,5 +79,6 @@ public: } }; } // namespace Notification +#endif } // namespace OHOS #endif diff --git a/test/unittest/appkit/ohos_application_test/ohos_application_test.cpp b/test/unittest/appkit/ohos_application_test/ohos_application_test.cpp index 224f3efac9d..e958dc633fd 100644 --- a/test/unittest/appkit/ohos_application_test/ohos_application_test.cpp +++ b/test/unittest/appkit/ohos_application_test/ohos_application_test.cpp @@ -162,12 +162,14 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_DumpApplication_010 { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_DumpApplication_0100 start."; ohosApplication_->abilityRecordMgr_ = std::make_shared(); + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr info = nullptr; std::shared_ptr record = std::make_shared(info, token); ohosApplication_->abilityRecordMgr_->abilityRecords_.emplace(token, record); ohosApplication_->DumpApplication(); EXPECT_TRUE(record != nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_DumpApplication_0100 end."; } @@ -180,6 +182,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_DumpApplication_020 { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_DumpApplication_0200 start."; ohosApplication_->abilityRecordMgr_ = std::make_shared(); + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr info = std::make_shared(); std::shared_ptr record = std::make_shared(info, token); @@ -187,6 +190,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_DumpApplication_020 ohosApplication_->abilityRecordMgr_->abilityRecords_.emplace(token, record); ohosApplication_->DumpApplication(); EXPECT_TRUE(record != nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_DumpApplication_0200 end."; } @@ -650,6 +654,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_OnConfigurationUpda Configuration config; ohosApplication_->abilityRecordMgr_ = std::make_shared(); ohosApplication_->configuration_ = std::make_shared(); + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr info = nullptr; std::shared_ptr abilityRecord = std::make_shared(info, token); @@ -659,6 +664,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_OnConfigurationUpda ohosApplication_->OnConfigurationUpdated(config); EXPECT_TRUE(!ohosApplication_->abilityRecordMgr_->abilityRecords_.empty()); EXPECT_TRUE(abilityRecord != nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_OnConfigurationUpdated_0200 end."; } @@ -770,6 +776,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_OnMemoryLevel_0100, ohosApplication_->OnMemoryLevel(level); ohosApplication_->abilityRecordMgr_ = std::make_shared(); std::shared_ptr info = nullptr; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr abilityRecord = std::make_shared(info, token); EXPECT_TRUE(abilityRecord != nullptr); @@ -778,6 +785,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_OnMemoryLevel_0100, abilityRecord->SetAbilityThread(abilityThread); ohosApplication_->OnMemoryLevel(level); EXPECT_FALSE(ohosApplication_->abilityRecordMgr_->abilityRecords_.empty()); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_OnMemoryLevel_0100 end."; } @@ -886,6 +894,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_020 HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_0300, TestSize.Level1) { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0300 start."; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr info = nullptr; std::shared_ptr abilityRecord = std::make_shared(info, token); @@ -893,6 +902,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_030 auto callback = [](const std::shared_ptr &) {}; bool isAsyncCallback = false; ohosApplication_->AddAbilityStage(abilityRecord, callback, isAsyncCallback); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0300 end."; } @@ -906,6 +916,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_040 GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0400 start."; std::shared_ptr info = std::make_shared(); info->applicationInfo.multiProjects = true; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr abilityRecord = std::make_shared(info, token); auto want = std::make_shared(); @@ -914,6 +925,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_040 bool isAsyncCallback = false; ohosApplication_->AddAbilityStage(abilityRecord, callback, isAsyncCallback); EXPECT_FALSE(ohosApplication_->abilityStages_.empty()); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0400 end."; } @@ -925,6 +937,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_040 HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_0500, TestSize.Level1) { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0500 start."; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr info = nullptr; std::string moduleName = "entry"; @@ -937,6 +950,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_050 ohosApplication_->AddAbilityStage(abilityRecord, callback, isAsyncCallback); EXPECT_FALSE(ohosApplication_->abilityStages_.empty()); EXPECT_TRUE(abilityStages != nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0500 end."; } @@ -948,6 +962,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_050 HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_0600, TestSize.Level1) { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0600 start."; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token; std::shared_ptr info = std::make_shared(); info->moduleName = "entry"; @@ -957,6 +972,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_060 ohosApplication_->AddAbilityStage(abilityRecord, callback, isAsyncCallback); ohosApplication_->AddAbilityStage(abilityRecord, callback, isAsyncCallback); EXPECT_TRUE(token == nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0600 end."; } @@ -968,6 +984,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_060 HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_0700, TestSize.Level1) { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0700 start."; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); std::shared_ptr info = std::make_shared(); std::shared_ptr abilityRecord = std::make_shared(info, token); @@ -976,6 +993,7 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_AddAbilityStage_070 bool isAsyncCallback = false; ohosApplication_->AddAbilityStage(abilityRecord, callback, isAsyncCallback); EXPECT_TRUE(token != nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_AddAbilityStage_0700 end."; } @@ -1087,8 +1105,10 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0 { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0100 start."; std::shared_ptr abilityInfo = nullptr; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); ohosApplication_->CleanAbilityStage(token, abilityInfo); + #endif EXPECT_TRUE(abilityInfo == nullptr); GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0100 end."; } @@ -1102,9 +1122,11 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0 { GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0200 start."; std::shared_ptr abilityInfo = std::make_shared(); + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = nullptr; ohosApplication_->CleanAbilityStage(token, abilityInfo); EXPECT_TRUE(token == nullptr); + #endif GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0200 end."; } @@ -1120,10 +1142,12 @@ HWTEST_F(OHOSApplicationTest, AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0 EXPECT_TRUE(ohosApplication_->abilityStages_.empty()); abilityInfo->moduleName = "entry"; std::shared_ptr abilityStage = std::make_shared(); + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE sptr token = new (std::nothrow) Notification::MockIRemoteObject(); ohosApplication_->abilityStages_.emplace(abilityInfo->moduleName, abilityStage); EXPECT_FALSE(ohosApplication_->abilityStages_.empty()); ohosApplication_->CleanAbilityStage(token, abilityInfo); + #endif EXPECT_TRUE(ohosApplication_->abilityStages_.empty()); GTEST_LOG_(INFO) << "AppExecFwk_OHOSApplicationTest_CleanAbilityStage_0300 end."; } diff --git a/test/unittest/frameworks_kits_ability_native_test/ability_test.cpp b/test/unittest/frameworks_kits_ability_native_test/ability_test.cpp index 0836b5812c6..7359013fa6e 100644 --- a/test/unittest/frameworks_kits_ability_native_test/ability_test.cpp +++ b/test/unittest/frameworks_kits_ability_native_test/ability_test.cpp @@ -2058,8 +2058,10 @@ HWTEST_F(AbilityBaseTest, AbilityBackgroundRunning_0100, TestSize.Level1) ability->StartBackgroundRunning(wantAgent); int id = 0; + #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE NotificationRequest notificationRequest; ability->KeepBackgroundRunning(id, notificationRequest); + #endif ability->CancelBackgroundRunning(); -- Gitee From c9587ab5628f25ab60509e4815ec9bb7b79cfed3 Mon Sep 17 00:00:00 2001 From: chenminghui Date: Wed, 24 Jul 2024 10:58:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8D=95=E5=8F=B7:=20issue=E5=8D=95?= =?UTF-8?q?=E5=8F=B7=EF=BC=9A#IAF4KE=20=E6=8F=8F=E8=BF=B0=EF=BC=9A?= =?UTF-8?q?=E8=A3=81=E5=89=AAdistributed=5Fnotification=5Fservice=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=20=E9=97=AE=E9=A2=98=E6=A0=B9=E5=9B=A0:=E8=A3=81?= =?UTF-8?q?=E5=89=AAdistributed=5Fnotification=5Fservice=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=20=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88:=E5=88=A0=E9=99=A4distr?= =?UTF-8?q?ibuted=5Fnotification=5Fservice=E6=A8=A1=E5=9D=97=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BB=A3=E7=A0=81=20=E6=98=AF=E5=90=A6=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=8F=98=E6=88=90=E8=A7=84=E8=8C=83=E8=87=AA=E6=A3=80?= =?UTF-8?q?=EF=BC=9AY=20=E6=98=AF=E5=90=A6=E7=BC=96=E8=AF=91=E4=B8=94?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E9=80=9A=E8=BF=87=EF=BC=9AY=20=E5=BD=B1?= =?UTF-8?q?=E5=93=8D=E7=9A=84=E8=AE=BE=E5=A4=87=E4=B8=8E=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=EF=BC=9ANA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenminghui --- ability_runtime.gni | 4 ++-- frameworks/native/ability/native/ability.cpp | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ability_runtime.gni b/ability_runtime.gni index 57c4204d80e..115e219246b 100644 --- a/ability_runtime.gni +++ b/ability_runtime.gni @@ -109,8 +109,8 @@ declare_args() { cj_frontend = true pb_distributed_notification_part_enabled = true - if (defined(global_parts_info) && - !defined(global_parts_info.notification_distributed_notification_service)) { + if (defined(global_parts_info) && !defined( + global_parts_info.notification_distributed_notification_service)) { pb_distributed_notification_part_enabled = false } diff --git a/frameworks/native/ability/native/ability.cpp b/frameworks/native/ability/native/ability.cpp index 62f723c8900..c84335b91d9 100644 --- a/frameworks/native/ability/native/ability.cpp +++ b/frameworks/native/ability/native/ability.cpp @@ -726,7 +726,6 @@ void Ability::Dump(const std::string &extra) void Ability::Dump(const std::vector ¶ms, std::vector &info) {} - #ifdef PB_DISTRIBUTED_NOTIFICATION_ENABLE void Ability::KeepBackgroundRunning(int id, const NotificationRequest ¬ificationRequest) {} -- Gitee