{ "id": "113642", "key": "ALOY-648", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "15402", "description": "Alloy 1.2.0, concurrent with SDK 3.1.0", "name": "Alloy 1.2.0", "archived": false, "released": true, "releaseDate": "2013-08-15" }, { "id": "15406", "description": "2013 Sprint 09", "name": "2013 Sprint 09", "archived": true, "released": true, "releaseDate": "2013-05-06" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-05-01T22:36:29.000+0000", "created": "2013-05-01T16:42:52.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [], "issuelinks": [ { "id": "30477", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "113680", "key": "TIMOB-13737", "fields": { "summary": "ListSection.setItems() does not respect {animated:false}", "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": "28310", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "112256", "key": "ALOY-609", "fields": { "summary": "ListSection data binding", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } }, { "id": "28355", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "113680", "key": "TIMOB-13737", "fields": { "summary": "ListSection.setItems() does not respect {animated:false}", "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 } } } } ], "assignee": null, "updated": "2018-03-07T22:26:06.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "13605", "name": "Models" }, { "id": "12332", "name": "Titanium SDK", "description": "Any integration or issues with the TiSDK" }, { "id": "12326", "name": "XML", "description": "View XML and parsing" } ], "description": "Currently when data binding with a ListSection as per ALOY-609, the code for adding items to the sections is totally generated by Alloy. Unfortunately as the ListView API is written, it requires that the iOS animation properties of the ListView be passed into any given item insertion or deletion function, it is not set at the ListView level. To facilitate this, Alloy needs some way to expose to developers a means to set these properties on a per-UI-update basis. \r\n\r\n{code:xml}\r\n\r\n{code}\r\n\r\n{code:javascript}\r\n// Animation options for ListView are only supported on iOS...\r\nif (OS_IOS) {\r\n\t// Add \"opts\" to the \"dataFunction\" function object. In this case, we'll be\r\n\t// adding \"animation\" options that will be used by the ListView's generated\r\n\t// data binding code to make sure our ListItems don't animate when \r\n\t// updated.\r\n\t// TODO: There's a Titanium bug where ListItems still animate when using\r\n\t// the ListSection.setItems() function. When TIMOB-13737 is resolved,\r\n\t// this will work as expected and the ListItems won't animate when\r\n\t// they are added.\r\n\tloadData.opts = {\r\n\t\tanimation: {\r\n\t\t\tanimated: false\r\n\t\t}\r\n\t};\r\n}\r\n{code}", "attachment": [], "flagged": false, "summary": "Allow ListViewAnimationProperties to be passed to functions while data binding", "creator": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "249835", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This issue is relevant to iOS platform only as it is the only one that supports the animation object being passed to the ListView: http://docs.appcelerator.com/titanium/latest/#!/api/ListViewAnimationProperties\r\n\r\n*DISCLAIMER*: This is actual unverifiable until the ticket I logged, TIMOB-13737, is resolved. That ticket deals with the fact that ListSection.setItems() does not respect the animation object passed to it as its second argument. So I can confirm that the object gets constructed and passed to setItems() as expected, but since this functionality is broken at the Titanium level, there's no way to totally verify for now.\r\n\r\nPR: https://github.com/appcelerator/alloy/pull/126\r\ntest case: https://github.com/appcelerator/alloy/tree/master/test/apps/testing/ALOY-648\r\n\r\nDuring functional testing, only when TIMOB-13737 is resolved, the items should appear on the listview when the button is clicked, but they should not be animated on. To be sure of the behavior, run once with the section wrapped in the OS_IOS conditional, then once with it. You should notice without the OS_IOS conditional block that the items animate when added. With the conditional block they should not animate when added.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-05-01T22:36:29.000+0000", "updated": "2013-05-01T22:36:29.000+0000" }, { "id": "263787", "author": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verification blocked by TIMOB-13737", "updateAuthor": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-29T22:23:57.000+0000", "updated": "2013-07-29T22:23:57.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }