aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRatchanan Srirattanamet <ratchanan@ubports.com>2023-06-06 15:54:11 +0700
committerRatchanan Srirattanamet <ratchanan@ubports.com>2023-06-07 01:22:23 +0700
commite089a84b306ef09667752b910d87538043140042 (patch)
tree452bf4176650a2bb2d4e670619ac0d84af8b99df /src
parent254bd7f76f6a3587208c8487f606b1b378b74c34 (diff)
downloadayatana-indicator-datetime-e089a84b306ef09667752b910d87538043140042.tar.gz
ayatana-indicator-datetime-e089a84b306ef09667752b910d87538043140042.tar.bz2
ayatana-indicator-datetime-e089a84b306ef09667752b910d87538043140042.zip
engine-eds: fix retrieving custom alarm sound path
ECal 2.0 returns the list of attachments as a GSList (a singly linked list). I'm not sure why, but the logic for iterating the list is completely incorrect. Fixing that fixes custom alarm sound. A test is added to catch this case. Bug-UBports: https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/issues/183
Diffstat (limited to 'src')
-rw-r--r--src/engine-eds.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/engine-eds.cpp b/src/engine-eds.cpp
index b7f4682..2748fc1 100644
--- a/src/engine-eds.cpp
+++ b/src/engine-eds.cpp
@@ -635,19 +635,18 @@ private:
auto action = e_cal_component_alarm_get_action(alarm);
if (action == E_CAL_COMPONENT_ALARM_AUDIO)
{
- ICalAttach *attach = nullptr;
auto attachments = e_cal_component_alarm_get_attachments(alarm);
- if (attachments != nullptr && attachments->next != nullptr)
- attach = I_CAL_ATTACH (attachments->data);
+ for (; attachments != nullptr; attachments = attachments->next) {
+ ICalAttach *attach = I_CAL_ATTACH (attachments->data);
- if (attach != nullptr)
- {
- if (i_cal_attach_get_is_url (attach))
+ if (attach != nullptr && i_cal_attach_get_is_url (attach))
{
const char* url = i_cal_attach_get_url(attach);
- if (url != nullptr)
+ if (url != nullptr) {
ret = url;
+ break;
+ }
}
}
if (ret.empty())