diff --git a/frameworks/reminder/src/reminder_request.cpp b/frameworks/reminder/src/reminder_request.cpp index 29832cd80594a2104e18978405451fd74620c058..6254c33e4e85a5f3b684e1b0961a461533754e2a 100644 --- a/frameworks/reminder/src/reminder_request.cpp +++ b/frameworks/reminder/src/reminder_request.cpp @@ -954,6 +954,16 @@ ReminderRequest::RingChannel ReminderRequest::GetRingChannel() const return ringChannel_; } +void ReminderRequest::SetRingLoop(const bool isRingLoop) +{ + isRingLoop_ = isRingLoop; +} + +bool ReminderRequest::IsRingLoop() const +{ + return isRingLoop_; +} + int32_t ReminderRequest::GetUserId() const { return userId_; diff --git a/frameworks/reminder/test/unittest/reminder_request_test.cpp b/frameworks/reminder/test/unittest/reminder_request_test.cpp index 60b27de122c700b5468584625acc3e81c04f3ff9..ff0c017af883b91c26101274da3fadb91fb07a02 100644 --- a/frameworks/reminder/test/unittest/reminder_request_test.cpp +++ b/frameworks/reminder/test/unittest/reminder_request_test.cpp @@ -2409,5 +2409,20 @@ HWTEST_F(ReminderRequestTest, ReminderRequestTest_006, Function | SmallTest | Le child.SetRingChannel(ReminderRequest::RingChannel::MEDIA); EXPECT_EQ(child.GetRingChannel(), ReminderRequest::RingChannel::MEDIA); } + +/** + * @tc.name: ReminderRequestTest_007 + * @tc.desc: Test RingLoop parameters. + * @tc.type: FUNC + * @tc.require: issueI8CDH3 + */ +HWTEST_F(ReminderRequestTest, ReminderRequestTest_007, Function | SmallTest | Level1) +{ + ReminderRequestChild child; + child.SetRingLoop(true); + EXPECT_EQ(child.IsRingLoop(), true); + child.SetRingLoop(false); + EXPECT_EQ(child.IsRingLoop(), false); +} } } diff --git a/interfaces/inner_api/reminder_request.h b/interfaces/inner_api/reminder_request.h index e3e414ec45075742ab5a6e6e716f76b6598a9675..871350ba7361e02055c794e915a8f3d0ac6ce698 100644 --- a/interfaces/inner_api/reminder_request.h +++ b/interfaces/inner_api/reminder_request.h @@ -470,6 +470,12 @@ public: void SetRingChannel(const RingChannel channel); RingChannel GetRingChannel() const; + /** + * @brief Set/Get ring loop. + */ + void SetRingLoop(const bool isRingLoop); + bool IsRingLoop() const; + int32_t GetUserId() const; int32_t GetUid() const; @@ -1176,6 +1182,7 @@ private: int32_t uid_ {-1}; bool isSystemApp_ {false}; bool tapDismissed_ {true}; + bool isRingLoop_ {true}; int64_t autoDeletedTime_ {0}; std::string customButtonUri_ {}; std::string customRingUri_ {}; diff --git a/services/reminder/src/reminder_data_manager.cpp b/services/reminder/src/reminder_data_manager.cpp index d458c550cfa7c659a1f0cbd3366d332bd9b89810..dfdbdd2c20b07593972b99e8a109da67c7660948 100644 --- a/services/reminder/src/reminder_data_manager.cpp +++ b/services/reminder/src/reminder_data_manager.cpp @@ -1644,7 +1644,7 @@ void ReminderDataManager::PlaySoundAndVibration(const sptr &rem (void)format.PutIntValue(Media::PlayerKeys::STREAM_USAGE, STREAM_ALARM); (void)format.PutIntValue(Media::PlayerKeys::RENDERER_FLAG, DEFAULT_VALUE); soundPlayer_->SetParameter(format); - soundPlayer_->SetLooping(true); + soundPlayer_->SetLooping(reminder->IsRingLoop()); soundPlayer_->PrepareAsync(); soundPlayer_->Play(); #endif diff --git a/services/reminder/src/reminder_datashare_helper.cpp b/services/reminder/src/reminder_datashare_helper.cpp index f2b80e60557848808263e1bc87ba099d592cf7da..ed2cd3c7e3d1b8e65a2a3593f50b8545f139573a 100644 --- a/services/reminder/src/reminder_datashare_helper.cpp +++ b/services/reminder/src/reminder_datashare_helper.cpp @@ -430,6 +430,7 @@ std::map> ReminderDataShareHelper::CreateRemi void ReminderDataShareHelper::InitNormalInfo(sptr& reminder) { reminder->SetRingDuration(0); + reminder->SetRingLoop(false); reminder->InitUserId(curUserId_); reminder->InitUid(uid_); reminder->InitCreatorUid(dataUid_);