{ "id": "102956", "key": "TIMOB-11321", "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": "15707", "description": "2013 Sprint 23", "name": "2013 Sprint 23", "archived": true, "released": true, "releaseDate": "2013-11-15" }, { "id": "15709", "description": "2013 Sprint 23 Core", "name": "2013 Sprint 23 Core", "archived": true, "released": true, "releaseDate": "2013-11-15" } ], "resolution": { "id": "11", "description": "Is not a bug in our product", "name": "Not Our Bug" }, "resolutiondate": "2013-11-12T19:13:58.000+0000", "created": "2012-10-09T17:03:29.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "allen-review", "core", "look1", "triage" ], "versions": [], "issuelinks": [ { "id": "30183", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "inwardIssue": { "id": "105163", "key": "TIMOB-11811", "fields": { "summary": "Android: Bring animation to parity with iOS capabilities", "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": "Critical", "id": "1" }, "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } } ], "assignee": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-21T20:57:13.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": "Not entirely sure whats happening here but it seems as though Android's 2Dmatrix function, particularly the translate function therein, doesn't work as expected. We get massive amounts of flickering, occasional ghosting, and the frame/proxy doesn't update when transformed.\r\n\r\nYou can see the visual comparison here:\r\n\r\nAndroid: [Video|http://f.cl.ly/items/1X3V0e2X1x0U0R2S3n1C/Screen%20Recording%202.mov]\r\niOS: [Video|http://f.cl.ly/items/3r3r0f0D1e3m3i2C3p0h/Screen%20Recording%203.mov]\r\n\r\nThe code used to produce both videos: [http://pastie.org/5025145]\r\n\r\nSDKs used: 2.1.3 & 3.0\r\n\r\nNote: Testing on the device was no different than testing in the emulator.\r\n\r\n{code}\r\nvar debounce = function(func, threshold, execAsap) {\r\n\tvar timeout;\r\n\treturn function debounced() {\r\n\t\tvar obj = this, args = arguments;\r\n\t\tfunction delayed() {\r\n\t\t\tif (!execAsap)\r\n\t\t\t\tfunc.apply(obj, args);\r\n\t\t\ttimeout = null;\r\n\t\t};\r\n\r\n\t\tif (timeout)\r\n\t\t\tclearTimeout(timeout);\r\n\t\telse if (execAsap)\r\n\t\t\tfunc.apply(obj, args);\r\n\r\n\t\ttimeout = setTimeout(delayed, threshold || 100);\r\n\t};\r\n};\r\n\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor : 'white'\r\n});\r\n\r\nvar square = Ti.UI.createView({\r\n\tbackgroundColor : 'black',\r\n\twidth : 100,\r\n\theight : 100\r\n});\r\n\r\nvar curX = 0;\r\nvar curY = 0;\r\nvar matrix = Ti.UI.create2DMatrix();\r\n\r\nsquare.addEventListener('touchstart', function(e) {\r\n\tcurX = e.x;\r\n\tcurY = e.y;\r\n});\r\n\r\nsquare.addEventListener('touchmove', debounce(function(e) {\r\n\tvar deltaX = e.x - curX;\r\n\tvar deltaY = e.y - curY;\r\n\r\n\tmatrix = matrix.translate(deltaX, deltaY);\r\n\r\n\tsquare.transform = matrix;\r\n}, 10, false));\r\n\r\nwin.add(square);\r\nwin.open();\r\n{code}", "attachment": [], "flagged": false, "summary": "Android: Transformations with 2D Matrices on Android produces flickering, ghosting, and other strange behavior.", "creator": { "name": "animecyc", "key": "animecyc", "displayName": "Seth Benjamin", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "animecyc", "key": "animecyc", "displayName": "Seth Benjamin", "active": true, "timeZone": "America/New_York" }, "environment": null, "comment": { "comments": [ { "id": "262566", "author": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Resolved as a part of https://github.com/appcelerator/titanium_mobile/pull/4398\r\n", "updateAuthor": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-20T18:25:24.000+0000", "updated": "2013-07-20T18:25:24.000+0000" }, { "id": "276455", "author": { "name": "lokeshchdhry", "key": "lokeshchdhry", "displayName": "Lokesh Choudhary", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I am still able to see the flickering behavior on android. Reopening.\r\n\r\nEnvironment:\r\nAppcel Studio : 3.2.0.201310230601\r\nTi SDK : 3.2.0.v20131022171645\r\nMac OSX : 10.8.5\r\nCLI - 3.2.0 with hash 72f7426b4ee6c2d2883c666d5b7e03906a16012f\r\nDevice: Samsung Galaxy S4 running android 4.2.2\r\nAndroid Emulator : 4.2.2", "updateAuthor": { "name": "lokeshchdhry", "key": "lokeshchdhry", "displayName": "Lokesh Choudhary", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-10-23T21:17:39.000+0000", "updated": "2013-10-23T21:17:39.000+0000" }, { "id": "278742", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This issue is not resolved by TIMOB-11811 because in this test case, it uses a 2DMatrix to transform the view and this 2DMatrix is the result of concatenating the translation operation more than once. In this case, we can not use the Honeycomb+ Property Animators so we can only use the old-style view animations. (refer [here|https://github.com/appcelerator/titanium_mobile/blob/master/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationBuilder.java#L81] for more info) \r\n\r\nPrior to Honeycomb, the animations changed the visual appearance of the target objects... but they didn't actually change the objects themselves. Please refer to http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html for more details. Therefore, although the square view is rendered in another position, it is still only responded to the touch in the original position. Resolved the ticket as Not Our Bug.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-11-08T00:34:24.000+0000", "updated": "2013-11-12T19:13:15.000+0000" }, { "id": "414399", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing this ticket as the issue is not our bug.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-21T20:57:13.000+0000", "updated": "2017-03-21T20:57:13.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }