diff --git a/lib/kolab_sync_data_calendar.php b/lib/kolab_sync_data_calendar.php --- a/lib/kolab_sync_data_calendar.php +++ b/lib/kolab_sync_data_calendar.php @@ -185,6 +185,7 @@ $config = $this->getFolderConfig($event['_mailbox']); $result = array(); $is_outlook = stripos($this->device->devicetype, 'outlook') !== false; + $is_android = stripos($this->device->devicetype, 'android') !== false; // Kolab Format 3.0 and xCal does support timezone per-date, but ActiveSync allows // only one timezone per-event. We'll use timezone of the start date @@ -317,7 +318,7 @@ $resp_type = $status ?: self::ATTENDEE_STATUS_UNKNOWN; // Synchronize the attendee status to the event status to get the same behaviour as outlook. - if ($is_outlook && isset($attendee['status'])) { + if (($is_outlook || $is_android )&& isset($attendee['status'])) { if ($attendee['status'] == 'ACCEPTED') { $result['busyStatus'] = self::BUSY_STATUS_BUSY; } @@ -388,6 +389,7 @@ $is_exception = $data instanceof Syncroton_Model_EventException; $dummy_tz = str_repeat('A', 230) . '=='; $is_outlook = stripos($this->device->devicetype, 'outlook') !== false; + $is_android = stripos($this->device->devicetype, 'android') !== false; // check data validity $this->check_event($data); @@ -462,7 +464,7 @@ case 'free_busy': // Outlook sets the busy state to the attendance state, and we don't want to change the event state based on that. // Outlook doesn't have the concept of an event state, so we just ignore this. - if ($is_outlook) { + if ($is_outlook || $is_android) { continue 2; } $map = array_flip($this->busyStatusMap); @@ -573,7 +575,7 @@ } // Outlook does not send the correct attendee status when changing between accepted and tentative, but it toggles the busyStatus. - if ($is_outlook) { + if ($is_outlook || $is_android) { $status = null; if ($data->busyStatus == self::BUSY_STATUS_BUSY) { $status = "ACCEPTED";