{ "id": "63003", "key": "TIMOB-2371", "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": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14127", "description": "Sprint 2012-19 API", "name": "Sprint 2012-19 API", "archived": true, "released": true, "releaseDate": "2012-09-24" }, { "id": "14271", "description": "2012 Sprint 19", "name": "2012 Sprint 19", "archived": true, "released": true, "releaseDate": "2012-09-24" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-09-19T16:02:24.000+0000", "created": "2011-04-15T03:18:03.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api" ], "versions": [ { "id": "13272", "description": "Release 2.0.1", "name": "Release 2.0.1", "archived": true, "released": true, "releaseDate": "2012-04-16" } ], "issuelinks": [ { "id": "18260", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "63883", "key": "TIMOB-3251", "fields": { "summary": "Android: Support Gingerbread ActionBar Widget", "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 } } } }, { "id": "18344", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "inwardIssue": { "id": "94533", "key": "TIMOB-9902", "fields": { "summary": "TiAPI: Update Android and IOS to support new SDK available on newer versions of the platforms", "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": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "17250", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "63883", "key": "TIMOB-3251", "fields": { "summary": "Android: Support Gingerbread ActionBar Widget", "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": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-11-21T15:39: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": "10202", "name": "Android", "description": "Android Platform" } ], "description": "{html}

Like Twitter and other new apps, it could be awesome!

\r\n

There is an example project from Google that use it.
\r\nhttp://code.google.com/p/iosched/

\r\n

And it could also be done by extending the TitleBar.
\r\nSee: \r\nhttp://www.anddev.org/my_own_titlebar_backbutton_like_on_the_iphone...

{html}", "attachment": [ { "id": "18140", "filename": "action-bar2.png", "author": { "name": "albertog", "key": "albertog", "displayName": "Alberto G", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:18:04.000+0000", "size": 48427, "mimeType": "image/png" }, { "id": "27674", "filename": "camera.png", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-14T05:36:11.000+0000", "size": 7538, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Action bar", "creator": { "name": "albertog", "key": "albertog", "displayName": "Alberto G", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [ { "id": "94644", "key": "TIMOB-9910", "fields": { "summary": "Android: Action Items", "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 } } }, { "id": "94645", "key": "TIMOB-9911", "fields": { "summary": "Android: Action Bar Navigation Tabs", "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": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } ], "reporter": { "name": "rpfeiffer", "key": "rpfeiffer", "displayName": "Ralf Pfeiffer", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "177305", "author": { "name": "mobilejustin", "key": "mobilejustin", "displayName": "Justin Ferrell", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Any word on this ever going anywhere? With the impending release of so many ice cream sandwich devices, this seems like a pretty big issue. ", "updateAuthor": { "name": "mobilejustin", "key": "mobilejustin", "displayName": "Justin Ferrell", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-27T11:42:15.000+0000", "updated": "2011-12-27T11:42:15.000+0000" }, { "id": "183606", "author": { "name": "coehmig", "key": "coehmig", "displayName": "Christopher Oehmig", "active": true, "timeZone": "America/Los_Angeles" }, "body": "In my opinion, this is very important!", "updateAuthor": { "name": "coehmig", "key": "coehmig", "displayName": "Christopher Oehmig", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-17T03:29:12.000+0000", "updated": "2012-02-17T03:29:12.000+0000" }, { "id": "183607", "author": { "name": "kaz_konno", "key": "kaz_konno", "displayName": "kazuaki konno", "active": true, "timeZone": "Asia/Tokyo" }, "body": "Agree! It really is.", "updateAuthor": { "name": "kaz_konno", "key": "kaz_konno", "displayName": "kazuaki konno", "active": true, "timeZone": "Asia/Tokyo" }, "created": "2012-02-17T03:30:38.000+0000", "updated": "2012-02-17T03:30:38.000+0000" }, { "id": "183951", "author": { "name": "asiddiqui@appcelerator.com", "key": "asiddiqui@appcelerator.com", "displayName": "Asim Siddiqui", "active": true, "timeZone": "America/Los_Angeles" }, "body": "BUMP", "updateAuthor": { "name": "asiddiqui@appcelerator.com", "key": "asiddiqui@appcelerator.com", "displayName": "Asim Siddiqui", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-22T09:25:10.000+0000", "updated": "2012-02-22T09:25:10.000+0000" }, { "id": "187273", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Google is insisting that with Android 4, we start using the Action Bar instead of depending on the Menu button. This *needs* to get bumped to a higher priority than \"trivial\" if Titanium is to continue being the leader with true native UI elements.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2012-03-19T16:44:52.000+0000", "updated": "2012-03-19T16:44:52.000+0000" }, { "id": "189604", "author": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Just started designing an app for iPhone, iPad, Android phones and Android tablets.\r\nThe lack of the action bar is very disappointing as it would of been very desirable to build an Android tablet/phone app that targeted the latest OS to take advantage of the new look and feel of Android apps.", "updateAuthor": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-03T04:43:08.000+0000", "updated": "2012-04-03T04:43:08.000+0000" }, { "id": "189607", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "My 2 cents: I want the Action Bar in the Titanium core as much as you guys, but I don't know that it makes sense as a core component right now. I think a module would be more fitting. I say this because the Action Bar isn't natively supported by Android until version 3.0 (API 11), and Titanium now needs to support as far back as 2.2. Integrating version-specific components into the core will undoubtedly cause confusion for developers unaware of the version requirements, not to mention extend the installation requirements for Android.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-03T05:18:36.000+0000", "updated": "2012-04-03T05:18:36.000+0000" }, { "id": "189612", "author": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "When targeting API 11+ how are we to handle menus seeing as in 3.0 the \"Menu button is deprecated\" (http://developer.android.com/guide/topics/ui/menus.html)?", "updateAuthor": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-03T06:04:42.000+0000", "updated": "2012-04-03T06:04:42.000+0000" }, { "id": "189614", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "I concur with Jon's concern, but now I have a much bigger one...\r\n\r\nIf its Appcelerator's stance that new features won't be implemented in Titanium till they are potentially years old, that's a recipe for disaster. That would cause me to seriously reconsider using Titanium, if the latest features aren't available in a reasonable timeframe. I don't, of course, expect new features to be available at 0-day, and I understand why Android 3.0 was pretty much ignored by Appcelerator... because it was pretty much ignored by *everyone*. But your reply is still troubling, Tony.\r\n\r\nAfter getting the far more important issue off my chest, I believe that, if I read the documentation correctly, the Action Bar support degrades gracefully on older devices. You're right, the Action Bar doesn't exist pre-3.0, but it looks like buttons end up in the Menu on 2.x.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2012-04-03T07:32:27.000+0000", "updated": "2012-04-03T07:32:27.000+0000" }, { "id": "189615", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Didn't mean to sound like we were planning to ignore new features. That's definitely not the case. I see exactly what you mean Shannon. My cursory look at the Action bar API was admittedly not as close as it should have been. If it does degrade gracefully, it seems like a good fit for the core. ", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-03T07:39:40.000+0000", "updated": "2012-04-03T07:39:40.000+0000" }, { "id": "189617", "author": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "You have read the documentation right, Shannon. Done a quick little native test and creating a basic app that simply creates a menu. It results in the menu button appearing in the action bar when installed on 3.0+ on tablets and under the menu button on the phones (the action bar was still present on the phone) (the action bar was automatically created when not specifying a layout), on 2.x there was no action bar and the menu button showed the menu.\r\n\r\nWe then added more code to check the API version was 11+ and if it was started to interact with the action bar (promoting menu items to action bar buttons, changing the title etc...)", "updateAuthor": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-03T07:51:27.000+0000", "updated": "2012-04-03T07:51:27.000+0000" }, { "id": "189618", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Thanks for that, Jon. I wish I had a little more free time on my hands, so I could get more into native Android stuffs.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2012-04-03T07:53:17.000+0000", "updated": "2012-04-03T07:53:17.000+0000" }, { "id": "194197", "author": { "name": "paul h", "key": "paul h", "displayName": "Paul Hamilton", "active": true, "timeZone": "America/Havana" }, "body": "I have to agree. Especially since this should already be backwards compatible. I was surprised that this approach was initially take by Google / manufacturers but the apps need to be future thinking and not to support this would be a mistake.", "updateAuthor": { "name": "paul h", "key": "paul h", "displayName": "Paul Hamilton", "active": true, "timeZone": "America/Havana" }, "created": "2012-05-08T15:17:43.000+0000", "updated": "2012-05-08T15:17:43.000+0000" }, { "id": "194638", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "You guys can take a look at my first crack at ActionBars on my fork of titanium_mobile at: [https://github.com/tonylukasavage/titanium_mobile/tree/ActionBar|https://github.com/tonylukasavage/titanium_mobile/tree/ActionBar]. Check the commits, my work will be the commit at the top with the message \"initial changes for actionbar\". In its current state the ActionBar, with logo and title appears, it has the menu button in it, and I've also implemented basic action buttons (the buttons that show up in the bar if there's enough room).\r\n\r\nYou can see all the changes in the commit, but the one that stands out is in {{SConstruct}}, the build script for the titanium_mobile project. In order to make use of the ActionBar, you must compile/build your Android app against API level 11 or higher (3.0+). Since Titanium needs to support all the way back to 2.2, this could potentially introduce runtime issues if APIs later than API level 8 are executed on devices that do no support them. By no means should this be an impassable roadblock, but it does introduce a new wrinkle to the build process that did not exist before, as the API level in {{SContruct}} has always been set to that of the minimum supported version.\r\n\r\nSince the priority has been pushed to \"high\" I'll leave this to the platform engineers. Be aware that you must have a title bar showing to see the ActionBar. Setting {{navBarHidden}} to {{true}} will hide the ActionBar. The other thing to note that took me forever to find is that the ActionBar will appear only for a second if the following code is executed:\r\n\r\n{code:java}\r\nthis.requestWindowFeature(Window.FEATURE_LEFT_ICON); \r\nthis.requestWindowFeature(Window.FEATURE_RIGHT_ICON); \r\n{code} \r\n\r\nYou can't set those icons or the ActionBar disappears. Also, these will automatically make the activity indicator show up in the ActionBar, which in 99.99% of the cases is not desired:\r\n\r\n{code:java}\r\nthis.requestWindowFeature(Window.FEATURE_PROGRESS);\r\nthis.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);\r\n{code}\r\n\r\nAlso, you'll be required to set up a custom {{AndroidManifest.xml}} to make sure that you are using one of the themes (Holo themes) that supports the ActionBar. The easiest way to do this is likely to remove the theme from the main activity and set the theme at the application level. Also, you'll need to set the {{targetSdkVersion}} to at least level 11. kinda like this:\r\n\r\n{code:xml}\r\n\r\n\t\r\n\t\r\n\r\n\t\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n{code}\r\n\r\nFinally, here's a super basic example of how I was using it. The {{camera.png}} image has been attached to the ticket for reference:\r\n\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow({\r\n\tnavBarHidden: false,\r\n\tfullscreen: false,\r\n\tactionBar: true,\r\n\tactivity: {\r\n\t\tonCreateOptionsMenu: function(e) {\r\n\t\t\tvar menu = e.menu;\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tvar menuItem = menu.add({ title: \"Item \" + (i+1) });\r\n\t\t\t\tmenuItem.setTitle('Item ' + (i+1));\r\n\t\t\t\tmenuItem.setShowAsActionFlags(\r\n\t\t\t\t\tTi.UI.Android.SHOW_AS_ACTION_IF_ROOM | Ti.UI.Android.SHOW_AS_ACTION_WITH_TEXT\r\n\t\t\t\t);\r\n\t\t \t\tmenuItem.setIcon(\"camera.png\");\r\n\t\t\t} \r\n\t\t}\t\r\n\t},\t\r\n\texitOnClose: true\r\n});\r\nvar label = Ti.UI.createLabel({\r\n\ttext: 'Window',\r\n\tfont: {\r\n\t\tfontSize: '40dp',\r\n\t\tfontWeight: 'bold'\t\r\n\t}\r\n});\r\nlabel.addEventListener('click', function(e) {\r\n\tTi.UI.createWindow({\r\n\t\tbackgroundColor: '#a00',\r\n\t\t//actionBar: true,\r\n\t\t//navBarHidden: false\r\n\t}).open();\r\n});\r\n\r\nwin.add(label);\r\nwin.open();\r\n\r\n{code}", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-14T05:21:49.000+0000", "updated": "2012-05-14T05:38:55.000+0000" }, { "id": "194645", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "I think that everyone wants to use new features ASAP, but don't want to ignore devices that do not support new features. Because of that, setting minimum API level probably is not the best solution (the most Android devices are < 3.0 API). It would be awesome if we could detect what device supports, like:\r\n\r\n\r\n{code}\r\nif (typeof Ti.UI.createActionBar == 'function') {\r\n //use ActionBar\r\n}\r\nelse {\r\n //provide fallback, ActionBar emulation, whatever\r\n}\r\n{code}\r\n\r\n\r\nThis is something that is already present on the web.\r\n\r\n\r\n\r\nDon't know is this technically posible to implement, but it seems nice solution for me.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-05-14T06:59:10.000+0000", "updated": "2012-05-14T06:59:10.000+0000" }, { "id": "194647", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "ivan, the actionbar isn't a create-able UI component per se. It is the result of having a title bar, paired with the Android theme that has been selected for your app/activity. It's appeareance is determined based on the Android Theme, the Android menu that you associate with it, and the additional APIs for that menu that correspond to the ActionBar. You'll notice in my sample code that no UI component is created for it, it's look and behavior are determined by the menu I specify in my window's activity.\r\n\r\nThe beauty of the ActionBar, Ivan, is that is gracefully degrades. On devices that do not support the ActionBar, the attached menu will apear as it always, accessible through the Android menu button. On ActionBar supporting devices, the ActionBar will appear with the same code. Again, all this behavior is determined by the device API level, the Android theme, and the menu attached to the current activity.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-14T07:07:50.000+0000", "updated": "2012-05-14T07:07:50.000+0000" }, { "id": "194651", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "OK, I see, thanks Tony.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-05-14T07:40:02.000+0000", "updated": "2012-05-14T07:40:02.000+0000" }, { "id": "194655", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "Ivan,\r\n\r\nUntil worked out in code, a solution to the min-sdk problem is to submit two active binaries to Google Play. One for older devices and one for the newer devices.\r\n\r\n", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2012-05-14T08:06:06.000+0000", "updated": "2012-05-14T08:06:06.000+0000" }, { "id": "194656", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Guys, notice that the min-sdk I'm using is level 8, meaning Android 2.2, the lowest version supported by Titanium. ActionBar code, implemented correctly, can exist on devices that don't yet support it. The target-sdk is the important value.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-14T08:10:38.000+0000", "updated": "2012-05-14T08:10:38.000+0000" }, { "id": "194665", "author": { "name": "azazel", "key": "azazel", "displayName": "Alberto Berti", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tony, \r\nas a suggestion have you had a look at this sample where seems to be possible to partially support actionBar also on older android releases like gingerbread? http://developer.android.com/resources/samples/ActionBarCompat/index.html", "updateAuthor": { "name": "azazel", "key": "azazel", "displayName": "Alberto Berti", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-14T09:21:00.000+0000", "updated": "2012-05-14T09:21:00.000+0000" }, { "id": "194668", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Yep Alberto, I've seen that. We need to get a solid implementation of the basic ActionBar in, though, before we worry about Android's compat version for older devices. Also, that compat version is part of the samples collection for Android, it's not actually an API, it's custom code.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-14T09:26:07.000+0000", "updated": "2012-05-14T09:26:07.000+0000" }, { "id": "194798", "author": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Great work Tony!\r\n\r\nOn note on the backward compatibility. When its time to look into it take a loot at this first http://actionbarsherlock.com/.\r\nIt a cool tool set that wraps up the Android compatibility package and a few other bits and pieces to create a fully functional action bar on older devices.\r\nIt's usage is really simple just need to change a few imports in a project and bang you have an action bar on Gingerbread.\r\n\r\nDon't know if its helpful but definitely worth a look.", "updateAuthor": { "name": "whitter", "key": "whitter", "displayName": "Jon Whitter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-15T01:33:06.000+0000", "updated": "2012-05-15T01:33:06.000+0000" }, { "id": "196988", "author": { "name": "karl.astrom", "key": "karl.astrom", "displayName": "Karl Åström", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tony,\r\nThe compat version is specifically intended to use the new ActionBar on newer devices and a fairly compatible implementation of ActionBars on older APIs.\r\nWhy not use that starting point to get a solid implementation of ActionBar without throwing away older devices unnecessarily?", "updateAuthor": { "name": "karl.astrom", "key": "karl.astrom", "displayName": "Karl Åström", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-04T06:10:16.000+0000", "updated": "2012-06-04T06:10:16.000+0000" }, { "id": "196989", "author": { "name": "paul h", "key": "paul h", "displayName": "Paul Hamilton", "active": true, "timeZone": "America/Havana" }, "body": "the compat version is just custom code, not an API call. The way ActionBar is, currenly allows for the use of older devices (which is still over 90% of them) if set up correctly. They would need to get the ActionBar API in place before they could do the custom code part.", "updateAuthor": { "name": "paul h", "key": "paul h", "displayName": "Paul Hamilton", "active": true, "timeZone": "America/Havana" }, "created": "2012-06-04T06:20:21.000+0000", "updated": "2012-06-04T06:20:21.000+0000" }, { "id": "201671", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Seems we just need to document how to adjust the \"target\" API level to enable the new\r\nActionBar menu items. This should be compatible with previous API levels and not require any platform changes on our part.\r\n\r\nTo expose some of the new MenuItem properties (ex: actionView) and adding a ActionBar proxy requires some\r\ncore planning and refactoring. We currently don't have a good way to expose newer Android APIs in core while remaining\r\nbackwards compatible. As Tony pointed out the current way to do this is by creating external modules.", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-05T14:05:50.000+0000", "updated": "2012-07-05T14:05:50.000+0000" }, { "id": "217390", "author": { "name": "mdelmarter", "key": "mdelmarter", "displayName": "Matthew Delmarter", "active": true, "timeZone": "Pacific/Auckland" }, "body": "Any progress on this? I am just starting on Android Dev using Titanium, and this was one of the first Ui widgets I went looking for as I am trying to follow the Google UI guidelines for Android. ", "updateAuthor": { "name": "mdelmarter", "key": "mdelmarter", "displayName": "Matthew Delmarter", "active": true, "timeZone": "Pacific/Auckland" }, "created": "2012-09-04T08:10:18.000+0000", "updated": "2012-09-04T08:10:18.000+0000" }, { "id": "219849", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Matthew We have extended the Menu API (Ti.Android module) to support\r\nsome of the new APIs introduced for Action Bar menu items (\"action items\").\r\nThese new methods are documented in the master branch API documents.\r\n\r\nWe also added support for action bar style tab groups. The tab group API\r\nhas no changes, but if you set the \"targetSdkVersion\" in your android manifest\r\nto 11 or higher you get this new style automatically.\r\n\r\nAs this feature approaches our release more guides and documentation\r\nfor these new Android features should appear.", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-09-19T16:01:50.000+0000", "updated": "2012-09-19T16:01:50.000+0000" }, { "id": "219850", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "All sub-tasks have been completed. Resolving this task.", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-09-19T16:02:24.000+0000", "updated": "2012-09-19T16:02:24.000+0000" }, { "id": "222590", "author": { "name": "henrybel", "key": "henrybel", "displayName": "Henry Belmont", "active": true, "timeZone": "America/New_York" }, "body": "Was this shipped in the last release (v2.1.3)?", "updateAuthor": { "name": "henrybel", "key": "henrybel", "displayName": "Henry Belmont", "active": true, "timeZone": "America/New_York" }, "created": "2012-10-08T21:06:38.000+0000", "updated": "2012-10-08T21:06:38.000+0000" }, { "id": "222602", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Henry - You can see what version any ticket [will be/was] fixed in. Look at the \"Fix Version\" field. In the case of this ticket, it's set for 3.0", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2012-10-08T21:33:15.000+0000", "updated": "2012-10-08T21:33:15.000+0000" }, { "id": "226287", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "-I've managed to download the 3.0.0 Build and installed successfully, and also added the targetSdkVersion to >11.-\r\n-I've tested it into the sample code and I still got the old/ugly tabs and old UI. How do I exactly implement this?-\r\n-I couldn't find any doc on that either.-\r\n-Here's the Manifest.xml if you want to take a look at it.-\r\n\r\nNot sure what was happening but I managed to get it working.", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2012-11-06T06:48:17.000+0000", "updated": "2012-11-13T14:57:57.000+0000" }, { "id": "227840", "author": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The action bar is visible on newer android sdks and older sdk is not getting any error/exception because of it.\r\nChecked it on following devices:\r\nSamsung Galaxy Nexus - Android 4.0.2\r\nLG-P970 - Android 2.2.2 \r\nTitanium SDK:3.0.0.v20121113170203\r\nTitanium  Studio:3.0.0.201211131839\r\nNow the updates and bugs would do the work,if required.", "updateAuthor": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-19T11:41:40.000+0000", "updated": "2012-11-19T11:41:40.000+0000" }, { "id": "228225", "author": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Not sure if I'm missing something, but {modal:true} creates a new window with the old, gray title bar, and not with the ActioBar.", "updateAuthor": { "name": "igorsantos07", "key": "igorsantos07", "displayName": "Igor Santos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2012-11-21T15:39:25.000+0000", "updated": "2012-11-21T15:39:25.000+0000" } ], "maxResults": 33, "total": 33, "startAt": 0 } } }