{ "id": "93059", "key": "TIMOB-9487", "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": "13408", "description": "Sprint 2012-12 API", "name": "Sprint 2012-12 API", "archived": true, "released": true, "releaseDate": "2012-06-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-06-18T13:24:59.000+0000", "created": "2012-06-11T14:58:49.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "api", "regression" ], "versions": [ { "id": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" } ], "issuelinks": [ { "id": "17763", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "93141", "key": "TIMOB-9511", "fields": { "summary": "Android: Views>Events Propagation - Window label is not getting displayed on screen.", "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": "17747", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "93055", "key": "TIMOB-9486", "fields": { "summary": "Android: Flickering labels displayed while KS testing", "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": "17758", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "93091", "key": "TIMOB-9496", "fields": { "summary": "Android:Click on different tabs in KS shows \"Appcelerator Titanium 2.1.0\" label ", "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": "17850", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "93099", "key": "TIMOB-9499", "fields": { "summary": "Android: Set orientation resets by itself", "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": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-06-18T20:24:03.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": "10202", "name": "Android", "description": "Android Platform" } ], "description": "Steps to reproduce:\r\n1. Run KS\r\n2. Check the label at the bottom of the screen. It keeps showing \"tab changed to 1 old index 0\".\r\n\r\nIt's a regression. It does not happen with 2.0.2.", "attachment": [], "flagged": false, "summary": "Android: KS: tab focus event keeps being fired", "creator": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "198345", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The cause of this bug is how Android now \"bubbles\" all window events to the tab and tab group.\r\nRequires parity discussion to determine if this is correct behavior.", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-13T11:54:06.000+0000", "updated": "2012-06-13T11:54:06.000+0000" }, { "id": "198838", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "h3. TabGroup/Window events test case\r\n\r\n{code:javascript}\r\nTitanium.UI.backgroundColor = \"#ff0\";\r\n\r\nvar tabGroup = Ti.UI.createTabGroup({\r\n backgroundColor: \"#0f0\",\r\n left: 10,\r\n right: 10,\r\n top: 10,\r\n bottom: 10\r\n});\r\ntabGroup.addEventListener('open', function(e) {Ti.API.info('open tabGroup, source ' + e.source);});\r\ntabGroup.addEventListener('close', function(e) {Ti.API.info('close tabGroup, source ' + e.source);});\r\ntabGroup.addEventListener('focus', function(e) {Ti.API.info('focus tabGroup, source ' + e.source);});\r\ntabGroup.addEventListener('blur', function(e) {Ti.API.info('blur tabGroup, source ' + e.source);});\r\n\r\nvar win1 = Ti.UI.createWindow({\r\n //title : 'Window 1',\r\n backgroundColor : '#f0f',\r\n left: 10,\r\n right: 10,\r\n top: 10,\r\n bottom: 10,\r\n layout: \"vertical\"\r\n});\r\nwin1.addEventListener('open', function(e) {Ti.API.info('open win1, source ' + e.source);});\r\nwin1.addEventListener('close', function(e) {Ti.API.info('close win1, source ' + e.source);});\r\nwin1.addEventListener('focus', function(e) {Ti.API.info('focus win1, source ' + e.source);});\r\nwin1.addEventListener('blur', function(e) {Ti.API.info('blur win1, source ' + e.source);});\r\n\r\nvar dummytf = Ti.UI.createTextField({\r\n top: 5,\r\n left: 5,\r\n right: 5,\r\n//\theight: 20,\r\n borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED\r\n});\r\nwin1.add(dummytf);\r\n\r\nvar tf = Ti.UI.createTextField({\r\n top: 5,\r\n left: 5,\r\n right: 5,\r\n//\theight: 20,\r\n borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED\r\n});\r\nwin1.add(tf);\r\ntf.addEventListener('focus', function(e) {Ti.API.info('focus tf, source ' + e.source);});\r\ntf.addEventListener('blur', function(e) {Ti.API.info('blur tf, source ' + e.source);});\r\n\r\nvar button1 = Ti.UI.createButton({\r\n title: \"open\",\r\n top: 10\r\n});\r\nbutton1.addEventListener(\"click\", function() {\r\n var win5 = Ti.UI.createWindow({ \r\n backgroundColor:'#ff0'\r\n });\r\n var button2 = Ti.UI.createButton({\r\n title: \"close\"\r\n });\r\n button2.addEventListener(\"click\", function() {\r\n win5.close();\r\n });\r\n win5.add(button2);\r\n win5.addEventListener(\"open\", function() {\r\n Ti.API.log(\"win5 open\");\r\n });\r\n win5.addEventListener(\"close\", function() {\r\n Ti.API.log(\"win5 close\");\r\n });\r\n win5.addEventListener(\"focus\", function() {\r\n Ti.API.log(\"win5 focus\");\r\n });\r\n win5.addEventListener(\"blur\", function() {\r\n Ti.API.log(\"win5 blur\");\r\n });\r\n win5.open({\r\n navBarHidden: true\r\n });\r\n});\r\nwin1.add(button1);\r\n\r\nvar tab1 = Ti.UI.createTab({\r\n icon: 'KS_nav_views.png',\r\n title: 'Tab 1',\r\n window: win1\r\n});\r\ntab1.addEventListener('open', function(e) {Ti.API.info('open tab1, source ' + e.source);});\r\ntab1.addEventListener('close', function(e) {Ti.API.info('close tab1, source ' + e.source);});\r\ntab1.addEventListener('focus', function(e) {Ti.API.info('focus tab1, source ' + e.source);});\r\ntab1.addEventListener('blur', function(e) {Ti.API.info('blur tab1, source ' + e.source);});\r\n\r\nvar win2 = Ti.UI.createWindow({\r\n title: 'Window 2',\r\n backgroundColor: '#fff',\r\n layout: 'vertical'\r\n});\r\nwin2.addEventListener('open', function(e) {Ti.API.info('open win2, source ' + e.source);});\r\nwin2.addEventListener('close', function(e) {Ti.API.info('close win2, source ' + e.source);});\r\nwin2.addEventListener('focus', function(e) {Ti.API.info('focus win2, source ' + e.source);});\r\nwin2.addEventListener('blur', function(e) {Ti.API.info('blur win2, source ' + e.source);});\r\n\r\nvar tab2 = Ti.UI.createTab({\r\n icon: 'KS_nav_ui.png',\r\n title: 'Tab 2',\r\n window: win2\r\n});\r\ntab2.addEventListener('open', function(e) {Ti.API.info('open tab2, source ' + e.source);});\r\ntab2.addEventListener('close', function(e) {Ti.API.info('close tab2, source ' + e.source);});\r\ntab2.addEventListener('focus', function(e) {Ti.API.info('focus tab2, source ' + e.source);});\r\ntab2.addEventListener('blur', function(e) {Ti.API.info('blur tab2, source ' + e.source);});\r\n\r\nvar win3 = Ti.UI.createWindow({\r\n title: 'Window 3',\r\n backgroundColor: '#68a'\r\n});\r\nwin3.addEventListener('open', function(e) {Ti.API.info('open win3, source ' + e.source);});\r\nwin3.addEventListener('close', function(e) {Ti.API.info('close win3, source ' + e.source);});\r\nwin3.addEventListener('focus', function(e) {Ti.API.info('focus win3, source ' + e.source);});\r\nwin3.addEventListener('blur', function(e) {Ti.API.info('blur win3, source ' + e.source);});\r\n\r\nvar button = Ti.UI.createButton({\r\n title: 'tab.open(win3)',\r\n top: 40,\r\n width: 200,\r\n height: 40,\r\n left: 50\r\n})\r\nbutton.addEventListener('click', function(e) {\r\n tab2.open(win3);\r\n});\r\nwin2.add(button);\r\n\r\ntabGroup.addTab(tab1); \r\ntabGroup.addTab(tab2); \r\ntabGroup.open();\r\n{code}\r\n\r\nHere is the event results you should see as you run through the test case:\r\n\r\n{code}\r\nandroid\r\n=======\r\n- launch app\r\n - win1->open\r\n - win1->focus\r\n - tab1->focus\r\n - tabGroup->focus\r\n - tabGroup->open\r\n- click \"open\" button\r\n - win1->blur\r\n - win5->open\r\n - win5->focus\r\n- click \"close\" button\r\n - win5->close\r\n - win5->blur\r\n - win1->focus\r\n- switch from tab1 to tab2\r\n - win1->blur\r\n - win2->open\r\n - win2->focus\r\n - tab1->blur\r\n - tabGroup->blur\r\n - tab2->focus\r\n - tabGroup->focus\r\n- switch from tab2 to tab1\r\n - win2->blur\r\n - win1->focus\r\n - tab2->blur\r\n - tabGroup->blur\r\n - tab1->focus\r\n - tabGroup->focus\r\n- switch from tab1 to tab 2 again\r\n - win1->blur\r\n - win2->focus\r\n - tab1->blur\r\n - tabGroup->blur\r\n - tab2->focus\r\n - tabGroup->focus\r\n- click \"tab.open()\" button\r\n - win2->blur\r\n - win3->open\r\n - win3->focus\r\n- hit back button to close activity window\r\n - win3->close\r\n - win3->blur\r\n - win2->focus\r\n{code}", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-16T18:46:43.000+0000", "updated": "2012-06-16T18:46:43.000+0000" }, { "id": "198839", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[PR #2415|https://github.com/appcelerator/titanium_mobile/pull/2415] sent.", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-16T18:47:29.000+0000", "updated": "2012-06-16T18:47:29.000+0000" }, { "id": "198961", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Note that the above test case is no longer valid. We decided only to fix the regression that was causing the KS behavior described in the ticket. So the test should be that KS behavior.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-18T13:24:50.000+0000", "updated": "2012-06-18T13:24:50.000+0000" }, { "id": "198993", "author": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing issue\r\n\r\nTested with Ti Studio build 2.1.0.201206172244\r\nTi Mobile SDK2.1.0.v20120618134156 hash r00905cd0\r\nOSX Lion 10.7.3\r\nNexus S OS 4.0.4\r\n\r\nThe expected behavior is shown from the KS test", "updateAuthor": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-18T15:25:44.000+0000", "updated": "2012-06-18T15:25:44.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }