{ "id": "153010", "key": "TIMOB-19933", "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": "2015-11-12T08:18:55.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "14826", "description": "Release 5.1.0-remaining iOS9 features, Android M features", "name": "Release 5.1.0", "archived": false, "released": true, "releaseDate": "2015-11-20" } ], "issuelinks": [ { "id": "49761", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "152584", "key": "TIMOB-19844", "fields": { "summary": "Android: If either uses-permission is missing hasCalendarPermissions will always be false but requestCalendarPermissions returns success", "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": "None", "id": "6" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "49766", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "152585", "key": "TIDOC-2349", "fields": { "summary": "Android: Permissions (Calendar) Both permissions required in tiapp.xml", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "49762", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "152608", "key": "TIMOB-19851", "fields": { "summary": "Android: Permissions (Camera) crash and other bugs", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "49767", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "152603", "key": "TIDOC-2352", "fields": { "summary": "Android: Permissions (Contacts) Required changes to tiapp.xml not documented", "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": "49765", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "87647", "key": "TIMOB-7949", "fields": { "summary": "Android: Calendar - automatically add necessary permissions to tiapp.xml", "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": "Low", "id": "4" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "49764", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "152604", "key": "TIMOB-19849", "fields": { "summary": "Android: Contacts - automatically add necessary permissions to tiapp.xml", "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": "Low", "id": "4" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "49763", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "152609", "key": "TIMOB-19852", "fields": { "summary": "Android: Media - automatically add necessary permissions to tiapp.xml", "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": "Low", "id": "4" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": null, "updated": "2018-02-28T19:55:26.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" } ], "description": "We automatically add the required {{}} elements to {{AndroidManifest.xml}} when certain Titanium APIs are used. The new permission request methods need to be added to that list, but it seems it can be simplified/improved in other ways as well:\r\n\r\n* Instead of testing for different {{Calendar.\\*}} methods we should just test for the {{calendar}} (and {{android.calendar}} namespace. Why would you want to use anything in the namespace without the required permissions? If there *is* a good reason not to then {{Calendar.hasCalendarPermissions}} and {{Calendar.requestCalendarPermissions}} need to be added.\r\n* Instead of testing for different {{Contacts.\\*}} methods we should just test for the {{contacts}} namespace for both read and write permissions. Right now, if you don't use {{Contacts.removePerson}} or {{Contacts.removePerson}} using {{Contacts.Group.removePerson}} or any {{set}} method will probably fail. If there *is* a good reason no to then all these remove/set methods need to be added as well as the new {{Contacts.hasContactsPermissions}} and {{requestContactsPermissions}}.\r\n* {{Media.hasCameraPermissions}} and {{Media.requestCameraPermissions}} must be added.", "attachment": [], "flagged": false, "summary": "Android: Required uses-permission are not always added to AndroidManifest", "creator": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": null, "comment": { "comments": [ { "id": "370059", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~cng] I closed (as invalid or included) the other permissions tickets since this one covers the edge cases that caused them.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-11-12T08:33:06.000+0000", "updated": "2015-11-12T08:33:06.000+0000" }, { "id": "370116", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I'm not sure why this ticket is necessary. Why do you need to check for permissions if you're not using it? If you're not using any API that actually require permissions to work, checking and requesting for them are dead code for most cases (unless you run a custom module, but if that's the case, you'd already have the permissions added manually, because our CLI won't take care of that)", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-11-12T18:59:13.000+0000", "updated": "2015-11-12T18:59:13.000+0000" }, { "id": "370126", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Because it makes it more predictable.\r\n\r\nAnd do note that the second point is no \"dead code\", but actual use case we're now missing.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-11-12T19:44:49.000+0000", "updated": "2015-11-12T19:44:49.000+0000" }, { "id": "375869", "author": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "body": "Currently I have a similar issue with audiorecording. In manifest I have placed the AUDIORECORDER-permission, but in app specific section I see a non activated MICROPHON permission. I can not record, after clicking in this permission section I can.\r\n\r\nHow can I start an intent to permission Screen for a specific app? And why the permission is setting to false although I have a permission in manifest?", "updateAuthor": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-03T14:14:24.000+0000", "updated": "2016-02-03T14:14:24.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }