{ "id": "161074", "key": "TIMOB-23519", "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": "18253", "name": "Release 5.5.0", "archived": false, "released": true, "releaseDate": "2016-09-13" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-06-14T22:33:10.000+0000", "created": "2016-06-14T16:51:58.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "ios10", "qe-5.5.0" ], "versions": [], "issuelinks": [ { "id": "52461", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "162661", "key": "TIMOB-23786", "fields": { "summary": "iOS10: Logs not working on iOS 10 devices.", "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": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "52596", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "162953", "key": "TIMOB-23857", "fields": { "summary": "iOS: Expose more Pasteboard Item's APIs", "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" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "52499", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "162720", "key": "TIMOB-23797", "fields": { "summary": "iOS: Improve Pasteboard support", "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 } } } }, { "id": "52505", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "162730", "key": "TIMOB-23799", "fields": { "summary": "iOS: Support Named Pasteboards", "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": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2016-09-01T17:28:04.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 exposes new APIs to check whether or not the pasteboard currently has images, colors or URLs. Those should be exposed from the beginning to offer the user a more convenient way to validate the current pasteboard content.", "attachment": [], "flagged": false, "summary": "iOS10: Expose new Ti.UI.Pasteboard APIs", "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, "comment": { "comments": [ { "id": "388303", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/8066\r\n\r\nDemo:\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: \"#fff\",\r\n layout: \"vertical\"\r\n});\r\nvar btn1 = Ti.UI.createButton({\r\n title: \"Has URLs?\",\r\n top: 40\r\n});\r\n\r\nbtn1.addEventListener(\"click\", function() {\r\n alert(Ti.UI.Clipboard.hasURLs());\r\n});\r\nvar btn2 = Ti.UI.createButton({\r\n title: \"Has images?\",\r\n top: 40\r\n});\r\n\r\nbtn2.addEventListener(\"click\", function() {\r\n alert(Ti.UI.Clipboard.hasImages());\r\n});\r\nvar btn3 = Ti.UI.createButton({\r\n title: \"Has colors?\",\r\n top: 40\r\n});\r\n\r\nbtn3.addEventListener(\"click\", function() {\r\n alert(Ti.UI.Clipboard.hasColors());\r\n});\r\n\r\nwin.add(btn1);\r\nwin.add(btn2);\r\nwin.add(btn3);\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-06-14T16:54:13.000+0000", "updated": "2016-08-18T06:38:03.000+0000" }, { "id": "393086", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (5_5_X): https://github.com/appcelerator/titanium_mobile/pull/8219", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-08-14T09:53:17.000+0000", "updated": "2016-08-14T09:53:17.000+0000" }, { "id": "393430", "author": { "name": "htbryant", "key": "htbryant", "displayName": "Harry Bryant", "active": true, "timeZone": "Europe/London" }, "body": "This issue is currently blocked by TIMOB-23786 .", "updateAuthor": { "name": "htbryant", "key": "htbryant", "displayName": "Harry Bryant", "active": true, "timeZone": "Europe/London" }, "created": "2016-08-17T22:42:17.000+0000", "updated": "2016-08-17T22:42:17.000+0000" }, { "id": "393440", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~hansknoechel] These seem to use the general pasteboard. Are there plans or is there a way to be able to use/create a named pasetboard?", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-08-18T00:01:55.000+0000", "updated": "2016-08-18T00:01:55.000+0000" }, { "id": "393482", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~htbryant] Updated example code to be indipendent from the logs.\r\n[~ewieber] Not, yet. Thought about it already, but no space for it at this time.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-08-18T06:39:00.000+0000", "updated": "2016-08-18T06:39:00.000+0000" }, { "id": "393783", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I am able to use the APIs in my project without error, so this is implemented in that respect, however I have some notes:\r\n1. Some features of the Pasteboards are not supported (addressed by Hans in TIMOB-23797)\r\n2. We cannot create Named Pasteboards (not a blocker for this ticket and tracked by TIMOB-23799)\r\n3. {{hasColors()}} is always returning false, for me. According to Apple docs it should return true if {{colors}} is a non-empty array, but when I set {{colors}} to anything ({{TI.UI.Clipboard.setData(\"colors\", \\[\"blue\", \"#1234ff\"\\]);}}), it still returns false.\r\n\r\n{{hasImages()}} and {{hasURLs()}} are working as expected.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-08-22T16:23:30.000+0000", "updated": "2016-08-26T17:37:30.000+0000" }, { "id": "394505", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "The way you set it looks incorrect. Let me investigate that.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-08-26T15:59:33.000+0000", "updated": "2016-08-26T15:59:33.000+0000" }, { "id": "394515", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "There are square brackets around the second and third arguments, but I forgot to escape them on first post. I edited the comment. I tried several ways to set the data:\r\n{noformat}\r\n[\"blue\", \"1234f\"]\r\n{\"blue\":\"ok\", \"color\":\"#1234ff\"}\r\n\"{blue}\"\r\n\"['blue', '#1234ff']\"\r\nand others\r\n{noformat}\r\nI got the same result with each.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-08-26T17:33:13.000+0000", "updated": "2016-08-26T17:39:24.000+0000" }, { "id": "394581", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~ewieber] Fixed the color-handling in [this commit|https://github.com/appcelerator/titanium_mobile/pull/8247/commits/687a177f8346d2bccd53ee92d6d51d6982fb88dd] as part of TIMOB-23797.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-08-28T20:27:37.000+0000", "updated": "2016-08-28T20:27:37.000+0000" }, { "id": "394969", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified implemented using:\r\nMacOS 10.12 (16A239m)\r\nStudio 4.7.1.201608190732\r\nTi SDK 5.5.0.v20160831100821\r\nAppc NPM 4.2.7\r\nAppc CLI 5.5.0-5\r\nAlloy 1.9.1\r\nXcode 8.0 (8S201h)\r\n\r\nThe {{hasURLs()}}, {{hasImages()}}, and {{hasColors()}} APIs are usable and correctly return for the data in the pasteboard items. Tested using the provided example as well as my own test case that sets, checks, and clears pasteboard data.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-08-31T22:43:49.000+0000", "updated": "2016-08-31T22:43:49.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }