{ "id": "141276", "key": "TIMOB-18155", "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": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" }, { "id": "16593", "description": "Release 4.0.0", "name": "Release 4.0.0", "archived": false, "released": true, "releaseDate": "2015-05-21" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-12-10T22:29:43.000+0000", "created": "2014-12-09T07:44:24.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "qe-3.5.0" ], "versions": [ { "id": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" } ], "issuelinks": [ { "id": "43964", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "141377", "key": "TIMOB-18171", "fields": { "summary": "iOS: If TabGroup is inside a TableView, Focus and Blur events are not called when switching between tabs more than few times", "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": "None", "id": "6" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2014-12-11T22:33:25.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": "First Tab of a TabGroup is not firing *FOCUS* event when switching between tabs while the TabGroup is inside a TableView. \r\n\r\nh5. Steps To Reproduce\r\n1. Create a classic app using following code\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\nvar tbl_data = [\r\n\t{title:'Row 1'},\r\n\t{title:'Row 2'},\r\n\t{title:'Row 3'}\r\n];\r\n\r\nvar table = Titanium.UI.createTableView({\r\n\tdata:tbl_data\r\n});\r\n\r\ntable.addEventListener('click', function(event) {\r\n\t\r\n\tvar tabGroup = Titanium.UI.createTabGroup();\r\n\r\n\tvar win1 = Titanium.UI.createWindow({ \r\n\t\tname:'win1',\r\n \ttitle:'Tab 1',\r\n \tbackgroundColor:'#fff'\r\n\t});\r\n\tvar tab1 = Titanium.UI.createTab({ \r\n\t\tname:'tab1',\r\n\t icon:'KS_nav_views.png',\r\n \t\ttitle:'Tab 1',\r\n \twindow:win1\r\n\t});\r\n\r\n\tvar win2 = Titanium.UI.createWindow({ \r\n\t\tname:'win2',\r\n \ttitle:'Tab 2',\r\n \tbackgroundColor:'#fff'\r\n\t});\r\n\tvar tab2 = Titanium.UI.createTab({ \r\n\t\tname:'tab2', \r\n \ticon:'KS_nav_ui.png',\r\n \ttitle:'Tab 2',\r\n \t\twindow:win2\r\n\t});\r\n\r\n\ttabGroup.addTab(tab1); \r\n\ttabGroup.addTab(tab2); \r\n\r\n \ttabGroup.addEventListener('focus', function(e) {\r\n \t\tTi.API.info('-------------> tabGroup focus event fired! - ' + e.source.name);\r\n \t});\r\n \r\n \ttab1.addEventListener('focus', function(e) {\r\n Ti.API.info('-------------> tab1 focus event fired! - ' + e.source.name);\r\n });\r\n tab2.addEventListener('focus', function(e) {\r\n Ti.API.info('-------------> tab2 focus event fired! - ' + e.source.name);\r\n });\r\n win1.addEventListener('focus', function(e) {\r\n Ti.API.info('-------------> win1 focus event fired! - ' + e.source.name);\r\n });\r\n win2.addEventListener('focus', function(e) {\r\n Ti.API.info('-------------> win2 focus event fired! - ' + e.source.name);\r\n });\r\n\r\n tab1.addEventListener('blur', function(e) {\r\n Ti.API.info('**************> tab1 blur event fired! - ' + e.source.name);\r\n });\r\n tab2.addEventListener('blur', function(e) {\r\n Ti.API.info('**************> tab2 blur event fired! - ' + e.source.name);\r\n });\r\n win1.addEventListener('blur', function(e) {\r\n Ti.API.info('**************> win1 blur event fired! - ' + e.source.name);\r\n });\r\n win2.addEventListener('blur', function(e) {\r\n Ti.API.info('**************> win2 blur event fired! - ' + e.source.name);\r\n });\r\n tabGroup.open();\r\n});\r\n\r\n\r\ntable.setData(tbl_data);\r\nvar win = Ti.UI.createWindow();\r\nwin.add(table);\r\nwin.open();\r\n{code}\r\n2. Run the app in iOS device\r\n3. Switch between Tab1 and Tab2 few times\r\n\r\nh5. Actual Result\r\nTabs are *not triggered* focus event properly for every time.\r\nFollowing is the console log:\r\n{code}\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> tab1 focus event fired! - tab1\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : **************> tab1 blur event fired! - tab1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> tab2 focus event fired! - tab2\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n[INFO] : **************> win2 blur event fired! - win2\r\n[INFO] : **************> tab2 blur event fired! - tab2\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n[INFO] : -------------> tab2 focus event fired! - tab2\r\n[INFO] : **************> win2 blur event fired! - win2\r\n[INFO] : **************> tab2 blur event fired! - tab2\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n[INFO] : **************> win2 blur event fired! - win2\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n[INFO] : **************> win2 blur event fired! - win2\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n[INFO] : **************> win2 blur event fired! - win2\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n{code}\r\n\r\nh5. Expected Result\r\nTab focus event should be triggered properly every time.\r\nFollowing console log *should repeat* for every focus event.\r\n{code}\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> tab1 focus event fired! - tab1\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n[INFO] : **************> win1 blur event fired! - win1\r\n[INFO] : **************> tab1 blur event fired! - tab1\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> tab2 focus event fired! - tab2\r\n[INFO] : -------------> win2 focus event fired! - win2\r\n[INFO] : **************> win2 blur event fired! - win2\r\n[INFO] : **************> tab2 blur event fired! - tab2\r\n[INFO] : -------------> tabGroup focus event fired! - undefined\r\n[INFO] : -------------> tab1 focus event fired! - tab1\r\n[INFO] : -------------> win1 focus event fired! - win1\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: Tab doesn't fire FOCUS event when switching while TabGroup is inside a TableView", "creator": { "name": "kvelummaylum", "key": "kvelummaylum", "displayName": "Kajenthiran Velummaylum", "active": true, "timeZone": "Asia/Shanghai" }, "subtasks": [], "reporter": { "name": "kvelummaylum", "key": "kvelummaylum", "displayName": "Kajenthiran Velummaylum", "active": true, "timeZone": "Asia/Shanghai" }, "environment": "Titanium SDK: 3.5.0.v20141208122514\r\nAppc-Studio: 3.4.1 GA\r\nTitanium CLI: 3.4.1 GA\r\nAlloy : 1.5.1 GA\r\nXcode : 6.1\r\nOS: OSX 10.10.1\r\nDevice : iPhone 6plus (iOS 8.1)", "closedSprints": [ { "id": 272, "state": "closed", "name": "2014 Sprint 25 SDK", "startDate": "2014-12-08T22:49:31.264Z", "endDate": "2014-12-22T01:00:00.000Z", "completeDate": "2015-01-05T18:18:28.523Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "335885", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Pull pending\r\nmaster - https://github.com/appcelerator/titanium_mobile/pull/6466\r\n3_5_X - https://github.com/appcelerator/titanium_mobile/pull/6467", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-12-10T22:11:18.000+0000", "updated": "2014-12-10T22:11:18.000+0000" }, { "id": "336074", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed. Verified tab properly fires the focus event after switching between tabs.\r\n\r\nTested on:\r\n\r\nAppcelerator Studio, build: 3.4.1.201410281743\r\nSDK build: 3.5.0.v20141211124115\r\nCLI: 3.4.1\r\nAlloy: 1.5.1\r\nXcode: 6.2 beta \r\nDevices: iphone 6 plus (8.1.1)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-12-11T22:32:43.000+0000", "updated": "2014-12-11T22:32:43.000+0000" }, { "id": "336075", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fix.", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-12-11T22:33:25.000+0000", "updated": "2014-12-11T22:33:25.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }