{ "id": "160460", "key": "TIMOB-24042", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2016-05-24T13:04:48.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "calendar", "demo_app", "ios", "parity" ], "versions": [], "issuelinks": [ { "id": "56136", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "170271", "key": "TIMOB-25498", "fields": { "summary": "Android: Deprecate getEventsInYear and getEventsInMonth", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-01-03T16:21:00.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "10224", "name": "TiAPI", "description": "This component is used for cross-platform API work. Specifications are most likely to use this component." } ], "description": "Added possibility to create and delete calendars", "attachment": [], "flagged": false, "summary": "iOS / Android: Creating and deleting calendars, recurrence rules", "creator": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "subtasks": [], "reporter": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "environment": null, "closedSprints": [ { "id": 1028, "state": "closed", "name": "2018 Sprint 09 SDK", "startDate": "2018-04-22T22:53:08.928Z", "endDate": "2018-05-06T22:53:00.000Z", "completeDate": "2018-05-07T00:02:15.883Z", "originBoardId": 114 }, { "id": 1045, "state": "closed", "name": "2018 Sprint 13 SDK", "startDate": "2018-06-17T20:47:13.621Z", "endDate": "2018-07-01T20:47:00.000Z", "completeDate": "2018-07-02T18:40:05.029Z", "originBoardId": 114 }, { "id": 1018, "state": "closed", "name": "2018 Sprint 07 SDK", "startDate": "2018-03-25T21:59:36.637Z", "endDate": "2018-04-08T21:59:00.000Z", "completeDate": "2018-04-08T17:55:14.467Z", "originBoardId": 114 }, { "id": 1034, "state": "closed", "name": "2018 Sprint 10 SDK", "startDate": "2018-05-07T00:03:21.636Z", "endDate": "2018-05-21T00:03:00.000Z", "completeDate": "2018-05-20T20:54:58.928Z", "originBoardId": 114 }, { "id": 1050, "state": "closed", "name": "2018 Sprint 14 SDK", "startDate": "2018-07-01T18:40:57.193Z", "endDate": "2018-07-15T18:40:00.000Z", "completeDate": "2018-07-16T03:27:08.720Z", "originBoardId": 114 }, { "id": 1035, "state": "closed", "name": "2018 Sprint 11 SDK", "startDate": "2018-05-20T20:57:43.542Z", "endDate": "2018-06-03T20:57:00.000Z", "completeDate": "2018-06-04T15:13:14.425Z", "originBoardId": 114 }, { "id": 1021, "state": "closed", "name": "2018 Sprint 08 SDK", "startDate": "2018-04-08T17:57:36.122Z", "endDate": "2018-04-22T17:57:00.000Z", "completeDate": "2018-04-22T22:51:19.120Z", "originBoardId": 114 }, { "id": 1053, "state": "closed", "name": "2018 Sprint 15 SDK", "startDate": "2018-07-15T21:52:05.453Z", "endDate": "2018-07-29T21:52:00.000Z", "completeDate": "2018-07-29T22:25:11.723Z", "originBoardId": 114 }, { "id": 1039, "state": "closed", "name": "2018 Sprint 12 SDK", "startDate": "2018-06-03T15:22:23.401Z", "endDate": "2018-06-17T15:22:00.000Z", "completeDate": "2018-06-18T20:45:36.363Z", "originBoardId": 114 }, { "id": 1008, "state": "closed", "name": "2018 Sprint 06 SDK", "startDate": "2018-03-11T22:18:04.396Z", "endDate": "2018-03-25T22:18:00.000Z", "completeDate": "2018-03-25T21:52:36.683Z", "originBoardId": 216 } ], "comment": { "comments": [ { "id": "386622", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello,\r\n\r\nThanks for creating the ticket. The Calendar module provides an API for accessing the native calendar functionality.This module supports retrieving information about existing events and creating new events. Modifying or deleting existing events and creating recurring events are only supported on iOS. Currently, on Android, calendar permissions must be explicitly configured in tiapp.xml in order to access the calendar. http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Calendar\r\n\r\nRegards,\r\nSharif.\r\n", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-05-24T14:44:02.000+0000", "updated": "2016-05-24T14:44:02.000+0000" }, { "id": "392587", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Reopening ticket, since it is the reference ticket of [this community-PR|https://github.com/appcelerator/titanium_mobile/pull/8016]. [~kopiro] Please add some more infos, demo-code and (if possible) a time-frame when we can plan with the PR. I will move it to the TIMOB-namespace afterwards. Thank you!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-08-07T19:43:41.000+0000", "updated": "2016-08-07T19:44:07.000+0000" }, { "id": "394822", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, [~kopiro], Can you please add some more infos, demo-code and (if possible) a time-frame when we can plan with the PR. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-08-30T19:27:46.000+0000", "updated": "2016-08-30T19:27:46.000+0000" }, { "id": "395622", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~kopiro], Can you please add some more infos??", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-09-08T18:59:06.000+0000", "updated": "2016-09-08T18:59:06.000+0000" }, { "id": "396327", "author": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "body": "I'm sorry for the delay, I'll quickly add examples codes during this weekend.", "updateAuthor": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "created": "2016-09-16T07:59:16.000+0000", "updated": "2016-09-16T07:59:16.000+0000" }, { "id": "398867", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~kopiro]????", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-10-13T20:17:13.000+0000", "updated": "2016-10-13T20:17:13.000+0000" }, { "id": "399080", "author": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "body": "Hello.\r\n\r\nSo, we made breaking changes to the Calendar Module.\r\nThis PR is not about \"Creating and deleting\" no more.\r\n\r\n*Additions:*\r\n- Creation and deletions of calendars\r\n- Support for iOS and Recurrence rules from strings (like Android)\r\n- Added the rrule property to the Events in Android\r\n- Added the save method for events in Android\r\n\r\n*BREAKING CHANGES:*\r\n- The months in JS + Android are 0-based, instead in iOS are 1-based. we merged this behaviour and now iOS is zero-based too.\r\n\r\nMaybe we should discuss about this.\r\n\r\n", "updateAuthor": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "created": "2016-10-17T13:15:41.000+0000", "updated": "2016-10-17T13:19:22.000+0000" }, { "id": "399118", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey Favio,\r\n\r\ninteresting fact regarding the month-count. I would like to know how other platforms handle this, can you check that? And if we migrate it, we need to find a way to inform users about the changed behavior, so: docs update, warn-log and mention in the release-notes. As soon as the PR is up, we can schedule a release for it, I will already move it TIMOB. Thanks!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-10-17T17:26:04.000+0000", "updated": "2016-10-17T17:26:04.000+0000" }, { "id": "399215", "author": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "body": "In PhoneGap, they use 0-based months (https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin)\r\n... but, they rely on the timestamps: https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/blob/master/src/ios/Calendar.m#L740\r\n\r\nThe main problem in Titanium implementation is that the function method declarations are bad for this purpose: \r\n\r\n- *getEventsInDate(Year, Month, Day)*\r\n- *getEventsInMonth(Year, Month)*\r\n\r\nthis forces to re-index the month for the current platform.\r\n\r\nMaybe, an option could be to declare these two methods as deprecated and continue using only `getEventsBetweenDates` that is not index-based.", "updateAuthor": { "name": "kopiro", "key": "kopiro", "displayName": "Flavio De Stefano", "active": true, "timeZone": "Europe/Rome" }, "created": "2016-10-18T10:11:37.000+0000", "updated": "2016-10-18T10:12:09.000+0000" }, { "id": "403503", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Some update here: We didn't forget you :-) But since it's a breaking change, we need to put it in 7.0.0 anyway. That also gives us some more time to test this intensively on both platforms. And maybe we can even achieve parity with Windows until then. Thanks guys!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-12-16T14:20:40.000+0000", "updated": "2016-12-16T14:20:40.000+0000" }, { "id": "419672", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Moving up one release, so we will expose it in 6.2.0 instead of 7.0.0. This is made possible by keeping the month-index where it is for now. For parity reasons, that should be aligned in 7.0.0.\r\n\r\n*EDIT*: Due to other changes and bugfixes that had to move before this feature, we schedule it for 7.0.0 and do the indexing right the first place. Sorry for the up and down, hopefully it makes sense to everyone!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-05-15T13:02:04.000+0000", "updated": "2017-08-11T16:07:55.000+0000" }, { "id": "444968", "author": { "name": "Yrkh8trnoy", "key": "yrkh8trnoy", "displayName": "Kiley Williams", "active": true, "timeZone": "America/Vancouver" }, "body": "This seems to still be open. Any update on this?", "updateAuthor": { "name": "Yrkh8trnoy", "key": "yrkh8trnoy", "displayName": "Kiley Williams", "active": true, "timeZone": "America/Vancouver" }, "created": "2019-01-03T16:21:00.000+0000", "updated": "2019-01-03T16:21:00.000+0000" } ], "maxResults": 20, "total": 20, "startAt": 0 } } }