)]}'
{
  "log": [
    {
      "commit": "abb81817eacafdfd9a03896f472ea25d4a987d3f",
      "tree": "80544c3cd6948b6a1e63bc532f1af4dd026a1fc1",
      "parents": [
        "8df37130da5e1beeff5e07d3ff8705dbb72af19d",
        "674bc2fca5146e371f4d506b361967e72ef1c229"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu May 01 17:49:34 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 17:49:34 2014 +0000"
      },
      "message": "am a54edd7e: Merge \"TaskManager API first pass.\"\n\n* commit \u0027a54edd7eb31e641630d594de37b3ee9ce6ddfa61\u0027:\n  TaskManager API first pass.\n"
    },
    {
      "commit": "674bc2fca5146e371f4d506b361967e72ef1c229",
      "tree": "5334157fbc12781c7a474468e100f0d07601b2e3",
      "parents": [
        "61bc9f37cc0e0921d2e205dccdd45df36c353a9c",
        "6e31c5c82bc5c9bddf9c01d254067ea5bebbd96b"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu May 01 17:45:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 17:45:34 2014 +0000"
      },
      "message": "Merge \"TaskManager API first pass.\""
    },
    {
      "commit": "99a58b0e3a5d32932a6c8198fc7dba07ba58e761",
      "tree": "fabfb4bb824356630003c70a7f2316188a362e49",
      "parents": [
        "cbc13e3fb1584d606ee8ba9faf31c7a6e86824d6",
        "fb875cb028aba3e8b46de3c75dcbccfa63b4fef5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 28 20:37:33 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 28 20:37:33 2014 +0000"
      },
      "message": "am c60f1877: Merge \"Rework some of the voice interaction APIs.\"\n\n* commit \u0027c60f1877896e795a6add525ee36770e3aa77dc29\u0027:\n  Rework some of the voice interaction APIs.\n"
    },
    {
      "commit": "18f0d357f9693fe787a3e3777d8fdf01357a6e3f",
      "tree": "87ffa17a98fa81355a37e25b2c7fc649ffc4e9be",
      "parents": [
        "01c70711d5e4f1c3405bcd169be70605e92166f2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 25 17:06:18 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 28 10:54:15 2014 -0700"
      },
      "message": "Rework some of the voice interaction APIs.\n\nOn the app side, requests are now composed by subclassing\nfrom various types of Request objects.\n\nOn the service side, starting a voice interaction session\ninvolves starting another service that will then manage the\nsession.  This leads the service design much more to what\nwe want, where the long-running main service is very tiny\nand all the heavy-weight transient session work is elsewhere\nin another process.\n\nChange-Id: I46c074c6fe27b6c1cf2583c6d216aed1de2f1143\n"
    },
    {
      "commit": "4210a3091c3226246df14aafd72b68962fed7c78",
      "tree": "6ff44da4eb83d0ecd5bcceb6766a3da9a74575a2",
      "parents": [
        "4395fa24f8b2e3542bf9381107a165cf9a0e5400",
        "e77bb36d48b6b8b5c3bb6a1195aca469bb237919"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sun Apr 27 16:04:22 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Apr 27 16:04:22 2014 +0000"
      },
      "message": "am c1644c59: Wire up condition providers to zen mode exit triggers.\n\n* commit \u0027c1644c590bbc24955ecd367cb4c8e368c24fe2e5\u0027:\n  Wire up condition providers to zen mode exit triggers.\n"
    },
    {
      "commit": "e77bb36d48b6b8b5c3bb6a1195aca469bb237919",
      "tree": "29f877996112bebd253e25a18a2b731a086abfb3",
      "parents": [
        "31dc634be3610b062fbcc4afa02607ce8f4125f5"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Apr 26 10:24:59 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sun Apr 27 11:36:32 2014 -0400"
      },
      "message": "Wire up condition providers to zen mode exit triggers.\n\nBug:13743109\nChange-Id: I4e45d7050d1f9aaa379f46379a3203e61e216a3d\n"
    },
    {
      "commit": "ff1005a6f5f3da396da95d1086c03efba33ab651",
      "tree": "7fb381a0b721c30369f177d60a721909df441182",
      "parents": [
        "35e990ce3279af92f92474c7154aa53a4a1bdea4",
        "b22aabbbd2801db0be526a64badf2efa208f19f1"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 25 18:21:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 25 18:21:40 2014 +0000"
      },
      "message": "am 7745fb9e: Merge \"Introduce condition provider services.\"\n\n* commit \u00277745fb9e95b6938591a46ffcaace8db02c93962f\u0027:\n  Introduce condition provider services.\n"
    },
    {
      "commit": "b22aabbbd2801db0be526a64badf2efa208f19f1",
      "tree": "66448c85315567c82ac93e472b03b30fdd192d56",
      "parents": [
        "2be1f8c3f4d338c7b7c73bb642bc410ef27c8ee4",
        "7340fc8665ae3f9f1978f42aa0e5e1da85036158"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 25 18:19:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 25 18:19:06 2014 +0000"
      },
      "message": "Merge \"Introduce condition provider services.\""
    },
    {
      "commit": "1b27c34fb6d6dce4e73f513a428d7119f3049b1a",
      "tree": "1c3fef4ef4411bb94e79cc1b63f4736f914dda3d",
      "parents": [
        "0723b8ebb25b0a3f7e8fff7cecc2683f8f6c507f",
        "522ff52f88a0ddac3221fc32defd2f6cccaf04c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 25 17:05:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 25 17:05:58 2014 +0000"
      },
      "message": "am ed407e04: Merge \"Initial implementation of new voice interaction API.\"\n\n* commit \u0027ed407e046e63ca1d22a1d9206e2ad558bf821525\u0027:\n  Initial implementation of new voice interaction API.\n"
    },
    {
      "commit": "7340fc8665ae3f9f1978f42aa0e5e1da85036158",
      "tree": "7dca3cc6cf2a23d872dbe1cde1e10ec7a3d84899",
      "parents": [
        "07f0b8ee730be00a2a4bccf797bd8cb71e556546"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 24 18:50:12 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 25 12:35:31 2014 -0400"
      },
      "message": "Introduce condition provider services.\n\nAdd the condition provider interface, base class, and associated\nsystem metadata.\n\nPull out common service management code into a reusable helper,\nused by notification listeners and condition providers. The\nhelper, ManagedServices, is now completely self-contained - it\nhas no dependencies on NoMan or NoMan abstractions.\n\nBug:13743109\nChange-Id: I6856d40f0a2ead78ac9b5707568559a57e7eb009\n"
    },
    {
      "commit": "91097de49b0f683b00e26a75dbc0ac6082344137",
      "tree": "82c3185634a71233ce2e81a3645b07b1ba55f412",
      "parents": [
        "23af77a3cd1febc740d885ff03ead09837df269c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 04 18:02:06 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 24 17:48:58 2014 -0700"
      },
      "message": "Initial implementation of new voice interaction API.\n\nThis gives a basic working implementation of a persist\nrunning service that can start a voice interaction when\nit wants, with the target activity(s) able to go through\nthe protocol to interact with it.  It may even work when\nthe screen is off by putting the activity manager in the\ncorrect state to act like the screen is on.\n\nIncludes a sample app that is a voice interation service\nand also has an activity it can launch.\n\nNow that I have this initial implementation, I think I\nwant to rework some aspects of the API.\n\nChange-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9\n"
    },
    {
      "commit": "71dd3d91216ef73805b40a8ee6ea4c86c0101141",
      "tree": "bdb8a34ec7f002f2579879507cfcf8b2df215464",
      "parents": [
        "fc4ecf3e9666dbb5c9337e9ee4d4c91412bc2cfe",
        "2ca3962bc0168d360cf9567a313608347da51944"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Tue Apr 22 13:24:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 22 13:24:14 2014 +0000"
      },
      "message": "am 2ca3962b: Merge \"Initial implementation of NetworkScoreManager\\\u0027s backing service.\"\n\n* commit \u00272ca3962bc0168d360cf9567a313608347da51944\u0027:\n  Initial implementation of NetworkScoreManager\u0027s backing service.\n"
    },
    {
      "commit": "6e31c5c82bc5c9bddf9c01d254067ea5bebbd96b",
      "tree": "3dd8ddcc5ea5d9f9a42f87067ec30256601b4474",
      "parents": [
        "03fee27646564cf1b559b7f8a53d35a1db18d0bd"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Apr 11 15:49:16 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Apr 21 19:57:49 2014 -0700"
      },
      "message": "TaskManager API first pass.\n\nThis is a very barebones first pass, meant to ensure we\u0027re all on the\nsame page, and also get feedback.\n\nChange-Id: I7d5492dc5aafbe583f7c2d97ebf1444b6d2e068a\n"
    },
    {
      "commit": "6a4b220f1263d95fdefe6361c2bc87bbb04bbed0",
      "tree": "082ceb00c7d9255d3a6a129b3e66e16fee40ac3f",
      "parents": [
        "4660c9e064ebaec9ebb260c2853a8dab868ccdc2"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Wed Apr 16 17:29:40 2014 -0700"
      },
      "committer": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Mon Apr 21 16:04:05 2014 -0700"
      },
      "message": "Initial implementation of NetworkScoreManager\u0027s backing service.\n\nThis service will ultimately be responsible for propagating scores\ndown to lower-level network subsystems. For now, it just keeps scores\nin memory and exposes these for debugging purposes via \"adb shell\ndumpsys network_score\".\n\nThis change also adds provisioning of a default scorer. When\nNetworkScoreService is first initialized, it checks to see if it has\never set a default scorer; if not, it reads a package name from a\nbuild config property and attempts to set it as the default.\n\nAlso add autogenerated equals/hashCode methods to all parcelables.\n\nBug: 14111427\nBug: 13786258\nChange-Id: I02271171653d42e12acd240b73b9e23950744f6b\n"
    },
    {
      "commit": "161bec6fe4854f58d965c1a15b47bb343300ee80",
      "tree": "eab534f19bee1fbe7f4778d8ae1bf39bed62380c",
      "parents": [
        "a5ec9213f9848e3c8e904f182a8fbdb2e65aec30",
        "0a57a1112ff45507ef6361aabf42c97460405f47"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Apr 17 15:43:15 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Apr 17 15:43:15 2014 -0700"
      },
      "message": "resolved conflicts for merge of 0a57a111 to master-nova\n\nChange-Id: Id9fad51341239051203a219d58213b9438effc50\n"
    },
    {
      "commit": "07c7077c54717dbbf2c401ea32d00fa6df6d77c6",
      "tree": "49f9e8019caa93c702c6d2d8213767de3d1499c6",
      "parents": [
        "46175e152891eabd9051523f2f077de5a5562996"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Mar 20 13:33:52 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Apr 17 15:02:33 2014 -0700"
      },
      "message": "Add RouteProviders to the new Media APIs\n\nCompiles and works with OneMedia. This currently is a rough test of\nthe system for finding, connecting to, and sending messages to routes.\nThis will just connect to the first route it finds when a request to\nopen the route picker is made (and disconnect when another request is\nmade).\n\nChange-Id: I5de5521a079471b9e02664be4654c0591dfd9a6d\n"
    },
    {
      "commit": "b3035749d453c857a14b97c1f805a516810de056",
      "tree": "34d3bf699df3ea8eba36a1b900f8938738f47ee8",
      "parents": [
        "d05a2d8833db11b5b5c5664e4470bd77c7f4f634",
        "6be2f95202237b7284542e692273d13a5bd26913"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 19:36:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 10 19:36:27 2014 +0000"
      },
      "message": "am 6be2f952: Merge \"Adding render stats APIs to UiAutomation (framework).\"\n\n* commit \u00276be2f95202237b7284542e692273d13a5bd26913\u0027:\n  Adding render stats APIs to UiAutomation (framework).\n"
    },
    {
      "commit": "6be2f95202237b7284542e692273d13a5bd26913",
      "tree": "42a2dae8ac52754848593b62b950f96761723240",
      "parents": [
        "2bb8dde44be10212ec453d435aaad27177714f5e",
        "1376d600d8e0eefdbc0aa11d398cf7517fc77129"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 19:32:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 10 19:32:59 2014 +0000"
      },
      "message": "Merge \"Adding render stats APIs to UiAutomation (framework).\""
    },
    {
      "commit": "c686d9abaf7424c2e9894f2d4e97237d12edebde",
      "tree": "42e05527fafa744bec91a5f7f703f3413e1bb7c9",
      "parents": [
        "b5d645444d8e65a2d9c50a889227086d625ad81c",
        "5784b39843bd3d6112352ff3b736a6498107911c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 09 00:45:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 09 00:45:52 2014 +0000"
      },
      "message": "am 5784b398: Merge \"Launcher APIs and broadcasts for managed profiles\"\n\n* commit \u00275784b39843bd3d6112352ff3b736a6498107911c\u0027:\n  Launcher APIs and broadcasts for managed profiles\n"
    },
    {
      "commit": "5784b39843bd3d6112352ff3b736a6498107911c",
      "tree": "283136a069498786c722cd46cc146bab570ff4e5",
      "parents": [
        "77ecf0bb9687a4841a4880267bdb2cd7de05055f",
        "4f58263d02f296430a9653126d28501e95c7bb6c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 08 22:04:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 08 22:04:20 2014 +0000"
      },
      "message": "Merge \"Launcher APIs and broadcasts for managed profiles\""
    },
    {
      "commit": "9210e8cb23a1b16e0592612b283d729abe4611ef",
      "tree": "309d9403ce7990b5eef9496a5e7317c89c3a4207",
      "parents": [
        "db03d7e93d37b2251aa1592e346a97b9284da486",
        "3957091ba8f08c02b5e781098cb955a5f697a1ff"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Apr 08 20:43:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 08 20:43:49 2014 +0000"
      },
      "message": "am 3957091b: Initial round of Television Input Framework\n\n* commit \u00273957091ba8f08c02b5e781098cb955a5f697a1ff\u0027:\n  Initial round of Television Input Framework\n"
    },
    {
      "commit": "3957091ba8f08c02b5e781098cb955a5f697a1ff",
      "tree": "c8739c677c87e62ea6c1e8bc45de027d1e65d87c",
      "parents": [
        "53c2cf799fddfae7f6fc9ca1840ea345308b79ee"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Thu Feb 20 18:23:25 2014 -0800"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Apr 08 13:35:21 2014 -0700"
      },
      "message": "Initial round of Television Input Framework\n\nThis provides APIs to control and create individual television inputs on\nthe system which will later be hosted by television applications.\n\nChange-Id: I6866d28e78175a1bff2c32a85c5d77e94d0cd60c\n"
    },
    {
      "commit": "4f58263d02f296430a9653126d28501e95c7bb6c",
      "tree": "ee424e547166ddfc5da545654ac9ee2908803b02",
      "parents": [
        "2d925545b6190153928658ce320d9b681baad882"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 19 14:31:52 2014 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 08 10:51:05 2014 -0700"
      },
      "message": "Launcher APIs and broadcasts for managed profiles\n\nUserManager\n- Corp badging\n- Querying list of managed profiles\n\nLauncher API\n- LauncherApps and Service to proxy changes in managed profile\n  to the launcher in the primary profile\n- Querying and launching launchable apps across profiles\n\nChange-Id: Id8f7b4201afdfb5f414d04156d7b81300119289e\n"
    },
    {
      "commit": "1376d600d8e0eefdbc0aa11d398cf7517fc77129",
      "tree": "f5a4a7e7a66943dec172cfb10a1868dc8a8c8df4",
      "parents": [
        "ed3db02c051f52f9ad3770e3c6b5b90c71a04fb1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 13 11:17:26 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 07 17:01:42 2014 -0700"
      },
      "message": "Adding render stats APIs to UiAutomation (framework).\n\nbug:12927198\n\nChange-Id: Iae21481c75ae58dcdab3731bf5f1e2844e29d434\n"
    },
    {
      "commit": "8d20561554e159f31a30075c23cfeb6d477aa27e",
      "tree": "0448cd04e56f085243db9c7ae8503241b9293eb2",
      "parents": [
        "67e2fe292f6f505acecc89c7b455adddcebb1018"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Apr 01 20:09:57 2014 -0700"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Apr 01 20:15:04 2014 -0700"
      },
      "message": "Add CallServiceSelectorAdapter\n\nPreviously the selector would communicate with Telecomm using\ncallbacks.\n\nFor handoff, it\u0027s easier to communicate using an adapter.\n\nBug: 13643568\nChange-Id: Ida5859a3b5b15c9fa1c533f27a3e14fd0d7c36af\n"
    },
    {
      "commit": "3830700257028d26506f4a9bd5a3dd25798d675f",
      "tree": "c2c35376135ca53fc377f565e7bbfd2cc3eef1e3",
      "parents": [
        "235551d07dda0f3cc13e0e2f1e1d99b2bc734e0c",
        "53ab5174d5009786dc58da3011181b77e325c130"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 19:25:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 31 19:25:58 2014 +0000"
      },
      "message": "am 53ab5174: Merge \"Define trust agent framework components\"\n\n* commit \u002753ab5174d5009786dc58da3011181b77e325c130\u0027:\n  Define trust agent framework components\n"
    },
    {
      "commit": "82142c21dd333307682d5f4bb09de3ab3ccfa06c",
      "tree": "d0d750d27ba27084498138dba9e6bbc70cc20a81",
      "parents": [
        "ff2144ccb4215acf4587fc628493b3d49dca6043"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Mar 27 14:56:59 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 21:18:28 2014 +0200"
      },
      "message": "Define trust agent framework components\n\nAdds the TrustManager system service that allows\nregistering for changes to the trust status and\nreporting events that are important to trust agents.\n\nBug: 13723878\nChange-Id: I7d0d2ea86fd755702d31aa5d49cac038a6cd4301\n"
    },
    {
      "commit": "4bc08ab9a97159ac3a779101c15530ba2f48a1e4",
      "tree": "beac12fe247e75dccd2c1333925befede493f500",
      "parents": [
        "bead5aee1c38e671890b1c28cd1ef9f83b8427e0",
        "716f20d833537461fef7d5d7ed62157451391f1c"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 19:14:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 31 19:14:29 2014 +0000"
      },
      "message": "am 716f20d8: Merge \"Define initial trust agent API\"\n\n* commit \u0027716f20d833537461fef7d5d7ed62157451391f1c\u0027:\n  Define initial trust agent API\n"
    },
    {
      "commit": "ff2144ccb4215acf4587fc628493b3d49dca6043",
      "tree": "c35598d83a0076528df19d1ad27e332d30486b0d",
      "parents": [
        "47bbaea4c3f5dee97f2e1c56c6cc9957efa17eaf"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Mar 28 13:02:19 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 20:40:49 2014 +0200"
      },
      "message": "Define initial trust agent API\n\nAdds the minimal API needed to define a useful trust agent.\n\nBug: 13723878\nChange-Id: Ib24440bab7b16d0b656bde8b059e7d42cab2c7dc\n"
    },
    {
      "commit": "562e755774676da508aab87d96c24b4194af4801",
      "tree": "ca8103340a8afbb457a3f4a372ea2732cfc3f5a9",
      "parents": [
        "d5ad0f5e801ecf288f970a40a4ffbb2919144626",
        "93627ac86c3805aaf545501b586bbca4fbc259e9"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Fri Mar 28 23:59:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 28 23:59:46 2014 +0000"
      },
      "message": "am 93627ac8: Merge \"Wifi hotspot stack initial hook up\"\n\n* commit \u002793627ac86c3805aaf545501b586bbca4fbc259e9\u0027:\n  Wifi hotspot stack initial hook up\n"
    },
    {
      "commit": "93627ac86c3805aaf545501b586bbca4fbc259e9",
      "tree": "806003afdfc94c1cdede0fff9e9758dc92792c3d",
      "parents": [
        "5db60e0eb7dc80034f75dafcb8b16b99f5c6e6d5",
        "10bf6354a536152719bf4524429aa5739836c541"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Fri Mar 28 22:49:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 28 22:49:51 2014 +0000"
      },
      "message": "Merge \"Wifi hotspot stack initial hook up\""
    },
    {
      "commit": "29cc5df383d9e3baffc9c596f473d5686df66553",
      "tree": "ba0d95a295eec8308e6fc6b4ec89cfbb7f01991c",
      "parents": [
        "3ab1d35871df152530b06cd522a8c587773cfd93",
        "5454ac6b3754685210ac4dd790d24dad70bc2801"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 27 19:40:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 27 19:40:23 2014 +0000"
      },
      "message": "am 5454ac6b: Merge \"Expand install observer semantics\"\n\n* commit \u00275454ac6b3754685210ac4dd790d24dad70bc2801\u0027:\n  Expand install observer semantics\n"
    },
    {
      "commit": "f1977b4500e82b72ea6aa5c46d97406a20017caf",
      "tree": "9d6b4e63bc4b4c70eb9fbd5eb2cff9587ba45485",
      "parents": [
        "9ad8a5331ca5eb6390c702ec57952043b56170bf"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 24 16:25:51 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 27 12:37:47 2014 -0700"
      },
      "message": "Expand install observer semantics\n\n...and now fail conservatively when two apps both attempt to define\nthe same permission.  Apps signed with the same certificate are\npermitted to redefine permissions.\n\nWe also finally have a (hidden) interface class for observing package\ninstallation so that we can now rev the interface without breaking\nexisting callers.\n\nBug 13551375\n\nChange-Id: Ifa4e59154dcccbb286ee46a35a6f25e4ad0f0f01\n"
    },
    {
      "commit": "dc0f2be939f71bb7cf32aee96eebb21dbf36eba2",
      "tree": "573a407b50c313ef2785169c7966d4faa9a9bec3",
      "parents": [
        "79ebf68c67209984cd35e014126cba44c98fd4a8",
        "1ee4eb074c2d85148658e93e865a18834bdced72"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 13:05:12 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 26 13:05:12 2014 -0700"
      },
      "message": "am 1ee4eb07: Merge \"Revert \"Expand install observer semantics\"\"\n\n* commit \u00271ee4eb074c2d85148658e93e865a18834bdced72\u0027:\n  Revert \"Expand install observer semantics\"\n"
    },
    {
      "commit": "1ee4eb074c2d85148658e93e865a18834bdced72",
      "tree": "9ac244717091a290c8c06a3de80b4eeb8d97679b",
      "parents": [
        "460572b22fe8fe5880ad099090b38765e2f8a2f6",
        "7629a18a3f190368e6268d3f2827824905683268"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 20:00:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 20:00:11 2014 +0000"
      },
      "message": "Merge \"Revert \"Expand install observer semantics\"\""
    },
    {
      "commit": "7629a18a3f190368e6268d3f2827824905683268",
      "tree": "392b2bde32c959d39d7a37bc0f3c46d7fbe3a55b",
      "parents": [
        "ab8a501f255b272af887acb0e66eb71cdf24c755"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 19:59:48 2014 +0000"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 19:59:48 2014 +0000"
      },
      "message": "Revert \"Expand install observer semantics\"\n\nThis reverts commit ab8a501f255b272af887acb0e66eb71cdf24c755.\n\nChange-Id: I4ab4ae1a96efa2adf9d5a513793d8b84eef38b4e\n"
    },
    {
      "commit": "cfe34117bc93e4171455535846db5ebed88190d8",
      "tree": "17096627a7df1d7027529aa53a2319ef9e96ac51",
      "parents": [
        "5a0ec99900063a1335ce031d48b6ec3e17b3cae1",
        "9067dc03ffc76c5210d26d5a53a211eff046d412"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Mar 26 12:29:19 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 26 12:29:19 2014 -0700"
      },
      "message": "am 9067dc03: Merge \"Expand install observer semantics\"\n\n* commit \u00279067dc03ffc76c5210d26d5a53a211eff046d412\u0027:\n  Expand install observer semantics\n"
    },
    {
      "commit": "9067dc03ffc76c5210d26d5a53a211eff046d412",
      "tree": "23576fc1d98647012488024e19b3254fbb4d3382",
      "parents": [
        "583080d87cbf08c253e79feafd6a1b74cf3cddc1",
        "ab8a501f255b272af887acb0e66eb71cdf24c755"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Mar 26 19:23:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 19:24:09 2014 +0000"
      },
      "message": "Merge \"Expand install observer semantics\""
    },
    {
      "commit": "ab8a501f255b272af887acb0e66eb71cdf24c755",
      "tree": "4428aa0f60d4a2a309e8882d27fab9c5b20ad5c3",
      "parents": [
        "48a5dbd3cc5dd8a919983455757dc4c7b82500ab"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 24 16:25:51 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 25 19:28:54 2014 -0700"
      },
      "message": "Expand install observer semantics\n\n...and now fail conservatively when two apps both attempt to define\nthe same permission.\n\nWe also finally have a (hidden) interface class for observing package\ninstallation so that we can now rev the interface without breaking\nexisting callers.\n\nBug 13551375\n\nChange-Id: I3a286d024a30e812ee4b098f345401df3c00e178\n"
    },
    {
      "commit": "10bf6354a536152719bf4524429aa5739836c541",
      "tree": "ee0d72a8257a59bb84835d30dde674a08c9c571b",
      "parents": [
        "f53d1a01972d04402b48476d6a8173285516edd3"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Mar 25 15:00:45 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Mar 25 15:00:45 2014 -0700"
      },
      "message": "Wifi hotspot stack initial hook up\n\nAdd a dummy wifi hotspot service for futher development use. This is to\nresolve the different between master branch and kwd branch, such that future\ndevelopment can go into kwd and being auto-merged to master.\n\nbug: 5485670\nChange-Id: Ica58de445dd050a9f0b817f8e4accaa2478299c5\n"
    },
    {
      "commit": "00ffde305da868401b78f92c3ad33fef0221bf7c",
      "tree": "455f8032ecb0dddd303edf9c51380e7a7a47a38e",
      "parents": [
        "fa1ce103c65c9f4eba708f1555a59959a4581e4e",
        "2d72d000939acc10ba0f5000689ad86483b7c19e"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Mar 25 13:02:59 2014 -0700"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Mar 25 13:02:59 2014 -0700"
      },
      "message": "resolved conflicts for merge of 2d72d000 to master-nova\n\nChange-Id: Icfb617ffab2da2f8805e4628e75e006c620b479d\n"
    },
    {
      "commit": "f1e1e7714375b3b83f2cc3956b112293face56a1",
      "tree": "f78b133e81542b0f3c551d754ab3c02c6d1d6425",
      "parents": [
        "0a8596dc0c497404a332ae990b2bd77553cde870"
      ],
      "author": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Fri Mar 21 11:31:32 2014 -0700"
      },
      "committer": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Tue Mar 25 11:08:19 2014 -0700"
      },
      "message": "resolved conflicts for merge of 74fb97de to master\n\nChange-Id: If28dc21a2ea7e634da130f3c59c17cd63dd5336a\n"
    },
    {
      "commit": "6418a7d30c38641bc0b1e471ff50624b86a0052a",
      "tree": "a763f760325bb1c6b79cd4d9a350502cf37a24ab",
      "parents": [
        "4474da7c740443a280da2a02e811d964d336e367",
        "8a60ded02614bc8358f89aa9b7cf3f8e7b1383a2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:23:05 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 21 13:23:05 2014 -0700"
      },
      "message": "am 8a60ded0: Merge \"resolved conflicts for merge of a67e34c8 to master\"\n\n* commit \u00278a60ded02614bc8358f89aa9b7cf3f8e7b1383a2\u0027:\n  Add HDMI-CEC service\n"
    },
    {
      "commit": "a42cb8b0e2b8fdfbac1a6590d6b60814caa01088",
      "tree": "d903e1aca9c2345e98dbe99188524feef35b21c3",
      "parents": [
        "fb40d78c57711585c9eaed467601bf3adb4f60f9",
        "a67e34c80fb5b1936fe0beeea3faec3218ead1a3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:11:02 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:11:02 2014 -0700"
      },
      "message": "resolved conflicts for merge of a67e34c8 to master\n\nChange-Id: I597525886260884c9b2dfc7945e01eb8138a58c2\n"
    },
    {
      "commit": "f76b62f19e235c113ded9383b113811ce72c56ab",
      "tree": "311b523e5f49117d46d7ec7958a0533e61b4d9b3",
      "parents": [
        "5d934a68b752ab81b3b2545db276bc6c8804c8a7",
        "8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 20 09:56:59 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 09:56:59 2014 -0700"
      },
      "message": "am 8e3feb15: Added accessibility APIs for introspecting interactive windows.\n\n* commit \u00278e3feb15c5aec2c72b0ef120a1da325e1e8f0dda\u0027:\n  Added accessibility APIs for introspecting interactive windows.\n"
    },
    {
      "commit": "8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda",
      "tree": "424ee490ecedaed22da440cbaf4eb34411649bac",
      "parents": [
        "17cb58137949420e83d29aeec4f933c35565027c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 24 13:46:47 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 20 16:52:59 2014 +0000"
      },
      "message": "Added accessibility APIs for introspecting interactive windows.\n\n1. The old introspection model was allowing querying only the active window\n   which is the one the user is touching or the focused one if no window is\n   touched. This was limiting as auto completion drop downs were not inspectable,\n   there was not way to know when the IME toggles, non-focusable windows were\n   not inspectable if the user taps them as until a screen-reader starts\n   introspecting the users finger is up, accessibility focus was limited to\n   only one window and the user couldn\u0027t use gestures to visit the whole UI,\n   and other things I can\u0027t remember right now.\n\n   The new APIs allow getting all interactive windows, i.e. ones that a\n   sighted user can interact with. This prevents an accessibility service\n   from interacting with content a sighter user cannot. The list of windows\n   can be obtained from an accessibility service or the host window from an\n   accessibility node info. Introspecting windows obey the same rules for\n   introspecting node, i.e. the service has to declare this capability\n   in its manifest.\n\n   When some windows change accessibility services receive a new type\n   of event. Initially the types of windows is very limited. We provide\n   the bounds in screen, layer, and some other properties which are\n   enough for a client to determined the spacial and hierarchical\n   relationship of the windows.\n\n2. Update the documentation in AccessibilityService for newer event types.\n\n3. LongArray was not removing elements properly.\n\n4. Composite accessibility node ids were not properly constructed as they\n   are composed of two ints, each taking 32 bits. However, the values for\n   undefined were -1 so composing a 64 long from -1, -1 prevents from getting\n   back these values when unpacking.\n\n5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added\n   a check that enforces such trees to be well formed on dev builds.\n\n6. Removed an necessary code for piping the touch exploration state to\n   the policy as it should just use the AccessibilityManager from context.\n\n7. When view\u0027s visibility changed it was not firing an event to notify\n   clients it disappeared/appeared. Also ViewGroup was sending accessibility\n   events for changes if the view is included for accessibility but this is\n   wrong as there may be a service that want all nodes, hence events from them.\n   The accessibility manager service takes care of delivering events from\n   not important for accessibility nodes only to services that want such.\n\n8. Several places were asking for prefetching of sibling but not predecessor\n   nodes which resulted in prefetching of unconnected subtrees.\n\n9. The local AccessibilityManager implementation was relying on the backing\n   service being ready when it is created but it can be fetched from a context\n   before that. If that happens the local manager was in a broken state forever.\n   Now it is more robust and starts working properly once the backing service\n   is up. Several places were lacking locking.\n\nbug:13331285\n\nChange-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8\n"
    },
    {
      "commit": "4f512fb451c8ddcea852645c5c24314c20c0974b",
      "tree": "315ec495986e5dfff86f21705045de17b4f63764",
      "parents": [
        "fd6b99750bfab7f930ee375a79009874a3196165"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Fri Feb 28 17:41:17 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu Mar 20 16:40:22 2014 +0900"
      },
      "message": "Add HDMI-CEC service\n\nThis CL adds a system service handling HDMI-CEC protocol. The service\nis equipped with the capability sending/receiving HDMI-CEC messages\n\nNot all the messages are in place. Currently it has messages to support\na few features only, as follows:\n\n- One touch play\n- System information\n- Routing control (partially - active source status maintenance only)\n- Device OSD transfer\n- Power status\n\nIt will be extended to cover the wider usages in the follow up CLs.\n\nThe CEC standard version referenced in the implementation is 1.3a.\n\nChange-Id: Ifed0b02f52ebf098eddb3bd0987efbf353b7e8fe\n"
    },
    {
      "commit": "cdf01b1325cdf7375e39e465271530b85a8e3784",
      "tree": "e17ec1f05d4768357a9d862c873197dd71035dd1",
      "parents": [
        "0b55ac30ca417d4b1dc309c7107fc2fc79b60535",
        "57ad97fb701876ecb87b76f29592a41731aeb487"
      ],
      "author": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Thu Mar 13 15:16:28 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 13 15:16:28 2014 -0700"
      },
      "message": "am 57ad97fb: Merge \"Add removeApi commandline option for doclava and an empty removed.txt\"\n\n* commit \u002757ad97fb701876ecb87b76f29592a41731aeb487\u0027:\n  Add removeApi commandline option for doclava and an empty removed.txt\n"
    },
    {
      "commit": "57ad97fb701876ecb87b76f29592a41731aeb487",
      "tree": "16e61fb4728585ca31d77c9247fec586db00ec78",
      "parents": [
        "19caf39612a574672169402d79be4d161b122290",
        "06d37f716f3afb58ed691e749781b76881d5877f"
      ],
      "author": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Thu Mar 13 22:11:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 13 22:11:41 2014 +0000"
      },
      "message": "Merge \"Add removeApi commandline option for doclava and an empty removed.txt\""
    },
    {
      "commit": "ab5d282dd6f487578ae86b2d53d0d8edc9b71747",
      "tree": "5bdb3946d832b66c6c9d65a41c983b5518d55341",
      "parents": [
        "4d0cf0c53a8b8e331ced0874d39d6ad4a6122ffc"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Sat Mar 08 18:01:06 2014 -0800"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Mar 11 16:38:50 2014 -0700"
      },
      "message": "Add wrappers around telecomm interfaces\n\nThis CL adds wrappers for:\n  CallServiceLookupResponse\n  CallServiceAdapter\n  IInCallAdapter\n  IInCallService\n\nThis CL also moves all the aidl files into\ncom.android.internal.telecomm.\n\nChange-Id: I840f023bc545643e8bb719825e7bc78344ee46ee\n"
    },
    {
      "commit": "e76f7f7824df3228d29e92f148950573abb70c86",
      "tree": "ab2db5cf430f053a1ec46011f6c96d05a73d3ab2",
      "parents": [
        "fb04635270a7ab7216c71a9d7770f5e7b2809184",
        "77b987f1a1bb6028a871de01065b94c4cfff0b5c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 28 17:13:31 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 28 17:13:31 2014 -0800"
      },
      "message": "am 77b987f1: Hold a wake lock while dispatching network activity events.\n\n* commit \u002777b987f1a1bb6028a871de01065b94c4cfff0b5c\u0027:\n  Hold a wake lock while dispatching network activity events.\n"
    },
    {
      "commit": "77b987f1a1bb6028a871de01065b94c4cfff0b5c",
      "tree": "2d9cb3255a3e7dbf6dc1a1d8d3fc45ba8293e957",
      "parents": [
        "454a0384708433e165a6340dc98bd060775ec613"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 26 16:20:52 2014 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 28 15:19:39 2014 -0800"
      },
      "message": "Hold a wake lock while dispatching network activity events.\n\nAlso add new API for determining whether the current data network\nis active, and thus better scheduling network operations.  This\nAPI is designed to not be tied to a mobile network -- regardless\nof the network, apps can use it to determine whether they should\ninitiate activity or wait.  On non-mobile networks, it simply always\nreports as the network being active.\n\nThis changed involved reworking how the idle timers are done so\nthat we only register an idle timer with the current default\nnetwork.  This way, we can know whether we currently expect to\nget callbacks about the network being active, or should just always\nreport that it is active.  (Ultimately we need to be getting this\nradio active data from the radio itself.)\n\nChange-Id: Iaf6cc91a960d7542a70b72f87a7db26d12c4ea8e\n"
    },
    {
      "commit": "e4f0fe586f456a59fc00cc9e3d0194cc183ddeaa",
      "tree": "8b01f47256b3ba96b71e866fd75ac75f036c804d",
      "parents": [
        "4ab174a13451071c82ec295e2f109e0b9cc15aee",
        "8fb4cf1ef4ca3b3c5ea1897cc1a4f9f5dc454877"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Feb 26 10:37:45 2014 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Feb 26 10:37:45 2014 -0800"
      },
      "message": "resolved conflicts for merge of 8fb4cf1e to master-nova\n\nChange-Id: I61a6fc192b0c2099af9bebdf8e9d8bbfaa4243a3\n"
    },
    {
      "commit": "2f5b057da7d05d5d699a272aa24fd7c97cdda820",
      "tree": "c11d78d206773981c7057110a54d186ed02cdcc5",
      "parents": [
        "503923220cca802f6dfc12f902ab0f6d1a12434f"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Feb 21 10:30:38 2014 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue Feb 25 16:01:55 2014 -0800"
      },
      "message": "Move Session apis to android.media.session\n\nThis is to make it easier to distinguish the new apis from the old\nones.\n\nChange-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7\n"
    },
    {
      "commit": "06d37f716f3afb58ed691e749781b76881d5877f",
      "tree": "b60b9bddef48f42a9c2c85de4abce4d5fd3f4c5d",
      "parents": [
        "e6415f50b10fe455df2cbe568a90bc762cce3cf7"
      ],
      "author": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Fri Feb 21 14:13:00 2014 -0800"
      },
      "committer": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Fri Feb 21 17:24:03 2014 -0800"
      },
      "message": "Add removeApi commandline option for doclava and an empty removed.txt\n\nBUG: b/11293324\nChange-Id: Ief41ae23f3d6364260ce34ee9f3211130a6a83d7\n"
    },
    {
      "commit": "dda12a97461867a5e0bbdb836a9ecaa265b6edc8",
      "tree": "b51f89c46bfa6a5b2d1bb49c29eec76114c1b637",
      "parents": [
        "731f138b820b50c4ccd4c36ed551f6001d0fcfc6",
        "ac8bdfe4f06367e06e43d8759b6009b483a5e668"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 20:59:08 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 20 20:59:08 2014 -0800"
      },
      "message": "am ac8bdfe4: Merge \"resolved conflicts for merge of baaa080b to master\"\n\n* commit \u0027ac8bdfe4f06367e06e43d8759b6009b483a5e668\u0027:\n  Add a new \"doze mode\" based on Dream components.\n"
    },
    {
      "commit": "10102e4c0e501333a12b38a5cfe709d1558d84dd",
      "tree": "6b4b3b43c1e55d3812664a8530d7d72f633d596d",
      "parents": [
        "1a405db22a2ade6b745f3e1cf93ba0c54b048d95",
        "baaa080b625f2448758d87dadc2706d0e2335a86"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 18:05:03 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 18:05:03 2014 -0800"
      },
      "message": "resolved conflicts for merge of baaa080b to master\n\nChange-Id: I3ee12321e298f7a2ea577a99f30c49f3bb497fae\n"
    },
    {
      "commit": "8f3fd30a60d4a5b6e9c94d463681b0c0ac3f119e",
      "tree": "9beaf85acf30ece14110e93573ea996d3a8f1211",
      "parents": [
        "658c0cf6c3140b5cafc4e8880e08a7dead39d24a"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Mon Jan 27 08:46:21 2014 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:53 2014 -0800"
      },
      "message": "Add interfaces between Telecomm and InCall.\n\nChange-Id: Ie0e8c5e6626e1db33eb1142b302bf415785cfe47\n"
    },
    {
      "commit": "f042a3f067b47a92c67d994ba3e24bf41636e4f9",
      "tree": "a804d55d2700f53da59e953d0a63e5e74e595105",
      "parents": [
        "2e412075baaac8066265618e1a0d5186aced74c4"
      ],
      "author": {
        "name": "Ben Gilad",
        "email": "gilad@google.com",
        "time": "Wed Jan 15 13:58:57 2014 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:51 2014 -0800"
      },
      "message": "Following up on our discussion offline to introduce response objects for isSwitchable.\n\nChange-Id: Ic1385d9b67ed0a859128845574d48ad90d6152a2\n"
    },
    {
      "commit": "0f7dac1741dd4e2c56f8f6d441fdbef1533577b1",
      "tree": "83876c6ecf7da1d429d4aa1837f4aac2d9148058",
      "parents": [
        "73e64fe81a75e25008c46107e4dfa8507c5e73a2"
      ],
      "author": {
        "name": "Ben Gilad",
        "email": "gilad@google.com",
        "time": "Tue Jan 14 17:53:37 2014 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:50 2014 -0800"
      },
      "message": "Adding the CallServiceSelector skeleton (AIDL) files.\n\nChange-Id: I55ca3bed6e1b964602a9291bd388a10c99729da7\n"
    },
    {
      "commit": "4939ccf7864b3b5664c6cdbe124e49e68030cfa9",
      "tree": "c055d830daf360868765bc697d708b11d2c9587b",
      "parents": [
        "6fee2ea8f887e32d4c4a8c35b0ff00ea7eeb2bb3"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Wed Jan 08 13:52:54 2014 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:49 2014 -0800"
      },
      "message": "Remove CallServiceProviderAdapter and replace with CallServiceLookupResponse.\n\nChange-Id: I55a574784162e3cc4a88b2889f1d14a07116f937\n"
    },
    {
      "commit": "6fee2ea8f887e32d4c4a8c35b0ff00ea7eeb2bb3",
      "tree": "53da03499a8aaea0e4b481da68c866a2733ee8ee",
      "parents": [
        "6fbb1b73f82da0e7fe1244e4a44dea3c3c163997"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Fri Jan 10 04:20:34 2014 +0000"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:49 2014 -0800"
      },
      "message": "Revert \"Remove CallServiceProviderAdapter and replace with CallServiceLookupResponse.\"\n\nThis reverts commit 753fc58932e976086069bacb3e5252332960644b.\n\nChange-Id: Ie17b4918fa404eb768c0f3ce5109d6cc8b2d1da8\n"
    },
    {
      "commit": "6fbb1b73f82da0e7fe1244e4a44dea3c3c163997",
      "tree": "bb2a901bb3b987d140e56dc534909d8d74618198",
      "parents": [
        "6734a173f027b9f298366317b95fb353a040fc5b"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Wed Jan 08 13:52:54 2014 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:48 2014 -0800"
      },
      "message": "Remove CallServiceProviderAdapter and replace with CallServiceLookupResponse.\n\nChange-Id: I4d1c007bd46b804ecbb80163fc26de199cdbb2eb\n"
    },
    {
      "commit": "3784133b95f1206c0c6bbbddb5921ef396b5b941",
      "tree": "0613fb84523934385bfcb318202b15637ddbfb94",
      "parents": [
        "b3e51b791873b2ca6da6694964a48e0f2f49305a"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Tue Dec 17 13:30:53 2013 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:47 2014 -0800"
      },
      "message": "Additional fixes to aidl files.\n\nChange-Id: I24e5ae0ff65c3049d735cd4c6e1d79a0c406d92b\n"
    },
    {
      "commit": "b3e51b791873b2ca6da6694964a48e0f2f49305a",
      "tree": "49e84d0ac4939c6acf97abb34ba5f1aa852e4a93",
      "parents": [
        "e57944dd55f72aa1b9fc04c6b6bc48992076fdf6"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Tue Dec 17 13:30:53 2013 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:46 2014 -0800"
      },
      "message": "Fixing typos and a build break.\n\nChange-Id: I74ac6da8a9943b3b2cc76a4fc75027b7717b1bb3\n"
    },
    {
      "commit": "e57944dd55f72aa1b9fc04c6b6bc48992076fdf6",
      "tree": "102e444f46fa8a7efbd5e968ee2a9744de41f1bd",
      "parents": [
        "bb69b0c2d821a9806fb00037284c399cbc78277d"
      ],
      "author": {
        "name": "Ben Gilad",
        "email": "gilad@google.com",
        "time": "Mon Dec 16 16:39:52 2013 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:45 2014 -0800"
      },
      "message": "Add the CallService base class and the necessary call-service-provider\nAIDL interfaces.\n\nChange-Id: Ic0aab1245d259f1148d403033647d795e07ab015\n"
    },
    {
      "commit": "bb69b0c2d821a9806fb00037284c399cbc78277d",
      "tree": "80c23025d9ae9f0317bf97c506916f8ae576cded",
      "parents": [
        "d13e1d2babf9e3d14d3fe661c7c701b3b18b3eca"
      ],
      "author": {
        "name": "Ben Gilad",
        "email": "gilad@google.com",
        "time": "Thu Dec 12 18:32:02 2013 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:44 2014 -0800"
      },
      "message": "Adding the frameworks/base code from https://googleplex-android-review.git.corp.google.com/#/c/391028\n\nChange-Id: I6fe7aae52a7ff52da1a1e009e8361810fcaddd1e\n"
    },
    {
      "commit": "d13e1d2babf9e3d14d3fe661c7c701b3b18b3eca",
      "tree": "4b6a7e2940f05060998b76a2bdc97783c9497cdb",
      "parents": [
        "09538ebd04b83abad2fac8ccc9845aa0c2a4f62c"
      ],
      "author": {
        "name": "Ben Gilad",
        "email": "gilad@google.com",
        "time": "Thu Dec 12 18:40:03 2013 -0800"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Thu Feb 20 15:12:43 2014 -0800"
      },
      "message": "Remove the telecomm entries now that we have https://googleplex-android-review.git.corp.google.com/#/c/398927\n\nDO NOT SUBMIT until the above CL is uploaded.\n\nChange-Id: I4e4f19175b502ba81c882d1379d1d225b0e6ba67\n"
    },
    {
      "commit": "2687550272ba061448f5d5b914700dc335299ee7",
      "tree": "fc68c5ecec24ec2aa120ccf490d7a56573704a73",
      "parents": [
        "d43ad2f35abcc647f7985abd09ed9de5899faf18"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 30 21:47:47 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 13:39:13 2014 -0800"
      },
      "message": "Add a new \"doze mode\" based on Dream components.\n\nWhen a doze component has been specified in a config.xml resource\noverlay, the power manager will try to start a preconfigured dream\nwhenever it would have otherwise gone to sleep and turned the\nscreen off.  The dream should render whatever it intends to show\nthen call startDozing() to tell the power manager to put the display\ninto a low power \"doze\" state and allow the application processor\nto be suspended.  The dream may wake up periodically using the\nalarm manager or other features to update the contents of the display.\n\nAdded several new config.xml resources related to dreams and dozing.\nIn particular for dozing there are two new resources that pertain to\ndecoupling auto-suspend mode and interactive mode from the display\nstate.  This is a requirement to enable the application processor\nand other components to be suspended while dozing.  Most devices\ndo not support these features today.\n\nConsolidated the power manager\u0027s NAPPING and DREAMING states into one\nto simplify the logic.  The NAPPING state was mostly superfluous\nand simply indicated that the power manager should attempt to start\na new dream.  This state is now tracked in the mSandmanSummoned field.\n\nAdded a new DOZING state which is analoguous to DREAMING.  The normal\nstate transition is now: AWAKE -\u003e DREAMING -\u003e DOZING -\u003e ASLEEP.\nThe PowerManager.goToSleep() method now enters the DOZING state instead\nof immediately going to sleep.\n\nWhile in the doze state, the screen remains on.  However, we actually\ntell the rest of the system that the screen is off.  This is somewhat\nunfortunate but much of the system makes inappropriate assumptions\nabout what it means for the screen to be on or off.  In particular,\nscreen on is usually taken to indicate an interactive state where\nthe user is present but that\u0027s not at all true for dozing (and is\nonly sometimes true while dreaming).  We will probably need to add\nsome more precise externally visible states at some point.\n\nThe DozeHardware interface encapsulates a generic microcontroller\ninterface to allow a doze dream for off-loading rendering or other\nfunctions while dozing.  If the device possesses an MCU HAL for dozing\nthen it is exposed to the DreamService here.\n\nRemoved a number of catch blocks in DreamService that caught Throwable\nand attempted to cause the dream to finish itself.  We actually just\nwant to let the process crash.  Cleanup will happen automatically if\nneeded.  Catching these exceptions results in mysterious undefined\nbehavior and broken dreams.\n\nBug: 12494706\nChange-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b\n"
    },
    {
      "commit": "3df1380d14f5a54d4ed5aa44a07ba9eee7439b91",
      "tree": "e61db031dc8a0cc4883b3d4a7e1505f07526d417",
      "parents": [
        "13138fb588a43b97e424db3e62ce885e8590d62d",
        "332886854438809e956fb232b69879e33b5dc2bb"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Feb 19 16:27:14 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 19 16:27:14 2014 -0800"
      },
      "message": "am 33288685: Merge \"Initial round of MediaSession APIs\"\n\n* commit \u0027332886854438809e956fb232b69879e33b5dc2bb\u0027:\n  Initial round of MediaSession APIs\n"
    },
    {
      "commit": "332886854438809e956fb232b69879e33b5dc2bb",
      "tree": "ddda4e05eba4ed396691ff90b8f2e498d9c8e699",
      "parents": [
        "ff699570f62113b4df5b0efd74b9df8b9dbcd1a9",
        "01fe661ae5da3739215d93922412df4b24c859a2"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Feb 20 00:25:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 00:25:10 2014 +0000"
      },
      "message": "Merge \"Initial round of MediaSession APIs\""
    },
    {
      "commit": "01fe661ae5da3739215d93922412df4b24c859a2",
      "tree": "fbc2bb43edec44c553256de377312741f87f434f",
      "parents": [
        "d63b4314b85e982a1d70d4064af59851f476dd36"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Feb 13 14:19:04 2014 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Feb 19 13:41:37 2014 -0800"
      },
      "message": "Initial round of MediaSession APIs\n\nThis is far from complete but puts the basic components in place\nfor an app to interact with media sessions.\n\nChange-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f\n"
    },
    {
      "commit": "f86a9221a448178f4760192f082f3701ac487a47",
      "tree": "160c49d0c8cf7940f078999577e05812268c11ad",
      "parents": [
        "5441745effb885589c03050b59885e8a3ad96ad6"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 18 17:02:37 2014 -0800"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 18 17:04:10 2014 -0800"
      },
      "message": "Delete Third Party Call APIs\n\nChange-Id: I6121c53362804a228e0316a1666b5032817530ab\n"
    },
    {
      "commit": "78d659870fda5e2c195d2b548a1e9a018cb3afc3",
      "tree": "809bc7fa477dd193a745a0e0ad22730414befbd4",
      "parents": [
        "420edea97ee6b12f02abfa70cfad2b41368a70f5",
        "5da502a5b2a6eed6cf667c5d609818442a838c8a"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:34:06 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:34:06 2014 -0800"
      },
      "message": "am 5da502a5: am b9378d81: am 321cd18a: am 820bb4bd: am 9c50271d: am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u00275da502a5b2a6eed6cf667c5d609818442a838c8a\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "5da502a5b2a6eed6cf667c5d609818442a838c8a",
      "tree": "2db04f99e035a7208ca4124c6b0932b4440a2ac3",
      "parents": [
        "35fbb9f9e59795e233fb59cb5a87573e4669aebd",
        "b9378d8108555c920880d7ec7ec4122b04fb2960"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 11:27:30 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 11:27:30 2014 +0000"
      },
      "message": "am b9378d81: am 321cd18a: am 820bb4bd: am 9c50271d: am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u0027b9378d8108555c920880d7ec7ec4122b04fb2960\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "820bb4bdd358bfaac446b8ce4af5474dcfc77613",
      "tree": "77a866fb85f29e9a3064c7a6d2017be1ad4fb289",
      "parents": [
        "4b79f8380c47b0da89348e1115ea70e7898997ca",
        "9c50271dc34e48d527db7da85c3b3474574faee2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:50:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:50:08 2014 +0000"
      },
      "message": "am 9c50271d: am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u00279c50271dc34e48d527db7da85c3b3474574faee2\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "9c50271dc34e48d527db7da85c3b3474574faee2",
      "tree": "6be07da13b021b342917a7f38d62bc9e2a2c55a1",
      "parents": [
        "acec746b8963410d4a9324df46272ac91f846868",
        "257f67249afb017c9a3d0a79e545da567aa5bd02"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:47:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:47:02 2014 +0000"
      },
      "message": "am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u0027257f67249afb017c9a3d0a79e545da567aa5bd02\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "257f67249afb017c9a3d0a79e545da567aa5bd02",
      "tree": "98b6c9521df98bb7da5daa5bb3fa1f8a2cd2516b",
      "parents": [
        "55362018c9dfadff5eb1a138a1d90187110c253e",
        "35cb4e49365a8a8da0607c2659399aaad9ea5a1c"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:44:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:44:38 2014 +0000"
      },
      "message": "am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u002735cb4e49365a8a8da0607c2659399aaad9ea5a1c\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "35cb4e49365a8a8da0607c2659399aaad9ea5a1c",
      "tree": "bb189c3451dcc50eefe4a789cc5604e53395935c",
      "parents": [
        "271c8f12c88e87563ed17f4ad29610037bd300be"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Feb 07 21:05:43 2014 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Feb 12 19:38:51 2014 -0800"
      },
      "message": "Doc change: add new samples TOC groups and landing pages.\n\nChange-Id: I2f39e82fb79d4f19362d9fe2deafdde5d87873a7\n"
    },
    {
      "commit": "eaeb071a1751c9813612a1e3e2ec2450ea0d7a73",
      "tree": "1edf5f111e03f58bda8c1a990732d999e140aa8c",
      "parents": [
        "1bd7876d76167922f38d78747c5696c82020c1ea"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 11 22:36:26 2014 -0800"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 11 22:36:26 2014 -0800"
      },
      "message": "Add interface definitions for CallService/PhoneService\n\nInterfaces are meant to replace ThirdParty*.aidl/java files in same\ndirectory long term.  The differences in methods are on purpose and\nreflect more recent design directions.\n\nChange-Id: Ia98603a1d0b6d07a3393c5f7c5aa040f9e3916e4\n"
    },
    {
      "commit": "512b28309d3ee5dd506e62fb14913047b6049236",
      "tree": "e0645e94d561dd5ebd04c8abb402a10bf570bb82",
      "parents": [
        "960fe9a5ff2a629d62e3252a37e4ec598af54b6a"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 11 22:22:42 2014 -0800"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 11 22:22:42 2014 -0800"
      },
      "message": "DO NOT MERGE ThirdPartyCallSendDtmfCallBack API\n\nThis API is needed to implement post dial.\n\nChange-Id: Iefdeae81d0eae6be86e7ee1e8ab0251ae43ed079\n"
    },
    {
      "commit": "cb1b23b5e600abe542e3374b66c2be7976fccd72",
      "tree": "ee69a2b5fa337ef8b4ae8c9efc0734e7cf2751c2",
      "parents": [
        "829a57c9a52d6cd11916b926491f8addcef526ec",
        "d2506a506303ed94fd1991cf986b825b870a67c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 05 17:13:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 05 17:13:07 2014 +0000"
      },
      "message": "Merge \"FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\""
    },
    {
      "commit": "d2506a506303ed94fd1991cf986b825b870a67c5",
      "tree": "5e5116da8f0ae6a56c93b37d0dd483ded11295d1",
      "parents": [
        "10586ad2a6996b8f9f84ed47a65ccc2d883fc19f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 29 10:32:46 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 04 14:45:28 2014 -0800"
      },
      "message": "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\n\nChange-Id: I7f6cdcfd2a28846d36d89dd5180ef20a22b03af8\n"
    },
    {
      "commit": "d417d625d244356bc770e2692fd59e754a72f59f",
      "tree": "2f45745021f70830046d62fc844e1f6c248235d7",
      "parents": [
        "d0856259762eddd873a068c2e9cd3d4e45009a68"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 19 16:14:25 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 31 15:41:40 2014 -0800"
      },
      "message": "Introduce \"IdleService\" API to expose idle-time maintenance to apps\n\nWhen an application wishes to do low-priority background work when the\ndevice is otherwise idle (e.g. in a desk dock overnight), it declares\na service in its manifest that requires this permission:\n\n     android:permission\u003d\"android.permission.BIND_IDLE_SERVICE\n\nto launch, and which publishes this intent filter:\n\n    \u003cintent-filter\u003e\n        \u003caction android:name\u003d\"android.service.idle.IdleService\" /\u003e\n    \u003c/intent-filter\u003e\n\nThis string is declared in the API as IdleService.SERVICE_INTERFACE.\n\nThe service must be implemented by extending the new \"IdleService\"\nclass, which provides the API through which the system will communicate\nwith the app.\n\nIdleService declares three methods, two of which are lifecycle callbacks\nto the service, and the third of which is for the service itself to\ninvoke when appropriate.  The lifecycle callbacks are\n\n    public abstract boolean onIdleStart();\n    public abstract void onIdleStop();\n\nThe first of these is a notification to the service that an idle\nmaintenance interval has begun.  The service can then spin off\nwhatever non-UI work it wishes.  When the interval is over, or if\nthe OS determines that idle services should be shut down immediately,\nthe onIdleStop() method will be invoked.  The service must shut down\nany background processing immediately when this method is called.\n\nBoth of these methods must return immediately.  However, the OS\nholds a wakelock on the application\u0027s behalf for the entire period\nbetween the onIdleStart() and onIdleStop() callbacks.  This means\nthat for system-arbitrated idle-time operation, the application does\nnot need to do any of its own wakelock management, and does not need\nto hold any wakelock permissions.\n\nThe third method in IdleService is\n\n    public final void finishIdle();\n\nCalling this method notifies the OS that the application has finished\nwhatever idle-time operation it needed to perform, and the OS is thus\nfree to release the wakelock and return to normal operation (or to\nallow other apps to run their own idle services).\n\nCurrently the idle window granted to each idle service is ten minutes.\nThe OS is rather conservative about when these services are run; low\nbattery or any user activity will suppress them, and the OS will not\nchoose to run them particularly often.\n\nIdle services are granted their execution windows in round-robin\nfashion.\n\nBug 9680213\n\nChange-Id: Idd6f35940c938c31b94aa4269a67870abf7125b6\n"
    },
    {
      "commit": "c0877962b3dc49edb42aeda766593123c81613f1",
      "tree": "08c32d9014f41985d7c515168fc6cf195fd84521",
      "parents": [
        "5dadeba229a9e844ef9064b1b0d67756deb7e91e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 21 15:22:26 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 28 23:00:14 2014 +0000"
      },
      "message": "Adding the print and accessibility pacelables to framework.aidl\n\n1. There are a few parcelable classes related to printing and accessibility\n   which are public but not added in the framework.aidl list so third parties\n   cannot write aidl interfaces that pass these classes. As these classes\n   are public it is resonable for devepers to be able to pass them between\n   processes.\n\nChange-Id: I85da1de5198902b74f19d23e3fe16b45b4a11051\n"
    },
    {
      "commit": "ff288f7f57dfd7f12a6e8c36d9d46331077dbc03",
      "tree": "0a7bb2027da086281f8be712c99dc170b51410b2",
      "parents": [
        "ed6649f89f236ea9e665028bd33d6d804b906a92",
        "b7bba718a88e9baa843e51d9871129d8e682c0b0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Dec 19 10:55:17 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Dec 19 10:55:17 2013 -0800"
      },
      "message": "resolved conflicts for merge of b7bba718 to master\n\nChange-Id: Ibbac3f6e3eda0149ae9446d6baed1d1bee5138ac\n"
    },
    {
      "commit": "4a1cb22056112f7ffd5f4fad8b7a092b96e7cc7b",
      "tree": "2a30eb0760369a59905895e88f8325fbf9934414",
      "parents": [
        "3bcdbd6b2d96427d7cee835e9ed79aeed51de267"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 04 16:14:06 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 18 15:08:15 2013 -0800"
      },
      "message": "Pair ActivityStacks with Displays\n\n- Introduce concept of ActivityStacks residing on Displays and able\nto be decoupled and moved around.\n- Add a new interface, IActivityContainer for clients to handle\nActivityStacks.\n- Abandon ordering of stacks based on mStackState and instead use\nActivityDisplayInfo.stacks\u003cActivityStack\u003e ordering.\n\nProgress towards closing bug 12078972.\n\nChange-Id: I7785b61c26dc17f432a4803eebee07c7415fcc1f\n"
    },
    {
      "commit": "38a7ed05f8fed0aa81f7214d827875f9876ffbe1",
      "tree": "21326de7ea27d6cc69eaa8a9fd3db091f2ef2a4c",
      "parents": [
        "3732f8d078b69b76461a50ce7a5fa8c9a1a61a42"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Thu Nov 14 19:02:56 2013 -0800"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Mon Dec 09 14:41:01 2013 -0800"
      },
      "message": "Adding INfcUnlockSettings and NfcUnlock interface class.\n\nChange-Id: Ie55a5d4bb58c2944952fc84cce32d3573a3a1a22\n"
    },
    {
      "commit": "b33fe50a634e4fde635f7e662526db1c3e2cfa5c",
      "tree": "879eee3a2b7e7d84da31eec07eb0adbb2c1e4689",
      "parents": [
        "59595f7a3e8efcefc62bbcf8e085b6da6d8ea339",
        "dcbde1b02ad69c18509afd87974c72c3a22f45dd"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Dec 05 09:47:04 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 05 09:47:04 2013 -0800"
      },
      "message": "am dcbde1b0: Merge \"libcore_to_document and junit_to_document are no longer functions.\"\n\n* commit \u0027dcbde1b02ad69c18509afd87974c72c3a22f45dd\u0027:\n  libcore_to_document and junit_to_document are no longer functions.\n"
    },
    {
      "commit": "50a0fd50f7f76a76d068690e63194169da292215",
      "tree": "047df7122cc0db914c98aeb835ffc93513a5a4fd",
      "parents": [
        "453a5233086b216f2a95d0879954a2af39279095"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:58:59 2013 -0800"
      },
      "message": "libcore_to_document and junit_to_document are no longer functions.\n\nThey are evaluated only once in the corresponding export .mk file.\nThis fixes build log spam reported in:\nhttps://code.google.com/p/android/issues/detail?id\u003d63184\n\nChange-Id: I549eb052272bbdebef8fca697822f5eaa0fe5764\n"
    },
    {
      "commit": "c79d6a9bd6de724ec2357537ce8655f1845d481d",
      "tree": "d4465edd1e4a295ae49ffb81501ee15dc7632b95",
      "parents": [
        "c3c4d36df01631883a79163da841ca222497c9d3"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "message": "libcore_to_document and junit_to_document are no longer functions.\n\nThey are evaluated only once in the corresponding export .mk file.\nThis fixes build log spam reported in:\nhttps://code.google.com/p/android/issues/detail?id\u003d63184\n\nChange-Id: I549eb052272bbdebef8fca697822f5eaa0fe5764\n"
    },
    {
      "commit": "2fbe13dc63bea12ceddc4bf047058970bdc381c3",
      "tree": "6f8c8536c88997bf5dd935eeb51638df207f452f",
      "parents": [
        "9318944dd19ff5db04c286f869a8f130d3e305f9",
        "713e3853bf57410f389496c20db1fc3818b3d5d8"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat Nov 23 12:34:06 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 23 12:34:06 2013 -0800"
      },
      "message": "am 713e3853: am 0b492138: am 6000f1ed: Re-enable samples browser.\n\n* commit \u0027713e3853bf57410f389496c20db1fc3818b3d5d8\u0027:\n  Re-enable samples browser.\n"
    },
    {
      "commit": "0b492138c744299e695b6aeee24eebb880de1c7d",
      "tree": "e582ef3e2e39f8bbb5d8353862766514dbaf8975",
      "parents": [
        "a0501105723ac742114ee07bd610ddf5e2713c82",
        "6000f1ed3d402e3136df173d987c901cc3cc1ff2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat Nov 23 20:28:04 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 23 20:28:04 2013 +0000"
      },
      "message": "am 6000f1ed: Re-enable samples browser.\n\n* commit \u00276000f1ed3d402e3136df173d987c901cc3cc1ff2\u0027:\n  Re-enable samples browser.\n"
    },
    {
      "commit": "6000f1ed3d402e3136df173d987c901cc3cc1ff2",
      "tree": "0557a5c04a9d77be369a7adca4400c1438e9188a",
      "parents": [
        "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 14:01:48 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 14:01:48 2013 -0800"
      },
      "message": "Re-enable samples browser.\n\nChange-Id: I9d0c5966422ba0cf8bca576895f30679d40a19ab\n"
    },
    {
      "commit": "59aa4be0ec76f09446f08ba3e95e162af78b8db3",
      "tree": "b4739668e0b16bc7ad6b0152843552aa1766c0d8",
      "parents": [
        "39fa9b111958a9a5f43da114e926c832529da194",
        "a6703462926408fa83f41a2cb319e4f51fa7d4ca"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 11:03:29 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 11:03:29 2013 -0800"
      },
      "message": "am a6703462: am a0501105: am 9eaa9443: Disable samples browsing temporarily.\n\n* commit \u0027a6703462926408fa83f41a2cb319e4f51fa7d4ca\u0027:\n  Disable samples browsing temporarily.\n"
    },
    {
      "commit": "a0501105723ac742114ee07bd610ddf5e2713c82",
      "tree": "0353ca6728bb248423777658c3957ecc6ed3aadf",
      "parents": [
        "8b5da35670960586d5b41ee101026b89522ceb74",
        "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 18:55:28 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 18:55:28 2013 +0000"
      },
      "message": "am 9eaa9443: Disable samples browsing temporarily.\n\n* commit \u00279eaa94439121f6cb03bff8ecf0acbcbc74442f2d\u0027:\n  Disable samples browsing temporarily.\n"
    },
    {
      "commit": "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d",
      "tree": "8878d78f64ffbd32e6c842788e15ccf896bdcc75",
      "parents": [
        "1448d3cd81a685c68b0102e8303c0db4e6e5668f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:46:22 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:46:22 2013 -0800"
      },
      "message": "Disable samples browsing temporarily.\n\nChange-Id: I65fe533f1b43903d6605d17691ec142d062b6b5e\n"
    },
    {
      "commit": "39fa9b111958a9a5f43da114e926c832529da194",
      "tree": "32eb88870e44eda230ccc2e866c8f002d7900159",
      "parents": [
        "21430bd763d2e27ed1227432fe30323c9072538c",
        "3ee2c60e453e19b02b0ab52793045d2dd9a20912"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:45:47 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 10:45:47 2013 -0800"
      },
      "message": "am 3ee2c60e: am 8b5da356: am 1448d3cd: Merge \"Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\" into klp-docs\n\n* commit \u00273ee2c60e453e19b02b0ab52793045d2dd9a20912\u0027:\n  Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n"
    },
    {
      "commit": "8b5da35670960586d5b41ee101026b89522ceb74",
      "tree": "e582ef3e2e39f8bbb5d8353862766514dbaf8975",
      "parents": [
        "263c431017c51fc51c85454a0f9cc7979001a3c1",
        "1448d3cd81a685c68b0102e8303c0db4e6e5668f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 18:38:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 18:38:20 2013 +0000"
      },
      "message": "am 1448d3cd: Merge \"Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\" into klp-docs\n\n* commit \u00271448d3cd81a685c68b0102e8303c0db4e6e5668f\u0027:\n  Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n"
    },
    {
      "commit": "5c678cedb5970b1d7c4090b8e8c308c4978a3e01",
      "tree": "09da5206a6eb82542102ab7991bd836d493ef180",
      "parents": [
        "43eea0a640db07c4da05146f7e68eae567592bdb"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Nov 21 18:11:58 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Nov 21 18:39:57 2013 -0800"
      },
      "message": "Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n\nChange-Id: If59372a92f0572d54af0f2ed7f9f9e401fbce067\n"
    }
  ],
  "next": "7acec30ac7d5b2fba11757a2d2e3ad351be23441"
}
