{ "id": "62144", "key": "TIMOB-1512", "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": "14164", "description": "Release 3.0.2", "name": "Release 3.0.2", "archived": true, "released": true, "releaseDate": "2013-02-19" }, { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "15079", "description": "2013 Sprint 02 API", "name": "2013 Sprint 02 API", "archived": true, "released": true, "releaseDate": "2013-01-28" }, { "id": "14812", "description": "2013 Sprint 02", "name": "2013 Sprint 02", "archived": true, "released": true, "releaseDate": "2013-01-28" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-01-23T03:33:33.000+0000", "created": "2011-04-15T02:54:49.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_tabgroup", "qe-review", "qe-testadded", "triage" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "30302", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "116498", "key": "ALOY-724", "fields": { "summary": "Implement Ti.Android.Menu with TabGroup", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "24719", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "107968", "key": "TIMOB-12307", "fields": { "summary": "Android: Refactor MenuItemProxy", "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": "24718", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "108099", "key": "TIMOB-12335", "fields": { "summary": "Backport TIMOB-1512 to 3.0.2", "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": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } } ], "assignee": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-07-19T01:45:09.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": "I've tested Option menu with normal window, it's working fine. However I can't get it working with TabGroup.\r\n\r\nTest code:\r\n{code}\r\n\r\nvar win1 = Ti.UI.createWindow({\r\n backgroundColor: 'blue',\r\n fullscreen: false\r\n});\r\nvar tab1 = Ti.UI.createTab({\r\n window: win1,\r\n title: 'Tab 1'\r\n});\r\n\r\nvar win2 = Ti.UI.createWindow({\r\n backgroundColor: 'yellow'\r\n});\r\nvar tab2 = Ti.UI.createTab({\r\n window: win2,\r\n title: 'Tab 2'\r\n});\r\n\r\nvar tabGroup = Ti.UI.createTabGroup({\r\n\tactivity: {\r\n onCreateOptionsMenu: function(e) {\r\n var menu = e.menu;\r\n var menuItem = menu.add({\r\n title : \"Item 1\",\r\n itemId: 1\r\n });\r\n var menuItem2 = menu.add({\r\n title : \"Item 2\",\r\n itemId: 2\r\n });\r\n menuItem.addEventListener(\"click\", function(e) {\r\n Ti.API.info(\"Item1 was clicked\");\r\n });\r\n menuItem2.addEventListener(\"click\", function(e) {\r\n Ti.API.info(\"Item2 was clicked\");\r\n });\r\n },\r\n \r\n onPrepareOptionsMenu: function(e) {\r\n \tvar menu = e.menu;\r\n \tif (tab1.active) {\r\n \t\tmenu.findItem(1).setVisible(false);\r\n \t\tmenu.findItem(2).setVisible(true);\r\n \t}\r\n \t\r\n \tif (tab2.active) {\r\n \t\tmenu.findItem(1).setVisible(true);\r\n \t\tmenu.findItem(2).setVisible(false);\r\n \t}\r\n }\r\n }\r\n});\r\n \r\ntabGroup.addTab(tab1);\r\ntabGroup.addTab(tab2);\r\ntabGroup.open();\r\n\r\n{code}\r\n\r\n1. Click on menu/optionMenu button, should see \"Item 2\" in tab1 and \"Item 1\" in tab2.\r\n\r\n", "attachment": [ { "id": "18008", "filename": "app.js", "author": { "name": "borey", "key": "borey", "displayName": "Borey", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:54:50.000+0000", "size": 1773, "mimeType": "application/x-javascript" } ], "flagged": false, "summary": "Android: OptionMenu is not working with TabGroup", "creator": { "name": "borey", "key": "borey", "displayName": "Borey", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "borey", "key": "borey", "displayName": "Borey", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "125898", "author": { "name": "borey", "key": "borey", "displayName": "Borey", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

it's been 2 months, and there's no reply to this ticket. Just\nwonder if anyone has checked it.

{html}", "updateAuthor": { "name": "borey", "key": "borey", "displayName": "Borey", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:54:50.000+0000", "updated": "2011-04-15T02:54:50.000+0000" }, { "id": "125899", "author": { "name": "andrewheebner", "key": "andrewheebner", "displayName": "Andrew Heebner", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Read the docs closer. Option menus are meant for\nwindows, not tabs. Menus are created on a\nper-window basis, but you can also recycle the menu by simply\nadding it to any window \"open\" event....

\n

Stick all of your menu code in a function, then add this\ncode.

\n
\nwin1.addEventListener('open', function(e) {\n    // add the menu here.\n    addMenuToWindow();\n});\n
\n

Now (theoretically), when you switch tabs, the window also\nchanges. You need to adjust accordingly for the UI layouts. This is\nnot a bug, it is intended proper usage.

{html}", "updateAuthor": { "name": "andrewheebner", "key": "andrewheebner", "displayName": "Andrew Heebner", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:54:50.000+0000", "updated": "2011-04-15T02:54:50.000+0000" }, { "id": "125900", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Assigning to Don for triage.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:54:50.000+0000", "updated": "2011-04-15T02:54:50.000+0000" }, { "id": "214645", "author": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "body": "The existing app.js isn't applicable anymore (the functions have been deprecated), here is some quick code I put together:\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({fullscreen : true});\r\n\r\nvar tabGroup = Ti.UI.createTabGroup();\r\n\r\nvar win1 = Ti.UI.createWindow({backgroundColor: 'white'});\r\nvar tab1 = Ti.UI.createTab({\r\n window: win1,\r\n title: 'Tab 1'\r\n});\r\n\r\nvar win2 = Ti.UI.createWindow({backgroundColor: 'yellow'});\r\nvar tab2 = Ti.UI.createTab({\r\n window: win2,\r\n title: 'Tab 2'\r\n});\r\n\r\nvar activity = win.activity;\r\n\r\nactivity.onCreateOptionsMenu = function(e)\r\n{\r\n var menu = e.menu;\r\n var menuItem = menu.add(\r\n {\r\n title : \"Item 1\"\r\n });\r\n menuItem.icon = \"_images/play.png\";\r\n menuItem.addEventListener(\"click\", function(e)\r\n {\r\n Ti.API.info(\"I was clicked\");\r\n });\r\n};\r\n\r\ntabGroup.addTab(tab1);\r\ntabGroup.addTab(tab2);\r\n\r\ntabGroup.open(); \r\n{code}\r\n\r\nTested on a Samsung Galaxy S2 using TiSDK 2.2.0v20120814103312, doesn't look like it works. Issue still exists.", "updateAuthor": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "created": "2012-08-15T13:38:20.000+0000", "updated": "2012-08-15T13:38:20.000+0000" }, { "id": "221524", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "I have the same issue:\r\nandroid 4.0.3\r\ndevice / simulator\r\nTi SDK 3.0.0 (master)", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2012-09-30T15:09:40.000+0000", "updated": "2012-09-30T15:09:40.000+0000" }, { "id": "225715", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I am experiencing the same thing in Alloy apps. Android menus work fine when created with just a heavyweight window, but they don't appear when that heavyweight window is contained in a Tab, which is in turn contained in a tabgroup.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-10-31T19:40:28.000+0000", "updated": "2012-10-31T19:40:28.000+0000" }, { "id": "231019", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "I'm not sure if the sample code two comments before should even work: the {{win}} object is created but never used, and thus, will never have the event called.\r\n\r\nAlthough, I did tried editing {{onCreateOptionsMenu}} for the TabGroup and it's not called. I solved this adding the menu to {{TabGroup.activeTab.window}}. For me this is a workaround, and would never be a \"intended usage\" as stated before.", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2012-12-12T09:37:12.000+0000", "updated": "2012-12-12T09:37:12.000+0000" }, { "id": "231775", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The sample code is flawed. I've tested with this code and it seems to work fine with both tabgroup and action bar.\n{code}\n \nvar tabGroup = Ti.UI.createTabGroup();\n \nvar win1 = Ti.UI.createWindow({backgroundColor: 'white'});\nvar tab1 = Ti.UI.createTab({\n window: win1,\n title: 'Tab 1'\n});\n \nvar win2 = Ti.UI.createWindow({backgroundColor: 'yellow'});\nvar tab2 = Ti.UI.createTab({\n window: win2,\n title: 'Tab 2'\n});\n \n\n \ntabGroup.addTab(tab1);\ntabGroup.addTab(tab2);\n \ntabGroup.open(); \n\ntabGroup.addEventListener('open', function() {\n\nvar activity = win1.activity;\n \nactivity.onCreateOptionsMenu = function(e)\n{\n var menu = e.menu;\n var menuItem = menu.add(\n {\n title : \"Item 1\"\n });\n menuItem.icon = \"_images/play.png\";\n menuItem.addEventListener(\"click\", function(e)\n {\n Ti.API.info(\"I was clicked\");\n });\n};\n});\n\n{code}", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-18T00:20:51.000+0000", "updated": "2012-12-18T00:20:51.000+0000" }, { "id": "231777", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing bug as invalid.", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-18T00:21:14.000+0000", "updated": "2012-12-18T00:21:14.000+0000" }, { "id": "231778", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "How about my question about the tabGroup Activity?\r\n\r\n{quote}\r\nAlthough, I did tried editing onCreateOptionsMenu for the TabGroup and it's not called. I solved this adding the menu to TabGroup.activeTab.window. For me this is a workaround, and would never be a \"intended usage\" as stated before.\r\n{quote}", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2012-12-18T00:29:47.000+0000", "updated": "2012-12-18T00:29:47.000+0000" }, { "id": "231780", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Igor,\n\n I'm not sure I understand your question completely. Can you provide sample code of your workaround?", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-18T00:35:30.000+0000", "updated": "2012-12-18T00:35:30.000+0000" }, { "id": "231787", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "The main idea is that I think it's weird to set menu for the TabGroup through one of its windows... But I'm not sure how would be the better way to solve this. Maybe all the windows' should point to the main activity, as the TabGroup?", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2012-12-18T01:09:37.000+0000", "updated": "2012-12-18T01:09:37.000+0000" }, { "id": "231796", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "All the windows in a tab group share the same activity as the tab group itself. However, we don't expose the tab group's activity, so you'd have to get the activity from its window(s). I.e \"tabgroup.activity\" would be undefined while \"win1.activity\" will return the tab group activity.", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-18T01:32:15.000+0000", "updated": "2012-12-18T01:32:15.000+0000" }, { "id": "231797", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Ok, you just explained what was missing in my idea. So... why couldn't the {{TabGroup.activity}} refer to the same activity in the windows? It makes much more sense in the code to change the menus for it than changing menu for one of the windows.", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2012-12-18T01:43:41.000+0000", "updated": "2012-12-18T01:43:41.000+0000" }, { "id": "231833", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Hieu: This bug should not be closed, it still occurs. I have it happening in Alloy and I've recreated the issue in the traditional Titanium code below:\r\n\r\n{code:javascript}\r\nvar tabGroup = Ti.UI.createTabGroup();\r\n \r\nvar win1 = Ti.UI.createWindow({\r\n backgroundColor: 'white',\r\n fullscreen: false,\r\n activity: {\r\n onCreateOptionsMenu: function(e) {\r\n var menu = e.menu;\r\n var menuItem = menu.add({\r\n title : \"Item 1\"\r\n });\r\n menuItem.icon = \"_images/play.png\";\r\n menuItem.addEventListener(\"click\", function(e) {\r\n Ti.API.info(\"I was clicked\");\r\n });\r\n }\r\n }\r\n});\r\nvar tab1 = Ti.UI.createTab({\r\n window: win1,\r\n title: 'Tab 1'\r\n});\r\n\r\ntabGroup.addTab(tab1);\r\ntabGroup.open(); \r\n{code}\r\n\r\nA developer should not have to add the \"open\" event to the tabgroup just to have the options menu show up in the Window. Developers don't need to do this in the case of just a Window. The code below works just fine:\r\n\r\n{code:javascript}\r\nvar win1 = Ti.UI.createWindow({\r\n backgroundColor: 'white',\r\n fullscreen: false,\r\n activity: {\r\n onCreateOptionsMenu: function(e) {\r\n var menu = e.menu;\r\n var menuItem = menu.add({\r\n title : \"Item 1\"\r\n });\r\n menuItem.icon = \"_images/play.png\";\r\n menuItem.addEventListener(\"click\", function(e) {\r\n Ti.API.info(\"I was clicked\");\r\n \t\t});\r\n \t}\r\n }\r\n});\r\nwin1.open();\r\n{code}\r\n\r\nI should be able to use this window, as is, in a tab and make it show the options menu, but it will not unless I use the tabgroup's \"open\" event. \r\n\r\nI think the appropriate solution should be to for onCreateOptionsMenu to work in my first example as written, Titanium should handle using the activity's onCreateOptionsMenu at the appropriate time under the hood, with no \"open\" event necessary. The code you tested Hieu is a work around, but it doesn't address the root problem. At the very least this should be documented, but forcing special handling for android menus just for tabs seems silly.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-18T14:39:58.000+0000", "updated": "2012-12-18T14:40:49.000+0000" }, { "id": "231922", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Tony: https://github.com/appcelerator/titanium_mobile/pull/3619 will address this issue.", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-18T22:43:50.000+0000", "updated": "2012-12-18T22:43:50.000+0000" }, { "id": "232553", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tabgroup.activity is now exposed (see TIMOB-11796).", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-12-26T23:27:20.000+0000", "updated": "2012-12-26T23:27:20.000+0000" }, { "id": "234105", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "I comment here to explain that i managed to have a menu by tab window (even sub windows) in a tab group.\r\nThe idea is not to listen to the \"open\" event but to the \"focus\" event.\r\n\r\nThen you call something like this in the \"focus\" event\r\n{code}\r\nfunction createMenu() {\r\n\tvar activity = self.activity;\r\n\tactivity.invalidateOptionsMenu();\r\n\tactivity.onCreateOptionsMenu = function(e) {\r\n\t\tTi.API.info('wanted onCreateOptionsMenu')\r\n\t\tvar menu = e.menu;\r\n\t\tvar menuItem = menu.add({\r\n\t\t\ttitle : tr('Refresh', 'Refresh')\r\n\t\t});\r\n\t\tmenuItem.addEventListener(\"click\", self.refresh);\r\n\t};\r\n}\r\n{code}", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2013-01-12T08:53:43.000+0000", "updated": "2013-01-12T08:53:43.000+0000" }, { "id": "234122", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Wow, I didn't know the invalidateOptionsMenu. That's a good workaround on this issue, I'll probably be using this in the future. Thanks!", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-01-13T17:00:03.000+0000", "updated": "2013-01-13T17:00:03.000+0000" }, { "id": "234670", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/3619", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-01-16T16:50:13.000+0000", "updated": "2013-01-16T16:50:13.000+0000" }, { "id": "234673", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We will expose \"activity\" to tab group so you can initialize the menu there - Each tab group now supports one menu. You can, however, modify the menu's content between tabs. I've updated the test code to demonstrate this.", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-16T17:01:45.000+0000", "updated": "2013-01-16T17:01:58.000+0000" }, { "id": "234683", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Hieu: Just to be clear, the Ti.UI.Windows inside each Tab inside a Tabgroup will *_not_* support android menus being added to them. Instead, in the case of TabGroup, developers will add the android menu to the TabGroup's activity. The android menu will apply to all Tabs and if developers want the android menu to change from tab to tab, they will have to do it in code dynamically as the tabs change focus. Is that correct?", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-16T18:51:33.000+0000", "updated": "2013-01-16T18:51:33.000+0000" }, { "id": "234685", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Tony: That is correct.", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-16T19:04:59.000+0000", "updated": "2013-01-16T19:04:59.000+0000" }, { "id": "235258", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Backport Task TIMOB-12335\nBackport PR https://github.com/appcelerator/titanium_mobile/pull/3740", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-01-21T22:05:26.000+0000", "updated": "2013-01-21T22:05:26.000+0000" }, { "id": "235449", "author": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix works as expected with TiSDK 3.0.2.v20130122151702\r\n\r\nDevice tested:\r\nNexus One 2.2.2\r\nNexus Tab 10\" 4.2\r\n\r\nClosing.", "updateAuthor": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-23T03:10:07.000+0000", "updated": "2013-01-23T03:10:07.000+0000" } ], "maxResults": 26, "total": 26, "startAt": 0 } } }