{
"id": "175560",
"key": "TIMOB-28150",
"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": [
{
"id": "21092",
"name": "Release 9.2.1",
"archived": false,
"released": true,
"releaseDate": "2020-10-06"
}
],
"resolution": {
"id": "1",
"description": "A fix for this issue is checked into the tree and tested.",
"name": "Fixed"
},
"resolutiondate": "2020-10-02T14:17:10.000+0000",
"created": "2020-09-23T09:38:33.000+0000",
"priority": {
"name": "Critical",
"id": "1"
},
"labels": [
"ios",
"ios14"
],
"versions": [
{
"id": "21039",
"name": "Release 9.0.3",
"archived": false,
"released": true,
"releaseDate": "2020-06-10"
},
{
"id": "21051",
"description": "",
"name": "Release 9.2.0",
"archived": false,
"released": true,
"releaseDate": "2020-09-23"
}
],
"issuelinks": [],
"assignee": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"updated": "2020-10-02T14:17:10.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": "When updating a {{backgroundImage}} of a {{View}} after a timeout (or click event), while the new image is loading a different image (unreferenced, but bundled with the app) will display before the new image is displayed. This problem does not occur with {{ImageView:image}}.\r\n\r\nThe problem shows with SDK 9.2.0 *and* 9.0.3.GA on iOS 14. The problem does *not* show with SDK 9.2.0 on iOS 13 or iOS 12.\r\n\r\n*Expected result* \r\nIrrelevant image should not display, only the {{backgroundImage}} that was set on creation and the one that is set after a timeout/click event.\r\n\r\n*Code*\r\n\r\nSample app.js:\r\n{code:js}\r\n\r\n var win = Ti.UI.createWindow({\r\n backgroundColor:'black'\r\n });\r\n \r\n var test1 = Ti.UI.createImageView({\r\n width : 100,\r\n height : 100,\r\n left : 10,\r\n top : 30,\r\n backgroundImage : \"/images/arm1.png\"\r\n });\r\n \r\n win.add(test1);\r\n win.open();\r\n \r\n win.addEventListener('click', e => {\r\n test1.backgroundImage = \"/images/arm0.png\";\r\n });\r\n {code}\r\n\r\nAttached are images from the assets directory. Do extract all of the images to reproduce the problem. (put them either in {{/Resources/images}} or {{/Resources/iphone/images}}.",
"attachment": [
{
"id": "67571",
"filename": "assets_images.zip",
"author": {
"name": "topener",
"key": "topener",
"displayName": "Rene Pot",
"active": true,
"timeZone": "Europe/Berlin"
},
"created": "2020-09-23T09:36:17.000+0000",
"size": 40820,
"mimeType": "application/zip"
},
{
"id": "67572",
"filename": "Test image iOS 14.mov",
"author": {
"name": "topener",
"key": "topener",
"displayName": "Rene Pot",
"active": true,
"timeZone": "Europe/Berlin"
},
"created": "2020-09-23T09:39:43.000+0000",
"size": 1043889,
"mimeType": "video/quicktime"
}
],
"flagged": false,
"summary": "iOS 14: Updating backgroundImage displays irrelavant image inbetween change",
"creator": {
"name": "topener",
"key": "topener",
"displayName": "Rene Pot",
"active": true,
"timeZone": "Europe/Berlin"
},
"subtasks": [],
"reporter": {
"name": "nicolomonili",
"key": "nicolomonili",
"displayName": "nicolomonili",
"active": true,
"timeZone": "Europe/Rome"
},
"environment": null,
"closedSprints": [
{
"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
}
],
"comment": {
"comments": [
{
"id": "457004",
"author": {
"name": "topener",
"key": "topener",
"displayName": "Rene Pot",
"active": true,
"timeZone": "Europe/Berlin"
},
"body": "For those watching, this issue does not occur with {{}}. So recommended path is to update to imageviews right now.",
"updateAuthor": {
"name": "topener",
"key": "topener",
"displayName": "Rene Pot",
"active": true,
"timeZone": "Europe/Berlin"
},
"created": "2020-09-23T12:56:08.000+0000",
"updated": "2020-09-23T12:56:08.000+0000"
},
{
"id": "457028",
"author": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "In titanium, Ti.UI.backgroundImage is implemented using CALayer.\r\nIn iOS 14+, CALayer comes with 'animation' (CABasicAnimation) while in iOS < 14 there is no such property in object. See below layer's properties on iOS < 14 and iOS14+ -\r\n\r\niOS < 14 -\r\n\r\n{code:java}\r\n (IP)\r\n\t< (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; sRGB IEC61966-2.1)>\r\n\t\twidth = 74, height = 74, bpc = 8, bpp = 32, row bytes = 296 \r\n\t\tkCGImageAlphaPremultipliedLast | 0 (default byte order) | kCGImagePixelFormatPacked \r\n\t\tis mask? No, has masking color? No, has soft mask? No, has matte? No, should interpolate? Yes; masksToBounds = YES; allowsGroupOpacity = YES; contentsScale = 2>\r\n{code}\r\n\r\niOS 14+ -\r\n\r\n{code:java}\r\nCALayer:0x6000025aa1e0; position = CGPoint (50 50); bounds = CGRect (0 0; 100 100); contents = (IP)\r\n\t< (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; sRGB IEC61966-2.1)>\r\n\t\twidth = 74, height = 74, bpc = 8, bpp = 32, row bytes = 296 \r\n\t\tkCGImageAlphaPremultipliedLast | 0 (default byte order) | kCGImagePixelFormatPacked \r\n\t\tis mask? No, has masking color? No, has soft mask? No, has matte? No, should interpolate? Yes; masksToBounds = YES; allowsGroupOpacity = YES; contentsScale = 2; ; animations = [contents=]>\r\n{code}\r\n\r\nDue to animations in iOS 14+ CALayer.contents is animating. ",
"updateAuthor": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2020-09-24T23:46:18.000+0000",
"updated": "2020-09-24T23:46:18.000+0000"
},
{
"id": "457029",
"author": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "PR - https://github.com/appcelerator/titanium_mobile/pull/12133",
"updateAuthor": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2020-09-25T00:02:13.000+0000",
"updated": "2020-09-25T00:02:13.000+0000"
},
{
"id": "457129",
"author": {
"name": "smohammed",
"key": "smohammed",
"displayName": "Samir Mohammed",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "*Closing ticket*. Fix verified in SDK version {{9.2.1.v20201001120538}}, and {{9.3.0.v20201001144501}}.\r\n\r\n*Test and other information can be found at:*\r\nhttps://github.com/appcelerator/titanium_mobile/pull/12133",
"updateAuthor": {
"name": "smohammed",
"key": "smohammed",
"displayName": "Samir Mohammed",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2020-10-02T14:17:04.000+0000",
"updated": "2020-10-02T14:17:04.000+0000"
}
],
"maxResults": 6,
"total": 6,
"startAt": 0
}
}
}