{ "id": "111225", "key": "TIMOB-13135", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "15564", "description": "2013 Sprint 15 API", "name": "2013 Sprint 15 API", "archived": true, "released": true, "releaseDate": "2013-07-29" }, { "id": "15567", "description": "2013 Sprint 15", "name": "2013 Sprint 15", "archived": true, "released": true, "releaseDate": "2013-07-29" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-07-03T22:21:51.000+0000", "created": "2013-03-14T22:23:08.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "3.0.2GA", "actionbar", "android", "exalture", "module_actionbar", "qe-testadded", "tabGroup", "triage" ], "versions": [], "issuelinks": [ { "id": "38741", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "131353", "key": "TIMOB-17084", "fields": { "summary": "Android: ActionBar: setNavigationMode() crashes 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": "40930", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "115084", "key": "TIMOB-14016", "fields": { "summary": "Android: Support Drop-down navigation in ActionBar", "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": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2014-09-09T15:08:13.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": "We need the capability in Action Bar to turn tab navigation on/off [http://developer.android.com/reference/android/app/ActionBar.html#setNavigationMode(int)]\r\nThis is important since if we open a lightweight window on top of the tab group which has an action bar, it's wrong to keep the tabs in view. This would make Android action bar navigation similar to iOS, which hides the tabs when opening a new window form the tab group. The current workaround is to hide() the entire action bar, and paint a \"fake\" action bar (title and icon only) on the lightweight window. Note it's not always possible to open a new activity with a heavyweight window - e.g. I have an ongoing process running in inside a webview which must be capable of firing/receiving events to other windows, thus the whole app must be one activity.\r\nPlease enable the setNavigationMode method for the action bar API.\r\nThanks\r\nEdited to add: it's not just a visual issue - if the action bar is disabled for a lightweight window (in order to hide the tab group) then the lightweight window will lose menu functionality. Titanium needs to embrace more of the Action Bar API ASAP in order to keep up with Android development.", "attachment": [], "flagged": false, "summary": "Android: Enable/disable tab navigation for Action Bar", "creator": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "subtasks": [], "reporter": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "SDK 3.0.2GA, Android API 11+", "closedSprints": [ { "id": 126, "state": "closed", "name": "2018 Sprint 05 SDK", "startDate": "2018-02-25T19:38:08.926Z", "endDate": "2018-03-11T18:38:00.000Z", "completeDate": "2018-03-11T22:06:01.520Z", "originBoardId": 100 } ], "comment": { "comments": [ { "id": "243211", "author": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Mark,\nThanks for the feature request. Moving to Ti-Mobile, keep a watch on this to see the progression. Also it may help to add example code to show the limitations of the current action bar support.\nRegards,\nCarter", "updateAuthor": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-20T18:25:39.000+0000", "updated": "2013-03-20T18:25:39.000+0000" }, { "id": "243219", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "I'm not sure if code can help, but here's a comparison between iPhone and Android:\r\niPhone: assume you have a tab group with three tabs A, B, C, open a new window from C and you will still see the three tabs, and you can navigate between them. Anytime you are on \"C\" you will see the new window until you click \"Back\". Very intuitive....\r\nAndroid: If you open a lightweight window over the tab group the 3 tabs are still showing, but you cannot navigate between them until you go \"back\" - this is clearly illogical behavior as the tabs appear \"frozen\". So the only current options in Ti are to do actionBar.hide() which is visually bad since you also lose the title bar portion of the action bar which you probably want to keep on the new window. The second option is to open a heavyweight window which starts a new activity with a new action bar - and this may not be good for the logic of the application (e.g. you must have something ongoing in the tab group, and can't allow it to be paused). So in many cases the best solution is to open a lightweight window and just change the navigation mode - this is what's done in many Android apps. You can view this as \"parity\" with iOS - iOS gives you tab group functionality after you open a child window, and changing the navigation mode in Android will give \"similar\" behavior, with full flexibility to the designer. It's a key feature!", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2013-03-20T19:00:00.000+0000", "updated": "2013-03-20T19:00:00.000+0000" }, { "id": "243224", "author": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thank you for the clarification, you will be notified when engineering reviews this new feature request. You might want to add your past comment to the new feature description to solidify your point.", "updateAuthor": { "name": "clathrop", "key": "clathrop", "displayName": "Carter Lathrop", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-20T19:08:53.000+0000", "updated": "2013-03-20T19:08:53.000+0000" }, { "id": "243244", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Here's an example showing how tabs can be toggled in Android:\r\n[tab examples|http://www.coderzheaven.com/2012/10/08/dynamically-adding-removing-toggling-removing-actionbar-tabs-android-part-2/]\r\nEventually probably the entire Action Bar API should be covered by Ti, but IMHO setNavigationMode is the most urgent.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2013-03-20T20:31:38.000+0000", "updated": "2013-03-20T20:31:38.000+0000" }, { "id": "244640", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "This was urgent for me so I submitted a [pull request|https://github.com/appcelerator/titanium_mobile/pull/4058].\r\nHopefully you can approve it in time for 3.1.0\r\nHere is the code to test, tested on iPhone, Android 2.x and ICS. Note that drop down list navigation is not yet supported by Titanium, but there is a need to hide/show the tab bar, and this does the job. The only thing I did not do is add NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS, to the Ti constants since I wasn't sure on your desired conventions - thus I'm just using 0 and 2 per the Android specs.\r\n\r\nIndex.xml:\r\n{code:xml} \r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t