{ "id": "161088", "key": "TIMOB-23527", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": [ { "id": "20115", "name": "Release 7.3.0", "archived": false, "released": true, "releaseDate": "2018-08-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-05-23T08:18:32.000+0000", "created": "2016-06-14T23:50:40.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "demo_app", "ios10" ], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2018-08-06T17:57:27.000+0000", "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" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "iOS 10 offers a way to setup interactive notifications by using the {{UserNotifications}} framework. We can configure notifications ({{UNNotification}}), define notification actions ({{UNNotificationAction}}), create notification content ({{UNNotificationContent}}), add an attachment to a notification ({{UNNotificationAttachment}}) and group them into categories ({{UNNotificationCategory}}). \r\n\r\nIn addition, we can also trigger notifications ({{UNNotificationTrigger}}) and manage notifications in the notification center ({{UNUserNotificationCenter}}).\r\n\r\nWhile some of it could be migrated to the existing ones, we should think about a new interface that manages those notifications properly.", "attachment": [ { "id": "64985", "filename": "local_notifications.js", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-03-23T02:05:42.000+0000", "size": 3739, "mimeType": "text/javascript" }, { "id": "64988", "filename": "remote_notifications.js", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-03-23T04:06:34.000+0000", "size": 3910, "mimeType": "text/javascript" }, { "id": "64987", "filename": "silent_push.js", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-03-23T03:31:26.000+0000", "size": 2319, "mimeType": "text/javascript" } ], "flagged": false, "summary": "iOS10: Support the UserNotifications framework", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 796, "state": "closed", "name": "2017 Sprint 02 SDK", "startDate": "2017-01-15T00:00:41.845Z", "endDate": "2017-01-29T00:00:00.000Z", "completeDate": "2017-01-30T21:10:44.640Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "388686", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Ok, current status: I am trying to map the new API's to our existing API's as good as possible. That means, the {{Ti.App.iOS.scheduleLocalNotification}} will be the same as before, but calls the iOS 10 API's when using iOS 10. In addition, the {{Ti.App.iOS.NotificationCategory}} will use {{UNNotificationCategory}} and it's notification actions defined in {{Ti.App.iOS.NotificationAction}} will use {{UNNotificationAction}}.\r\n\r\nIn addition to that, I would like to introduce the new {{Ti.App.iOS.NotificationCenter}} namespace, that could be used to schedule notification in both iOS < 10 and iOS 10, but also to control scheduled notifications etc. in iOS 10, since it exposes great utilities for that. \r\n\r\nFeedback greatly appreciated. A work-in-progress PR will come later today.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-06-20T18:59:01.000+0000", "updated": "2016-06-20T18:59:01.000+0000" }, { "id": "390945", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (work in progress): https://github.com/appcelerator/titanium_mobile/pull/8078\r\n\r\nI am trying to migrate everything that is available in iOS < 10. I am rewriting the whole notifications for iOS 10 and later having the same API-interface. In addition, certain properties like {{subtitle}} and {{attachments}} are integrated in existing API's for iOS 10. Some new features coming with the {{UNUserNotificationCenter}} will be integrated on the {{Ti.App.iOS}} namespace for now. Maybe we should consider introducing a {{Ti.App.iOS.NotificationCenter}} to make the public interface more structured and keep the internal code-base clean.\r\n\r\n//cc [~bgrantges@appcelerator.com] [~cng] [~ingo]\r\n\r\n*EDIT*: The plan is to finish the implementation by end of the week, add the docs until next Tuesday and keep it reviewed until next Friday. That should match the 6.0 code-freeze pretty good. But be aware that I currently use iOS 10 Beta 2, so there might be native interface changes that need to be validated before GA. I guess thats fine.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-18T21:11:55.000+0000", "updated": "2016-07-18T21:13:13.000+0000" }, { "id": "390970", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "That's fine. I'm all for introducing a {{Ti.App.iOS.NotificationCenter}} even though i rather prefer a parity API but, at this point we can consider parity at a later stage.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-19T02:02:44.000+0000", "updated": "2016-07-19T02:02:56.000+0000" }, { "id": "391662", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Moving to 6.1.0, since the changes need way more testing then we have left for 6.0.0. Since we will be able to support both the old and the new notifications, that will be the proper way to go. The core-implementation is finished and parity-adjustments will be done over the next weeks.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-27T13:39:24.000+0000", "updated": "2016-07-27T13:39:24.000+0000" }, { "id": "397533", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Attached the first test-cases. One biggy is missing, the silent-push-notifications. I will setup a test-case and server-environment for that one as well. \r\n\r\nWhat we need to properly test this:\r\n- iOS 9 and 10 device\r\n- Titanium SDK 5.4.0.GA and Titanium master (once merged)\r\n- Real apps to test with (any cooperating partners / customers?)\r\n- A matrix of the results ([~htbryant] is good in those)\r\n\r\nI will submit the PR to review next in early October, after all my internal tests have succeeded. ", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-09-28T17:00:57.000+0000", "updated": "2016-10-03T14:21:32.000+0000" }, { "id": "406798", "author": { "name": "colorhat", "key": "colorhat", "displayName": "Tobias Høegh", "active": true, "timeZone": "Europe/Oslo" }, "body": "Hans Knøchel, You asked for real app cooperating to test with. I could contribute with \"real apps\" testing. My app is this one: http://MoogliApp.com", "updateAuthor": { "name": "colorhat", "key": "colorhat", "displayName": "Tobias Høegh", "active": true, "timeZone": "Europe/Oslo" }, "created": "2017-02-10T09:27:52.000+0000", "updated": "2017-02-10T09:27:52.000+0000" }, { "id": "411390", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey Tobias, thanks for that! As we want to move forward with 6.1.0 over the next weeks, I've put it out of 6.1.0 for now, since it requires major testing, so we won't break any push-related apps. Anyway, I would still love to give you a build if you want, so we can work on your specific test-cases together. Feel free to send me an email with further infos, thx!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-03-12T18:09:13.000+0000", "updated": "2017-03-12T18:09:13.000+0000" }, { "id": "437608", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~vijaysingh] Ready for review!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-05-14T09:40:31.000+0000", "updated": "2018-05-14T09:40:31.000+0000" }, { "id": "437866", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey everyone! The pull request just landed in the core on master. Try it out today to ensure your specific use-cases are still working as before and make use of the new features like notification attachments! Install: {{appc ti sdk install -b master}}. Thanks!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-05-23T08:19:28.000+0000", "updated": "2018-05-23T08:19:28.000+0000" }, { "id": "440310", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Cleaning up older fixed tickets from 2016 and earlier. If this ticket should not have been closed, please reopen it.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:57:27.000+0000", "updated": "2018-08-06T17:57:27.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }