diff options
author | Ratchanan Srirattanamet <ratchanan@ubports.com> | 2023-06-06 15:54:11 +0700 |
---|---|---|
committer | Ratchanan Srirattanamet <ratchanan@ubports.com> | 2023-06-07 01:22:23 +0700 |
commit | e089a84b306ef09667752b910d87538043140042 (patch) | |
tree | 452bf4176650a2bb2d4e670619ac0d84af8b99df /src | |
parent | 254bd7f76f6a3587208c8487f606b1b378b74c34 (diff) | |
download | ayatana-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.cpp | 13 |
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()) |