{ "id": "151488", "key": "TIMOB-19580", "fields": { "issuetype": { "id": "8", "description": "A technical task.", "name": "Technical task", "subtask": true }, "parent": { "id": "150516", "key": "TIMOB-19374", "fields": { "summary": "Android: Material Design Custom Animations", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "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 } } }, "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": "16997", "name": "Release 5.2.0", "archived": false, "released": true, "releaseDate": "2016-02-23" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-11-03T07:09:36.000+0000", "created": "2015-09-25T03:11:29.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "notable" ], "versions": [], "issuelinks": [ { "id": "50751", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "133536", "key": "TIMOB-17362", "fields": { "summary": "Android: Support Activity Transition Animations", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "50685", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "155093", "key": "TIMOB-20451", "fields": { "summary": "Window.close should use new activity*Transition instead of activity*Animation or default", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "50679", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "155069", "key": "TIDOC-2454", "fields": { "summary": "API reference for Activity & Shared Elements transitions out of place and incorrect", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "50779", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "155313", "key": "TIDOC-2469", "fields": { "summary": "Update and extend guide on Transitions", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "50776", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "155310", "key": "TIMOB-20507", "fields": { "summary": "Android: Enable activity*Transition without sharedElements", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "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": "ssombhatla", "key": "ssombhatla", "displayName": "Srikanth Sombhatla", "active": false, "timeZone": "Asia/Singapore" }, "updated": "2016-03-03T12:44: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": "Activity transitions in material design apps provide visual connections between different states through motion and transformations between common elements. You can specify custom animations for enter and exit transitions and for transitions of shared elements between activities.\r\n\r\nCan be divided into transition types\r\n\r\n1. Content transition: Activity enter and exit transition.\r\n2. Shared element transition: Transition between elements in different activities to give a seamless experience. Mostly used for master-detail. ", "attachment": [], "flagged": false, "summary": "Customize Activity Transitions", "creator": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "368274", "author": { "name": "ssombhatla", "key": "ssombhatla", "displayName": "Srikanth Sombhatla", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/7371\r\nUse the following app.js code to test. This is an extension to tableviews example code with activity transitions added. Requires Android 5.0 and above. \r\n\r\n{code}\r\nTi.UI.setBackgroundColor('#000');\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: 'black',\r\n exitOnClose: true,\r\n fullscreen: false,\r\n title: 'Master',\r\n/* activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE,\r\n activityReenterTransition: Titanium.UI.Android.TRANSITION_EXPLODE,*/\r\n});\r\n\r\n// generate random number, used to make each row appear distinct for this example\r\nfunction randomInt(max){\r\n return Math.floor(Math.random() * max) + 1;\r\n}\r\n\r\nvar IMG_BASE = 'https://github.com/appcelerator/titanium_mobile/raw/master/demos/KitchenSink/Resources/images/';\r\nvar defaultFontSize = Ti.Platform.name === 'android' ? 16 : 14;\r\n\r\nvar tableData = [];\r\n\r\nfor (var i=1; i<=20; i++){\r\n var row = Ti.UI.createTableViewRow({\r\n className:'forumEvent', // used to improve table performance\r\n selectedBackgroundColor:'white',\r\n rowIndex:i, // custom property, useful for determining the row during events\r\n height:110\r\n });\r\n\r\n var avatar = createAvatar();\r\n avatar.transitionName = \"avatar\";\r\n row.add(avatar);\r\n \r\n var labelUserName = Ti.UI.createLabel({\r\n color:'#576996',\r\n font:{fontFamily:'Arial', fontSize:defaultFontSize+6, fontWeight:'bold'},\r\n text:'Fred Smith ' + i,\r\n left:70, top: 6,\r\n width:200, height: 30,\r\n });\r\n row.add(labelUserName);\r\n\r\n var labelDetails = Ti.UI.createLabel({\r\n color:'#222',\r\n font:{fontFamily:'Arial', fontSize:defaultFontSize+2, fontWeight:'normal'},\r\n text:'Replied to post with id ' + randomInt(1000) + '.',\r\n left:70, top:44,\r\n width:360\r\n });\r\n row.add(labelDetails);\r\n\r\n var imageCalendar = Ti.UI.createImageView({\r\n image:IMG_BASE + 'custom_tableview/eventsButton.png',\r\n left:70, bottom: 2,\r\n width:32, height: 32\r\n });\r\n row.add(imageCalendar);\r\n\r\n var labelDate = Ti.UI.createLabel({\r\n color:'#999',\r\n font:{fontFamily:'Arial', fontSize:defaultFontSize, fontWeight:'normal'},\r\n text:'on ' + randomInt(30) + ' Nov 2012',\r\n left:105, bottom:10,\r\n width:200, height:20\r\n });\r\n row.add(labelDate);\r\n\r\n tableData.push(row);\r\n}\r\n\r\nvar tableView = Ti.UI.createTableView({\r\n backgroundColor:'white',\r\n data:tableData\r\n});\r\n\r\ntableView.addEventListener('click', function(e){\r\n\tvar masterAvatar = e.row.children[0];\r\n\tvar masterUsername = e.row.children[1];\r\n\t\r\n\tvar win2 = Ti.UI.createWindow({\r\n\t layout: 'vertical',\r\n\t backgroundColor: 'white',\r\n\t title: 'Details',\r\n\t});\r\n\t\r\n\tvar avatar = createAvatar();\r\n\tavatar.width = 80;\r\n\tavatar.height = 80;\r\n\tavatar.left = 100;\r\n\tavatar.transitionName = \"avatar\";\r\n \tvar labelUserName2 = Ti.UI.createLabel({\r\n\t color:'#576996',\r\n\t font:{fontFamily:'Arial', fontSize:defaultFontSize+6, fontWeight:'bold'},\r\n\t text:'Fred Smith',\r\n\t top: 20,\r\n\t width:250, height: 60,\r\n\t transitionName: \"username\",\r\n\t });\r\n\t \r\n\twin2.add(avatar) \r\n win2.add(labelUserName2);\r\n\twin2.addSharedElement(masterAvatar, \"avatar\");\r\n\twin2.addSharedElement(masterUsername, \"username\"); \r\n\twin2.open();\r\n});\r\nwin.add(tableView);\r\nwin.open();\r\n\r\nfunction createAvatar() {\r\n var avatar = Ti.UI.createView({\r\n backgroundColor: 'green',\r\n left:10, top:5,\r\n width:50, height:50,\r\n });\r\n return avatar; \r\n}\r\n{code}", "updateAuthor": { "name": "ssombhatla", "key": "ssombhatla", "displayName": "Srikanth Sombhatla", "active": false, "timeZone": "Asia/Singapore" }, "created": "2015-10-29T10:01:09.000+0000", "updated": "2015-10-29T10:01:30.000+0000" }, { "id": "368427", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR Merged.\r\n\r\nPlease note that on Android 5.0 onwards with this fix, opening a window will default to a cross-fading transition to move forward to support more Material capabilities. \r\n\r\nSee: http://developer.android.com/training/material/animations.html#Transitions\r\n{quote}\r\nthe default cross-fading transition is activated between the entering and exiting activities.\r\n{quote}", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2015-10-30T08:41:29.000+0000", "updated": "2015-10-30T08:42:46.000+0000" }, { "id": "368759", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "[~ssombhatla]\r\nHaving errors running this code:-\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor: 'white'\r\n});\r\n \r\nfunction createCard(layout, wrap) {\r\n \r\n\tvar card = Ti.UI.Android.createCardView({\r\n\t\ttop: 20,\r\n\t\twidth: Ti.UI.FILL,\r\n\t\theight: 160,\r\n \r\n\t\tlayout: layout\r\n\t});\r\n \r\n\tvar view;\r\n \r\n\tif (wrap) {\r\n \r\n\t\tview = Ti.UI.createView({\r\n\t\t\tlayout: layout\r\n\t\t});\r\n \r\n\t\tcard.add(view);\r\n \r\n\t} else {\r\n\t\tview = card;\r\n\t}\r\n \r\n\tview.add(Ti.UI.createLabel({\r\n\t\twidth: 50,\r\n\t\theight: 100,\r\n\t\tbackgroundColor: 'green',\r\n\t\ttext: (wrap ? 'reference' : layout) + ' in green'\r\n\t}));\r\n \r\n\tview.add(Ti.UI.createLabel({\r\n\t\ttop: 10,\r\n\t\twidth: 100,\r\n\t\theight: 50,\r\n\t\tbackgroundColor: 'red',\r\n\t\ttext: (wrap ? 'reference' : layout) + ' in red'\r\n\t}));\r\n \r\n\treturn card;\r\n}\r\n \r\nvar scrollView = Ti.UI.createScrollView({\r\n\tlayout: 'vertical'\r\n});\r\n \r\nscrollView.add(createCard('vertical', true));\r\nscrollView.add(createCard('composite'));\r\nscrollView.add(createCard('vertical'));\r\nscrollView.add(createCard('horizontal'));\r\n \r\nwin.add(scrollView);\r\nwin.open();\r\n{code}\r\n\r\n\r\n{code}\r\n11-02 23:41:10.172: E/TiApplication(23507): (main) [90,90] Sending event: exception on thread: main msg:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewRootImpl.setPausedForTransition(boolean)' on a null object reference; Titanium 1.0,N/A,N/A\r\n11-02 23:41:10.172: E/TiApplication(23507): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewRootImpl.setPausedForTransition(boolean)' on a null object reference\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ActivityTransitionCoordinator.startInputWhenTransitionsComplete(ActivityTransitionCoordinator.java:897)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ActivityTransitionCoordinator.viewsTransitionComplete(ActivityTransitionCoordinator.java:885)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ExitTransitionCoordinator.getExitTransition(ExitTransitionCoordinator.java:318)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ExitTransitionCoordinator.beginTransitions(ExitTransitionCoordinator.java:365)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ExitTransitionCoordinator.-wrap0(ExitTransitionCoordinator.java)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ExitTransitionCoordinator$4.run(ExitTransitionCoordinator.java:216)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ActivityTransitionCoordinator.startTransition(ActivityTransitionCoordinator.java:773)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ExitTransitionCoordinator.startExit(ExitTransitionCoordinator.java:213)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ActivityTransitionState.startExitOutTransition(ActivityTransitionState.java:317)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.Activity.cancelInputsAndStartExitTransition(Activity.java:3960)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.Activity.startActivityForResult(Activity.java:3936)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.Activity.startActivity(Activity.java:4196)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat ti.modules.titanium.ui.WindowProxy.handleOpen(WindowProxy.java:161)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat org.appcelerator.titanium.proxy.TiWindowProxy.handleMessage(TiWindowProxy.java:101)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat ti.modules.titanium.ui.WindowProxy.handleMessage(WindowProxy.java:444)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.os.Looper.loop(Looper.java:148)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat android.app.ActivityThread.main(ActivityThread.java:5417)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat java.lang.reflect.Method.invoke(Native Method)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\r\n11-02 23:41:10.172: E/TiApplication(23507): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): FATAL EXCEPTION: main\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): Process: com.titanium.test, PID: 23507\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewRootImpl.setPausedForTransition(boolean)' on a null object reference\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ActivityTransitionCoordinator.startInputWhenTransitionsComplete(ActivityTransitionCoordinator.java:897)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ActivityTransitionCoordinator.viewsTransitionComplete(ActivityTransitionCoordinator.java:885)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ExitTransitionCoordinator.getExitTransition(ExitTransitionCoordinator.java:318)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ExitTransitionCoordinator.beginTransitions(ExitTransitionCoordinator.java:365)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ExitTransitionCoordinator.-wrap0(ExitTransitionCoordinator.java)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ExitTransitionCoordinator$4.run(ExitTransitionCoordinator.java:216)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ActivityTransitionCoordinator.startTransition(ActivityTransitionCoordinator.java:773)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ExitTransitionCoordinator.startExit(ExitTransitionCoordinator.java:213)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ActivityTransitionState.startExitOutTransition(ActivityTransitionState.java:317)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.Activity.cancelInputsAndStartExitTransition(Activity.java:3960)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.Activity.startActivityForResult(Activity.java:3936)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.Activity.startActivity(Activity.java:4196)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat ti.modules.titanium.ui.WindowProxy.handleOpen(WindowProxy.java:161)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat org.appcelerator.titanium.proxy.TiWindowProxy.handleMessage(TiWindowProxy.java:101)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat ti.modules.titanium.ui.WindowProxy.handleMessage(WindowProxy.java:444)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.os.Looper.loop(Looper.java:148)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat android.app.ActivityThread.main(ActivityThread.java:5417)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat java.lang.reflect.Method.invoke(Native Method)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\r\n11-02 23:41:10.197: E/AndroidRuntime(23507): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\r\n{code}", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2015-11-03T04:47:56.000+0000", "updated": "2015-11-03T08:45:46.000+0000" }, { "id": "368772", "author": { "name": "ssombhatla", "key": "ssombhatla", "displayName": "Srikanth Sombhatla", "active": false, "timeZone": "Asia/Singapore" }, "body": "Issue is with using empty shared element pairs which is causing problem in Android 6.0 whereas working in Android 5.0. Applied fixed common for both versions. \r\n\r\nPR https://github.com/appcelerator/titanium_mobile/pull/7382\r\nUse the above mentioned code for testing. ", "updateAuthor": { "name": "ssombhatla", "key": "ssombhatla", "displayName": "Srikanth Sombhatla", "active": false, "timeZone": "Asia/Singapore" }, "created": "2015-11-03T06:44:14.000+0000", "updated": "2015-11-03T06:44:14.000+0000" }, { "id": "368778", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR Merged.\r\n\r\nPlease note that on Android 5.0 onwards with this fix, opening a window will default to a cross-fading transition to move forward to support more Material capabilities when you use `addSharedElement`. Otherwise, it uses the normal transition.\r\n\r\nSee: http://developer.android.com/training/material/animations.html#Transitions\r\n{quote}\r\nthe default cross-fading transition is activated between the entering and exiting activities.\r\n{quote}", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2015-11-03T07:09:24.000+0000", "updated": "2015-11-03T07:09:24.000+0000" }, { "id": "370329", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR https://github.com/appcelerator/titanium_mobile/pull/7445 merged for Doc update.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2015-11-16T07:53:57.000+0000", "updated": "2015-11-16T07:53:57.000+0000" }, { "id": "375789", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the implementation of custom activity transitions & they work as expected.\r\n\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 4.5.0.201601262138\r\nTi SDK : 5.2.0.v20160202005354\r\nTi CLI : 5.0.6\r\nAlloy : 1.7.33\r\nMAC Yosemite : 10.10.5\r\nAppc NPM : 4.2.3-1\r\nAppc CLI : 5.2.0-239\r\nNode: 4.2.2\r\nNexus 6P - Android 6.0", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-02-02T22:29:52.000+0000", "updated": "2016-02-02T22:29:52.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }