)]}'
{
  "log": [
    {
      "commit": "eb3bf68b57c0af3e731aab23a4464d15e00af2e7",
      "tree": "a60a6c977e8f5f22fd13b390862febafa49662bd",
      "parents": [
        "1494f8671ef6d9e6f14fb18b2248eecc37d0dcfc"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 13:39:42 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 13:54:25 2014 -0700"
      },
      "message": "Include forgotten file to fix build.\n\nChange-Id: I4a5ddb6063e5feb18d95ee5c7fe7a126ca59d3b9\n"
    },
    {
      "commit": "3d86fd2bb9db6067c49634bc4c6cdb4d5235ad36",
      "tree": "ead7a5dbd6d077bb22e04f6e9d9ac33d5df0f60a",
      "parents": [
        "03b62b3c7ff57f44a9142bac48603656dfb550ed"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri May 16 18:02:17 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 18:28:43 2014 +0000"
      },
      "message": "Add persistence of tasks for TaskManager \u0026 BatteryController\n\nTasks are persisted only if the client has the RECEIVE_BOOT_COMPLETED\npermission. This applies to both periodic and one-off tasks.\nWrite out task as xml, using PersistableBundle for the extras data.\nTodo: Add persistable bundle to xml when ag/468207 is merged.\n\nAlso added BatteryController logic.\n\nChange-Id: I23eeeb8b3bc6ba155e7fa4ec25857a68ee8b1567\n"
    },
    {
      "commit": "5116a821b9507b16bdfa8549a65556493813e111",
      "tree": "f192a67244264e834aca27e2dde5eb5ab090cee5",
      "parents": [
        "a344656a010dc3c88aef39109f1ac459792e7607"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 04 15:59:50 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Jun 05 12:38:13 2014 -0400"
      },
      "message": "Disable the attention light on devices that do not have it.\n\nIf the attention and notificaiton light are mapped to the same\nphysical LED, then pulsing the attention light can turn off the\nnotification light. See bug for detailed discussion.\n\nBug: 12900389\nChange-Id: I2703af23f50ecc3e92140b9843aaf340d520bce5\n"
    },
    {
      "commit": "a344656a010dc3c88aef39109f1ac459792e7607",
      "tree": "e35d4036aa763b3dbcfe6fb0b99e7f96960d727a",
      "parents": [
        "7256a852cee3a656615af19ebeb3ad7379a194fb"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jun 03 18:11:47 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Jun 05 12:38:13 2014 -0400"
      },
      "message": "A notification that emerges from Zen Mode interception should beep.\n\nIf a notificaiton emerges from Zen Mode due to a ranking\nreconsideration (possibly because a long-running query resolved an\nimportant person) then it should get the oportunity buzz, beep, blink,\nand send accessibility events.\n\nSave what we need to know about the old notificaiton record on the new\nrecord so we don\u0027t have to hold onto it.\n\nBug: 15383458\nChange-Id: I15c7834fef03ff6a676e78e9d2caae24f00720ef\n"
    },
    {
      "commit": "64939ae385edf615ac2912060df5624dbaf57cab",
      "tree": "e5d850bcacbbbfb037103cc5dd8aecfc43ae6fbb",
      "parents": [
        "35677d176202d8d8d676c4df65dbeeee9281bace"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed Jun 04 09:25:11 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed Jun 04 22:46:25 2014 +0000"
      },
      "message": "DO NOT MERGE Redact SyncService stuff from master\n\nCherry-pick over from master.\nThis changes the API surface area, deleting things we aren\u0027t releasing.\nI\u0027ll do the internal clean-up at the same time I do the SyncManager\nrefactor to sit on top of the TaskManager.\nBug: 14997851\n\nChange-Id: Ieebbbcd3324827098e88b36e45e6e82315a51e65"
    },
    {
      "commit": "8ae980dcef1265f69fe41338f17266c2a8ec8d20",
      "tree": "38f620a734ada649679cf9e93a114c63fa31a92f",
      "parents": [
        "94236c56ddef7f0a3db010c38940f6eae75f67b4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 16:43:57 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jun 04 19:15:17 2014 +0000"
      },
      "message": "DO NOT MERGE Report new network scores back to factories.\n\nThis is a first order approx of what we want - should probably be good enough in most cases.\n\nbug:15277751\n\nChange-Id: I10e3b25f6ad5c7e022ba966ed514d4e6a999180d\n(cherry picked from commit 94a5c61cb82401dd777d0a7ac43183d92d955323)"
    },
    {
      "commit": "1e9021aef89d53eb08d0e8a4e017c9e79d260241",
      "tree": "03274d0ca036f85ca0e45c7ffa68a3cf7964116f",
      "parents": [
        "d55c56b86e9ec7b15f5b9e715ed009aed6ba9bb1",
        "18ea893a2319e2a192188d2288bb881149c9b06e"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Jun 04 13:18:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 13:18:40 2014 +0000"
      },
      "message": "Merge \"Ensure trust agents are only provided by platform packages\" into lmp-preview-dev"
    },
    {
      "commit": "7722b379efe7528ffbcd9fc23a99fd155b6cd298",
      "tree": "b75b529c6bdbd06e0723472f4c6ae1fa871d6926",
      "parents": [
        "aef51c63d7086088b0c245d18f052a181fe1ff45",
        "2d37070ec13df5650093f8967655938298290ee7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jun 04 01:14:37 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 01:14:38 2014 +0000"
      },
      "message": "Merge \"Fix legacy APIs.\" into lmp-preview-dev"
    },
    {
      "commit": "7737ab44b1a3c1e6afe2957006cdec6ecda63a86",
      "tree": "b63cdfd81eea30caf21fecc95214ffdfad4b7e95",
      "parents": [
        "38bd7b9c4dc8af0d37e4a353e69a5bb130edec07",
        "16b0b56c79ee0bd068ce47ce4460c24b5e62311d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 04 00:54:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 00:54:45 2014 +0000"
      },
      "message": "Merge \"Force write battery stats after a --history-since.\" into lmp-preview-dev"
    },
    {
      "commit": "16b0b56c79ee0bd068ce47ce4460c24b5e62311d",
      "tree": "cd1638c077e0bf3d7ec14fe7fa4aac10b0819d25",
      "parents": [
        "a48e7b5500d38320592cec034619323781112401"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 03 17:24:42 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 03 17:50:30 2014 -0700"
      },
      "message": "Force write battery stats after a --history-since.\n\nThis should help the stats be more consistent across\nsystem restarts.\n\nChange-Id: If1736608373aada8b55d72ecf80fbbc52bd288bd\n"
    },
    {
      "commit": "2d37070ec13df5650093f8967655938298290ee7",
      "tree": "bd8f8dd5932716010077566ef095b784a43c7fb3",
      "parents": [
        "32aa65a11207e1fb7d346a68fdf3299f87a20db4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 17:22:11 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 17:22:11 2014 -0700"
      },
      "message": "Fix legacy APIs.\n\nTwo fixes.  First make sure we mark the request as handled by the network handling it.\nSecond, convert ensureRouteToHostForAddress to use the new legacyNetworkForType.\n\nbug:14993207\nChange-Id: I230968938ca0ed91f834b36a2af60caff2eab682\n"
    },
    {
      "commit": "4021b3ba74471b35e510543b765a2265eff9912a",
      "tree": "1485540863dac74198c89398fe8e123e4385df3f",
      "parents": [
        "bb938107b7ef1f6660b9f9cbafacd9d0a427bedc",
        "8a0da0184f6c5c95d94ab6adfee79bace4040abd"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jun 04 00:21:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 00:21:01 2014 +0000"
      },
      "message": "Merge \"Force all windows to redraw before unblanking screen\" into lmp-preview-dev"
    },
    {
      "commit": "8a0da0184f6c5c95d94ab6adfee79bace4040abd",
      "tree": "d426d7012d2cc62bfe18e4acf9f34a92ca6914e3",
      "parents": [
        "4327e2fbcd68ec022a8d365bbe171dbc3cb97c65"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat May 31 15:13:37 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jun 03 17:08:02 2014 -0700"
      },
      "message": "Force all windows to redraw before unblanking screen\n\nThe screen turning on would show windows as they were when the screen\nturned off. This fix forces all showing windows to redraw first and\nonly then allow the screen to turn on.\n\nFixes bug 15092354.\n\nChange-Id: I52c3f47438176a5ac00ba9a4d5205b56a5aa48f9\n"
    },
    {
      "commit": "856edebad73560e9b1cce021a7de9a0470d07176",
      "tree": "b5d422f8786a998f23cf24af8e758b727c0252b4",
      "parents": [
        "a48e7b5500d38320592cec034619323781112401"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sun Jun 01 20:36:47 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jun 03 19:05:55 2014 -0400"
      },
      "message": "Zen: Stateful condition panel.\n\nWhen DND is on, expanded panel shows the current time\ncondition, or time remaining.  The last time bucket\nselected is remembered as the default option for the\nnext time.\n\nMove the server-side countdown helper into a proper\ncondition provider, but register it in-process as a\nsystem provider.\n\nMove common countdown condition parsing into ZenModeConfig\nto reuse from system components.\n\nKeep the manual exit condition around in zen mode config\nand add plumbing for getting / listening to the\ncontroller.\n\nKeep the last QS detail panel around instead of\nrecreating it every time.\n\nFix the time condition\u0027s plus and minus button\nenabling logic, and enhance the click handler to\ndeal properly with the next or previous bucket.\n\nBug:15344758\nChange-Id: Ie7018a1c20e20f6d7e5f9e7874188374e6f8e2ab\n"
    },
    {
      "commit": "52eba54eca02ef0b38e91490d10f9a697cbcb502",
      "tree": "588a5dd5e8991b90b5b4b58d86a5ebf523ecd7f3",
      "parents": [
        "4327e2fbcd68ec022a8d365bbe171dbc3cb97c65"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Mon Jun 02 15:40:32 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jun 03 14:58:51 2014 -0400"
      },
      "message": "Apply Zen Mode later, after we\u0027ve found the old record.\n\nCopy the extracted signales from the previous record to the new\nrecord.  Do this before the signal extractors are called so that code\ncan decide what to do with the information.\n\nBug: 15383769\nChange-Id: Ifa24fa0e4380f08979c2126b63d29794aa50a787\n"
    },
    {
      "commit": "32aa65a11207e1fb7d346a68fdf3299f87a20db4",
      "tree": "1778714ec1355da86791a13afba9a529cc3a2195",
      "parents": [
        "93a2bb2063fdbca9f844202f0eca12330605511b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Jun 02 15:32:02 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 14:00:56 2014 +0000"
      },
      "message": "Fix Legacy NetworkInfo API\n\nMake the connectivity changed broadcasts send correct NetworkInfos.\nAlso update the results of getNetwork.\n\nbug:15290306\nbug:15191336\nbug:14993207\nChange-Id: Ie99ad25f3ebb90d18348e7013761b139e7481866\n(cherry picked from commit 16fe1c18289de200d2249e51db8c0986619f487b)\n"
    },
    {
      "commit": "18ea893a2319e2a192188d2288bb881149c9b06e",
      "tree": "0cb7c43ad9a7a6c28873697f1f133f985d74adaa",
      "parents": [
        "becab9a7dbbfd5395e6889e7d73dd08c3406bf1a"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed May 28 14:53:06 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jun 03 15:49:19 2014 +0200"
      },
      "message": "Ensure trust agents are only provided by platform packages\n\nPrevents the TrustManagerService from binding to any non-platform\ntrust agents and updates the SampleTrustAgent to use the new\npermission.\n\nBug: 15287044\nChange-Id: I38c3deebd5ad359075e68f52d19417bab5ab43db\n"
    },
    {
      "commit": "10621710900981a1e01cb53efa2a2f96f890b633",
      "tree": "e880a4fe9a88a099208f2e484ffd7e64403ce353",
      "parents": [
        "7b2ae34b97943a4dfe3fa6b5c1c74f415b468993",
        "55691b8cc725297e0d36799e234cba3c8c3410f6"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 02:59:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 02:59:22 2014 +0000"
      },
      "message": "Merge \"Refactor NetworkFactory.\" into lmp-preview-dev"
    },
    {
      "commit": "7b2ae34b97943a4dfe3fa6b5c1c74f415b468993",
      "tree": "4ae0b6f46fb294600e72c121e06a4565092a9179",
      "parents": [
        "0aa5420504d0414fdcfd54f7352ac8009707717f",
        "a3be12a236aef0d9c4ff1274075f1e7899d29153"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jun 03 02:31:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 02:31:28 2014 +0000"
      },
      "message": "Merge \"Add onAudioStreamChanged and onClosedCaptionStreamChanged callbacks from TIS to application.\" into lmp-preview-dev"
    },
    {
      "commit": "55691b8cc725297e0d36799e234cba3c8c3410f6",
      "tree": "154c54a4d6582be4508d126c79b9def85a4fe677",
      "parents": [
        "49fa8e15baa4aeeb7cc2581ce9c2d8689973c8c7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 27 13:20:24 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 01:26:48 2014 +0000"
      },
      "message": "Refactor NetworkFactory.\n\nMake NetworkFactory a concrete class and divide responsibilites between it and NetworkAgent.\nFactory will track requests and by default give a single connect/disconnect api for ease\nof use.  Then NetworkAgent is created and destroyed as needed with very simple logic.\n\nChange-Id: I401c14a6e5466f2fc63b04219b97ff85bb9af291\n(cherry picked from commit 9a17b9c5a256cb4bb14821c5ee89b03b99c045e8)\n"
    },
    {
      "commit": "49fa8e15baa4aeeb7cc2581ce9c2d8689973c8c7",
      "tree": "b81a9a178215941ab825e36cb8511e7df976f069",
      "parents": [
        "1b3718ee66322b5d1bd0d4eb9cc3d20e0a6cec6c",
        "562cc54536f1e75d80855de4d1eccaeefd689a32"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 01:26:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 01:26:19 2014 +0000"
      },
      "message": "Merge \"Rewrite startUsingNetworkFeature for new API\" into lmp-preview-dev"
    },
    {
      "commit": "a3be12a236aef0d9c4ff1274075f1e7899d29153",
      "tree": "4effaecc291597c4b9d65ad039bbe49161377288",
      "parents": [
        "6abd0d801b6772bb9d0fe6cd4c007dace2f38570"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jun 02 13:33:55 2014 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jun 03 09:53:05 2014 +0900"
      },
      "message": "Add onAudioStreamChanged and onClosedCaptionStreamChanged callbacks from TIS to application.\n\nBug: 14628404\nChange-Id: I40abf647e9d608c2c793d007fd2fe0d511535bdd\n"
    },
    {
      "commit": "6fbe3982b035c200543454bb29b9f3e33b5e347a",
      "tree": "d39c6b570dd0bff67c4fec22d47e024cc4d9db36",
      "parents": [
        "5a26f00c846f62e5c5039923d7d6de2ac04c4436",
        "bd23fa0ba1460a8d5194fd7c700030bf9c3f6fcb"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Jun 03 00:26:05 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 00:26:05 2014 +0000"
      },
      "message": "Merge \"TvContract: Address the feedback from the API review\" into lmp-preview-dev"
    },
    {
      "commit": "5a26f00c846f62e5c5039923d7d6de2ac04c4436",
      "tree": "630bed6603ef292edd540bab9cf39c14e0f6220a",
      "parents": [
        "ad3c4a136e862cc838dbd3b9f24c8cecdfc4b934",
        "72ad7bf915ce40d8437a4ee2518ae07b73502e12"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Jun 03 00:23:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 00:23:09 2014 +0000"
      },
      "message": "Merge \"Add ClientState for handling the crash of clients.\" into lmp-preview-dev"
    },
    {
      "commit": "72ad7bf915ce40d8437a4ee2518ae07b73502e12",
      "tree": "78de40f8f6f59ea08c28926378c531468c4d5345",
      "parents": [
        "becab9a7dbbfd5395e6889e7d73dd08c3406bf1a"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed May 14 09:21:08 2014 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Jun 03 09:09:14 2014 +0900"
      },
      "message": "Add ClientState for handling the crash of clients.\n\nBug: 15054040\nChange-Id: I4dd8d1c350186fe705daa20c9944bc8e4dd556c2\n"
    },
    {
      "commit": "e7bb7d6bb2257c24076f5a4b9f536f90a6637f58",
      "tree": "7d4aa3140b0fd1a3510b74075968d2a62c77f3c4",
      "parents": [
        "0bec638839b0a07502ff27c9dcf4419b3c47a0d2"
      ],
      "author": {
        "name": "Chulwoo Lee",
        "email": "chulwoo@google.com",
        "time": "Tue May 27 14:10:37 2014 +0900"
      },
      "committer": {
        "name": "Chulwoo Lee",
        "email": "chulwoo@google.com",
        "time": "Tue Jun 03 08:56:35 2014 +0900"
      },
      "message": "Add a way to get the class name of SetupActivity and SettingsActivity\n\nNow, there can be only one SetupActivity and one SettingsActivity for\none TIS apk though one TIS apk can contain several services. Each TIS\nneed to be able to have its own SetupActivity and SettingsActivity.\n\nBUG: 15177340\nChange-Id: I2d944e3ef35c3a981483ba643fd27b15925bab16\n"
    },
    {
      "commit": "bd23fa0ba1460a8d5194fd7c700030bf9c3f6fcb",
      "tree": "874c23a4a50dc29bb83145535ec1effe7fe47dd0",
      "parents": [
        "0bec638839b0a07502ff27c9dcf4419b3c47a0d2"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Sat May 31 17:20:01 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 16:44:37 2014 -0700"
      },
      "message": "TvContract: Address the feedback from the API review\n\nThis change addresses the following comments from the council:\n- Provider authority should be \"android.media.tv\"\n- Rename COLUMN_DATA to COLUMN_INTERNAL_PROVIDER_DATA and add comment to\n  indicate data is internal to the provider that inserted it, and should\n  not be decoded by other apps. It would be nice to restrict read access\n  to this column, but not essential.\n- Hide COLUMN_LOCKED since implementation isn\u0027t defined yet, also\n  questions about how it interacts with Unicorn.\n- Fix typo in ORIGINAL_NETWORK documentation.\n- All provider MIME types need to be changed to follow platform\n  conventions: \"vnd.android.cursor.dir/channel\",\n  \"vnd.android.cursor.dir/program\", etc. (Notice singular tense and no\n  package prefixes since they\u0027re part of the platform API.)\n- Rename Programs.COLUMN_DATA to COLUMN_INTERNAL_PROVIDER_DATA, along\n  with docs update, for the same reasons as above.\n- Rename COLUMN_DESCRIPTION to COLUMN_SHORT_DESCRIPTION and update docs\n  to indicate it\u0027s a recommended maximum length, not a hard cap.\n- COLUMN_GENRE should be split into two columns: COLUMN_BROADCAST_GENRE\n  (from broadcast standard) and COLUMN_CANONICAL_GENRE (from an Android\n  standard). Define a subclass with the Android canonical genres, which\n  are simple strings that are comma-separated when inserted into\n  COLUMN_CANONICAL_GENRE.\n\nBug: 15345342\nChange-Id: I7f8e70aef617475a59d096fd73a551e7df8a1d3a\n"
    },
    {
      "commit": "562cc54536f1e75d80855de4d1eccaeefd689a32",
      "tree": "a104c501bfd49ce054a0f3f764aa34cc1f03631a",
      "parents": [
        "0bec638839b0a07502ff27c9dcf4419b3c47a0d2"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu May 15 18:07:26 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Jun 02 23:29:20 2014 +0000"
      },
      "message": "Rewrite startUsingNetworkFeature for new API\n\nbug:14993207\nChange-Id: I041a80faa07bf3094af13a6c606f3b15aa03f789\n(cherry picked from commit 09fe5e618b09965183cf53fba87c39025a19e8d1)\n"
    },
    {
      "commit": "0bec638839b0a07502ff27c9dcf4419b3c47a0d2",
      "tree": "0bbffd1709ce08d75717bd47bd3ca44093554c68",
      "parents": [
        "596f0b1a03c1d733697f89757bcf3c80b9900c78",
        "fc0641340ff927d9c35d5613723d25858f751118"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 02 22:57:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 22:57:41 2014 +0000"
      },
      "message": "Merge \"Some battery stats history fixes.\" into lmp-preview-dev"
    },
    {
      "commit": "3c784d6359f15a5451b670a18384e9ae3c9aa276",
      "tree": "981689d1de5fba017eba83ca0495d16f38e160f3",
      "parents": [
        "b75a69f9b3dfe1499828c6e092bf40f69be18bbf",
        "d5cc4a281e7ce29d1e8687ff3394b57a3a549260"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 21:03:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 21:03:58 2014 +0000"
      },
      "message": "Merge \"Put TV Input Framework under android.media.tv, including TvContract\" into lmp-preview-dev"
    },
    {
      "commit": "481acb86e435d1c9d7d7f744941619ca509906af",
      "tree": "97e856e269f17426e6ed8d1a390a97153647e256",
      "parents": [
        "d5d9e73a1ad484b6147d041ab86a193724eb246e",
        "e0d50cc15be2c8aa9e4a4aa6cf34cc7cf23c9109"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 02 20:40:16 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 20:40:16 2014 +0000"
      },
      "message": "Merge \"Compare task userId with userId profiles.\" into lmp-preview-dev"
    },
    {
      "commit": "fc0641340ff927d9c35d5613723d25858f751118",
      "tree": "09ef9a4305fdc2d1eabec9264074425c402f5100",
      "parents": [
        "725010a83f1798e5ba6edb93ca2656a96c29fcae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 02 12:42:12 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 02 12:42:12 2014 -0700"
      },
      "message": "Some battery stats history fixes.\n\n- Now the full wake history uses the history tag if it can.\n  Hopefully this will still result in a consistent history,\n  since that isn\u0027t really want the tag is for...  but the\n  current implementation in places will probably make this work.\n\n- Possibly fix a bug with inconsistent state between partial\n  history snapshots: after a snapshot is printed, don\u0027t allow\n  any more batching into the most recent history entry, so the\n  next snapshot will not miss anything that might get placed\n  into it soon after.\n\nAlso rework command line arguments for enable/disable to make these\ncommands instead of options.\n\nChange-Id: Ia33445cad1538bf8df549cef284f1e736efbc079\n"
    },
    {
      "commit": "d5cc4a281e7ce29d1e8687ff3394b57a3a549260",
      "tree": "a54c168980e6a2fc805892d1653236f7da6ebe5c",
      "parents": [
        "e205192c722e4fa1b37ee1b31dced21cf89ffbb4"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Fri May 30 16:57:43 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 11:02:52 2014 -0700"
      },
      "message": "Put TV Input Framework under android.media.tv, including TvContract\n\nBug: 15345342\nChange-Id: I665ca23f0f074ce29cb2e047109b209178532107\n"
    },
    {
      "commit": "e0d50cc15be2c8aa9e4a4aa6cf34cc7cf23c9109",
      "tree": "5fe569af8cd5a798692f3c76dfe06671908800ff",
      "parents": [
        "9dcfe06154f6bd7c1de2fab2e436b8251b7d5fca"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 02 10:11:53 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 02 10:11:53 2014 -0700"
      },
      "message": "Compare task userId with userId profiles.\n\nChange comparison of Task.mUserId from comparing with only the\ncurrent user id to comparing with all current profile user ids.\n\nFixes bug 14930145.\n\nChange-Id: Ibbae08da6f4eaa31b171becdd8957293758f527b\n"
    },
    {
      "commit": "e78755e180c4f29ccc324112286dd81ab2016c40",
      "tree": "a414dfa20c73b816b375eb093e0d1f2e4cdbc54a",
      "parents": [
        "ddc93ce3438618a15f30fc20d45634325f8ce84f",
        "b69ffd4dc2c8fa85e0064151141ebeee90de471e"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Jun 02 17:10:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 17:10:07 2014 +0000"
      },
      "message": "Merge \"Minimum work to make volume handling work with sessions\" into lmp-preview-dev"
    },
    {
      "commit": "3ef57d99b3b1b751097d58c6c1b98db123d5ccc5",
      "tree": "8d18b9d78b74fc9b4990b3e4b3307c851f5fa4bb",
      "parents": [
        "af9d45e88b173a30cd20db854731e0e5eb207afa"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu May 29 21:52:28 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:07:25 2014 +0900"
      },
      "message": "DO NOT MERGE: Start Device Discovery after logical address allocation.\n\nUsually TV initiates Device Discovery sequence after logical address\nallocation of local devices. For that added new callback interface\nto AddressAllocationCallback to HdmiCecDevice.\nAlong with this, add onAddressAllocated to HdmiLocalDevice so that\nstart sending local device information once logical allocation is done.\n\nChange-Id: I4cdc5dd7770674a17a0f23c383a6c1ca221e3104\n"
    },
    {
      "commit": "e74282b70b4a8ad1186fdc32204e1ecee16cd901",
      "tree": "5362a6efaa32b07d93174d78d3d6273db3549198",
      "parents": [
        "48a0729d621d55b7b1d256106dbc9421b147ee89"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 29 07:39:22 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:02:51 2014 +0900"
      },
      "message": "DO NOT MERGE: Stop publishing HdmiCecService, start publishing HdmiControlService\n\nHdmiCecService will soon be deprecated and replaced with HdmiControlService.\nStopped publishing the service, and turned the corresponding manager to\nstub so that it will do nothing but print out a warning msg instead.\n\nWill help the app transition to the new service in the meantime. Once\nthe migration is finished, will gut out all the HdmiCecService/\nHdmiCecManager stuff.\n\nChange-Id: Ic34a69c4fb99f4e5a2c8323538195204ab16a545\n"
    },
    {
      "commit": "48a0729d621d55b7b1d256106dbc9421b147ee89",
      "tree": "f9d1819b3f821e3bfdaae29532914d50e65da093",
      "parents": [
        "e1e63c7c54b8a6a5d5d207bcedd08d2f8ac2465e"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 29 06:52:45 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:01:45 2014 +0900"
      },
      "message": "DO NOT MERGE: Do not reply with \u003cFeature Abort\u003e to CEC Broadcast message\n\nBroadcast message is not targeted to a specific device but for\nannouncement. Individual reponse with \u003cFeature Abort\u003e is neither\nnecessary nor useful. Changed to send the message back only for\ndirect messages.\n\nChange-Id: I927aa8e58a9868e158ed945c753492207e7c97f6\n"
    },
    {
      "commit": "e1e63c7c54b8a6a5d5d207bcedd08d2f8ac2465e",
      "tree": "a3157737ef1c8328113d509890bbfd00c4f3fe07",
      "parents": [
        "d42a7a322b7adf532ae0b70cb9eb1df7e62a8f2d"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Wed May 28 19:11:44 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:00:55 2014 +0900"
      },
      "message": "DO NOT MERGE: Dispatch incoming CEC messages to feature actions\n\nThis CL dispatches incoming CEC messages to feature actions that\nthe service manages.\n\nChange-Id: I9221d6a25648846327d00fe5404aaf1e8ec786ce\n"
    },
    {
      "commit": "d42a7a322b7adf532ae0b70cb9eb1df7e62a8f2d",
      "tree": "6c1d65bb855a78f15e7a6069b1c2964d2d12c70d",
      "parents": [
        "a8fd44b74b8822426cdc0e45351899c95bf30e16"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Tue May 27 13:27:36 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:59:03 2014 +0900"
      },
      "message": "DO NOT MERGE: Implement device discovery sequence.\n\nWhen device discover is launched it goes through the following step\n\n1. clear all existing devices\n2. send \u003cPolling Message\u003e of all logical addresses\n  excecpt one of local device\n3. Once got all allocated logical addresses, gather physical address of\n  them\n4. Once got physical address of them, gather display name of them\n5. Once got display names, gather vendor id of them\n5. Once got vendor id of them, register all gathered info to\n  internal device info list.\n\nChange-Id: Ic9aca3b15d88ac7650f10b6d0bfa9c97923975e8\n"
    },
    {
      "commit": "a8fd44b74b8822426cdc0e45351899c95bf30e16",
      "tree": "326e45fe2912ea7ba33315f05a486041a756f01a",
      "parents": [
        "304b4a7281ffe4153d21eb50ebed070f1cf685bc"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Wed May 28 17:42:56 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:58:02 2014 +0900"
      },
      "message": "DO NOT MERGE: Fix a couple of bugs in CEC services\n\n- Correct conversion for byte to int for cec opcode\n- Use the right Handler.obtainMessage() to pass an integer variable\n\nChange-Id: Ie3e86225f1702decce454aeb197911a371f51c17\n"
    },
    {
      "commit": "c47e26ca2ff6f032c4b3a094810b1d1062bcb1ff",
      "tree": "137e50d34e9d21f87b3e1751dda68739b2f9cdb3",
      "parents": [
        "2c2a3017624678ee65d92feb51340f542a1d244c"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Tue May 27 19:52:39 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:55:50 2014 +0900"
      },
      "message": "DO NOT MERGE: Add cec message handler to hdmi cec jni implementation\n\nNotification for incoming cec message can be issued\nfrom any thread but jni can call java method\nin the thread that jni knows like service thread.\nSo this change delegates incoming message to\njni-friendly thread, service thread by exploit\nlooper of service thread.\n\nChange-Id: If3b141d917df3e209912af1778eb509777199969\n"
    },
    {
      "commit": "2c2a3017624678ee65d92feb51340f542a1d244c",
      "tree": "2e58e6c2566e0c1ccb10ad06bf46dfbe69081501",
      "parents": [
        "16e24a2d143345b2052ea7ccbe85fcda6d843608"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Tue May 27 17:23:27 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:54:53 2014 +0900"
      },
      "message": "DO NOT MERGE: Fix a bug using wrong addresses for CEC logical address allocation\n\nChange-Id: I41da586c16dca4f325d147bb3abe5d4e09f7b91c\n"
    },
    {
      "commit": "16e24a2d143345b2052ea7ccbe85fcda6d843608",
      "tree": "14e05168a637ebbce2a59ba4a86029bc82b8cd9d",
      "parents": [
        "562ef5c513a859b3d2b0f54c15f25e4ec3ec9f7a"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Mon May 26 17:33:05 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:53:58 2014 +0900"
      },
      "message": "DO NOT MERGE: Hook up the CEC playback API to service internal logic.\n\nThis change enables CEC playback API (oneTouchPlay, queryDisplayStatus).\nAlso updated local device list type to SparseArray to make it easy\nto get one based on device type.\n\nChange-Id: I6f88b2dac2d873c493a90411549a4e5719a5e460\n"
    },
    {
      "commit": "562ef5c513a859b3d2b0f54c15f25e4ec3ec9f7a",
      "tree": "4696a4ea38bb9e07dff4e4551cb9cc8fa1920187",
      "parents": [
        "9d499bfe4a52068fd0c25b3cce34bd5e445e0f96"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon May 26 11:02:36 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:50:37 2014 +0900"
      },
      "message": "DO NOT MERGE: Add HdmiCecDeviceInfo to HdmiCecLocalDevice\n\nAs HdmiCecLoclaDevice is a wrapper for local devices\nit should include cec device info.\n\nChange-Id: I479665b2aa6bd56470b79dbbb7fb1015f6356090\n"
    },
    {
      "commit": "9d499bfe4a52068fd0c25b3cce34bd5e445e0f96",
      "tree": "f7728d47eda5fb81dc87190bc1ec485342fa95f5",
      "parents": [
        "61ced38d61926bc28638d805436086db22b642c3"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri May 23 16:48:31 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:48:57 2014 +0900"
      },
      "message": "DO NOT MERGE: Implement \u003cPolling Message\u003e.\n\nWhen Device Discovery is launched or Hot-plug detection is\nlaunched, the first step of it is to send \u003cPolling Message\u003e\nto all remote devices. According to type of feature,\nit may have different retry count for sending \u003cPolling Message\u003e.\n\nAs \u003cPolling Message\u003e to all devices should be serialized operation\nit runs on io thread as single operation.\n\nAlong with this, added assertRunOnIoThread and\nassertRunOnServiceThread used to make sure that all methods are\ncalled in proper thread.\n\nChange-Id: I2d2df0216867c188e99ba24b216ec73f3396eeae\n"
    },
    {
      "commit": "61ced38d61926bc28638d805436086db22b642c3",
      "tree": "b8434fb8b44873e78895ea83931bef9f80a6c73a",
      "parents": [
        "47927f756a0f694358567cec845b53ab3fc980e9"
      ],
      "author": {
        "name": "Yuncheol Heo",
        "email": "ycheo@google.com",
        "time": "Fri May 23 20:10:19 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:46:36 2014 +0900"
      },
      "message": "DO NOT MERGE: Add the constants for the callback result of SendCecCommand().\n\n- Move the send failure warning messages into HdmiCecController.sendCommand()\n  from each Actions.\n- Stringfy with more detail messages for some opcodes.\n\nChange-Id: Ib7ce24dd2a1f290e6c3a0b26738772ef1d4a9630\n"
    },
    {
      "commit": "47927f756a0f694358567cec845b53ab3fc980e9",
      "tree": "725e65ba4f5ee25460dd92245734c60f0d3ed975",
      "parents": [
        "404d704158d068c9b1f066ec647461f0f9ec22cd"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Tue May 20 16:45:45 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:45:18 2014 +0900"
      },
      "message": "DO NOT MERGE: CEC Initialization per device type\n\nCEC initialization may vary from device type to type. Changed logical address\nmap to HdmiCecLocalDevice map to handle it. These per-type classes for local\ndevice will be extended also to take care of incoming CEC commands that should\nrequire different action based on device type.\n\nChange-Id: Ia59a464607b14e942fcf83e63aa1d6310ca6a575\n"
    },
    {
      "commit": "404d704158d068c9b1f066ec647461f0f9ec22cd",
      "tree": "f42252e60fadb53f9665c8ef2489d500a4210509",
      "parents": [
        "c6c967b68a9c29e0930bcfa32548633596fe5745"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu May 22 19:28:09 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:42:03 2014 +0900"
      },
      "message": "DO NOT MERGE: Add SendMessageCallback to Hdmi control service.\n\nAs we have separate IO thread, we should have async callback\nmechanism to get result of send request.\nFor that, I added SendMessageCallback interface to HdmiControl\nService\nAlong with this, replace message-based IO handling with\npost Runnable based one for consistency\n\nChange-Id: I61cf5b751b4f2af3b34956060869f3512f161d11\n"
    },
    {
      "commit": "0bf8a21464d62857052cc033bf648077dbe20259",
      "tree": "1b50a691f2560593d964b29021997e8277d4cdf1",
      "parents": [
        "377801463ef75d7c14f3ef6a346d8ddccb2a4045",
        "832860fb9f6b3a7188a6af2d5d67806593595800"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sun Jun 01 23:09:30 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 01 23:09:31 2014 +0000"
      },
      "message": "Merge \"Add a path for generic event from a session to an application in Tv Input Framework.\" into lmp-preview-dev"
    },
    {
      "commit": "d48d7a6d506a72cc519e05fc4c124087b0db221b",
      "tree": "1991e38e0d11b8d274fd16b4577df8e876993595",
      "parents": [
        "54b5e5bdf621449a1806ff2971b95df273069c44",
        "e29b2dbc762bfa66093d76f5a65f55328d8753c9"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Sat May 31 01:09:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 31 01:09:19 2014 +0000"
      },
      "message": "Merge \"Fade scrim in unlock animation.\" into lmp-preview-dev"
    },
    {
      "commit": "e29b2dbc762bfa66093d76f5a65f55328d8753c9",
      "tree": "715078ec5618bb210f671a9a8679289a301ffb95",
      "parents": [
        "283c907a6a84c5d9ffe38d3468e76131e6917105"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri May 30 23:17:03 2014 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Sat May 31 02:48:06 2014 +0200"
      },
      "message": "Fade scrim in unlock animation.\n\nThis also introduces a startTime which gets sent from window manager\nto SystemUI, which tells when the animation should start, to allow\nfor a more synchronized animation with fading out the scrim and\nfading in the activity behind.\n\nBug: 15163546\nChange-Id: I16212b1ef9eb76f1f98734da1d14fc5b7e626937\n"
    },
    {
      "commit": "05dc18d69ad64254f2bcdd9c1e208ab54ee664fe",
      "tree": "39fdc33974a041a24161e092757318f1ca447dad",
      "parents": [
        "ae706066e1a9aa25c7d57619c0bf8ba24815d3d8",
        "2ee3c1e189819cc6efb4d7de24f1438bdb824087"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 30 23:47:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 23:47:00 2014 +0000"
      },
      "message": "Merge \"Per-app media directories on external storage.\" into lmp-preview-dev"
    },
    {
      "commit": "2ee3c1e189819cc6efb4d7de24f1438bdb824087",
      "tree": "720b998ef3649c638848bfad692689dbabef4a7f",
      "parents": [
        "b2f4bc8727f1df9d88f56a15c08cbf2cb8e2993c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 30 15:38:35 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 30 16:26:45 2014 -0700"
      },
      "message": "Per-app media directories on external storage.\n\nThis change defines per-app directories on external storage that\nwill be scanned and included in MediaStore.  This gives apps a way\nto write content to secondary shared storage in a way that can\neasily be surfaced to other apps.\n\nBug: 14382377\nChange-Id: I4cb367c870509e76f0c2c598f01e2f699780030a\n"
    },
    {
      "commit": "b69ffd4dc2c8fa85e0064151141ebeee90de471e",
      "tree": "da787f506e0ac8a23a268f199096cb27e87c4f8e",
      "parents": [
        "283c907a6a84c5d9ffe38d3468e76131e6917105"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri May 30 14:57:59 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri May 30 15:47:58 2014 -0700"
      },
      "message": "Minimum work to make volume handling work with sessions\n\nThis is the minimum change to make adjusting volume work with\nMediaSessions. This only affects adjusting the volume and adjusting\nthe volume with a suggested stream. Adjusting a specific stream or\nsetting a specific stream will still use the same code.\n\nThis does not fix existing remote volume handling in RCC, which\nwill require a separate change to MediaController.\n\nChange-Id: I5b957ff4bece1ee11e2364e1f216e1c08343c983\n"
    },
    {
      "commit": "283c907a6a84c5d9ffe38d3468e76131e6917105",
      "tree": "acdfdbf13f96f2bce65fa4618e59b630a910061e",
      "parents": [
        "3da92d6df15fcbf9dbde7e3f58f778ab28abaa99",
        "c47fa84b0a6bda48c38ba8822481ce613bafd019"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri May 30 22:18:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 22:18:54 2014 +0000"
      },
      "message": "Merge changes I16ad392e,Ie26a7d01 into lmp-preview-dev\n\n* changes:\n  Refactor transport controls APIs\n  API changes to sessions\n"
    },
    {
      "commit": "99f963ea04d7a86219ece00c356f3f6bce33b6d6",
      "tree": "b91873408609e6d8f4704879b4bd7f7c21b4d316",
      "parents": [
        "4f0e39a929f2043c46ada9f34b23654616f93227"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed May 28 16:52:42 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri May 30 16:16:23 2014 -0400"
      },
      "message": "Add people signals to Zen mode.\n\nDepends-On: I51fcf689ddbee7715e3387b865f18a715887c943\nChange-Id: I7c91dec1afeb54505426c4da59ec4d072a60c240\n"
    },
    {
      "commit": "4f0e39a929f2043c46ada9f34b23654616f93227",
      "tree": "150088db28725a782460396fc240c9a9e9ad67a4",
      "parents": [
        "da44532b615b1a965c94cc43d68eca92fd2ef79d",
        "333a61c3a5a83fe9c50ebeb5c947317f61385b7b"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri May 30 20:15:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 20:15:38 2014 +0000"
      },
      "message": "Merge \"Track Zen Mode status in the NotificationRecord\" into lmp-preview-dev"
    },
    {
      "commit": "333a61c3a5a83fe9c50ebeb5c947317f61385b7b",
      "tree": "bbac1a9f9e5bcaf742116ee53c47bbf931e88b12",
      "parents": [
        "5c0727ff2debd2ce0b92bf264524480009a36935"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed May 28 16:40:57 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri May 30 16:09:51 2014 -0400"
      },
      "message": "Track Zen Mode status in the NotificationRecord\n\nThis requires the record to be present in makeRankingUpdateForListener,\nhowever, if the ranking object is created before the post to the handler,\nthen no cloning is necessary.\n\nDepends-On: I907a1ff28123219db1c08889d723ad1b70b191ab\nChange-Id: I51fcf689ddbee7715e3387b865f18a715887c943\n"
    },
    {
      "commit": "515350a5e2b3fcac79f4ecfbd3d4d7485c04eff5",
      "tree": "4ab8518c48cdd7b71c4dddcfb36d9b726885aed2",
      "parents": [
        "eec8f0cbbba8cfe3de29fef4b2362af3817ea575"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 22 16:30:48 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri May 30 18:21:34 2014 +0000"
      },
      "message": "Support legacy routes added by apps via ensureRouteToHost().\n\nChange-Id: I0ee1ca89fdc859d75a89021ca8c1902811b1e4a9\n(cherry picked from commit fb17b32550de624b7f476b70b7a2fc77f31dde7d)\n"
    },
    {
      "commit": "20d94749043d0851f1da10c7749fd7eb13a35081",
      "tree": "fe14d454373789e1b28d52811b65aaaa572688e2",
      "parents": [
        "5286624b648c7d7cc4c15813f9921c1d0b2e46cc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 29 18:35:45 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 30 10:06:16 2014 -0700"
      },
      "message": "More work on voice interaction visuals.\n\nThere is now a special theme for voice interaction activities\nto use, so they can be a panel that is better intergrated with\nthe rest of the voice interaction experience.  This is still\nnot completely working, I have some hacks in the demo app to\nget it right; I\u0027ll fix that in a future change.\n\nAlso improve VoiceInteractor to be retained across activity\ninstances, for things like rotation.\n\nAnd bump up the number of concurrent broadcasts that are allowed\non non-svelte devices, since they can handle more and this makes\nthe boot experience better when dispatching BOOT_COMPLETED.\n\nChange-Id: Ie86b5fd09b928da20d645ec2200577dee3e6889d\n"
    },
    {
      "commit": "832860fb9f6b3a7188a6af2d5d67806593595800",
      "tree": "1e4c22742eb689b0f0cc151dda761fd21581808c",
      "parents": [
        "2070252f988e4daac08acf88ea6865138d899f75"
      ],
      "author": {
        "name": "Youngsang Cho",
        "email": "youngsang@google.com",
        "time": "Wed May 21 20:54:03 2014 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu May 29 21:04:52 2014 -0700"
      },
      "message": "Add a path for generic event from a session to an application in Tv Input Framework.\n\nPlus, Video size changed event is also added.\n\nBug: 14126559\nChange-Id: I04c553481fbaf8d92adbcc34f3c9d26acc87b361\n"
    },
    {
      "commit": "4f8a92bd20be374811b2cab855f390221893279a",
      "tree": "a102cdcddf42fae1e062337c0ac48d3fb80ef8df",
      "parents": [
        "432fe9829744983576f0afabb4b73165f9695a8f",
        "58e66d69f9f239a444a90c7ff5eae32557fe350c"
      ],
      "author": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Fri May 30 01:41:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 01:41:18 2014 +0000"
      },
      "message": "Merge \"Only allow 1 Stack on Leanback-only devices\" into lmp-preview-dev"
    },
    {
      "commit": "3d5e5c7b266863953ece3d77ab2c334e9a9c4ebc",
      "tree": "d207a9816973cb82b776eccdf045289185eb571c",
      "parents": [
        "073c2e4ad1437bcb97b5290ad31ab40ef309716b",
        "9b9244b6941110ea2d940d9fc8eed0cdff96a016"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu May 29 21:17:32 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 21:17:32 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE Implementation of TaskManager reschedule/cancel\" into lmp-preview-dev"
    },
    {
      "commit": "073c2e4ad1437bcb97b5290ad31ab40ef309716b",
      "tree": "13ac61ad98215dc05a9761c7bf2f6391854bf70f",
      "parents": [
        "8d1de048d7612ec86ba01abc9f8b5eb7d2a2d6e2",
        "24cf152483c03dc446875c8d6440348174317bc5"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 29 21:10:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 21:10:15 2014 +0000"
      },
      "message": "Merge \"Updating task view style, fixing performance on enter-recents animation.\" into lmp-preview-dev"
    },
    {
      "commit": "24cf152483c03dc446875c8d6440348174317bc5",
      "tree": "72f76220a9b7fbd38c029dc0f8c671e0b225156b",
      "parents": [
        "fb816fc701770f95f7d1ebc0ab5ee19584798b74"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 29 12:03:33 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 29 12:30:26 2014 -0700"
      },
      "message": "Updating task view style, fixing performance on enter-recents animation.\n\nChange-Id: I42ca9296170a93a14184ae8963abbd3f0494e503\n"
    },
    {
      "commit": "79fa4630bbca7c6c251eea99fe8997e4b45becee",
      "tree": "c65f1dafd3657cb016eb7fc0ebf78a46eb3a1393",
      "parents": [
        "eb61eb786af1db1f1cf6c988d78d1ddc3acb4a16"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue May 27 16:49:09 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu May 29 11:28:48 2014 -0700"
      },
      "message": "API changes to sessions\n\nChanges requested by API Council review. A second CL will refactor\nTransportController and TransportPerformer based on feedback.\n\nChange-Id: Ie26a7d01d7021232a66c2edf1eb58120437fdfde\n"
    },
    {
      "commit": "71ac80c46a1b094ad951e59c24791d9e9ef769bf",
      "tree": "7504cea75bbeb9c3a7b023e978031b9ccd5eee91",
      "parents": [
        "219d7a50fb7a269fe54dd9d70587c269d217336f",
        "b9a6c8ad99c7885dccc23223068c0a551f350cd5"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:51:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 16:51:24 2014 +0000"
      },
      "message": "Merge \"Revert \"Modify task navigation to return to recent tasks.\" DO NOT MERGE\" into lmp-preview-dev"
    },
    {
      "commit": "b9a6c8ad99c7885dccc23223068c0a551f350cd5",
      "tree": "a06ea1745dfedcf8b118cee132c02a8b60cec6d1",
      "parents": [
        "e67a784eb2c914c04c62ea5dfa1e3751df5582cc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:50:59 2014 +0000"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:50:59 2014 +0000"
      },
      "message": "Revert \"Modify task navigation to return to recent tasks.\" DO NOT MERGE\n\nThis reverts commit 1a4e211e03f1f795d935058e27356a0e8bc5df7c.\n\nChange-Id: Ia691b93347c7eb2395933e5a5ba385ea94e08d6f\n"
    },
    {
      "commit": "219d7a50fb7a269fe54dd9d70587c269d217336f",
      "tree": "89515f6d9a52343ae6eb991d625d447c688c79c2",
      "parents": [
        "575510c48f3cad55a4751db89dc44e330b0cc9df",
        "0d674623facfbd3e9c520d2be4ed98977b92a1a2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:45:35 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 16:45:36 2014 +0000"
      },
      "message": "Merge \"Add methods to coordinate unlock animation.\" into lmp-preview-dev"
    },
    {
      "commit": "bce0106c417db7dd04daec9dc4cef9e7cf30446d",
      "tree": "7181150dfe4c884ae173f7b48b8dfc31a7bf61b2",
      "parents": [
        "7ee26070eaa4a8b1cde8e265c7136fba7e79a172"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu May 29 14:05:41 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu May 29 21:36:07 2014 +0900"
      },
      "message": "Don\u0027t break things if a network goes back to CONNECTED.\n\nCurrently, if a network goes from CONNECTED to some other \"live\"\nstate (e.g., CONNECTING, because it\u0027s VERIFYING_POOR_LINK) and\nback, ConnectivityService treats it as if a new network had\nconnected.  This causes it to attempt to create the network\n(which fails, since a network with that netid already exists), to\ntrigger verification, and if the verification succeeds, to tear\ndown the network because the request it\u0027s satisfying is already\nsatisfied by the network itself.\n\nInstead, if creating the network fails, assume it\u0027s because the\nnetwork had already been created, and bail out.\n\nAlso, when validation completes, ignore NetworkRequests that were\nbeing served by the same NetworkAgent as before.\n\nBug: 15244052\n\n(cherry picked from commit cfff026ec47afc7e31f60f80e3deea7f4e2f9be5)\n\nChange-Id: I52c2220e8f1d98fca765880be3040593e92722ed\n"
    },
    {
      "commit": "9b9244b6941110ea2d940d9fc8eed0cdff96a016",
      "tree": "264c2df2c71b23437e66bf829e61b9ff46b2aa72",
      "parents": [
        "3326a8782f7aae58b76b96d52d7756787ab401d0"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed May 14 11:06:04 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu May 29 00:45:02 2014 +0000"
      },
      "message": "DO NOT MERGE Implementation of TaskManager reschedule/cancel\n\nIssues here:\n\"Reschedule\" of an idle-mode task is not well-defined. In the\nAPI I throw an error if you try to set a back-off policy on\nan idle mode task.\nImplementation-wise, i add a delay for a reschedule request of an\nidle mode task. This means that if the phone\u0027s still in idle mode\nafter the delay they app will get a call back, but otherwise it\u0027ll\nhave to wait til the next one.\n\nImplemented all API functions"
    },
    {
      "commit": "a923758d80ad50ac79a22074cf6e4c9463bb2b0b",
      "tree": "ba990ca10516af629e5406094ccf8f8521c2d1c3",
      "parents": [
        "3326a8782f7aae58b76b96d52d7756787ab401d0",
        "e30e02f5d9a9141c9ee70c712d4f9d52c88ea969"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 29 00:18:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 00:18:25 2014 +0000"
      },
      "message": "Merge \"Add system layer for voice interaction services.\" into lmp-preview-dev"
    },
    {
      "commit": "e30e02f5d9a9141c9ee70c712d4f9d52c88ea969",
      "tree": "590f001931e5d466298f917f2d75f0b373de3154",
      "parents": [
        "bbd8e6ffc600e078984cb68acf51c660c5c9fc81"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 27 18:24:45 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 28 17:16:51 2014 -0700"
      },
      "message": "Add system layer for voice interaction services.\n\nNew window layer that voice interaction service windows\ngo in to.  Includes a new voice-specific content rectangle\nthat voice activities are placed in to.\n\nAdd specific animations for this layer, sliding down from\nthe top (though this can be customized by the voice interaction\nservice).\n\nAlso add the concept of activities running for voice interaction\nservices for purposes of adjusting the animation used for them,\nagain sliding from the top, but not (yet?) customizable by the\nvoice interaction service.\n\nChange-Id: Ic9e0e8c843c2e2972d6abb4087dce0019326155d\n"
    },
    {
      "commit": "56f2daab14a7b0161e36c86bdc61cd628a847245",
      "tree": "76a01a2d417f7a4294dbadc2ca63064e3d0903c4",
      "parents": [
        "c1073c3376763a68d4acff68be745227ee63bef9",
        "f889ed11d21bfd3010f8e4e192a0532b7f6f7994"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 28 23:37:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 23:37:30 2014 +0000"
      },
      "message": "Merge \"Don\u0027t crash on boot\" into lmp-preview-dev"
    },
    {
      "commit": "f889ed11d21bfd3010f8e4e192a0532b7f6f7994",
      "tree": "e87ad7edac25126ad813b0d0b1879a65c1801036",
      "parents": [
        "b9a65de1f79d92326abcccc295c18f24afb83053"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 28 16:31:58 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 28 16:31:58 2014 -0700"
      },
      "message": "Don\u0027t crash on boot\n\n...when removing dangling preferred-activity entries.\n\nBug 15310848\n\nChange-Id: Ibe9d82a06f8c608b866a2c3c6b286da2ededacca\n"
    },
    {
      "commit": "3c1ff826e0abdffdd76129bf974abb96444dade8",
      "tree": "89fac1cb9092ca7514c4a0ce207fa57341366210",
      "parents": [
        "b9a65de1f79d92326abcccc295c18f24afb83053"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 14:31:47 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 14:31:47 2014 -0700"
      },
      "message": "Move to dalvik.vm.lib.2 to force default to libart\n\nBug: 14298175\nChange-Id: I8afa91bddfb6fec6b61c39286a16594eb947830e\n"
    },
    {
      "commit": "560ce61c598d9912c4adbd9c602f1a870fb478f4",
      "tree": "736d2cab5df887591bb1fcfda6d08a2487fcfcef",
      "parents": [
        "63ded513513ab3d8fd1707a8ea59368dd2edcb20",
        "fa380e982e41b0dcbbcf2201803abf26808016b5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 28 19:03:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 19:03:03 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Run the task manager service at startup\" into lmp-preview-dev"
    },
    {
      "commit": "19a81a616f3b70510e557caaeaf3cae4ec1356ad",
      "tree": "994767313eef51e220c6ce3cfc710b6c3e1b4494",
      "parents": [
        "d3ee3ca90cc5ca073dfc6aa401f5dcaa6e4e34fd",
        "5d423844f253951a1d79dabe638aba81a21207bc"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Wed May 28 12:10:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 12:10:34 2014 +0000"
      },
      "message": "Merge \"NoMan: Don\u0027t unbind system listeners\" into lmp-preview-dev"
    },
    {
      "commit": "58e66d69f9f239a444a90c7ff5eae32557fe350c",
      "tree": "c950654b1255cc5ed236c7b478ad1e9126ba4e8d",
      "parents": [
        "bbd8e6ffc600e078984cb68acf51c660c5c9fc81"
      ],
      "author": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Tue May 27 20:00:27 2014 -0700"
      },
      "committer": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Tue May 27 20:55:11 2014 -0700"
      },
      "message": "Only allow 1 Stack on Leanback-only devices\n\n   - For Leanback only devices we will force all activities to\n   live in the same app stack. This is a design decision for the\n   shy/gregarious changes we are planning to implement for\n   leanback devices.\n\nChange-Id: I5e65f9b079830a9485b5a136700993755c3f555f\n"
    },
    {
      "commit": "c82e7d30e34ff7cc273edf1ea8ddd11b713fec5b",
      "tree": "bb4f97a74882ebf69959c2aec6ff8f6a76b55971",
      "parents": [
        "a5c7e0f80f6a0ea59e29df01c886376da56ebbbc"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed May 28 01:46:05 2014 +0000"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed May 28 01:46:05 2014 +0000"
      },
      "message": "Revert \"Only allow 1 Stack on Leanback-only devices\"\n\nThis is making a HH device (and probably others) in a reboot loop\n\nThis reverts commit 0cac71e9bdee1e9e6b2faafec0f9f894effbcb67.\n\n\u003d\u003d\u003d\n\nSee:\n\nW/dalvikvm( 2320): threadid\u003d1: thread exiting with uncaught exception (group\u003d0x952d3f28)\nE/AndroidRuntime( 2320): *** FATAL EXCEPTION IN SYSTEM PROCESS: main\nE/AndroidRuntime( 2320): java.lang.RuntimeException: Failed to create service com.android.server.am.ActivityManagerService$Lifecycle: service constructor threw an exception\nE/AndroidRuntime( 2320): \tat com.android.server.SystemServiceManager.startService(SystemServiceManager.java:89)\nE/AndroidRuntime( 2320): \tat com.android.server.SystemServer.startBootstrapServices(SystemServer.java:304)\nE/AndroidRuntime( 2320): \tat com.android.server.SystemServer.run(SystemServer.java:244)\nE/AndroidRuntime( 2320): \tat com.android.server.SystemServer.main(SystemServer.java:161)\nE/AndroidRuntime( 2320): \tat java.lang.reflect.Method.invokeNative(Native Method)\nE/AndroidRuntime( 2320): \tat java.lang.reflect.Method.invoke(Method.java:515)\nE/AndroidRuntime( 2320): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)\nE/AndroidRuntime( 2320): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)\nE/AndroidRuntime( 2320): \tat dalvik.system.NativeStart.main(Native Method)\nE/AndroidRuntime( 2320): Caused by: java.lang.reflect.InvocationTargetException\nE/AndroidRuntime( 2320): \tat java.lang.reflect.Constructor.constructNative(Native Method)\nE/AndroidRuntime( 2320): \tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\nE/AndroidRuntime( 2320): \tat com.android.server.SystemServiceManager.startService(SystemServiceManager.java:78)\nE/AndroidRuntime( 2320): \t... 8 more\nE/AndroidRuntime( 2320): Caused by: java.lang.NullPointerException\nE/AndroidRuntime( 2320): \tat com.android.server.am.ActivityStackSupervisor.isLeanbackOnlyDevice(ActivityStackSupervisor.java:3508)\nE/AndroidRuntime( 2320): \tat com.android.server.am.ActivityStackSupervisor.\u003cinit\u003e(ActivityStackSupervisor.java:220)\nE/AndroidRuntime( 2320): \tat com.android.server.am.ActivityManagerService.\u003cinit\u003e(ActivityManagerService.java:2145)\nE/AndroidRuntime( 2320): \tat com.android.server.am.ActivityManagerService$Lifecycle.\u003cinit\u003e(ActivityManagerService.java:2073)\nE/AndroidRuntime( 2320): \t... 11 more\nE/AndroidRuntime( 2320): Error reporting crash\nE/AndroidRuntime( 2320): java.lang.NullPointerException\nE/AndroidRuntime( 2320): \tat com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:89)\nE/AndroidRuntime( 2320): \tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\nE/AndroidRuntime( 2320): \tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\nE/AndroidRuntime( 2320): \tat dalvik.system.NativeStart.main(Native Method)\nI/Process ( 2320): Sending signal. PID: 2320 SIG: 9\nI/ServiceManager(  174): service \u0027power\u0027 died\nI/ServiceManager(  174): service \u0027sensorservice\u0027 died\n\nChange-Id: Ib90ae4dff6542d67f5827b100a3ab6158ce88ae2\n"
    },
    {
      "commit": "a5c7e0f80f6a0ea59e29df01c886376da56ebbbc",
      "tree": "427c9ffa099517509378d6ff07da5904e7d97956",
      "parents": [
        "26690339e9c9a134eb4607b3381947673b1dacad"
      ],
      "author": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Tue May 27 14:59:31 2014 -0700"
      },
      "committer": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Tue May 27 16:51:35 2014 -0700"
      },
      "message": "Only allow 1 Stack on Leanback-only devices\n\n   - For Leanback only devices we will force all activities to\n   live in the same app stack. This is a design decision for the\n   shy/gregarious changes we are planning to implement for\n   leanback devices.\n\nChange-Id: I201f56541ba22356e9598f09419ad41e588c74dc\n"
    },
    {
      "commit": "26690339e9c9a134eb4607b3381947673b1dacad",
      "tree": "bb4f97a74882ebf69959c2aec6ff8f6a76b55971",
      "parents": [
        "dab839e0478559781fe703c83f4e8a43d34960d2",
        "7d59b4f981e24a4a446522e9b8d3d6a7115c1459"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue May 27 23:46:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 23:46:50 2014 +0000"
      },
      "message": "Merge \"Add and improve logged TrustAgent connection events\" into lmp-preview-dev"
    },
    {
      "commit": "0d674623facfbd3e9c520d2be4ed98977b92a1a2",
      "tree": "ab6c7fd7cb671b0e32da414fb0c640af20403c71",
      "parents": [
        "41b170d6066cb52bb3e396c608b01f2981b95e5d"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed May 21 01:34:15 2014 +0200"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 27 16:45:57 2014 -0700"
      },
      "message": "Add methods to coordinate unlock animation.\n\nIntroduce IWindowManager.keyguardGoingAway to notify that Keyguard\nwants to dismiss it self. This method starts the state machine in\nWindowAnimator which animates in the activity behind the keyguard.\nAnimating out the keyguard is done by the StatusBar/Keyguard\nsoftware when it receives the startKeyguardExitAnimation() callback.\n\nBug: 14118756\n\nChange-Id: Id3b8f41189410bad808b4892fbec74245e59efce\n"
    },
    {
      "commit": "afa05c0b43cbc065181d5c2d6ee368a08bb00c3b",
      "tree": "ab4c243bf6731f87c3de08e827bad1e5f1b9a929",
      "parents": [
        "6ecbe3f2d6a9d0a2f69473cc0496fa6c63c4f7f8"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 21 20:04:36 2014 -0700"
      },
      "committer": {
        "name": "Dave Langemak",
        "email": "dlangemak@google.com",
        "time": "Tue May 27 20:28:50 2014 +0000"
      },
      "message": "Move dis/enable of mobile data to Telephony\n\nConnectivityService doesn\u0027t do this anymore.\n\nbug:15077247\nChange-Id: I3208c91b2c0369b594987f39ca29da7478435513\n(cherry picked from commit 53013c87496980b534e447e717a32698fbd4bca0)\n"
    },
    {
      "commit": "8804ce96b1ef3aa260076091e77abcce0b1ea1d9",
      "tree": "d4a987423c2b4647b23e4ba73ef558fd1b2d8c56",
      "parents": [
        "2ed67e6de7b2aefce82b2b10fc637dbc4e72773d",
        "9693d9534342c9785877a9f98ec5aff6fd9ac496"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue May 27 19:28:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 19:28:51 2014 +0000"
      },
      "message": "Merge \"Updating task description whenever we create a RecentTaskInfo. (Bug. 15195617)\" into lmp-preview-dev"
    },
    {
      "commit": "2ed67e6de7b2aefce82b2b10fc637dbc4e72773d",
      "tree": "af1b3ebdf8494dcefb03a5a35863992ad387eb93",
      "parents": [
        "fbd168331c0d6ce9f22fe3e606dc50a9fe3b04dc",
        "fb69da323b97ae4712054d37fb2f7d54cddb7dbd"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue May 27 19:15:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 19:15:25 2014 +0000"
      },
      "message": "Merge \"Reduce logspam by catching unexpected types ourselves.\" into lmp-preview-dev"
    },
    {
      "commit": "9693d9534342c9785877a9f98ec5aff6fd9ac496",
      "tree": "d78fc6340d589983b7b863ef446723077f80994c",
      "parents": [
        "d30241541c3adcb126bb263ad8596e7902a6b5ae"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue May 27 11:09:22 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue May 27 11:09:22 2014 -0700"
      },
      "message": "Updating task description whenever we create a RecentTaskInfo. (Bug. 15195617)\n\nChange-Id: I371ee43296a983782eaed2e661b1febc71c86433\n"
    },
    {
      "commit": "5859fc1096274a00f388a8ffc11b8919e9cb8dae",
      "tree": "24789a5aa8281bbb106f8bc18f7b4d1c75721990",
      "parents": [
        "150c07993fddf7fcfd24849148f89aa1b4bb6e87",
        "2eb4f9c377c01b5644c00f4b0cca2e655e107998"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue May 27 18:04:35 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 18:04:36 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE\" into lmp-preview-dev"
    },
    {
      "commit": "7d59b4f981e24a4a446522e9b8d3d6a7115c1459",
      "tree": "5df272233ce760d6bad71970a88552fc558ed768",
      "parents": [
        "bcbb75ac9d73a92632e97ab990a913ede755b176"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue May 27 20:01:31 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue May 27 20:01:45 2014 +0200"
      },
      "message": "Add and improve logged TrustAgent connection events\n\nAdds events for when a TrustAgentService gets connected\nor is stopped. Also explicitly revokes trust when a\ntrust agent gets disconnected, such that it shows up in\ndumpsys.\n\nBug: 15281644\nChange-Id: I5875a34da923345683279c1f755d43454ff6318d\n"
    },
    {
      "commit": "d68200c66b775ae991e9217dd021ef3713f4cc8e",
      "tree": "ea08a6b587933c3070587b7d5871cdfa555e59d8",
      "parents": [
        "e39752144960e36aba3db8d3c5399bce7f374011",
        "711259a9e4ce842265874f76ee391e1734dd9b5b"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue May 27 17:41:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 17:41:34 2014 +0000"
      },
      "message": "Merge \"NoMan: Disable SQLite log DO NOT MERGE\" into lmp-preview-dev"
    },
    {
      "commit": "e39752144960e36aba3db8d3c5399bce7f374011",
      "tree": "04321aba4c94b1ec9425a3f71c64bfb61cdb8db3",
      "parents": [
        "8f4f2ff5cbd9cf5733437afeb54f8a2453d9e616",
        "05e288497258493d11537194439f4ec100175019"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue May 27 17:41:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 17:41:03 2014 +0000"
      },
      "message": "Merge \"NoMan: Allow disabling SQLiteLog.\" into lmp-preview-dev"
    },
    {
      "commit": "2eb4f9c377c01b5644c00f4b0cca2e655e107998",
      "tree": "a8fdea0ba10ce39f1de947c79f0554cd15e113b7",
      "parents": [
        "8f4f2ff5cbd9cf5733437afeb54f8a2453d9e616"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 22 11:22:41 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue May 27 17:07:52 2014 +0000"
      },
      "message": "DO NOT MERGE\n\nRemoving unnecessary public values. (Bug 14995844)\n(cherry picked from commit aa327fc2ce428f939885e1172578ff1dc975214c)\n\nChange-Id: I98672d0ed3120c15bf31ce7a21ab604cfe66273d\n"
    },
    {
      "commit": "8f4f2ff5cbd9cf5733437afeb54f8a2453d9e616",
      "tree": "a2e8a182ed9a9abe00f2cdc6fbbf590a356a3127",
      "parents": [
        "c752919c7cd29b497918618cc9ebf56c18995a76",
        "376543bc5f1f8a4465f6f0f9c9b45f96f37b3d06"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue May 27 17:07:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 17:07:10 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE \" into lmp-preview-dev"
    },
    {
      "commit": "c752919c7cd29b497918618cc9ebf56c18995a76",
      "tree": "72d60b45d55de4fac3ae0de59f9288d8494b2afe",
      "parents": [
        "5d0045835b0bfd456b9400be1cacdc8cb16d6cc7",
        "b539b3aafb2b0e55fc9578344eff35256fd5a94e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 27 16:37:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 16:37:45 2014 +0000"
      },
      "message": "Merge \"Do not start tasks on ActivityViews unless explicit. DO NOT MERGE\" into lmp-preview-dev"
    },
    {
      "commit": "b539b3aafb2b0e55fc9578344eff35256fd5a94e",
      "tree": "c216982752718b2cfc589e9d90b604085f1ed322",
      "parents": [
        "41b170d6066cb52bb3e396c608b01f2981b95e5d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon May 26 15:06:32 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 27 09:22:55 2014 -0700"
      },
      "message": "Do not start tasks on ActivityViews unless explicit. DO NOT MERGE\n\nNew tasks were being started on ActivityViews because they\nmatched packages. This fix enforces a rule that new tasks\ncan only be started on ActivityViews if they are explicitly\ntargeted for that ActivityView.\n\nFixes bug 15162447.\n\nChange-Id: I9ccb72171b5cda0897a0b9ffe4cbebfbb0d92c2c\n\nConflicts:\n\tservices/core/java/com/android/server/am/ActivityStackSupervisor.java\n"
    },
    {
      "commit": "5d0045835b0bfd456b9400be1cacdc8cb16d6cc7",
      "tree": "c98751658350b40d7834369e9ddf02cc6c3f2e67",
      "parents": [
        "427a15a0f0d3d2a244348c2d572a44bca3035fd9",
        "e0129b3c672f5555deb75366b1a7159f41737874"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 27 16:13:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 16:13:28 2014 +0000"
      },
      "message": "Merge \"Add more error checking to xml restore\" into lmp-preview-dev"
    },
    {
      "commit": "711259a9e4ce842265874f76ee391e1734dd9b5b",
      "tree": "3c7fa523872f4848c89d2ba5ac3d96e3be0cd1ca",
      "parents": [
        "05e288497258493d11537194439f4ec100175019"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue May 27 16:56:47 2014 +0200"
      },
      "committer": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue May 27 16:56:47 2014 +0200"
      },
      "message": "NoMan: Disable SQLite log DO NOT MERGE\n\nBug: 15279504\nChange-Id: I76f9283675537607729ed450471ef4b1d9ec3898\n"
    },
    {
      "commit": "05e288497258493d11537194439f4ec100175019",
      "tree": "8c44f5eb591aa50968ef867563c29cb0b9b2a8ec",
      "parents": [
        "c22dbb69194c8e8fe2a32326d1f37a738cad0904"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue May 27 16:55:57 2014 +0200"
      },
      "committer": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue May 27 16:55:57 2014 +0200"
      },
      "message": "NoMan: Allow disabling SQLiteLog.\n\nBug: 15279504\nChange-Id: I561391a312f88a7d5e11b180984f18bb1d3dcda0\n"
    },
    {
      "commit": "b45a730efb75402faf2bfb2fdf3f26ceaab6148c",
      "tree": "75a3713e5e8d16927e6553cd012286e2971f18a7",
      "parents": [
        "8aa29921df684f2a991d12aa360d80ced7dc7b48",
        "1f74bad9acd816cd0974ca7d8a9eafe7f671ee57"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 27 14:24:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 14:24:04 2014 +0000"
      },
      "message": "Merge changes I88865c02,I34cc1310 into lmp-preview-dev\n\n* changes:\n  Check for null DO NOT MERGE\n  Improve DocCentric documentation. DO NOT MERGE\n"
    }
  ],
  "next": "8aa29921df684f2a991d12aa360d80ced7dc7b48"
}
