{ "id": "133844", "key": "TIMOB-17485", "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": [], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-08-12T17:34:39.000+0000", "created": "2014-07-29T08:07:16.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "TCSupportTriage", "module", "nappdrawer" ], "versions": [], "issuelinks": [], "assignee": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-31T22:24:00.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": [], "description": "When using the (very popular) native module \"NappDrawer\" the window flickers for a few milliseconds upon replacing the center ViewController with a UINavigationController.\r\n\r\nThe problem only appears in landscape mode.\r\n\r\n\"NappDrawer\" uses the native library \"MMDrawerController\" which doesn't have this issue.\r\n\r\nThere's also a Github issue with more information on this issue:\r\n\r\nhttps://github.com/viezel/NappDrawer/issues/7\r\n\r\nTo reproduce the issue download and install the latest version of the NappDrawer module and create a new app with the given app.js.\r\nIf you repeatedly click on \"Flickers in landscape\" you will see the effect.\r\n\r\nhttps://github.com/viezel/NappDrawer/tree/master/ios/dist\r\n\r\nI managed to take a screenshot of the iOS 6 version - which also has this bug. You can see that the window/buttons are not yet positioned correctly which is why the screen flickers.", "attachment": [ { "id": "50107", "filename": "app.js", "author": { "name": "mpociot", "key": "mpociot", "displayName": "Marcel Pociot", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-29T08:07:16.000+0000", "size": 1275, "mimeType": "text/javascript" }, { "id": "50108", "filename": "flickering.gif", "author": { "name": "mpociot", "key": "mpociot", "displayName": "Marcel Pociot", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-29T08:07:16.000+0000", "size": 117985, "mimeType": "image/gif" }, { "id": "50123", "filename": "navigation_layout.png", "author": { "name": "mpociot", "key": "mpociot", "displayName": "Marcel Pociot", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-29T21:31:22.000+0000", "size": 17088, "mimeType": "image/png" } ], "flagged": false, "summary": "Replacing UINavigationController in custom module results in flickering", "creator": { "name": "mpociot", "key": "mpociot", "displayName": "Marcel Pociot", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "mpociot", "key": "mpociot", "displayName": "Marcel Pociot", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium 3.3.0\r\niOS 7\r\nNappDrawer 1.1.6", "closedSprints": [ { "id": 129, "state": "closed", "name": "To Be Scheduled", "startDate": "2016-03-28T04:03:55.142Z", "endDate": "2016-04-08T04:03:00.000Z", "completeDate": "2016-03-29T04:09:03.755Z", "originBoardId": 100 } ], "comment": { "comments": [ { "id": "318231", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I have been doing some testing and research. The main problem here is performance with Titanium. When the window is replaced and displayed, a number of internal UIViewController methods are called on the window, and this is where in Titanium we need to process the properties of the window, sub views, etc. \r\nAfter testing and debugging I found a work around, which is a small change in the MMDrawer source code, basically add a delay when a UIViewController removed as it is being replaced. (Let me know if you'd like to implement it)\r\nThe good news is that this is actually working much better in SDK 3.3.0.GA, as Harish mentioned. There has been some performance improvements in Titanium from 3.2.0 to 3.3.0 and these have fixed the issue.\r\nThe latest tests I have done have been with Ti SDK 3.3.0.GA and I have not seen the flickering anymore.\r\n\r\nPS: To see the window, please use a different background color, \"black\" doesn't really do it.\r\n\r\nMarking ticket as fixed.", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-08-12T17:34:39.000+0000", "updated": "2014-08-12T17:34:39.000+0000" }, { "id": "365019", "author": { "name": "mano_mykingdom", "key": "mano_mykingdom", "displayName": "Manojkumar Murugesan", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Hi [~penrique], \r\n\r\n Can you please help me on adding a delay when a UIViewController removed to avoid the flickering?\r\n\r\nThanks!", "updateAuthor": { "name": "mano_mykingdom", "key": "mano_mykingdom", "displayName": "Manojkumar Murugesan", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2015-09-25T18:08:24.000+0000", "updated": "2015-09-25T18:08:24.000+0000" }, { "id": "365108", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~mano_mykingdom], if you're using the latest Titanium SDK, 5.x.x, try adding this to your tiapp.xml, in the ios section:\r\n{code}\r\n\r\n\ttrue\r\n\t// more stuff here\r\n \r\n{code}", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-09-28T15:50:45.000+0000", "updated": "2015-09-28T15:50:45.000+0000" }, { "id": "365133", "author": { "name": "mano_mykingdom", "key": "mano_mykingdom", "displayName": "Manojkumar Murugesan", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Thank you for your help [~penrique], but I'm using 4.1.0.GA only but still it is flickering while replacing the nav window, easily noticeable at nav bar only. Do you have any other suggestions or will that delay work?", "updateAuthor": { "name": "mano_mykingdom", "key": "mano_mykingdom", "displayName": "Manojkumar Murugesan", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2015-09-28T18:10:09.000+0000", "updated": "2015-09-28T18:10:09.000+0000" }, { "id": "416596", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed, if there are any problems, please file a new ticket.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-31T22:24:00.000+0000", "updated": "2017-03-31T22:24:00.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }