{ "id": "79446", "key": "TIMOB-5303", "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": "12593", "name": "Release 2.0.0", "archived": false, "released": true, "releaseDate": "2012-03-30" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-04-25T08:02:03.000+0000", "created": "2011-08-19T02:01:07.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "core", "qe-port" ], "versions": [ { "id": "11971", "description": "iOS5 and select Android fixes", "name": "Release 1.7.3", "archived": true, "released": true, "releaseDate": "2011-10-18" }, { "id": "12580", "description": "Dual Runtime 1.8.0", "name": "Release 1.8.0.1", "archived": true, "released": true, "releaseDate": "2011-12-22" } ], "issuelinks": [ { "id": "14313", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "84105", "key": "TIDOC-74", "fields": { "summary": "APIDOC: UI view size property should be documented as the rendered view size and as read-only", "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": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "14601", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "85057", "key": "TIMOB-7266", "fields": { "summary": "iOS: UI view size property values incorrect if queried too soon after orientation change", "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": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-07-16T16:31:22.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\r\n\r\nThe view's size property values are intended to reflect the rendered dimensions. However, if these properties are queried too soon after rendering has completed, the old values will be output.\r\n\r\nThe advice of querying property values within a window open event listener does not work.\r\n\r\nh2. Test case\r\n\r\n{code:lang=javascript|title=app.js}\r\n var win = Ti.UI.createWindow({\r\n// fullscreen: false, // once fixed, please check with this line uncommented\r\nbackgroundColor:'red'\r\n});\r\n\r\nvar view = Ti.UI.createView({\r\n backgroundColor:'blue',\r\n width:'50',\r\n height:50\r\n});\r\n\r\nwin.add(view);\r\n\r\nTi.API.info(\"*** Before window open - view.size.width = 50 ***\");\r\nTi.API.info(\"view.size w x h: \" + view.size.width + \" x \" + view.size.height); // incorrect\r\n\r\nview.width = 100;\r\n\r\nwin.addEventListener('open', function(){\r\n Ti.API.info(\"*** Window open - view.size.width = 100 ***\");\r\n Ti.API.info(\"view.size w x h: \" + view.size.width + \" x \" + view.size.height); // incorrect\r\n});\r\n\r\n\r\nTi.Gesture.addEventListener('orientationchange', function(){\r\n Ti.API.info(\"*** orientationchange - view.size.width = 200 ***\");\r\n view.width = 200;\r\n Ti.API.info(\"view.size w x h: \" + view.size.width + \" x \" + view.size.height); // incorrect\r\n});\r\nwin.open();\r\n{code}\r\n\r\nh2. Logs\r\n\r\n{code:lang=none}\r\n 1454 AndroidRuntime D >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<\r\n 1454 AndroidRuntime D CheckJNI is ON\r\n 60 InputManagerService W Got RemoteException sending setActive(false) notification to pid 1430 uid 10044\r\n 1454 AndroidRuntime D --- registering native functions ---\r\n 60 ActivityManager I Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.appcelerator.testing10/.Testing10Activity }\r\n 60 ActivityManager I Start proc com.appcelerator.testing10 for activity com.appcelerator.testing10/.Testing10Activity: pid=1461 uid=10044 gids={1015, 3003}\r\n 1454 AndroidRuntime D Shutting down VM\r\n 1454 AndroidRuntime I NOTE: attach of thread 'Binder Thread #3' failed\r\n 1461 TiApplication I (main) [0,0] checkpoint, app created.\r\n 1461 TiApplication I (main) [536,536] Titanium 1.8.0.1 (2011/12/22 13:09 fbdc96f)\r\n 1461 TiFastDev D (main) [164,700] Enabling Fastdev on port 58902\r\n 1461 TiFastDev D (main) [10,710] sent tokens successfully\r\n 1461 TiFastDev D (main) [1,711] Fastdev session handshake succesful.\r\n 1461 TiApplication I (main) [8,719] Titanium Javascript runtime: v8\r\n 1461 TiApplication W (main) [68,787] activity stack is emtpy, unable to get current activity\r\n 1461 TiRootActivity I (main) [0,0] checkpoint, on root activity create, savedInstanceState: null\r\n 1461 TiApplication W (main) [119,119] activity stack is emtpy, unable to get current activity\r\n 1461 TiApplication W (main) [1,120] activity stack is emtpy, unable to get current activity\r\n 1461 TiApplication W (main) [1,121] activity stack is emtpy, unable to get current activity\r\n 1461 TiApplication E (KrollRuntimeThread) [937,1058] APP PROXY: ti.modules.titanium.app.AppModule@44eb3110\r\n 1461 TiAssetHelper D Fetching \"app.js\" with Fastdev...\r\n 1461 TiAPI I *** Before window open - view.size.width = 50 ***\r\n 1461 TiAPI I view.size w x h: 0 x 0\r\n 1461 TiAPI I *** Window open - view.size.width = 100 ***\r\n 1461 TiAPI I view.size w x h: 0 x 0\r\n 1461 TiRootActivity I (main) [0,0] checkpoint, on root activity resume. activity = com.appcelerator.testing10.Testing10Activity@44e76478\r\n 60 ActivityManager I Displayed activity com.appcelerator.testing10/.Testing10Activity: 3359 ms (total 3359 ms)\r\n 60 WindowManager I Setting rotation to 1, animFlags=1\r\n 60 ActivityManager I Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/1 nav=3/1 orien=2 layout=34 uiMode=17 seq=70}\r\n 1461 TiAPI I *** orientationchange - view.size.width = 200 ***\r\n 1461 TiAPI I view.size w x h: 100 x 50\r\n 60 ActivityManager I Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=2 layout=34 uiMode=17 seq=71}\r\n 60 WindowManager I Setting rotation to 0, animFlags=0\r\n 60 ActivityManager I Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=34 uiMode=17 seq=72}\r\n 1461 TiAPI I *** orientationchange - view.size.width = 200 ***\r\n 1461 TiAPI I view.size w x h: 200 x 50\r\n{code}\r\n\r\nh2. Discussions\r\n\r\nSee Q/A topic: http://developer.appcelerator.com/question/124426/how-does-dimensions-work#216821\r\n\r\nh2. Workaround\r\n\r\nUsing setTimeout allows the size values to be updated to reflect the re-rendered view.\r\n", "attachment": [], "flagged": false, "summary": "Android: UI view size property values incorrect", "creator": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "* Titanium SDK version: 1.7.3 (08/08/11 13:49 ea32d53...), 1.8.0.1 (2011/12/17 19:53 c903964) (RC3), Continuous Build 1.9.0 (2012/01/16 11:16 366b32d)\r\n* Android 2.2\r\n* simulator, Samsung Galaxy Tab\r\n* Ubuntu 10.04, WinXP\r\n", "comment": { "comments": [ { "id": "166334", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "body": "Thanks for raising this ticket, Ivan. I've verified the behavior and so am moving it to the main project now.", "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2011-09-18T15:56:26.000+0000", "updated": "2011-09-18T15:56:26.000+0000" }, { "id": "176717", "author": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I think what is missing here is an event to tell the application that the view has finished laying out components. That is, when you update the `width` or `height` property, you trigger a new layout cycle, but we don't have any way to tell when it finishes. ", "updateAuthor": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-20T09:57:14.000+0000", "updated": "2011-12-20T09:57:14.000+0000" }, { "id": "176811", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "I'm not Android Java programmer, so I can't comment is that possible to do or not.\r\n\r\n\r\nBut - I think this can be done from JavaScript. :)\r\n\r\n\r\nCurrently I'm using one approach in my app to get this functionality right, but in limited edition that suits my needs. Now, I have made basic example that shows idea how the problem from this ticket can be solved using pure JavaScript.\r\n\r\nThe code can be found here: https://gist.github.com/1505988\r\n\r\n\r\nIt just shows basic idea and it needs more work to make it work in in any case (different layout mechanisms, position properties, something else?).\r\n\r\n\r\nWhile working on that example, I noticed issue. I'm working on Windows XP, example is compiled with Titanium SDK version: 1.9.0 (12/20/11 19:16 fd3b938) and I'm using Android 3.1 (Lenovo Thinkpad tablet).\r\n\r\n\r\nView can't be re-sized when it has dimension defined in configuration object passed to factory method, or when dimension property is set with non-numeric value (percentage, 'auto'). You can see this issue by running example, pressing \"Set fixed\" button, \"Set percentage\" button and then \"Set fixed\" button (last attempt to set fixed value will fail), or by commenting out a line that defines view's height:\r\n\r\n{code}\r\nvar view = Ti.UI.createView({\r\n\tbackgroundColor: '39c',\r\n\theight: 700,\r\n\tlayout: 'vertical'\r\n});\r\n{code}\r\n\r\n\r\nThat is obvious bug, I think.\r\n\r\n(ah yes, almost forgot, \"alert\" dialogs don't show in right order)\r\n\r\n\r\n\r\nNow, to return to the point, as you can see, dimensions can be calculated from JavaScript.\r\n\r\nI think that you use some kind of JS wrappers to native components, so if this can't be implemented in Java, maybe it can in JavaScript. :)\r\n\r\n\r\n\r\nHope this helps. \r\n\r\n\r\nCheers", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2011-12-21T05:33:51.000+0000", "updated": "2011-12-21T05:35:17.000+0000" }, { "id": "179347", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2012-01-16T04:42:03.000+0000", "updated": "2012-01-16T04:42:03.000+0000" }, { "id": "179349", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "But what if window is already opened (I can change element size after window opens)? My initial ticket report was about that.\r\n\r\n\r\nWe need to write \"setTimeout\" and other magic just to get basic thing as element size?!", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-01-16T05:18:13.000+0000", "updated": "2012-01-16T05:18:13.000+0000" }, { "id": "179571", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "body": "I have reopened and updated this ticket, as the values are incorrect even using the the advice to use the window open event.", "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2012-01-17T10:04:14.000+0000", "updated": "2012-01-17T10:04:14.000+0000" }, { "id": "181306", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-02-01T01:00:12.000+0000", "updated": "2012-02-01T01:00:12.000+0000" }, { "id": "183085", "author": { "name": "jtoth", "key": "jtoth", "displayName": "Justin Toth", "active": true, "timeZone": "America/New_York" }, "body": "It seems that the size dimensions aren't available on window open, but they are a few milliseconds later. This code was run in the Android Emulator using Ti 1.8.1 and Android 2.2:\r\n\r\n{code}\r\n//create label.\r\nvar win = Ti.UI.createWindow({ backgroundColor: \"#fff\" });\r\n\r\n//create labels.\r\nvar labelAddedBeforeWinOpen = Ti.UI.createLabel({ text: \"Created before win open\", \r\n\twidth: \"auto\", height: \"auto\", top: 20 });\r\nvar labelAddedAfterWinOpen = Ti.UI.createLabel({ text: \"Created after win open\", \r\n\twidth: \"auto\", height: \"auto\", bottom: 20 });\r\n\t\r\n//add first label.\r\nwin.add(labelAddedBeforeWinOpen);\r\n\r\nwin.addEventListener(\"open\", function() { \r\n\r\n\t//add second label.\r\n\twin.add(labelAddedAfterWinOpen);\r\n\t\r\n\t//log label dimensions over time.\r\n\tlogDimensions(0);\r\n\tlogDimensions(1);\r\n\tlogDimensions(10);\r\n\tlogDimensions(100);\r\n\tlogDimensions(1000);\r\n\t\r\n});\r\n\r\n//open window.\r\nwin.open();\r\n\r\nfunction logDimensions(wait) {\r\n\t\r\n\tif(wait > 0) {\r\n\t\tsetTimeout(function() { \r\n\t\t\tTi.API.info(\"labelCreatedBeforeWinOpen height after timeout of \" + wait + \"ms: \" + labelAddedBeforeWinOpen.size.height);\r\n\t\t\tTi.API.info(\"labelCreatedAfterWinOpen height after timeout of \" + wait + \"ms: \" + labelAddedAfterWinOpen.size.height);\r\n\t\t}, wait);\r\n\t}\r\n\telse {\r\n\t\tTi.API.info(\"labelCreatedBeforeWinOpen height after no timeout: \" + labelAddedBeforeWinOpen.size.height);\r\n\t\tTi.API.info(\"labelCreatedAfterWinOpen height after no timeout: \" + labelAddedAfterWinOpen.size.height);\r\n\t}\r\n\t\r\n}\r\n{code}\r\n\r\nThe result is:\r\n\r\nI/TiAPI ( 603): labelCreatedBeforeWinOpen height after no timeout: 0\r\nI/TiAPI ( 603): labelCreatedAfterWinOpen height after no timeout: 0\r\nI/TiAPI ( 603): labelCreatedBeforeWinOpen height after timeout of 1ms: 0\r\nI/TiAPI ( 603): labelCreatedAfterWinOpen height after timeout of 1ms: 19\r\nI/TiAPI ( 603): labelCreatedBeforeWinOpen height after timeout of 10ms: 19\r\nI/TiAPI ( 603): labelCreatedAfterWinOpen height after timeout of 10ms: 19\r\nI/TiAPI ( 603): labelCreatedBeforeWinOpen height after timeout of 100ms: 19\r\nI/TiAPI ( 603): labelCreatedAfterWinOpen height after timeout of 100ms: 19\r\nI/TiAPI ( 603): labelCreatedBeforeWinOpen height after timeout of 1000ms: 19\r\nI/TiAPI ( 603): labelCreatedAfterWinOpen height after timeout of 1000ms: 19", "updateAuthor": { "name": "jtoth", "key": "jtoth", "displayName": "Justin Toth", "active": true, "timeZone": "America/New_York" }, "created": "2012-02-14T13:12:42.000+0000", "updated": "2012-02-14T13:12:42.000+0000" }, { "id": "183087", "author": { "name": "jtoth", "key": "jtoth", "displayName": "Justin Toth", "active": true, "timeZone": "America/New_York" }, "body": "Here is a possible workaround for this issue, which will check every 10ms if the size has been calc'd for the window object yet. Once it has then it will call the callback function, which the developer can use as their window load function.\r\n\r\n{code}\r\n//create window.\r\nvar win = Ti.UI.createWindow({ backgroundColor: \"#fff\" });\r\n\r\n//create label.\r\nvar label = Ti.UI.createLabel({ text: \"Added before win open\", \r\n\twidth: \"auto\", height: \"auto\", top: 20 });\r\nwin.add(label);\r\n\r\n//check for when dimensions are available.\r\nwaitForDimensions(win, function() { \r\n\t//dimensions have been available, use this as window load function.\r\n\talert(\"label height: \" + label.size.height);\r\n});\r\n\r\n//open window.\r\nwin.open();\r\n\r\nfunction waitForDimensions(window, callback, numTries) {\r\n\t\r\n\tif(!numTries)\r\n\t\tnumTries = 0;\r\n\tif(!window.size || window.size.height == 0) {\r\n\t\tnumTries++;\r\n\t\tif(numTries < 500) {\r\n\t\t\tsetTimeout(function() { \r\n\t\t\t\twaitForDimensions(window, callback, 1);\r\n\t\t\t}, 10);\r\n\t\t}\r\n\t\telse\r\n\t\t\talert(\"Waited 5 seconds but never got back size dimensions!\");\r\n\t}\r\n\telse {\r\n\t\talert(\"Size dimensions were calc'd after \" + numTries * 10 + \"ms!\");\r\n\t\tcallback();\r\n\t}\r\n\t\r\n}\r\n{code}", "updateAuthor": { "name": "jtoth", "key": "jtoth", "displayName": "Justin Toth", "active": true, "timeZone": "America/New_York" }, "created": "2012-02-14T13:29:19.000+0000", "updated": "2012-02-14T13:29:19.000+0000" }, { "id": "183188", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Yeah, I also noticed that \"open\" event is (sometimes) triggered before window is actually rendered. \r\n\r\nFor example, I show activity indicator before creating a window and it's content and I use window's \"open\" event to hide activity indicator. In some cases, activity indicator hides before window content is visible on screen. Introducing timeout for activity indicator hiding (about 100ms) solves that issue.\r\n\r\n\r\nBut I think that issue in different thing that has influence on this issue.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-02-15T08:29:40.000+0000", "updated": "2012-02-15T08:29:40.000+0000" }, { "id": "183374", "author": { "name": "julian3ev", "key": "julian3ev", "displayName": "Julian Krispel-Samsel", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Getting the height of a view with the setTimeout method has worked for me.\r\n\r\nUntil I have more items than fit on the screen.\r\nIt seems to be impossible to get the height of a view that is not on screen, even though one can for example scroll to reveal it.", "updateAuthor": { "name": "julian3ev", "key": "julian3ev", "displayName": "Julian Krispel-Samsel", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-16T06:44:43.000+0000", "updated": "2012-02-16T06:44:43.000+0000" }, { "id": "183376", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "body": "Julian\r\n\r\nPlease raise a new ticket for that issue, including a simple test case. Read [How to Submit a Bug Report|https://wiki.appcelerator.org/display/guides/How+to+Submit+a+Bug+Report] to find out the correct way to do this.\r\n\r\nMany thanks for your input.\r\n", "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2012-02-16T06:57:06.000+0000", "updated": "2012-02-16T06:57:06.000+0000" }, { "id": "192439", "author": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "body": "In 2.0, there is a new 'postlayout' event which is fired after a layout pass occurs. If you replace the 'open' event with 'postlayout' it should work as expected. Please refer to http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/Transitioning_to_the_New_UI_Layout_System for more information.", "updateAuthor": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-24T14:10:15.000+0000", "updated": "2012-04-24T14:10:15.000+0000" }, { "id": "192538", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "OK, thanks. But, IMHO, this ticket shouldn't be marked as invalid (since it's valid ticket - at least it was at the time it was reported).", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-04-25T00:41:48.000+0000", "updated": "2012-04-25T00:41:48.000+0000" }, { "id": "192552", "author": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Agreed. This ticket was fixed as part of composite layout implementation in 2.0 release.", "updateAuthor": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-04-25T08:02:03.000+0000", "updated": "2012-04-25T08:02:03.000+0000" }, { "id": "192555", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Thanks Neeraj. :)", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2012-04-25T08:16:14.000+0000", "updated": "2012-04-25T08:16:14.000+0000" }, { "id": "207889", "author": { "name": "rumbrasas", "key": "rumbrasas", "displayName": "Rima Umbrasas", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed on:\r\nTitanium SDK: 2.2.0.v20120716092112\r\nTitanium Studio, build: 2.1.1.201207121732\r\n Devices Android 3.2 and Android emulator.", "updateAuthor": { "name": "rumbrasas", "key": "rumbrasas", "displayName": "Rima Umbrasas", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-16T16:30:59.000+0000", "updated": "2012-07-16T16:30:59.000+0000" } ], "maxResults": 17, "total": 17, "startAt": 0 } } }