diff --git a/ability_runtime.gni b/ability_runtime.gni index 4858303cf6b44dcdc8543f7c81f4c2bc0c7fa905..0602f9cd8639835fffe2c7fcc79a49bf427ef098 100644 --- a/ability_runtime.gni +++ b/ability_runtime.gni @@ -108,6 +108,12 @@ declare_args() { cj_frontend = true ability_runtime_app_no_response_dialog = false include_app_domain_verify = 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 ce200a4b0537fa4678dfe47a76bee7fa54173501..f3f4064492d7297379dc6d8788428c5eab07c2f6 100644 --- a/frameworks/native/ability/native/ability.cpp +++ b/frameworks/native/ability/native/ability.cpp @@ -732,8 +732,10 @@ 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 9defdd8b9b4f96449fe344d3d845e062ff93fed5..10a247349c629c00889c5ba891e9da09e0dac1c9 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_runtime_path}/interfaces/kits/native/ability/native", "${ability_runtime_innerkits_path}/ability_manager/include", diff --git a/interfaces/kits/native/ability/native/ability.h b/interfaces/kits/native/ability/native/ability.h index 9cdab9c94684530d1b6fd0a588a410a252efd422..5e38d250d339521def355db60bc26de210e86b44 100644 --- a/interfaces/kits/native/ability/native/ability.h +++ b/interfaces/kits/native/ability/native/ability.h @@ -729,7 +729,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 758a1867cc4958ea5168c93c78f8c77c7303302c..a3b35155696b2b01927ac41d9e8952a0b7e78dd5 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 bda59e0ad295b07b2272fcbefa715bc51ef7f237..e685bdf35601fd454bf4bb7cf6f151541f75d847 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 @@ -200,10 +200,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 8dffa7a513854ab20738eb9c08d97f06c75b48f4..66edbb244d8b0d770b560d3e3f48e4f204ebe11a 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 257f537eb95a933f31cab95994124c315cb7753c..3fa261da172d82e6ed6b0f12ed380ca4dc756577 100644 --- a/test/unittest/appkit/ohos_application_test/ohos_application_test.cpp +++ b/test/unittest/appkit/ohos_application_test/ohos_application_test.cpp @@ -161,12 +161,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."; } @@ -179,6 +181,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); @@ -186,6 +189,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."; } @@ -649,6 +653,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); @@ -658,6 +663,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."; } @@ -769,6 +775,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); @@ -777,6 +784,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."; } @@ -885,6 +893,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); @@ -892,6 +901,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."; } @@ -905,6 +915,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(); @@ -913,6 +924,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."; } @@ -924,6 +936,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"; @@ -936,6 +949,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."; } @@ -947,6 +961,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"; @@ -956,6 +971,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."; } @@ -967,6 +983,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); @@ -975,6 +992,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."; } @@ -1086,8 +1104,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."; } @@ -1101,9 +1121,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."; } @@ -1119,10 +1141,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 c40139cc34dcc0a0207a027d04c90006bc897514..7292a6f8c9ff3fa9528b5b27c6dc00062fd1e40f 100644 --- a/test/unittest/frameworks_kits_ability_native_test/ability_test.cpp +++ b/test/unittest/frameworks_kits_ability_native_test/ability_test.cpp @@ -2057,8 +2057,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();