{ "id": "175376", "key": "TIMOB-28050", "fields": { "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "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": "21052", "description": "", "name": "Release 9.3.0", "archived": false, "released": true, "releaseDate": "2020-12-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2020-11-25T15:15:16.000+0000", "created": "2020-07-25T01:49:05.000+0000", "epic": { "id": 175371, "key": "TIMOB-28045", "name": "Android 11: Implement Support", "summary": "Android 11: Implement Support", "color": { "key": "color_3" }, "done": false }, "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "canOpenUrl", "email", "emaildialog", "intent", "openUrl" ], "versions": [], "issuelinks": [ { "id": "58817", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "175629", "key": "TIMOB-28182", "fields": { "summary": "Android: Only add WRITE_EXTERNAL_STORAGE permission when needed", "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": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2020-11-25T15:15:16.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": "10202", "name": "Android", "description": "Android Platform" } ], "description": "*Summary:*\r\nAndroid 11 requires developers to add a new {{}} entries into the \"AndroidManifest.xml\" for all intents passed to the Java {{resolveActivity()}} and {{queryIntentActivities()}} methods or else they will return {{false}} or an empty collection respectively.\r\nhttps://developer.android.com/preview/privacy/package-visibility\r\nhttps://developer.android.com/preview/privacy/package-visibility-use-cases#open-a-file\r\n\r\nGoogle lists which Java APIs are not affected below. The {{startActivity()}} and {{startActivityForResult()}} methods are not impacted. Intents referencing their own app are fine too.\r\nhttps://developer.android.com/preview/privacy/package-visibility#use-cases-not-affected\r\n\r\n*Impact:*\r\nThe following Titanium methods are impacted by this:\r\n* [Ti.Platform.canOpenURL()|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Platform-method-canOpenURL]\r\n* [Ti.Platform.openURL()|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Platform-method-openURL]\r\n* [Ti.UI.EmailDialog.isSupported()|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.EmailDialog-method-isSupported]\r\n\r\n*To-Do:*\r\n* Our {{openURL()}} method should not call the Java {{resolveActivity()}} anymore so that it won't require the {{}} block. However, our {{canOpenURL()}} should continue to use it and we'll need to document the need for this. (Note that iOS requires a \"LSApplicationQueriesSchemes\" plist setting for this method as well for the same reasons.)\r\n* Ideally, our build system should auto-inject the {{}} block needed if the app's code contains a {{createEmailDialog()}} method call.\r\n\r\nThe {{canOpenURL()}} and {{openURL()}} methods should log an error if a {{}} entry is needed.\r\n\r\n*Test:*\r\nThe below PR has test code for {{canOpenURL()}} and {{openURL()}} which tests several different URLs.\r\nhttps://github.com/appcelerator/titanium_mobile/pull/10881\r\n", "attachment": [], "flagged": false, "summary": "Android: Investigate \"package visibility\" handling on Android 11", "creator": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 1206, "state": "closed", "name": "2020 Sprint 19", "startDate": "2020-09-14T20:01:00.000Z", "endDate": "2020-09-25T20:01:00.000Z", "completeDate": "2020-09-28T15:30:19.875Z", "originBoardId": 114 }, { "id": 1207, "state": "closed", "name": "2020 Sprint 20", "startDate": "2020-09-28T15:30:47.481Z", "endDate": "2020-10-09T15:30:00.000Z", "completeDate": "2020-10-09T16:33:43.453Z", "originBoardId": 114 }, { "id": 1208, "state": "closed", "name": "2020 Sprint 21", "startDate": "2020-10-12T16:34:00.000Z", "endDate": "2020-10-23T16:34:00.000Z", "completeDate": "2020-10-23T02:32:43.674Z", "originBoardId": 114 }, { "id": 1209, "state": "closed", "name": "2020 Sprint 22", "startDate": "2020-10-27T02:33:00.000Z", "endDate": "2020-11-07T02:33:00.000Z", "completeDate": "2020-11-06T17:45:42.610Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "456634", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Regarding the [EmailDialog.isSupported()|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.EmailDialog-method-isSupported] method, a {{}} block was not required a on a physical Pixel 3a device running Android 11, but it was required in the Android 11 emulator.\r\n\r\nInjecting the following into the \"AndroidManifest.xml\" will make our {{isSupported()}} method work.\r\n{code:xml}\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-08-28T03:12:19.000+0000", "updated": "2020-08-28T03:31:08.000+0000" }, { "id": "456649", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (9.3.x): https://github.com/appcelerator/titanium_mobile/pull/11985", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-08-29T00:56:31.000+0000", "updated": "2020-08-29T03:42:35.000+0000" }, { "id": "457345", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to 9_3_X branch, backport cherry-picked to master for 9.3.0 target", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2020-10-26T17:25:33.000+0000", "updated": "2020-10-26T18:06:41.000+0000" }, { "id": "457721", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "*Closing ticket*. Fix verified in SDK version {{9.3.0.v20201125050632}}.\r\n\r\nTest and other information can be found at:\r\nhttps://github.com/appcelerator/titanium_mobile/pull/11985", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-11-25T15:15:09.000+0000", "updated": "2020-11-25T15:15:09.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }