{ "id": "174289", "key": "TIMOB-27496", "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": "20832", "name": "Release 8.3.0", "archived": false, "released": true, "releaseDate": "2019-11-25" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-11-12T10:58:02.000+0000", "created": "2019-10-24T02:14:09.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "Escalation", "ListView", "android", "engSchedule", "regression" ], "versions": [ { "id": "20884", "name": "Release 8.2.1", "archived": false, "released": true, "releaseDate": "2019-10-25" }, { "id": "20827", "name": "Release 8.2.0", "archived": false, "released": true, "releaseDate": "2019-09-19" }, { "id": "20845", "name": "Release 8.1.1", "archived": false, "released": true, "releaseDate": "2019-08-29" } ], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-11-12T10:58:02.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": "The customer discovered a bug with ListView on Android. The issue happens when having a very long list. They use one template for all items and show/hide certain parts of it depending on their business logic. They've noticed that when scrolling below the fold and scroll back up items are being re-rendered using styles from the LAST item in the list. Instead of showing/hiding items, they colored them red. Notice that when rendered it looks correct. When scrolling down and encounter accounts colored with red background and scroll up - previously non-colored accounts also get the red background. The customer tested on Samsung S6, S7, S8, S9, S10 with SDK 8.2.0 GA.\r\nNote: We tested the issue on 8.2.0.GA, Sumsang Galaxy A7(Android 9) and the issue is reproducible on our end.\r\n\r\n*Test steps:*\r\n1. Download the attached project.\r\n2. Open appcelerator studio and import the project.\r\n2. Run the project on a device.\r\n\r\n*Test code:* https://drive.google.com/file/d/14BetKOnAO_JN7Kr33sJti65Jcmdrkga3/view?usp=sharing\r\n\r\n*Test result:* https://drive.google.com/file/d/10PFwqwx-CYTnJzfft6PmFpZG_UF1TDGp/view?usp=sharing\r\n\r\nNote: On iOS it works as expected.", "attachment": [ { "id": "67110", "filename": "20191106_133543.mp4", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-06T21:41:22.000+0000", "size": 5234941, "mimeType": "video/mp4" } ], "flagged": false, "summary": "Android: Setting ListView row item property not in template will be wrongly duplicated on offscreen rows", "creator": { "name": "nsalahin", "key": "nsalahin", "displayName": "Nazmus Salahin", "active": true, "timeZone": "Asia/Dhaka" }, "subtasks": [], "reporter": { "name": "nsalahin", "key": "nsalahin", "displayName": "Nazmus Salahin", "active": true, "timeZone": "Asia/Dhaka" }, "environment": "Appcelerator Command-Line Interface, version 7.0.12\r\nOperating System\r\n Name = Mac OS X\r\n Version = 10.13.6\r\n Architecture = 64bit\r\n # CPUs = 4\r\n Memory = 8589934592\r\nNode.js\r\n Node.js Version = 10.16.3\r\n npm Version = 6.9.0\r\nTitanium CLI\r\n CLI Version = 5.1.1\r\nTitanium SDK\r\n SDK Version = 8.2.0.GA\r\n Target Platform = android", "closedSprints": [ { "id": 1169, "state": "closed", "name": "2019 Sprint 22", "startDate": "2019-10-21T15:38:21.747Z", "endDate": "2019-11-03T15:38:00.000Z", "completeDate": "2019-11-04T18:36:57.022Z", "originBoardId": 114 }, { "id": 1170, "state": "closed", "name": "2019 Sprint 23", "startDate": "2019-11-04T18:38:14.526Z", "endDate": "2019-11-17T18:38:00.000Z", "completeDate": "2019-11-18T16:38:18.423Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "452338", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Here's a simplified test case:\r\n{code:js}\r\nconst win = Ti.UI.createWindow({ backgroundColor: 'gray' });\r\nconst listView = Ti.UI.createListView({\r\n templates: {\r\n template: {\r\n type: 'Ti.UI.View',\r\n childTemplates: [\r\n {\r\n type: 'Ti.UI.View',\r\n bindId: 'view',\r\n properties: {\r\n height: 30,\r\n backgroundColor: 'white'\r\n },\r\n childTemplates: [\r\n {\r\n type: 'Ti.UI.Label',\r\n bindId: 'label',\r\n properties: {\r\n color: 'black'\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n },\r\n defaultItemTemplate: 'template'\r\n});\r\n\r\nconst items = [];\r\nfor (let i = 0; i < 18; i++) {\r\n items.push({\r\n template: 'template',\r\n label: {\r\n text: `Item #${i}`\r\n }\r\n });\r\n}\r\nitems.push({\r\n template: 'template',\r\n label: {\r\n text: `Item #19`\r\n },\r\n view: {\r\n backgroundColor: 'red'\r\n }\r\n});\r\nlistView.sections = [ Ti.UI.createListSection({ items }) ];\r\n\r\nwin.add(listView);\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-10-29T18:12:28.000+0000", "updated": "2019-10-29T18:12:28.000+0000" }, { "id": "452343", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/11302", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-10-29T19:06:06.000+0000", "updated": "2019-10-29T19:06:06.000+0000" }, { "id": "452499", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to master", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-11-06T18:25:40.000+0000", "updated": "2019-11-06T18:25:40.000+0000" }, { "id": "452509", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~gmathews], When I tap on the red row & then scroll up & down I am able to reproduce the issue.\r\nSeems its fixed for the original case & this can be a side effect.\r\n\r\n [^20191106_133543.mp4] ", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-06T21:34:58.000+0000", "updated": "2019-11-06T21:41:35.000+0000" }, { "id": "452536", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/11319", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-07T22:04:51.000+0000", "updated": "2019-11-07T22:04:51.000+0000" }, { "id": "452587", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "8_3_X: https://github.com/appcelerator/titanium_mobile/pull/11323", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-11T19:32:42.000+0000", "updated": "2019-11-11T19:32:42.000+0000" }, { "id": "452590", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed.\r\nWaiting for Jenkins to merge.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-11T20:05:44.000+0000", "updated": "2019-11-11T20:05:44.000+0000" }, { "id": "452594", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to master and 8_3_X", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-11-11T22:47:26.000+0000", "updated": "2019-11-11T22:47:26.000+0000" }, { "id": "452605", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket, fix verified in SDK version {{8.3.0.v20191111195828}} and SDK version {{9.0.0.v20191111145151}}\r\n\r\nTest and other information can be found at: \r\nmaster: https://github.com/appcelerator/titanium_mobile/pull/11319\r\n8_3_X: https://github.com/appcelerator/titanium_mobile/pull/11323", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-12T10:57:56.000+0000", "updated": "2019-11-12T10:57:56.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }