{ "id": "102703", "key": "TIMOB-11264", "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": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "14165", "description": "2012 Sprint 21 API", "name": "2012 Sprint 21 API", "archived": true, "released": true, "releaseDate": "2012-10-22" }, { "id": "14273", "description": "2012 Sprint 21", "name": "2012 Sprint 21", "archived": true, "released": true, "releaseDate": "2012-10-22" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-11-26T23:26:50.000+0000", "created": "2012-10-04T23:16:00.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_android", "qe-and100112", "qe-testadded", "regression", "tabgroup" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "22088", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "103533", "key": "TIMOB-11517", "fields": { "summary": "Android: On clicking the back button of device on third window, application closes instead of going to the previous window", "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": "23117", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "105478", "key": "TIMOB-11851", "fields": { "summary": "Android: hardware back key event not fired", "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": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "21748", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "85033", "key": "TIMOB-7253", "fields": { "summary": "Android: Android:back event once removed cannot be reattached in 1.8.0.1 Titanium SDK", "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": "27322", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "103590", "key": "TIMOB-13353", "fields": { "summary": "Android: Event name inconsistency", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "23086", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "105132", "key": "TIMOB-11802", "fields": { "summary": "Android: \"android:back\" event does not work", "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": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-04-03T22:57:06.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": "Description:\r\nWhile testing Android I noticed, that clicking on Android \"back\" button, which should return user to the red (previous) window, returns to the apps menue. \r\nIn the console getting a warning: \r\n{code}\r\n[WARN][V8Object( 334)] Runtime disposed, cannot fire event 'closeFromActivity'\r\n{code}\r\nThis is a regression, does not occur on 2.1.3.\r\n\r\nSteps:\r\n1. Run the following code:\r\n{code}\r\nTitanium.UI.setBackgroundColor('#000');\r\n\r\ngt = { ui:{} };\r\n\r\ngt.ui.createNavigationGroup = function(options) \r\n{\r\n\tvar navGroup = \r\n\t{\r\n \tstack: [],\r\n window: options.window,\r\n to_root:options.to_root || false\r\n };\r\n\r\n navGroup.open = function(win, options) \r\n {\r\n Ti.API.info('pre open stack length: ' + navGroup.stack.length);\r\n \r\n if (navGroup.stack.length == 0) \r\n {\r\n navGroup.window.addEventListener('android:back', navGroup.go_back);\r\n Ti.API.info('addEventListener android:back');\r\n }\r\n\r\n navGroup.stack.push(win);\r\n win.open(options);\r\n Ti.API.info('after open stack length: ' + navGroup.stack.length);\r\n };\r\n\r\n navGroup.close = function(win, options) \r\n {\r\n var idx = navGroup.stack.indexOf(win);\r\n Ti.API.info('idx: ' + idx);\r\n if (idx != -1) navGroup.stack.splice(idx, 1);\r\n win.close(options);\r\n win = null;\r\n };\r\n\r\n navGroup.go_back = function(options) \r\n {\r\n var win = navGroup.stack.pop();\r\n if (win) \r\n {\r\n win.close(options);\r\n win = null;\r\n }\r\n\r\n if (navGroup.stack.length == 0) \r\n {\r\n Ti.API.info('removeEventListener android:back');\r\n navGroup.window.removeEventListener('android:back', navGroup.go_back);\r\n Ti.API.info('navGroup window close'); \r\n }\r\n\r\n };\r\n\r\n navGroup.go_home = function() \r\n {\r\n while (navGroup.stack.length) \r\n {\r\n navGroup.go_back();\r\n }\r\n };\r\n\r\n return navGroup;\r\n\r\n}\r\n\r\nvar tabGroup = Titanium.UI.createTabGroup();\r\n\r\nvar navWindow = Ti.UI.createWindow(\r\n{\r\n backgroundColor:'#ccc',\r\n navBarHidden:false\r\n});\r\n\r\n\r\nvar tabWindow = Ti.UI.createWindow(\r\n{\r\n backgroundColor:'#ccc'\r\n});\r\n\r\ntabWindow.addEventListener('click', function()\r\n{\r\n navTab.open(navWindow);\r\n});\r\n\r\n\r\nvar navBtn = Ti.UI.createButton(\r\n{\r\n title:'open red win',\r\n color:'#f00',\r\n width:200,\r\n height:40\r\n});\r\n\r\nnavWindow.add(navBtn);\r\n\r\n\r\nvar nav = gt.ui.createNavigationGroup(\r\n{\r\n window:navWindow\r\n});\r\n\r\n\r\nnavBtn.addEventListener('click', function()\r\n{\r\n var win = Ti.UI.createWindow(\r\n {\r\n backgroundColor:'#fcc'\r\n });\r\n\r\n\r\n var navBtn2 = Ti.UI.createButton(\r\n {\r\n title:'open yellow win',\r\n color:'#ff0',\r\n width:200,\r\n height:40\r\n });\r\n\r\n\r\n win.add(navBtn2);\r\n\r\n navBtn2.addEventListener('click', function()\r\n {\r\n var win2 = Ti.UI.createWindow(\r\n {\r\n backgroundColor:'#ffc'\r\n });\r\n\r\n\r\n var navBtn3 = Ti.UI.createButton(\r\n {\r\n title:'close red win',\r\n color:'#000',\r\n width:200,\r\n height:40,\r\n top:50\r\n });\r\n\r\n\r\n navBtn3.addEventListener('click', function()\r\n {\r\n nav.close(win);\r\n });\r\n\r\n win2.add(navBtn3);\r\n\r\n\r\n var navBtn4 = Ti.UI.createButton(\r\n {\r\n title:'go home',\r\n color:'#0f0',\r\n width:200,\r\n height:40,\r\n top:150\r\n });\r\n\r\n\r\n navBtn4.addEventListener('click', function()\r\n {\r\n nav.go_home(win);\r\n });\r\n\r\n win2.add(navBtn4);\r\n\r\n nav.open(win2);\r\n })\r\n\r\n\r\n nav.open(win);\r\n})\r\n\r\n\r\nvar navTab = Ti.UI.createTab(\r\n{\r\n id: 'navTab',\r\n title:'navGroup',\r\n window:navWindow\r\n});\r\n\r\ntabGroup.addTab(navTab);\r\n\r\ntabGroup.open();\r\n{code}\r\n2. Click \"open red win\" button\r\n3. Click \"open yellow\" button\r\n4. Press Android \"back\" button\r\n\r\nExpected:\r\nYou should return to the red (previous) window \r\n\r\nActual:\r\nReturning to the apps menue", "attachment": [], "flagged": false, "summary": "Android: Event \"closeFromActivity\" cannot be fired on Android", "creator": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Tested on:\r\nOS: Mac OS X Lion 10.7.4\r\nTitanium Studio, build: 2.1.2.201208301612\r\nTitanium SDK, build: 3.0.0.v20121003162513\r\nDevice: Samsung Galaxy III (4.0.4), Nexus 7 (4.1.1)", "comment": { "comments": [ { "id": "222970", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "There's another problem that may or may not be related: In 2.1.3, when you open the red window it opens within the confines of the tab. In 3.0.0 it opens above (larger than) the tab. Investigating.\r\n\r\nInterestingly, this problem actually brings us _into_ parity with iOS.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-10-10T21:12:30.000+0000", "updated": "2012-10-10T21:18:48.000+0000" }, { "id": "222976", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "And another problem: In 2.1.3, when you open a tabgroup from app.js, that tabgroup becomes the screen, so to speak. No title is above it. In 3.0.0, you get a title bar above the tab (showing the title of the App.)", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-10-10T21:18:21.000+0000", "updated": "2012-10-10T21:18:21.000+0000" }, { "id": "222985", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Creating separate tickets for those.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-10-10T21:41:41.000+0000", "updated": "2012-10-10T21:41:41.000+0000" }, { "id": "222987", "author": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-10-10T21:44:26.000+0000", "updated": "2012-10-10T21:44:26.000+0000" }, { "id": "222994", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "This is a tabgroup related ticket. Used git bisect to narrow down to commit a7e5694. Re-assigning to api.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-10-10T22:18:20.000+0000", "updated": "2012-10-10T22:19:06.000+0000" }, { "id": "223975", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master PR: https://github.com/appcelerator/titanium_mobile/pull/3237", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-10-17T16:38:45.000+0000", "updated": "2012-10-17T16:38:45.000+0000" }, { "id": "224306", "author": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as fixed. Verified and tested on:\r\nTitanium Studio, build: 3.0.0.201210151149\r\nTitanium SDK, builds: 3.0.0.v20121018140140; 3.1.0.v20121017102121\r\nDevice: Nexus 7 (4.1.1)", "updateAuthor": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-10-18T21:43:53.000+0000", "updated": "2012-10-18T21:43:53.000+0000" }, { "id": "228319", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "3_0_X PR: https://github.com/appcelerator/titanium_mobile/pull/3282", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-21T23:28:10.000+0000", "updated": "2012-11-21T23:28:10.000+0000" }, { "id": "230204", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "This pull request created a regression.\r\nif you have multiple textfield, using the next button of the soft keyboard, you could automatically focus the next textfield.\r\nThat pull request broke that feature.", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2012-12-06T11:20:01.000+0000", "updated": "2012-12-06T11:20:01.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }