diff --git a/services/ans/include/reminder_data_manager.h b/services/ans/include/reminder_data_manager.h index 9654ff16e0d8512a9acea98b2be683de942ce296..dde92f1edbab02f19454af2c0127623edb2dd96b 100644 --- a/services/ans/include/reminder_data_manager.h +++ b/services/ans/include/reminder_data_manager.h @@ -646,6 +646,8 @@ private: */ int32_t alertingReminderId_ = -1; sptr alertingReminder_ = nullptr; + + std::vector> reissueReminder_; #ifdef PLAYER_FRAMEWORK_ENABLE std::shared_ptr soundPlayer_ = nullptr; #endif diff --git a/services/ans/src/reminder_data_manager.cpp b/services/ans/src/reminder_data_manager.cpp index a1061d2b0f4fe9acbda8a16b748dbf8e956cc6f7..c929abc67810bbcbd026145cf5dd110e8ba111f0 100644 --- a/services/ans/src/reminder_data_manager.cpp +++ b/services/ans/src/reminder_data_manager.cpp @@ -1340,6 +1340,7 @@ void ReminderDataManager::Init(bool isFromBootComplete) ANSR_LOGD("ReminderDataManager Init, isFromBootComplete:%{public}d", isFromBootComplete); if (isFromBootComplete) { InitStartExtensionAbility(); + HandleImmediatelyShow(reissueReminder_, false); } if (IsReminderAgentReady()) { return; @@ -1388,6 +1389,13 @@ void ReminderDataManager::InitStartExtensionAbility() std::lock_guard lock(ReminderDataManager::MUTEX); for (auto it = reminderVector_.begin(); it != reminderVector_.end(); ++it) { ReminderDataManager::AsyncStartExtensionAbility(*it, CONNECT_EXTENSION_MAX_RETRY_TIMES); + if ((*it)->GetReminderType() == ReminderRequest::ReminderType::CALENDAR) { + ReminderRequestCalendar* calendar = static_cast((*it).GetRefPtr()); + if ((*it)->OnDateTimeChange()) { + reissueReminder_.push_back(*it); + ANSR_LOGD("Reissue reminder success"); + } + } } } diff --git a/services/ans/test/unittest/reminder_data_manager_test.cpp b/services/ans/test/unittest/reminder_data_manager_test.cpp index 564a7722ffa1e78772013d6891721e18dce67720..f99f5bf782f74ff50e00741648de64d969bf33e7 100644 --- a/services/ans/test/unittest/reminder_data_manager_test.cpp +++ b/services/ans/test/unittest/reminder_data_manager_test.cpp @@ -679,5 +679,24 @@ HWTEST_F(ReminderDataManagerTest, OnLanguageChanged_0001, Level1) manager->OnLanguageChanged(); EXPECT_TRUE(reminder->actionButtonMap_[type].title == "this is title"); } + +/** + * @tc.name: InitStartExtensionAbility + * @tc.desc: Reminder data manager test + * @tc.type: FUNC + * @tc.require: issue#I9IIDE + */ +HWTEST_F(ReminderDataManagerTest, InitStartExtensionAbility_0001, Level1) +{ + sptr reminder = new ReminderRequestTime(10); + sptr calendar = new ReminderRequestCalendar(10); + manager->reminderVector_.push_back(reminder); + manager->reissueReminder_.push_back(reminder); + manager->reminderVector_.push_back(calendar); + manager->reissueReminder_.push_back(calendar); + manager->Init(true); + manager->InitStartExtensionAbility(); + EXPECT_TRUE(!manager->reminderVector_.empty()); +} } // namespace Notification } // namespace OHOS