{ "id": "175512", "key": "TIMOB-28114", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "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": "2020-09-08T19:02:57.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "android", "engSchedule", "geolocation", "gps", "iOS", "parity", "permission" ], "versions": [ { "id": "21051", "description": "", "name": "Release 9.2.0", "archived": false, "released": true, "releaseDate": "2020-09-23" } ], "issuelinks": [ { "id": "58707", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "175375", "key": "TIMOB-28049", "fields": { "summary": "Android: Investigate \"ACCESS_BACKGROUND_LOCATION\" handling on Android 11", "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": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "58705", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "175178", "key": "TIMOB-27976", "fields": { "summary": "iOS 14: Expose API to use Core Location AccuracyAuthorization", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2021-02-22T19:01:30.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": "*Summary:*\r\nWriting cross-platform code to acquire permission to access GPS data, especially in the background, is currently difficult with our existing [Ti.Geolocation|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Geolocation] APIs. It requires the developer to use platform specific APIs on both Android and iOS to do this. There are also OS version specific APIs that must be used on both Android and iOS that makes things even more cumbersome. We should investigate creating higher-level API in Titanium to make this easier.\r\n\r\n*Current Example:*\r\nThe attached [^GeolocationGpsTest.js], [^GeolocationGpsService.js], and [^tiapp.xml] shows what it takes to do the above today using our existing APIs. It's {{startLocationTracking()}} method is about 100 lines long and needs to use platform specific APIs to work. The ideal solution is to simplify this with less lines of code using cross-platform and cross-os-version APIs.\r\n", "attachment": [ { "id": "67531", "filename": "GeolocationGpsService.js", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-09-10T03:21:18.000+0000", "size": 419, "mimeType": "application/x-javascript" }, { "id": "67532", "filename": "GeolocationGpsTest.js", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-09-10T03:21:18.000+0000", "size": 5482, "mimeType": "application/x-javascript" }, { "id": "67533", "filename": "tiapp.xml", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-09-10T03:24:02.000+0000", "size": 1083, "mimeType": "text/xml" } ], "flagged": false, "summary": "TiAPI: Geolocation Parity", "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 } } }