{ "id": "174238", "key": "TIMOB-27458", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "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": "2019-10-09T14:54:15.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "engSchedule" ], "versions": [ { "id": "20827", "name": "Release 8.2.0", "archived": false, "released": true, "releaseDate": "2019-09-19" } ], "issuelinks": [ { "id": "57857", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "173815", "key": "TIMOB-27191", "fields": { "summary": "Android: Ti.Filesystem.getFile is not tolerant of file: URIs without file:// prefix", "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": "None", "id": "6" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "57856", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "173832", "key": "TIMOB-27201", "fields": { "summary": "Android: Update \"Ti.Filesystem.File\" to support unimplemented APIs when wrapping a \"content://\" URL", "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": null, "updated": "2019-10-09T14:54:16.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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Between iOS and Android, we have very inconsistent support for various URIs we can pass in to refer to files. Some of this is expected, as Android has platform specific {{content:}}, {{appdata-private:}}, {{android.resource:}}, and {{file:///android_asset}} schemes.\r\n\r\nHowever, there's many differences in handling {{file:}} URIs, {{app:}} URIs, and paths with no scheme.\r\n\r\nSpecifically in calling {{Ti.Filesystem.getFile()}}:\r\n- iOS does not seem to support using {{app:}} URIs. (A workaround would be to call {{Ti.App.appURLToPath()}} on it first? Which is an undocumented public API!)\r\n- Android doesn't support {{file://}} or {{file:}} URIs for relative paths and assumes/forces absolute\r\n- iOS can't handle {{file:}} URIs (no trailing double-slash on the scheme)\r\n- Android assumes {{appdata-private:}} scheme implicitly if not scheme is provided\r\n\r\nSee the test suite here: https://github.com/appcelerator/titanium_mobile/blob/6f176428755144db135986b281d08430fd036692/tests/Resources/ti.filesystem.file.addontest.js", "attachment": [], "flagged": false, "summary": "Parity: Ti.Filesystem.getFile inconsistent in support of various URIs across platforms", "creator": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "environment": null, "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }