{ "id": "86004", "key": "TIMOB-7773", "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": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" }, { "id": "13407", "description": "Sprint 2012-11 API", "name": "Sprint 2012-11 API", "archived": true, "released": true, "releaseDate": "2012-06-03" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-07-06T05:24:42.000+0000", "created": "2012-02-04T10:40:40.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_animation", "qe-testadded" ], "versions": [ { "id": "12593", "name": "Release 2.0.0", "archived": false, "released": true, "releaseDate": "2012-03-30" }, { "id": "12677", "description": "Release 1.8 Service Pack 1", "name": "Release 1.8.1", "archived": true, "released": true, "releaseDate": "2012-01-31" } ], "issuelinks": [], "assignee": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2013-01-18T22:55:33.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": "h4. Problem Description \r\nWhen opening a window in a NavigationGroup and then closing it again with the provided \"back\" button, the back animation is broken (window doesn't slide out, but just disappears). Interestingly, this does not happen, when you select another tab before you do this. If you set the debug level to trace, you see this error message in the console: \r\n\r\n\"Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.\"\r\n\r\nh4. Actual results\r\nThe animation is broken, and gets an error message saying:\r\n\r\n\"Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.\"\r\n\r\nh4. Expected results\r\nThe animation working as expected\r\n\r\nh4. Test Case\r\n0) Copy-paste the included code into a new mobile project.\r\n1) start app\r\n2) tap \"poke me to get to next window\"\r\n3) tap \"My App\" (back button)\r\n4) You will see the broken animation. \r\n\r\n{code}\r\n// this sets the background color of the master UIView (when there are no windows/tab groups on it)\r\nTitanium.UI.setBackgroundColor('#000');\r\n\r\n// create tab group\r\nvar tabGroup = Titanium.UI.createTabGroup();\r\n\r\n\r\n//\r\n// create base UI tab and root window\r\n//\r\nvar win1 = Titanium.UI.createWindow({ \r\n title:'Tab 1',\r\n backgroundColor:'#fff'\r\n});\r\nvar tab1 = Titanium.UI.createTab({ \r\n icon:'KS_nav_views.png',\r\n title:'Tab 1',\r\n window:win1\r\n});\r\n\r\nvar label1 = Titanium.UI.createLabel({\r\n\tcolor:'#999',\r\n\ttext:'I am Window 1',\r\n\tfont:{fontSize:20,fontFamily:'Helvetica Neue'},\r\n\ttextAlign:'center',\r\n\twidth:'auto'\r\n});\r\n\r\nwin1.add(label1);\r\n\r\n//\r\n// create controls tab and root window\r\n//\r\nvar win2 = Titanium.UI.createWindow({ \r\n title:'Tab 2',\r\n backgroundColor:'#fff',\r\n \tnavBarHidden: true\r\n});\r\nvar tab2 = Titanium.UI.createTab({ \r\n icon:'KS_nav_ui.png',\r\n title:'Tab 2',\r\n window:win2\r\n});\r\n\r\n\r\n//Here's the first window...\r\nvar first = Ti.UI.createWindow({\r\n backgroundColor:\"#fff\",\r\n title:\"My App\"\r\n});\r\nvar label = Ti.UI.createLabel({ text: \"poke me to open the next window\" });\r\nfirst.add(label);\r\n\r\n//Here's the nav group that will hold them both...\r\nvar navGroup = Ti.UI.iPhone.createNavigationGroup({\r\n window:first\r\n});\r\n\r\n//Here's a window we want to push onto the stack...\r\nvar second = Ti.UI.createWindow({\r\n background:\"#fff\",\r\n title:\"Child Window\"\r\n});\r\nsecond.add(Ti.UI.createLabel({\r\n\ttop: 10,\r\n\tleft: 10,\r\n\twidth: 300,\r\n\ttext:\"If you did not select tab 1 yet, the back animation will be buggy. If you select tab 1 and come back here, the back animation works.\"\r\n}));\r\n\r\n//When the label on the first window receives a touch, open the second\r\nlabel.addEventListener(\"click\", function(e) {\r\n navGroup.open(second);\r\n});\r\n\r\nwin2.add(navGroup);\r\n\r\n\r\n//\r\n// add tabs\r\n// \r\ntabGroup.addTab(tab1);\r\ntabGroup.addTab(tab2);\r\ntabGroup.setActiveTab(1);\r\n\r\n// open tab group\r\ntabGroup.open();\r\n{code}\r\n\r\nh4. Extra info \r\nIf you do the following steps, the animation will work as expected.\r\n\r\n1) start app\r\n2) select tab 1\r\n3) select tab 2\r\n4) tap \"poke me to get to next window\"\r\n5) tap \"My App\" (back button)\r\n\r\nthe animation works. \r\n", "attachment": [ { "id": "25520", "filename": "app.js", "author": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-02-04T10:40:41.000+0000", "size": 1866, "mimeType": "text/javascript" } ], "flagged": false, "summary": "iOS: Back/close animation broken when a NavigationGroup is in a TabGroup", "creator": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Mobile SDK 1.8.1\r\niOS 5 (device and simulator)", "comment": { "comments": [ { "id": "181959", "author": { "name": "nderzhak", "key": "nderzhak", "displayName": "Nikolai Derzhak", "active": true, "timeZone": "America/Phoenix" }, "body": "This issue latest notification was not sent due to JIRA mail setting. Fixed now. Please check the issue for latests changes.", "updateAuthor": { "name": "nderzhak", "key": "nderzhak", "displayName": "Nikolai Derzhak", "active": true, "timeZone": "America/Phoenix" }, "created": "2012-02-06T06:36:56.000+0000", "updated": "2012-02-06T06:36:56.000+0000" }, { "id": "182000", "author": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hi Nikolai, I didn't quite understand you :-) Are you saying I should monitor the issue here because I won't get email notifications? ", "updateAuthor": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-02-06T06:39:59.000+0000", "updated": "2012-02-06T06:39:59.000+0000" }, { "id": "182885", "author": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hello [~nderzhak], is there anything I can do? This is blocking a release for us at the moment, so it would be great to hear something about this, at least if it is assigned, planned to work on, etc.", "updateAuthor": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-02-13T03:23:51.000+0000", "updated": "2012-02-13T03:23:51.000+0000" }, { "id": "183953", "author": { "name": "jannis", "key": "jannis", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hello? [~shossain]? [~nderzhak]? This issue is rather frustrating. Is there anything I can do to help you guys?", "updateAuthor": { "name": "jannis", "key": "jannis", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-02-22T09:30:15.000+0000", "updated": "2012-02-22T09:30:15.000+0000" }, { "id": "195671", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Dear Appcelerator team, can you please reply to this issue ASAP? \r\n\r\n==> Apple has rejected my app because they didn't like broken navigation transition caused by this very bug!!! <===\r\n\r\nI've tried just about anything for the past 2 days to create a workaround but haven't been successful. This is a show stopper for my company to continue using appcelerator! Can you please help ... or at least reply!?", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-22T16:31:08.000+0000", "updated": "2012-05-22T16:31:08.000+0000" }, { "id": "195673", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "you should also up the severity of this bug since its causing app rejections!", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-22T16:37:00.000+0000", "updated": "2012-05-22T16:37:00.000+0000" }, { "id": "195676", "author": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Dmitry - I have escalated this issue and bumped up the priority.", "updateAuthor": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-22T16:52:11.000+0000", "updated": "2012-05-22T16:52:11.000+0000" }, { "id": "195679", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks Neeraj -- I really appreciate it!", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-22T17:06:49.000+0000", "updated": "2012-05-22T17:06:49.000+0000" }, { "id": "195701", "author": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "body": "The workaround we're using is to programatically switch tabs when the app starts, hidden behind an image view that looks like the app's start screen. Sucks, because it takes time.\r\n\r\nSo yay! After almost 4 months since I reported it, this bug finally gets a little attention.", "updateAuthor": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-05-23T01:00:54.000+0000", "updated": "2012-05-23T01:00:54.000+0000" }, { "id": "195766", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Jannis, can you please post code for your tab workaround magic? This would really help me get unblocked and I am sure it will help Neeraj with repro/fix. Thanks! ", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-23T10:01:38.000+0000", "updated": "2012-05-23T10:01:38.000+0000" }, { "id": "195881", "author": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "body": "Well, I just initially display a window that looks exactly like the splash screen. It sits on top of my normal window, which has opacity 0. Then, I add event listeners to my tabs. Each event listener listens to the 'focus' event: when it gets focused, it calls setActiveTab on the tab group to change to another tab. Each tab needs to be focused and unfocused once, and then the animation is ok.\r\n\r\nEach event listener increments a counter, so that after x times 'setActiveTab' the overlay window with the splash screen is hidden and the app is displayed. ", "updateAuthor": { "name": "jayniz", "key": "jayniz", "displayName": "Jannis H", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-05-24T01:23:31.000+0000", "updated": "2012-05-24T01:23:31.000+0000" }, { "id": "195977", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Jannis -- I just tried your workaround but this issue is still present. I haven't tested it on a device, but on Simulator it doesn't seem to fix it. Can you please post some sample code? Did you do anything else like tweaking tiapp.xml or ? \r\n", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-24T12:24:29.000+0000", "updated": "2012-05-24T12:24:29.000+0000" }, { "id": "195989", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I just tried it on titanium 2.0.1.ga2 and I can confirm its also reproing there", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-24T13:34:00.000+0000", "updated": "2012-05-24T13:34:00.000+0000" }, { "id": "196559", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Pull pending https://github.com/appcelerator/titanium_mobile/pull/2295", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-05-30T13:33:39.000+0000", "updated": "2012-05-30T13:33:39.000+0000" }, { "id": "200383", "author": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as fixed. Tested and verified with:\r\nTitanium Studio, build: 2.1.0.201206251749\r\nTitanium SDK: 2.1.0.v20120626104306\r\nDevice: iPad 3 gen (5.1.1)", "updateAuthor": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-26T13:45:03.000+0000", "updated": "2012-06-26T13:45:03.000+0000" }, { "id": "201780", "author": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Re-opening to edit labels", "updateAuthor": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-06T05:23:51.000+0000", "updated": "2012-07-06T05:23:51.000+0000" }, { "id": "208435", "author": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This issue still repro's with 2.1.0 GA as well as 2.1.1.v20120718121609 on both iphone and ipad. Can you please help?", "updateAuthor": { "name": "dkalashnikov", "key": "dkalashnikov", "displayName": "Dmitry K", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-18T23:25:30.000+0000", "updated": "2012-07-18T23:25:30.000+0000" }, { "id": "208463", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Ran the test case on IOS Sim (4.3, 5.0,5.1), iPhone 4(5.0.1) and iPAD(4.3.5) with 2.0GA, 2.1.1 and master. Can not reproduce the issue.", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-07-19T09:42:11.000+0000", "updated": "2012-07-19T09:42:11.000+0000" } ], "maxResults": 18, "total": 18, "startAt": 0 } } }