{ "id": "83399", "key": "TIMOB-6463", "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": "12096", "description": "", "name": "Sprint 2012-04", "archived": true, "released": true, "releaseDate": "2012-02-26" }, { "id": "12593", "name": "Release 2.0.0", "archived": false, "released": true, "releaseDate": "2012-03-30" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-02-27T20:07:45.000+0000", "created": "2011-12-05T14:49:29.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "module_buttonbar", "qe-testadded" ], "versions": [ { "id": "11331", "description": "", "name": "Release 1.8.0", "archived": true, "released": true, "releaseDate": "2011-10-31" }, { "id": "12571", "description": "CI for 1_7_X", "name": "Release 1.7.6", "archived": true, "released": false } ], "issuelinks": [ { "id": "14069", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "83339", "key": "TIMOB-6438", "fields": { "summary": "iOS : TableView - When running QTS on an iOS device 5.0+, after finishing a test and navigating back to the main list of tests, one cannot run any other tests without terminating the app", "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": "15431", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "87058", "key": "TIMOB-7830", "fields": { "summary": "iOS: keyboardToolbar behavior issues with multiple text fields", "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": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-03-14T16:56:22.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": "Javescript object has been incorrectly garbage collected in some case.\r\n\r\nh4. Repro Steps.\r\n1. Build a project based on the following code snippet and run the project.\r\n2. Touch the first row textfield then continuously click the \"next\" buttons on the keyboardToolbar for more than 4 times.\r\n\r\nExpected Result: You should be able to move the focus to the next textfield by clicking the \"next\" button.\r\nActual Result: The buttons on the toolbar get frozen and you can not switch the focus.\r\n\r\n{code}\r\nTitanium.UI.setBackgroundColor('#000');\r\nvar datasource=[],textFieldArray=[],table,rowId=1,textFieldId= 0;\r\nvar win1 = Titanium.UI.createWindow({\r\n\ttitle:'Window',\r\n\tbarColor:'#808080',\r\n\r\n});\r\n\r\nvar scrollView = Ti.UI.createScrollView({\r\n\ttop:0,\r\n\tbottom:0,\r\n\tright:0,\r\n\tleft:0,\r\n\tcontentWidth:320,\r\n\tcontentHeight:'auto',\r\n\tlayout:'vertical',\r\n\tbackgroundColor:'#fff'\r\n});\r\n\r\nfor (i = 0; i <=12; i++) {\r\n\tvar row = createRows(rowId);\r\n\tscrollView.add(row);\r\n\trowId++;\r\n}\r\n\r\nwin1.add(scrollView);\r\n\r\nfunction createRows(_rowId) {\r\n\r\n\tvar flexSpace = Titanium.UI.createButton({\r\n\t\tsystemButton:Titanium.UI.iPhone.SystemButton.FLEXIBLE_SPACE\r\n\t});\r\n\r\n\tvar navButtons = Titanium.UI.createButtonBar({\r\n\t\tlabels:['Previous','Next'],\r\n\t\tbackgroundColor:'#000',\r\n\t\ttop:100,\r\n\t\tstyle:Titanium.UI.iPhone.SystemButtonStyle.BAR,\r\n\t\theight:25,\r\n\t\twidth:'auto'\r\n\t});\r\n\tvar done = Titanium.UI.createButton({\r\n\t\tsystemButton:Titanium.UI.iPhone.SystemButton.DONE\r\n\t});\r\n\tvar inputTextField = Titanium.UI.createTextField({\r\n\t\tcolor : '#ff7c00',\r\n\t\ttop : 5,\r\n\t\theight : 50,\r\n\t\ttextAlign : 'right',\r\n\t\twidth : '25%',\r\n\t\thintText : '',\r\n\t\tleft : '65%',\r\n\t\tright : '8%',\r\n\t\tkeyboardToolbar : [navButtons,flexSpace,done],\r\n\t\tkeyboardToolbarColor : '#898989',\r\n\t\treturnKeyType : Titanium.UI.RETURNKEY_DEFAULT,\r\n\t\tborderStyle : Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,\r\n\t\tkeyboardType : Titanium.UI.KEYBOARD_NUMBER_PAD,\r\n\t\tfont : {\r\n\t\t\tfontSize : 20,\r\n\t\t\tfontColor : '#ff7c00',\r\n\t\t\tfontWeight : 'bold',\r\n\t\t\tfontFamily : 'Helvetica Neue'\r\n\t\t}\r\n\t});\r\n\tinputTextField.rowId=_rowId;\r\n\ttextFieldId = textFieldId + 1;\r\n\tinputTextField.id = textFieldId;\r\n\ttextFieldArray.push(inputTextField);\r\n\t//prevent inputTextField from being GCed due to a bug.\r\n\t// inputTextField.addEventListener(\r\n\t// 'blur', function(e) {\r\n\t// });\r\n\tnavButtons.addEventListener('click', function(e) {\r\n\t\tmax = textFieldArray.length;\r\n\r\n\t\tif(e.index ===0) { /*Prev Tab*/\r\n\r\n\t\t\tif(\tinputTextField.id ===1) {\r\n\t\t\t\tdone.fireEvent('click');\r\n\t\t\t} else {\r\n\t\t\t\tvar rowIndex=inputTextField.rowId-1;\r\n\t\t\t\tTi.API.info(\"change focus of row: \"+ rowIndex );\r\n\t\t\t\tchangeFocus(rowIndex,0,textFieldArray);\r\n\t\t\t}\r\n\t\t} else { /*Next Tab*/\r\n\t\t\tif(inputTextField.id === max) {\r\n\t\t\t\tdone.fireEvent('click');\r\n\t\t\t} else {\r\n\t\t\t\tvar rowIndex=inputTextField.rowId + 1;\r\n\t\t\t\tTi.API.info(\"change focus of row: \"+ rowIndex );\r\n\t\t\t\tchangeFocus(rowIndex,1,textFieldArray) ;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\tdone.addEventListener('click', function() {\r\n\t\tfor(i=0,j=textFieldArray.length;i