From 1ce7ea9cbf1f3e19c842dc344675e0d879bde18c Mon Sep 17 00:00:00 2001 From: Jasperjiao Date: Fri, 26 Apr 2024 17:47:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E9=87=8D=E5=90=AF=E8=A1=A5?= =?UTF-8?q?=E5=8F=91=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jasperjiao --- services/ans/include/reminder_data_manager.h | 2 ++ services/ans/src/reminder_data_manager.cpp | 8 ++++++++ .../unittest/reminder_data_manager_test.cpp | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/services/ans/include/reminder_data_manager.h b/services/ans/include/reminder_data_manager.h index 9654ff16e..dde92f1ed 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 a1061d2b0..c929abc67 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 564a7722f..f99f5bf78 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 -- Gitee