{ "id": "83460", "key": "TIMOB-6499", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": [], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-03-16T09:56:44.000+0000", "created": "2011-12-07T11:14:02.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "parity", "tbs-1.8.2" ], "versions": [ { "id": "12580", "description": "Dual Runtime 1.8.0", "name": "Release 1.8.0.1", "archived": true, "released": true, "releaseDate": "2011-12-22" } ], "issuelinks": [ { "id": "17602", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "92754", "key": "TIMOB-9354", "fields": { "summary": "MobileWeb: Too many click and singletap events fired for Tab and 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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2016-03-16T09:56:44.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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "h2. Expected behavior\r\n\r\nClick events should be fired on the tab regardless of whether or not the tab is currently selected.\r\n\r\nh2. Actual behavior\r\n\r\nThe click event in a tab element of a tabGroup is not fired in either Titanium versions listed above\r\n\r\nNote that this also did not work on Android 1.7.5, but the issue has been fixed in Android 1.8.0.1. Thus, this is a parity issue to match a recent Android feature request (see linked ticket).\r\n\r\nh2. Test case\r\n\r\nWith the following code, no click event is fired on iOS when tab1 is clicked:\r\n\r\n{code:lang=javascript|title=app.js}\r\nTi.UI.setBackgroundColor('#000');\r\n\r\nvar tabGroup = Ti.UI.createTabGroup();\r\n\r\nvar win1 = Ti.UI.createWindow({\r\n title:'Tab 1',\r\n backgroundColor:'#fff'\r\n});\r\nvar tab1 = Ti.UI.createTab({\r\n title:'Tab 1',\r\n window:win1\r\n});\r\n\r\nvar label1 = Ti.UI.createLabel({\r\n color:'#999',\r\n text:'I am Window 1',\r\n textAlign:'center',\r\n width:'auto'\r\n});\r\n\r\nwin1.add(label1);\r\n\r\nvar win2 = Ti.UI.createWindow({\r\n title:'Tab 2',\r\n backgroundColor:'#fff'\r\n});\r\nvar tab2 = Ti.UI.createTab({\r\n title:'Tab 2',\r\n window:win2\r\n});\r\n\r\nvar label2 = Ti.UI.createLabel({\r\n color:'#999',\r\n text:'I am Window 2',\r\n textAlign:'center',\r\n width:'auto'\r\n});\r\n\r\nwin2.add(label2);\r\n\r\ntabGroup.addTab(tab1);\r\ntabGroup.addTab(tab2);\r\n\r\ntabGroup.open();\r\n\r\ntab1.addEventListener('click', function(e) {\r\n Ti.API.info(\"tab1 clicked.\");\r\n});\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: UI - Fire \"click\" event from tabs", "creator": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "* Titanium Mobile official releases 1.7.5, 1.8.0.1\r\n* iOS 4.3.2\r\n* iPhone simulator\r\n* MacOSX 10.6.8 Snow Leopard", "comment": { "comments": [ { "id": "180253", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Bug still occurs on:\r\n\r\nSDK build: 1.8.1.v20120123130147\r\nTitanium Studio, build: 1.0.8.201201210622\r\nxcode: 4.2\r\nDevice: iPad 1 (5.0.1)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-01-23T16:04:23.000+0000", "updated": "2012-01-23T16:04:23.000+0000" }, { "id": "222235", "author": { "name": "acebone", "key": "acebone", "displayName": "Esben Maaløe", "active": true, "timeZone": "Europe/Berlin" }, "body": "bug still occurs on iOS -\r\n\r\nHost OS: Mac OS X\r\nOS Arch: x86\r\nJRE Version: 1.6.0_35\r\nJRE Vendor: Apple Inc.\r\nTitanium Mobile SDK Version: 2.1.3\r\nMobile SDK Modules API Version:2\r\nMobile SDK Timestamp: 10/02/12 16:16\r\nMobile SDK Build Number: 15997d0\r\nTitanium Mobile SDK Location: /Users/acebone/Library/Application Support/Titanium/mobilesdk/osx/2.1.3.GA", "updateAuthor": { "name": "acebone", "key": "acebone", "displayName": "Esben Maaløe", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-10-05T12:41:58.000+0000", "updated": "2012-10-05T12:41:58.000+0000" }, { "id": "249105", "author": { "name": "crossbits", "key": "crossbits", "displayName": "Danny Pham", "active": true, "timeZone": "Europe/Berlin" }, "body": "I was also looking for this function, but it is still missing in official SDK 3.1.0 GA.\r\n\r\nHere my quick workaround in TiUITabGroup.m:\r\n\r\n{code}\r\n- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController\r\n{\r\n\tNSUInteger tabIndex = [tabBarController.viewControllers indexOfObject:viewController];\r\n\tNSDictionary *event = [NSDictionary dictionaryWithObjectsAndKeys: NUMINT(tabIndex), @\"index\", nil];\r\n\t[self.proxy fireEvent:@\"click\" withObject:event];\r\n\r\n\t...\r\n}\r\n{code}", "updateAuthor": { "name": "crossbits", "key": "crossbits", "displayName": "Danny Pham", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-04-26T08:44:14.000+0000", "updated": "2013-04-26T08:44:14.000+0000" }, { "id": "312218", "author": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Issue is still reproducible for iOS.\r\nVerified with doc. On doc also mentioned that click event on tabs is not supported for iOS.\r\nTested Environment:\r\n\r\nAppcelerator-Studio: 3.3.0.201406271159\r\nSdk:3.3.0.v20140702175712\r\nacs:1.0.15\r\nalloy:1.4.0-rc3\r\nnpm:1.3.2\r\ntitanium:3.3.0-rc4\r\ntitanium-code-processor:1.1.1\r\nOS:Maverick(10.9.3)\r\nDevice:iPhone5s(v7.1.1)\r\n", "updateAuthor": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-03T09:36:25.000+0000", "updated": "2014-07-03T09:36:25.000+0000" }, { "id": "330183", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Ah, just got surprised tabgroup click event doesn't work! :(\r\n\r\n\r\nToo bad simple thing like this with provided solution is not fixed in SDK!", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-10-31T12:08:13.000+0000", "updated": "2014-10-31T12:08:13.000+0000" }, { "id": "330673", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "What do you need this for? In iOS you can listen to the \"focus\" and \"blur\" events on each tab (works properly in 3.4.x and prior as well), and in Android listen for the \"selected\" and \"unselected\" tab events (starting in 3.5.0). Note that in Android if you listen for tab focus/blur you will get more events than you wish, probably, which is why I added selected and unselected. If these work, why do you need the click event?\r\n\r\nAlso note that in 3.5.0 \"click\" on a tab doesn't make sense for Android because tabs can be selected by swipes :)\r\n\r\nFinal edit: I do not think the click event is necessary or appropriate. If changing anything, I would change in IOS the tab event names from focus/blur to selected/unselected to match Android, since these event names make more sense. Personally I would not use the tab focus/blur events on Android at all - use Window focus/blur if that is the intent.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-04T16:49:59.000+0000", "updated": "2014-11-04T16:54:46.000+0000" }, { "id": "330678", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Hi Mark. \r\n\r\nI need it because I want to be able to do something when particular tab is selected or deselected.\r\n\r\n\r\nActually, you can't use focus/blur event in all use cases! If new window is opened above tabgroup, window inside tab group will receive blur/focus event which is not generated by navigation through tabs.\r\n\r\n\r\nBeside that, it's way easier to add one event than 2 times number of tabs events.\r\n\r\n\r\nThat event is documented and should really be implemented, especially if implementation is simple!", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-04T17:05:52.000+0000", "updated": "2014-11-04T17:05:52.000+0000" }, { "id": "330684", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "[~ivan.skugor] I think you misunderstood me: in iOS the TAB focus/blur events function as tab selected/unselected. Try those and then tell me why they don't do the job.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-04T17:38:04.000+0000", "updated": "2014-11-04T17:38:04.000+0000" }, { "id": "330711", "author": { "name": "crossbits", "key": "crossbits", "displayName": "Danny Pham", "active": true, "timeZone": "Europe/Berlin" }, "body": "I am using a custom sidedrawer module that works within a tabGroup.\r\n\r\nIf you are in a child window and click on the tab icon, you will return to the initial \"home\" screen. That's the normal behaviour and it works fine if you are using the regular tab functionality (with Ti.UI.currentTab.open(newWin)). But I have a different architecture because of the sidedrawer so I have to detect this tab icon click to mimic the native behaviour. In my case I don't have a focus event as I am still in the active tab.\r\n\r\nThat's just an explanation why a tabGroup click event makes sense in some (rare) cases ;)", "updateAuthor": { "name": "crossbits", "key": "crossbits", "displayName": "Danny Pham", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-11-04T19:23:31.000+0000", "updated": "2014-11-04T19:23:31.000+0000" }, { "id": "330712", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "[~crossbits] tab or tabgroup click event? Ivan wants a tab click event which I think is redundant with focus/blur and on Android selected/unselected", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-04T19:35:32.000+0000", "updated": "2014-11-04T19:35:57.000+0000" }, { "id": "330713", "author": { "name": "crossbits", "key": "crossbits", "displayName": "Danny Pham", "active": true, "timeZone": "Europe/Berlin" }, "body": "tab click event, thats what this thread is about, right? I have posted here my workaround in Apr 2013 and it's still working with latest SDK ;) Maybe I will just make a simple module so I don't have to touch the source code with every SDK update.", "updateAuthor": { "name": "crossbits", "key": "crossbits", "displayName": "Danny Pham", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-11-04T19:41:14.000+0000", "updated": "2014-11-04T19:41:14.000+0000" }, { "id": "330814", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Mark, same problem exists if I use tab events instead of window events.\r\n\r\nI really don't understand why you think this is not necessary ... your solution if it worked would be a workaround, not a solution. \"click\" event is documented and should work. Solution is provided and it takes 5 seconds to integrate it in SDK, I guess it would take more time to update documentation :D\r\n\r\n\r\nAnyway, considering Mark's Android info update, maybe we should have \"change\" event that would be fired if current tab changes Ingo Muschenetz?", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-05T14:27:43.000+0000", "updated": "2014-11-05T14:27:43.000+0000" }, { "id": "330835", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "[~ivan.skugor] I still don't understand your issue. Can you please run this, look at the console and explain why the following events don't fulfill your needs?\r\n(For iOS only. For Android since 3.5.0 you can use 'selected' and 'unselected' with the same effect, and click is meaningless since tabs are usually swiped).\r\n[~crossbits] To be quite honest, I still don't get your use case. In my opinion a user who want to close a side drawer will click on the button that opened it, or swipe to restore the window/tab group. It's really unintuitive to me that a user will click a tab to do anything other than select the tab. \r\nIn fact, I think the click event should be removed, since do you really want it fired if the user clicks the tab of the already selected tab? Makes no sense. The only thing I think is appropriate is to rename the iOS TAB focus/blur events to selected/unselected. But this is purely for name parity with Android. I would then remove the tab focus/blur events from the docs for both iOS and Android.\r\n{code}\r\n// this sets the background color of the master UIView (when there are no windows/tab groups on it)\r\nTitanium.UI.setBackgroundColor('#000');\r\n\r\n// create tab group\r\nvar tabGroup = Titanium.UI.createTabGroup();\r\n\r\n\r\n//\r\n// create base UI tab and root window\r\n//\r\nvar win1 = Titanium.UI.createWindow({ \r\n title:'Tab 1',\r\n backgroundColor:'#fff'\r\n});\r\nvar tab1 = Titanium.UI.createTab({ \r\n icon:'KS_nav_views.png',\r\n title:'Tab 1',\r\n window:win1\r\n});\r\n\r\nvar label1 = Titanium.UI.createLabel({\r\n\tcolor:'#999',\r\n\ttext:'I am Window 1',\r\n\tfont:{fontSize:20,fontFamily:'Helvetica Neue'},\r\n\ttextAlign:'center',\r\n\twidth:'auto'\r\n});\r\n\r\nwin1.add(label1);\r\n\r\n//\r\n// create controls tab and root window\r\n//\r\nvar win2 = Titanium.UI.createWindow({ \r\n title:'Tab 2',\r\n backgroundColor:'#fff'\r\n});\r\nvar tab2 = Titanium.UI.createTab({ \r\n icon:'KS_nav_ui.png',\r\n title:'Tab 2',\r\n window:win2\r\n});\r\ntab2.addEventListener('focus', function(e){\r\n\tTi.API.info('tab2 selected');\r\n});\r\n\r\ntab2.addEventListener('blur', function(e){\r\n\tTi.API.info('tab2 unselected');\r\n});\r\n\r\nvar label2 = Titanium.UI.createLabel({\r\n\tcolor:'#999',\r\n\ttext:'I am Window 2',\r\n\tfont:{fontSize:20,fontFamily:'Helvetica Neue'},\r\n\ttextAlign:'center',\r\n\twidth:'auto'\r\n});\r\n\r\nwin2.add(label2);\r\n\r\n//\r\n// add tabs\r\n//\r\ntabGroup.addTab(tab1); \r\ntabGroup.addTab(tab2); \r\n\r\n\r\n// open tab group\r\ntabGroup.open();\r\n{code}", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-05T17:26:10.000+0000", "updated": "2014-11-05T17:39:37.000+0000" }, { "id": "330994", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Mark, add this code to your code:\r\n\r\n{code}\r\nwin2.addEventListener('click', function() {\r\n\tvar newWin = Ti.UI.createWindow({\r\n\t\tbackgroundColor: '#f00'\r\n\t});\r\n\r\n\tnewWin.addEventListener('click', function() {\r\n\t\tnewWin.close();\r\n\t});\r\n\r\n\tnewWin.open();\r\n});\r\n{code}\r\n\r\nclick on \"Tab 2\" and then click on window inside that tab. You'll get log that tab is not selected, while that is not true (it has just lost focus because new window opened).\r\n\r\n\r\nNow, you can make workaround for that - but again, it has no sense to provide complicated workaround instead of simple solution. The only sense as I can see is implementation of \"change\" event to cover Android swipe thing (which, tbh I never use :D ). ", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-06T09:40:02.000+0000", "updated": "2014-11-06T09:40:02.000+0000" }, { "id": "331029", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-06T16:16:13.000+0000", "updated": "2014-11-06T16:16:13.000+0000" }, { "id": "331030", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Mark, I'm not opening my window in wrong way!! It's totally valid approach. :D\r\n\r\nYou can open new window that is not part of tab group - and still have tab group below, I use that often in apps that I develop and I'm sure many other developers do (for example, if tab group has action bar - on some action new window is always opened as new activity EDIT: I was referring to Android functionality here, but similar thing stand for iOS ... after all, we're developing cross platform apps ;) ).\r\n\r\nIf that is not enough, you can open camera activity for example, and you'll again see your workaround doesn't work. Please don't tell me that is not valid too! :D\r\n\r\n\r\n\r\nI really don't understand you, 3 lines of code that implements this is overhead? Come on :D", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-06T16:35:29.000+0000", "updated": "2014-11-06T16:43:49.000+0000" }, { "id": "331032", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "LOL it's very simple: for normal tab group functionality, open windows from tabs, etc you have all the events you need.\r\nIf you open other windows in other ways..... well, then you have their close events to hook on, and you know which tab is selected in any case!\r\nAs I said, in 3.5.0 in Android you will lose the tab click functionality in any case since your users will swipe tabs in most cases, so you're hanging on to an event which will soon be irrelevant... Of course if you disable tab swipes you will still get your clicks..... but most Android users won't be too happy with that... Most users swipe (since in Android the tab buttons are too far from the thumbs....). \r\n\r\nAs to the \"three lines of code\" - that would be a good place to fire the selected event, but not \"click\". It's \"didSelect\", right? :) Let's keep the SDK clean please....\r\n", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-06T17:11:51.000+0000", "updated": "2014-11-06T17:11:51.000+0000" }, { "id": "331036", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Mark, I have solution that works for me :D But that's not the point, I want to make this part of SDK better for everyone. \r\nIMO - it's way simpler to have one event listener that works for sure, then 2 x number of tabs event listeners which may work. Latter kind of usage is overhead (consider complications - you have to listen to \"close\" event of every new window you open outside tab group + camera + gallery + etc).\r\n\r\n\r\nNo, I wouldn't stick to \"click\" listener since it wouldn't be reliable on Android, I would implement new \"change\" event that would indicate when current tab has been changed (on iOS that would basically be \"click\" event, on Android combination of \"click\" and \"selected/deselected\" event).", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-06T17:37:16.000+0000", "updated": "2014-11-06T17:37:16.000+0000" }, { "id": "331046", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-06T18:20:09.000+0000", "updated": "2014-11-06T18:20:09.000+0000" }, { "id": "331065", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "We need \"change\" event because of parity - there are no select/deselect events on iOS. On the other hand, if user clicks on tab on Android, selected/deselected would not work (as you said). Because of that I suggested new event that would work on both platforms for every use case.\r\n\r\n\r\nEnough said, we have to wait until someone from AppC comments. :)", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-06T20:06:54.000+0000", "updated": "2014-11-06T20:06:54.000+0000" }, { "id": "331070", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "On Android selected/unselected fire at the right time, whether by tab swipe or by click. Basically the same as tab focus/blur on iOS.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-11-06T20:57:56.000+0000", "updated": "2014-11-06T20:58:36.000+0000" }, { "id": "379852", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-03-16T09:56:44.000+0000", "updated": "2016-03-16T09:56:44.000+0000" } ], "maxResults": 22, "total": 22, "startAt": 0 } } }