{ "id": "129733", "key": "TIMOB-16889", "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": "16570", "description": "Release 3.3.1", "name": "Release 3.3.1", "archived": true, "released": false }, { "id": "15972", "description": "Release 3.4.0", "name": "Release 3.4.0", "archived": false, "released": true, "releaseDate": "2014-09-28" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-08-19T17:58:41.000+0000", "created": "2014-04-28T13:01:20.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "SupportTeam", "module_android", "qe-manualtest" ], "versions": [], "issuelinks": [ { "id": "37693", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "129859", "key": "AC-989", "fields": { "summary": "Android: lack of clarity or consistency with onCreateOptionsMenu, onPrepareOptionsMenu", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "39156", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "133127", "key": "AC-770", "fields": { "summary": "Android Activity events are unreliable", "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" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "39350", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "133687", "key": "TIDOC-1788", "fields": { "summary": "Android: Add new properties to activity", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "39467", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "133985", "key": "TIMOB-17440", "fields": { "summary": "Android: support setting properties to the tabgroup activity before tabgroup opens", "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": "None", "id": "6" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2015-02-26T17:24:38.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": "h2. Problem description\r\nWhen adding the resume event to Ti.Android.currentActivity, the resume is not called when the app is resumed. This works well in SDK 3.1.3\r\n\r\nh2. Steps to reproduce\r\n1. Use the code below\r\n2. Run the app on Android\r\n3. Hit the home button on the device\r\n4. Restore the app: no alert is shown\r\n\r\nh2. Code to reproduce\r\n{code}\r\nTi.Android.currentActivity.addEventListener('resume', function(e) {\r\n\talert(\"resumed\");\r\n});\r\n\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor: 'white'\r\n});\r\nwin.open();\r\n{code}\r\n\r\nh2. Note\r\nThe same code and steps work fine on SDK 3.1.3", "attachment": [], "flagged": false, "summary": "Android: Adding 'resume' event to Ti.Android.currentActivity does not work with SDK >= 3.2.0", "creator": { "name": "dcassenti", "key": "dcassenti", "displayName": "Davide Cassenti", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "dcassenti", "key": "dcassenti", "displayName": "Davide Cassenti", "active": true, "timeZone": "Europe/Berlin" }, "environment": "SDK 3.2.0\r\nSDK 3.2.1\r\nSDK 3.2.2\r\nAndroid 4.4", "closedSprints": [ { "id": 133, "state": "closed", "name": "2014 Sprint 13 SDK", "startDate": "2014-06-23T21:55:20.791Z", "endDate": "2014-07-04T00:00:00.000Z", "completeDate": "2014-07-07T17:32:18.561Z", "originBoardId": 100 }, { "id": 154, "state": "closed", "name": "2014 Sprint 15 SDK", "startDate": "2014-07-21T21:56:31.515Z", "endDate": "2014-08-02T00:00:00.000Z", "completeDate": "2014-08-04T21:03:51.067Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "305440", "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-05-18T12:28:38.000+0000", "updated": "2014-05-18T12:28:38.000+0000" }, { "id": "305443", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Currently, on windows it's possible to set win.activity.onCreateOptionsMenu = some function even before the win.open() call, and indeed this function will be called at the right time. So why not use a similar mechanism for the rest of the lifecycle events, instead of activity.addEventListener which is unavailable prior to the open event, which is too late for many of the events?\r\nAdding to this confusion is that for TabGroups, the open event is not too late to install the event listeners (and also setting tabGroup.activity.onCreateOptionsMenu prior to open will not work either....)\r\n\r\nTo be honest, I don't think this should wait until after 3.3.0 - these are major issues. ", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-05-19T00:45:58.000+0000", "updated": "2014-05-19T00:45:58.000+0000" }, { "id": "305488", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "See pull request: https://github.com/appcelerator/titanium_mobile/pull/5701\r\nSee test application below.\r\nExplanation:\r\n1. Added onCreate, onStart, onResume, onRestart, onPause, onStop, and onDestroy properties to the tab group or window activity property.\r\n2. For Window, you must set these properties prior to window.open() called.\r\n3. For TabGroup, you can set these only after the open event (it's unfortunate that the two APIs are different in this, but that's outside the scope of this PR). \r\n4. These callbacks are better than the events, since they're called synchronously, thus more reliable. Plus it makes more sense if onCreateOptionsMenu, onPrepareOptionsMenu, etc are using the same mechanism.\r\n5. The pull request did not modify the event handling. These can still be used as before - but they're *BUGGY* for windows, as noted.\r\n6. I recommend the lifecycle events be deprecated. The user can always fire events in javascript from the callbacks, if desired.\r\n7. Docs for this TBD - pending Appcelerator approval of this PR. \r\n\r\n{code}\r\nTitanium.UI.setBackgroundColor('#000');\r\n\r\n// create tab group\r\nvar tabGroup = Titanium.UI.createTabGroup();\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:'Click to open window',\r\n\tfont:{fontSize:20,fontFamily:'Helvetica Neue'},\r\n\ttextAlign:'center',\r\n\twidth:'auto'\r\n});\r\n\r\nfunction openWin() {\r\n\tvar childWin = Ti.UI.createWindow({});\r\n\t// For windows we set the activity lifecycle callback prior to calling open()\r\n\t// We cannnot call childWin.activity.addEventListener yet since the method is undefined\r\n\t// And if we call childWin.activity.addEventListener during the open event\r\n\t// we can miss the create, start, restart and resume events.\r\n\t// This is device and timing dependent.\r\n\t// Thus for windows we must define the callbacks here, and events should be deprecated.\r\n\tchildWin.activity.onCreateOptionsMenu = function(e){\r\n\t\tTi.API.info('childWin onCreateOptionsMenu called');\r\n\t};\t\r\n\tchildWin.activity.onStart = function(){\r\n\t\tTi.API.info('childWin onStart called');\r\n\t\t// In the \"onStart, etc callbacks this refers to the activity\r\n\t\tTi.API.info('apiName: ' + this.apiName); \r\n\t};\r\n\tchildWin.activity.onRestart = function(){\r\n\t\tTi.API.info('childWin onRestart called');\r\n\t};\r\n\tchildWin.activity.onCreate = function(){\r\n\t\tTi.API.info('childWin onCreate called');\r\n\t};\r\n\tchildWin.activity.onResume = function(){\r\n\t\tTi.API.info('childWin onResume called');\r\n\t};\r\n\tchildWin.activity.onPause = function(){\r\n\t\tTi.API.info('childWin onPause called');\r\n\t};\r\n\tchildWin.activity.onStop = function(){\r\n\t\tTi.API.info('childWin onStop called');\r\n\t};\r\n\tchildWin.activity.onDestroy = function(){\r\n\t\tTi.API.info('childWin onDestroy called');\r\n\t};\r\n\tchildWin.open();\r\n}\r\nlabel1.addEventListener('click', openWin);\r\nwin1.add(label1);\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\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\ntabGroup.addTab(tab1); \r\ntabGroup.addTab(tab2); \r\n\r\ntabGroup.addEventListener('open', function() {\r\n\t// The tabGroup.activity property is valid only after open\r\n\t// we can set activity properties for synchronous callbacks\r\n\t// or tabGroup.activity.addEventListener() will also work\r\n\ttabGroup.activity.onCreateOptionsMenu = function(e){\r\n\t\tTi.API.info('tabGroup onCreateOptionsMenu called');\r\n\t};\t\r\n\ttabGroup.activity.onStart = function(){\r\n\t\tTi.API.info('tabGroup onStart called');\r\n\t};\r\n\ttabGroup.activity.onRestart = function(){\r\n\t\tTi.API.info('tabGroup onRestart called');\r\n\t};\r\n\ttabGroup.activity.onCreate = function(){\r\n\t\tTi.API.info('tabGroup onCreate called');\r\n\t};\r\n\ttabGroup.activity.onResume = function(){\r\n\t\tTi.API.info('tabGroup onResume called');\r\n\t};\r\n\ttabGroup.activity.onPause = function(){\r\n\t\tTi.API.info('tabGroup onPause called');\r\n\t};\r\n\ttabGroup.activity.onStop = function(){\r\n\t\tTi.API.info('tabGroup onStop called');\r\n\t};\r\n\ttabGroup.activity.onDestroy = function(){\r\n\t\tTi.API.info('tabGroup onDestroy called');\r\n\t};\t\r\n});\r\n\r\ntabGroup.open();\r\n{code}", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-05-19T12:31:21.000+0000", "updated": "2014-05-19T18:20:37.000+0000" }, { "id": "305494", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "And please - accept this for 3.3.0, this issue is a real pain...", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-05-19T12:48:35.000+0000", "updated": "2014-05-19T12:48:35.000+0000" }, { "id": "306582", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Please note that the PR does not modify any existing APIs,and thus is completely safe to integrate for 3.3.0", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-05-28T04:34:15.000+0000", "updated": "2014-05-28T04:34:15.000+0000" }, { "id": "307215", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Regarding the original testcase posted in the ticket, this is due to the Android window re-architecture done as part of TIMOB-13796.\r\nAll windows by default are now heavyweight windows (hosted by their own activities). To get the same behavior as 3.1.3 in 3.2.X releases add the following property to tiapp.xml\r\n{code}\r\ntrue\r\n{code}\r\nSetting this property will open windows hosted by the root activity which is what the currentActivity variable points to in the sample posted.\r\nNote that this property has no effect in 3.3.0 and later releases since support for light weight windows has been dropped. So opening the window will pause the root activity and backgrounding and foregrounding the app once the window is open only causes the window activity to send out events (the root activity remains paused).\r\n\r\n\r\n\r\n", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-06-02T18:41:00.000+0000", "updated": "2014-06-02T18:41:00.000+0000" }, { "id": "307293", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "@Vishal: this ticket should be changed to \"Activity.create, start, resume, restart don't work\", and that's what the PR fixes.\r\nYou can try the test case in my comment with the PR and you will see in doesn't work for Windows (just of course change the onCreate etc callbacks to \"addEventListener\"). If you addEventListener prior to Window open event the app will crash, and if you add it after the Window open you will miss some of events. This is actually very critical. Referring to 3.3.0+ of course.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-06-03T05:31:47.000+0000", "updated": "2014-06-03T05:45:38.000+0000" }, { "id": "309123", "author": { "name": "shodan_uk", "key": "shodan_uk", "displayName": "Terry Morgan", "active": true, "timeZone": "Europe/London" }, "body": "Are there any updates on this? I'm having similar problems trying to listen for pause & resume events on the tabGroup activity.", "updateAuthor": { "name": "shodan_uk", "key": "shodan_uk", "displayName": "Terry Morgan", "active": true, "timeZone": "Europe/London" }, "created": "2014-06-16T15:22:24.000+0000", "updated": "2014-06-16T15:22:24.000+0000" }, { "id": "312504", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "@Vishal, @Ingo, please merge the pull request, it works fine for me on 3.3.0, and Window activity events are outright broken without it.\r\n@Terry Morgan: try hooking the TabGroup activity events after the TabGroup open event. That should still work. It's Window Activity events that are hosed for now.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-07-07T07:47:17.000+0000", "updated": "2014-07-07T11:38:46.000+0000" }, { "id": "314794", "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-07-18T14:29:09.000+0000", "updated": "2014-07-18T14:29:09.000+0000" }, { "id": "315684", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "PR updated to use async callbacks, please merge for master and 3.3.1, thanks.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-07-24T21:06:48.000+0000", "updated": "2014-07-24T21:06:48.000+0000" }, { "id": "315715", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Filed TIDOC-1788 for updating the doc. Resolved this ticket as Fixed.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-24T22:49:21.000+0000", "updated": "2014-07-24T22:49:21.000+0000" }, { "id": "315781", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Marked as resolved and fixed but still not merged for 3_3_X. I'm sure it can be merged automatically for that branch as well.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-07-25T07:47:04.000+0000", "updated": "2014-07-25T07:47:04.000+0000" }, { "id": "315850", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "3_3_X PR: https://github.com/appcelerator/titanium_mobile/pull/5934", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-25T18:24:16.000+0000", "updated": "2014-07-25T18:24:16.000+0000" }, { "id": "319309", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix. \r\nThe onCreate, onStart, onResume, onRestart, onPause, onStop, and onDestroy properties work as expected.\r\n\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 3.4.0.201408051600\r\nTi SDK : 3.4.0.v20140815142514\r\nMac OSX : 10.8.5\r\nAlloy : 1.5.0-dev\r\nCLI - 3.4.0-dev\r\nCode Processor: 1.1.1\r\nNexus 5 - android 4.4.4", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-08-19T17:46:22.000+0000", "updated": "2014-08-19T17:46:22.000+0000" }, { "id": "325310", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Please update the fix for this with this small but important fix: https://github.com/appcelerator/titanium_mobile/pull/6160\r\nThis makes the lifecycle calls synchronous. Explanation: \r\nStrange things happen if the Android Activity lifecycle calls (onCreate, onResume, onCreateOptionsMenu, etc. ) are async: the calls into Javascript happen much later than they should - sometimes disastrously later. For example, if a window is created and opened as the screen is locked, Android will quickly cycle through create, start, resume, pause, stop - and I have seen window.activity.onResume, onCreateOptionsMenu etc called after the activity was stopped! This of course creates issues if the code tries to do something with the activity when the activity's state is inappropriate for the action. This should be merged into master as well as 3_4_X", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-09-23T23:49:36.000+0000", "updated": "2014-09-23T23:49:36.000+0000" }, { "id": "325431", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "This module requires the new PR for this ticket: https://github.com/mokesmokes/titanium-android-facebook", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-09-24T15:42:25.000+0000", "updated": "2014-09-24T15:42:25.000+0000" }, { "id": "344409", "author": { "name": "milgner", "key": "milgner", "displayName": "Marcus Ilgner", "active": true, "timeZone": "Europe/Berlin" }, "body": "Looks like there has been a regression for this ticket? Just tried converting from {{$.win.activity.onResume = ...}} to {{Ti.Android.currentActivity.addEventListener(\"resume\", ...)}} and while the former works just fine, the second one doesn't.", "updateAuthor": { "name": "milgner", "key": "milgner", "displayName": "Marcus Ilgner", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-02-26T12:53:10.000+0000", "updated": "2015-02-26T12:53:10.000+0000" }, { "id": "344429", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Read the latest docs. Use the onResume property on the Activity, not the event listener.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2015-02-26T17:04:49.000+0000", "updated": "2015-02-26T17:04:49.000+0000" }, { "id": "344431", "author": { "name": "milgner", "key": "milgner", "displayName": "Marcus Ilgner", "active": true, "timeZone": "Europe/Berlin" }, "body": "In that case, the documentation at http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity should probably be updated to also not mention {{addEventListener}} in the example code.", "updateAuthor": { "name": "milgner", "key": "milgner", "displayName": "Marcus Ilgner", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-02-26T17:13:07.000+0000", "updated": "2015-02-26T17:13:07.000+0000" }, { "id": "344437", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "Yup, however note that the list of properties and events is indeed correct.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2015-02-26T17:24:38.000+0000", "updated": "2015-02-26T17:24:38.000+0000" } ], "maxResults": 25, "total": 25, "startAt": 0 } } }