{ "id": "119349", "key": "TIMOB-15020", "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": "15646", "description": "2013 Sprint 18", "name": "2013 Sprint 18", "archived": true, "released": true, "releaseDate": "2013-09-06" }, { "id": "15690", "description": "2013 Sprint 18 API", "name": "2013 Sprint 18 API", "archived": true, "released": true, "releaseDate": "2013-09-06" }, { "id": "15593", "description": "Release 3.1.3", "name": "Release 3.1.3", "archived": true, "released": true, "releaseDate": "2013-09-18" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-08-31T00:55:43.000+0000", "created": "2013-08-30T22:34:43.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "kitchensink", "qe-closed-3.1.3", "qe-testadded" ], "versions": [ { "id": "15593", "description": "Release 3.1.3", "name": "Release 3.1.3", "archived": true, "released": true, "releaseDate": "2013-09-18" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "issuelinks": [], "assignee": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2014-02-12T09:45:16.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": "on iPhone\r\n1. KS->BaseUI->WindowStandalone\r\n2. Rotate to landscape\r\n3. Press Back button.\r\n4. See me crash", "attachment": [], "flagged": false, "summary": "IOS: App crashes when forcing orientations in NavigationController", "creator": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "269153", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Test Case 1 (TAB GROUP)\n{code}\n//TAB GROUP TEST 1\nvar colors = ['white','red','green','blue','teal']\n\nvar p = false;\nvar ll = false;\nvar lr = false;\nvar up = false;\n\nvar counter = 0;\nfunction genModes(){\n var modes = [];\n if (p == true) {modes.push(Ti.UI.PORTRAIT)};\n if (ll == true) {modes.push(Ti.UI.LANDSCAPE_LEFT)};\n if (lr == true) {modes.push(Ti.UI.LANDSCAPE_RIGHT)};\n if (up == true) {modes.push(Ti.UI.UPSIDE_PORTRAIT)};\n\n return modes;\n}\n\nfunction openWin(curWin){\n var theWin = genWindow(genModes());\n\n theWin.addEventListener('open', function(){\n counter ++;\n })\n theWin.addEventListener('close', function(){\n counter --;\n })\n curWin.tab.push(theWin);\n}\n\nfunction genWindow(modes){\n var temp = counter % 5;\n var win = Ti.UI.createWindow({\n backgroundColor:colors[temp],\n orientationModes:modes,\n layout:'vertical'\n })\n\n var c1 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var c2 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var c3 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var l = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:'Window '+counter+' orientationModes '+JSON.stringify(modes)+'.'\n })\n var l1 = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:'USE BUTTONS TO TOGGLE FLAGS'\n })\n var l2 = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:''\n })\n win.add(l);\n win.add(c1);\n win.add(c2);\n win.add(l2);\n win.add(c3);\n\n var b1 = Ti.UI.createButton({\n title:'PORTRAIT'\n })\n var b2 = Ti.UI.createButton({\n title:'UPSIDE PORTRAIT',\n left:5\n })\n var b3 = Ti.UI.createButton({\n title:'LANDSCAPE_LEFT'\n })\n var b4 = Ti.UI.createButton({\n title:'LANDSCAPE_RIGHT',\n left:5\n })\n c1.add(b1);\n c1.add(b2);\n c2.add(b3);\n c2.add(b4);\n\n b1.addEventListener('click',function(){\n p = !p;\n l2.text = JSON.stringify(genModes());\n })\n b2.addEventListener('click',function(){\n up = !up;\n l2.text = JSON.stringify(genModes());\n })\n b3.addEventListener('click',function(){\n ll = !ll;\n l2.text = JSON.stringify(genModes());\n })\n b4.addEventListener('click',function(){\n lr = !lr;\n l2.text = JSON.stringify(genModes());\n })\n\n b5 = Ti.UI.createButton({\n title:'OPEN'\n })\n\n b7 = Ti.UI.createButton({\n title:'CLOSE',\n left:10\n })\n c3.add(b5);\n if (counter > 0) \n {\n c3.add(b7);\n };\n \n\n b5.addEventListener('click',function(){openWin(win);});\n b7.addEventListener('click',function(){win.close();});\n\n win.addEventListener('focus',function(){\n p = ll = lr = up = false;\n l2.text = JSON.stringify(genModes());\n });\n\n return win;\n}\n\n\nvar rootWindow1 = genWindow(genModes());\nvar tab1 = Ti.UI.createTab({\n window:rootWindow1,\n title:'tab1'\n})\ncounter++;\nvar rootWindow2 = genWindow(genModes());\nvar tab2 = Ti.UI.createTab({\n window:rootWindow2,\n title:'tab2'\n})\ncounter++;\nvar rootWindow3 = genWindow(genModes());\nvar tab3 = Ti.UI.createTab({\n window:rootWindow3,\n title:'tab3'\n})\ncounter++;\nvar rootWindow4 = genWindow(genModes());\nvar tab4 = Ti.UI.createTab({\n window:rootWindow4,\n title:'tab4'\n})\ncounter++;\nvar rootWindow5 = genWindow(genModes());\nvar tab5 = Ti.UI.createTab({\n window:rootWindow5,\n title:'tab5'\n})\ncounter++;\nvar rootWindow6 = genWindow(genModes());\nvar tab6 = Ti.UI.createTab({\n window:rootWindow6,\n title:'tab6'\n})\ncounter++;\nvar tabGrp = Ti.UI.createTabGroup({\n tabs:[tab1,tab2,tab3,tab4,tab5,tab6]\n})\ntabGrp.open();\n{code}\n\n\nTEST CASE 2 (NAVIGATION WINDOW)\n{code}\n//NAV WINDOW TEST\nvar colors = ['white','red','green','blue','teal']\n\nvar p = false;\nvar ll = false;\nvar lr = false;\nvar up = false;\n\nvar counter = 0;\nfunction genModes(){\n var modes = [];\n if (p == true) {modes.push(Ti.UI.PORTRAIT)};\n if (ll == true) {modes.push(Ti.UI.LANDSCAPE_LEFT)};\n if (lr == true) {modes.push(Ti.UI.LANDSCAPE_RIGHT)};\n if (up == true) {modes.push(Ti.UI.UPSIDE_PORTRAIT)};\n\n return modes;\n}\n\nfunction openWin(){\n var theWin = genWindow(genModes());\n\n theWin.addEventListener('open', function(){\n counter ++;\n })\n theWin.addEventListener('close', function(){\n counter --;\n })\n navGrp.push(theWin);\n}\n\nfunction genWindow(modes){\n var temp = counter % 5;\n var win = Ti.UI.createWindow({\n backgroundColor:colors[temp],\n orientationModes:modes,\n layout:'vertical'\n })\n\n var c1 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var c2 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var c3 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var l = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:'Window '+counter+' orientationModes '+JSON.stringify(modes)+'.'\n })\n var l1 = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:'USE BUTTONS TO TOGGLE FLAGS'\n })\n var l2 = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:''\n })\n win.add(l);\n win.add(c1);\n win.add(c2);\n win.add(l2);\n win.add(c3);\n\n var b1 = Ti.UI.createButton({\n title:'PORTRAIT'\n })\n var b2 = Ti.UI.createButton({\n title:'UPSIDE PORTRAIT',\n left:5\n })\n var b3 = Ti.UI.createButton({\n title:'LANDSCAPE_LEFT'\n })\n var b4 = Ti.UI.createButton({\n title:'LANDSCAPE_RIGHT',\n left:5\n })\n c1.add(b1);\n c1.add(b2);\n c2.add(b3);\n c2.add(b4);\n\n b1.addEventListener('click',function(){\n p = !p;\n l2.text = JSON.stringify(genModes());\n })\n b2.addEventListener('click',function(){\n up = !up;\n l2.text = JSON.stringify(genModes());\n })\n b3.addEventListener('click',function(){\n ll = !ll;\n l2.text = JSON.stringify(genModes());\n })\n b4.addEventListener('click',function(){\n lr = !lr;\n l2.text = JSON.stringify(genModes());\n })\n\n b5 = Ti.UI.createButton({\n title:'OPEN'\n })\n\n b6 = Ti.UI.createButton({\n title:'OPEN MODAL',\n left:10\n })\n\n b7 = Ti.UI.createButton({\n title:'CLOSE',\n left:10\n })\n c3.add(b5);\n //c3.add(b6);\n if (counter > 0) \n {\n c3.add(b7);\n };\n \n\n b5.addEventListener('click',function(){openWin(false);});\n b6.addEventListener('click',function(){openWin(true);});\n b7.addEventListener('click',function(){win.close();});\n\n win.addEventListener('focus',function(){\n p = ll = lr = up = false;\n l2.text = JSON.stringify(genModes());\n });\n\n return win;\n}\n\n\nvar rootWindow = genWindow(genModes());\nvar navGrp = Ti.UI.iOS.createNavigationWindow({\n window:rootWindow\n})\ncounter++;\nnavGrp.open();\n{code}\nTEST CASE 3 (PLAIN LIGHTWEIGHT WINDOWS)\n{code}\n//PLAIN WINDOW TEST\nvar isIOS7 = false;\nvar version = Titanium.Platform.version.split(\".\");\nvar major = parseInt(version[0],10);\nif (major >= 7) {\n isIOS7 = true;\n}\n\nvar colors = ['white','red','green','blue','teal']\nvar p = false;\nvar ll = false;\nvar lr = false;\nvar up = false;\n\nvar counter = 0;\nfunction genModes(){\n var modes = [];\n if (p == true) {modes.push(Ti.UI.PORTRAIT)};\n if (ll == true) {modes.push(Ti.UI.LANDSCAPE_LEFT)};\n if (lr == true) {modes.push(Ti.UI.LANDSCAPE_RIGHT)};\n if (up == true) {modes.push(Ti.UI.UPSIDE_PORTRAIT)};\n\n return modes;\n}\n\nfunction openWin(modal){\n var theWin = genWindow(genModes());\n\n theWin.addEventListener('open', function(){\n counter ++;\n })\n theWin.addEventListener('close', function(){\n counter --;\n })\n theWin.open({modal:modal});\n}\n\nfunction genWindow(modes){\n var temp = counter % 5;\n var win = Ti.UI.createWindow({\n backgroundColor:colors[temp],\n orientationModes:modes,\n layout:'vertical'\n })\n\n var c1 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var c2 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var c3 = Ti.UI.createView({\n width:Ti.UI.SIZE,\n height:Ti.UI.SIZE,\n layout:'horizontal',\n top:10\n })\n\n var theTop = 10;\n if (isIOS7) {\n theTop = 30;\n }\n\n var l = Ti.UI.createLabel({\n top:theTop,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:'Window '+counter+' orientationModes '+JSON.stringify(modes)+'.'\n })\n var l1 = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:'USE BUTTONS TO TOGGLE FLAGS'\n })\n var l2 = Ti.UI.createLabel({\n top:10,\n textAlign:Ti.UI.TEXT_ALIGN_CENTER,\n text:''\n })\n win.add(l);\n win.add(c1);\n win.add(c2);\n win.add(l2);\n win.add(c3);\n\n var b1 = Ti.UI.createButton({\n title:'PORTRAIT'\n })\n var b2 = Ti.UI.createButton({\n title:'UPSIDE PORTRAIT',\n left:5\n })\n var b3 = Ti.UI.createButton({\n title:'LANDSCAPE_LEFT'\n })\n var b4 = Ti.UI.createButton({\n title:'LANDSCAPE_RIGHT',\n left:5\n })\n c1.add(b1);\n c1.add(b2);\n c2.add(b3);\n c2.add(b4);\n\n b1.addEventListener('click',function(){\n p = !p;\n l2.text = JSON.stringify(genModes());\n })\n b2.addEventListener('click',function(){\n up = !up;\n l2.text = JSON.stringify(genModes());\n })\n b3.addEventListener('click',function(){\n ll = !ll;\n l2.text = JSON.stringify(genModes());\n })\n b4.addEventListener('click',function(){\n lr = !lr;\n l2.text = JSON.stringify(genModes());\n })\n\n b5 = Ti.UI.createButton({\n title:'OPEN'\n })\n\n b6 = Ti.UI.createButton({\n title:'OPEN MODAL',\n left:10\n })\n\n b7 = Ti.UI.createButton({\n title:'CLOSE',\n left:10\n })\n c3.add(b5);\n c3.add(b6);\n if (counter > 0) \n {\n c3.add(b7);\n };\n \n\n b5.addEventListener('click',function(){openWin(false);});\n b6.addEventListener('click',function(){openWin(true);});\n b7.addEventListener('click',function(){win.close();});\n\n win.addEventListener('focus',function(){\n p = ll = lr = up = false;\n l2.text = JSON.stringify(genModes());\n });\n\n return win;\n}\n\n\nopenWin(false);\n{code}", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-08-30T22:38:20.000+0000", "updated": "2013-08-30T22:38:20.000+0000" }, { "id": "269154", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "master - https://github.com/appcelerator/titanium_mobile/pull/4632", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-08-30T22:39:16.000+0000", "updated": "2013-08-30T22:39:16.000+0000" }, { "id": "269164", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Backport to 3_1_X - https://github.com/appcelerator/titanium_mobile/pull/4633", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-08-30T22:49:12.000+0000", "updated": "2013-08-30T22:49:12.000+0000" }, { "id": "269339", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested the above code as well as KS->BaseUI->WindowStandalone and verified NO crash.\nEnvironment:\nAppcelerator Studio, build: 3.1.3.201308302458\nTitanium SDK, build: 3.1.3.v20130902103448\nKS[3_1_X]\nhttps://github.com/appcelerator-developer-relations/KitchenSink/tree/3_1_X\nCLI: 3.1.2\nAlloy: 1.2.1\nDevices:\niPad 4 iOS7(11A4449d)", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-09-03T20:09:12.000+0000", "updated": "2013-09-03T20:09:12.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }