)]}'
{
  "log": [
    {
      "commit": "4c9e57f156d3cbd86b38e9897dfdab81964efe90",
      "tree": "55cb749043c9dd147d3bdacb981f935cc0e2fe62",
      "parents": [
        "5e9a42588e986a7a2ab12de5d70adff5f2db9c5a",
        "3c784d6359f15a5451b670a18384e9ae3c9aa276"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Jun 03 10:03:46 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Jun 03 17:06:58 2014 +0000"
      },
      "message": "resolved conflicts for merge of ebe661c4 to master\n\nChange-Id: Ic25dc762ee43654b439de3ec237ead007bee3df4"
    },
    {
      "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": "f20d640fa2b155a971ddfe0965fc803a73b5e53c",
      "tree": "0b5d315ca1fe3cd40716c24761e857b3f5d185a6",
      "parents": [
        "1d4306991bd6c820313719eb72ec169082b71540"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat May 24 15:34:37 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat May 31 16:41:35 2014 -0700"
      },
      "message": "Restrictions Manager\n\nMechanism to register a provider for requesting an\nadministrator to respond to permission requests.\n\nRequest format and response format constants.\n\nDescription of manifest template for static restrictions.\nInt type introduced in RestrictionEntry.\n\nNeeds more javadoc and better description of manifest templates,\nincluding specifying the XML attributes.\n\nChange-Id: I5a654d364e98379fc60f73db2e06bf9a8310263d\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": "3afed57a7d8a6e9d9fcaaa483a3c3e3652e2199a",
      "tree": "69f82c8c68231034e180cb78d25d3ae6b3aea0ae",
      "parents": [
        "bbd8e6ffc600e078984cb68acf51c660c5c9fc81"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Wed May 21 15:22:12 2014 -0700"
      },
      "committer": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Wed May 28 03:36:36 2014 +0000"
      },
      "message": "Adding ITelecommService definition for Telecomm.\n\nUntil telecomm code moves into a system service, we need a way for\nother apps to call into it for call-related functionality.\n\nInitial implementation only has silenceRinger.\nThis is to be implemented by the telecomm code and used by\nTelephonyManager (until we have a TelecommManager).\n\nChange-Id: I9180797451dcb2e9029b20bed47f5d5cb8cddb9f\n(cherry picked from commit b895606acf18dbb050c9a32106b3c9c2e5111829)\n"
    },
    {
      "commit": "aae5886ad81ccbb823b3db4a9cecf26a4f2fe344",
      "tree": "a48c98740d0d7414f08748e1d12c1bcf319c6ba5",
      "parents": [
        "b00cb8b8c7c58843d568da6abcb5fea248cb8299",
        "3d9eb6a50ea017437c9e976cc61094b7da812ec1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 27 21:47:05 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 21:47:06 2014 +0000"
      },
      "message": "Merge \"Split frameworks/base using inclusion and exclusion rules.\""
    },
    {
      "commit": "c3a6e23e3f286271abbda0d99edee35d0ceb6692",
      "tree": "1b80bfff46a47e747be55ea56704fc3d2a66af2a",
      "parents": [
        "22bd1ff81320273bf901ec9934bc918536a3ede1",
        "c22dbb69194c8e8fe2a32326d1f37a738cad0904"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue May 27 04:08:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 27 04:08:51 2014 +0000"
      },
      "message": "am e32b2d32: Revert \"Revert \"Add physical TV input handling to TvInputManagerService\"\"\n\n* commit \u0027e32b2d32d7e4a492bb3038c7bc55988a908437a4\u0027:\n  Revert \"Revert \"Add physical TV input handling to TvInputManagerService\"\"\n"
    },
    {
      "commit": "c22dbb69194c8e8fe2a32326d1f37a738cad0904",
      "tree": "e677e7246c3c580b904d386624e10555aac9459c",
      "parents": [
        "41b170d6066cb52bb3e396c608b01f2981b95e5d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon May 26 02:26:04 2014 +0000"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue May 27 01:33:50 2014 +0000"
      },
      "message": "Revert \"Revert \"Add physical TV input handling to TvInputManagerService\"\"\n\nThis reverts commit 1940e197a8de186df5edf0b78e0907ae539bd215.\n\nBug: 14118245, Bug: 15197740\nChange-Id: Ia308f16d2ed8ec55112a4d21c180ccb97e8d7c6a\n"
    },
    {
      "commit": "82d96d5e21641be086108838a70ab7b41374c0f1",
      "tree": "815b1e8ebf8d774e25d66a921b05040dd38ad5a4",
      "parents": [
        "4d22b4a016684c6a1061ed6d6dda6c52ee5f256b",
        "70aa0c6db3cf89adafe3e1946e3713c18b0de8f0"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sat May 24 19:03:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 24 19:03:02 2014 +0000"
      },
      "message": "Merge \"Revert \"Add physical TV input handling to TvInputManagerService\"\""
    },
    {
      "commit": "70aa0c6db3cf89adafe3e1946e3713c18b0de8f0",
      "tree": "1f9890f9c8a6f0a7ffe237da4910efba3798c2d0",
      "parents": [
        "1f589759969f170fe58303d495b1a3e096c91780"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sat May 24 19:02:50 2014 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sat May 24 19:02:50 2014 +0000"
      },
      "message": "Revert \"Add physical TV input handling to TvInputManagerService\"\n\nBug: 15197740\n\nThis reverts commit c8324a8e70d9f617c92f49e7c0b3e2484d9190fd.\n\nChange-Id: Ie7b5405e929b5903f43188c3445fe9d24ecf92c2\n"
    },
    {
      "commit": "5d038b9d6f2ab1eedb6825bee0c241b41df7767e",
      "tree": "5c3f6aaf842cfbe76db46817438b1ed99a0192af",
      "parents": [
        "a0a580b606a16d4bb1cb914b6b87bf1fef71ff49",
        "1f589759969f170fe58303d495b1a3e096c91780"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Sat May 24 15:13:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 24 15:13:47 2014 +0000"
      },
      "message": "Merge \"Add physical TV input handling to TvInputManagerService\""
    },
    {
      "commit": "3d9eb6a50ea017437c9e976cc61094b7da812ec1",
      "tree": "f7612463eb97ef4d671e93c80114e21d2b7a3bc8",
      "parents": [
        "6000a6c663467809cd89bb4e98b4e112553819da"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 23 18:36:38 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 23 18:57:18 2014 -0700"
      },
      "message": "Split frameworks/base using inclusion and exclusion rules.\n\nChange-Id: I76df8b6c5482f9a154e9812367cfe5a385141605\n"
    },
    {
      "commit": "fa380e982e41b0dcbbcf2201803abf26808016b5",
      "tree": "8d418aaa3b36df0b88f98c7c3c6ce1c84b3d2e9e",
      "parents": [
        "cd3a8245489fa36c528b075efe99a147cf4f6785"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 19 13:46:29 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 23 16:41:09 2014 -0700"
      },
      "message": "DO NOT MERGE - Run the task manager service at startup\n\nAlso moves most of it into android.app.task rather than android.content.\n\n(Cherrypick from master)\n\nChange-Id: Ic07a664bf54bc3e40aa0b892946edba4bf37262a\n"
    },
    {
      "commit": "8f64f80888ab6cc2a4e3f8a65d8b54650e07fc5c",
      "tree": "5d41b2d88706d9092e9df02c6b55b2bc45c12980",
      "parents": [
        "8c1244b98cd105ee4542094cbc709dba346f2c45"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 19 13:46:29 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 23 16:07:45 2014 -0700"
      },
      "message": "Run the task manager service at startup\n\nAlso moves most of it into android.app.task rather than android.content.\n\nBug 14993295\nBug 14997851\n\nChange-Id: I9b5738d026ea2526cdfbc96d0239c74687c51611\n"
    },
    {
      "commit": "f176e3be88ffeaf806acc6e95b131789018bcaf5",
      "tree": "b13cc5ad570380ec0d89e1c48a29158076ee463e",
      "parents": [
        "215e25f2daad3b980fb5f0385e00ecd07248c1b6",
        "98157e8dbb29bef0d10899d88e87a5c1f8dcd3dc"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri May 23 13:04:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 23 13:04:10 2014 +0000"
      },
      "message": "am fe3a59cf: Merge \"Add a cache to LockPatternUtils\" into lmp-preview-dev\n\n* commit \u0027fe3a59cfa476fd22006f585b1c5ae8624d5191df\u0027:\n  Add a cache to LockPatternUtils\n"
    },
    {
      "commit": "4f7884542ce8fba5bfed01ed834a32e6d3e2dea5",
      "tree": "d367df561f85cdf89e30ba0dc681713225dd1d63",
      "parents": [
        "42b30e1b832df5bbf109db2f4f864f8ba4cfd44a"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu May 22 20:45:59 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri May 23 14:38:33 2014 +0200"
      },
      "message": "Add a cache to LockPatternUtils\n\nCaches responses from LockSettingsService in the client process.\n\nBug: 15088101\nChange-Id: If77c5ec45f52a02c800d50cb8550bfcb180f301d\n"
    },
    {
      "commit": "1f589759969f170fe58303d495b1a3e096c91780",
      "tree": "581d0afe342e6175ed8e42bb21480a95cac4c2fc",
      "parents": [
        "7c28c3663470ce5eb818cfa2ce4a993e4bae8f33"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Mar 05 05:52:28 2014 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri May 23 16:15:58 2014 +0900"
      },
      "message": "Add physical TV input handling to TvInputManagerService\n\nRemaining work:\n- Support buffer producer profile\n- Implement communication with HdmiControlService such as input switch\nand key event passing\n\nBug: 14118245\nChange-Id: I01e6a8b5374a0cbe6f2ef1feabe768fd3c65480a\n"
    },
    {
      "commit": "5c013261a941fabfb33df4f8d4e3799fab5e7a3e",
      "tree": "fdfd93b945b838ff5dcec77b0c62f181a112600b",
      "parents": [
        "567d3f461b4b2363eeb247977b57cfbdce34a164",
        "6848f72a49f05509e6bc95a8a73c9dcd629af62c"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Thu May 22 21:21:41 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 22 21:21:41 2014 +0000"
      },
      "message": "Merge \"Adding ITelecommService definition for Telecomm.\""
    },
    {
      "commit": "08a7b76441dd3dbdd9011201b287b6057d37a11a",
      "tree": "5c9853b9a3edc094df16bae4d6bfe971cf68ea63",
      "parents": [
        "4fae8e165b3e10d8365ab9c08b13704d57e119c7"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Thu May 22 12:12:12 2014 +0200"
      },
      "committer": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Thu May 22 14:22:26 2014 +0200"
      },
      "message": "Move more packages to framework2\n\nChange-Id: Ib8e3c915479eb5bc029256934d522f3714071bc2\n"
    },
    {
      "commit": "e2c7a764644424311930b6f7c3681d40b4f2417c",
      "tree": "de395292f4c06e4f2e902a3b2359ec0c5c70ca49",
      "parents": [
        "d0045026b6a1fe6eba0d7a20fa3c8004d6d3ae1d",
        "4e5aa2cee69f6791f8001aeb1fc12389863fab8f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu May 22 05:54:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 22 05:54:57 2014 +0000"
      },
      "message": "Merge \"Add an EthernetManager.\""
    },
    {
      "commit": "6848f72a49f05509e6bc95a8a73c9dcd629af62c",
      "tree": "cb377cd9f7c3250dad6b7fea99ad2b0e42a5cc59",
      "parents": [
        "b82bbf6113a5b72631f1ee727d98d35a2b215121"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Wed May 21 15:22:12 2014 -0700"
      },
      "committer": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Wed May 21 22:49:09 2014 -0700"
      },
      "message": "Adding ITelecommService definition for Telecomm.\n\nUntil telecomm code moves into a system service, we need a way for\nother apps to call into it for call-related functionality.\n\nInitial implementation only has silenceRinger.\nThis is to be implemented by the telecomm code and used by\nTelephonyManager (until we have a TelecommManager).\n\nChange-Id: I9180797451dcb2e9029b20bed47f5d5cb8cddb9f\n"
    },
    {
      "commit": "dbbceffd9b7fc812da9a5b0a1269d43f748c37b8",
      "tree": "0e1517ae26a520f8d84ae121c86f4e2659141864",
      "parents": [
        "0c88b340acb699f125e3f2f8bdacc1409138a82d",
        "78d695d8ba532214b02e7f18e0ccf89cf099163d"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 22 03:19:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 22 03:19:23 2014 +0000"
      },
      "message": "Merge \"Add feature actions for HDMI-CEC playback device\""
    },
    {
      "commit": "78d695d8ba532214b02e7f18e0ccf89cf099163d",
      "tree": "c9d0b207e995dad311af7d270a881358ddda6891",
      "parents": [
        "e1a2e26a03e76279c9b03bdd81f92df70f8707e7"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Tue May 13 16:36:15 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 22 11:15:51 2014 +0900"
      },
      "message": "Add feature actions for HDMI-CEC playback device\n\n- OneTouchPlayAction\n- DevicePowerStatusAction\n- addHotplugEventListener\n- removeHotplugEventListener\n\nChange-Id: Ia7f31507ca62127efbacbbfe07ab43ba1f9bd4cf\n"
    },
    {
      "commit": "4e5aa2cee69f6791f8001aeb1fc12389863fab8f",
      "tree": "7e44e7b3fd721e2f75e94fd4954b42f8feb30e21",
      "parents": [
        "3c44c99af500601fbb8ba6b8f71e5d930ca5e269"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 21 16:23:43 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 21 16:41:24 2014 -0700"
      },
      "message": "Add an EthernetManager.\n\nThe implementation will live in frameworks/opt/net/ethernet.\n\nBug: 7606609\nBug: 8687763\nBug: 14993642\nBug: 14981801\nChange-Id: Ic771e268b0c78f0fc32f46af6fe0dd7c634a426e\n"
    },
    {
      "commit": "3346a802087f621c6441bc512dfcc17b07143fc6",
      "tree": "8c912d2e1a6e350193ad8565cb7a5ad5957849b5",
      "parents": [
        "c84947db56ce9e6e11541f055a2cf23332552fb7"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue May 20 16:25:37 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed May 21 09:58:41 2014 -0400"
      },
      "message": "VolumeZen: SystemUI now hosts the volume dialog.\n\n- Allow SystemUI to set the volume controller interface using\n  a new binder call to audio service.\n- Remove VolumePanel\u0027s dependency on AudioService.\n- Host the base VolumePanel in the SystemUI process.\n\nChange-Id: I095d5a1a579d42b68d0f81abb4087bd0c754b876\n"
    },
    {
      "commit": "7fee7232ee2ae45fb3cd4fcce314e8f1101ae8db",
      "tree": "3133625ec194cb59ce0f8f37f47ac54369ca4d34",
      "parents": [
        "193909da71a342519ad640d157c122a38b6d1a3e"
      ],
      "author": {
        "name": "Roger Chang",
        "email": "roger.chang@mediatek.com",
        "time": "Thu May 15 14:46:49 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue May 20 18:25:56 2014 -0700"
      },
      "message": "Hotspot 2.0 framework - add implementation\n\nBug: 5485670\nChange-Id: I4d0f728f4c20676232f2d61bbf49691f6e21a100\n"
    },
    {
      "commit": "62b25a5bf0750483f36ac79c88177ee2ab630f8e",
      "tree": "f69b7a88474a84d726ff55507fe082c272e3c6f2",
      "parents": [
        "e4ca30503cb428f030fe52f429dac0119acfa170"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Tue May 20 16:22:41 2014 +0000"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Tue May 20 16:59:34 2014 +0000"
      },
      "message": "Revert \"Adding INfcUnlockSettings and NfcUnlock interface class.\"\n\nThis will be re-added as a Trustlet in a subsequent CL.\n\nThis reverts commit 38a7ed05f8fed0aa81f7214d827875f9876ffbe1.\n\nChange-Id: I5aa36df42a7751f165b4ef184e0cda57e5568b59\n"
    },
    {
      "commit": "94a873de0f6d2e1579bc2634712d9212fbe87dc8",
      "tree": "2484069adf72364fecad01f834380ce156eb5e88",
      "parents": [
        "2631da82aeedc18a79d64b7bf78b32b8de0e105b",
        "14816d669b29607808e6d0ee72c602d340692d0e"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Mon May 19 15:18:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 19 15:18:51 2014 +0000"
      },
      "message": "Merge \"Remove methods added in TelephonyManager.\""
    },
    {
      "commit": "fc9c89f9aa53c61b3e832749f0a9e5f9ca86eed9",
      "tree": "ec0cab2cacea906b951a6e7b51223910f3b80062",
      "parents": [
        "a25a1603407cd7b8699150627be91bfc66a4e237",
        "91120c541ac0c8c5e256b75759c884b4d6d664fc"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Sun May 18 22:50:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun May 18 22:50:16 2014 +0000"
      },
      "message": "Merge \"HdmiControlManager with HdmiPlaybackClient API definition\""
    },
    {
      "commit": "91120c541ac0c8c5e256b75759c884b4d6d664fc",
      "tree": "c5f4e1d9010786e43676d0eb15a7e742b10e7506",
      "parents": [
        "677a9f24962eee95ad959e587b193da93d8872d1"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 08 17:12:51 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Mon May 19 07:46:26 2014 +0900"
      },
      "message": "HdmiControlManager with HdmiPlaybackClient API definition\n\nThis is a rewrite of HdmiCecManager that exposes API for CEC Playback\ndevice control. HdmiCecManager will be removed together with\nHdmiCecService once the migration is completed.\n\nReplaced direct access to CEC commands with the following 2 API:\n- oneTouchPlay\n- queryDisplayStatus\n\nEach method requires communication with other device on CEC bus,\nhence might take some time to finish. The result at the end of\nprotocol exchange is reported through a callback provided as a\nparameter to the method.\n\nThe callback is based on interface not abstract class since\nit has only one method \u0027onComplete\u0027.\n\nChange-Id: I41e9d4571f890303282a79a803c86530d0b46974\n"
    },
    {
      "commit": "a4864472313208e4f1de02f45d3eadad237c54af",
      "tree": "f112d0faf7a8e91d6d891f189d7bf8f883ff8104",
      "parents": [
        "1ab9cc8029f723cc6198c013d9df1477fad2d3f9"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Thu Apr 10 11:45:42 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Sun May 18 09:41:35 2014 -0700"
      },
      "message": "Hotspot 2.0 framework APIs -- initial implementation\n\nCherry-picked from klp-wireless-dev-mirror\nSHA1: e73969fac45aaca72528226dc8c0c5e54fb2cdd4\n\nBug: 5485670\nChange-Id: If3250a2fae181a3774d3158e341220006ad6ebe5\n"
    },
    {
      "commit": "14816d669b29607808e6d0ee72c602d340692d0e",
      "tree": "75658421a2f53250b5dd0037da56c152048a9726",
      "parents": [
        "4455f54b5ba98da345c64de1614b0704022d272b"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Fri May 16 17:52:23 2014 -0700"
      },
      "committer": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Fri May 16 17:58:09 2014 -0700"
      },
      "message": "Remove methods added in TelephonyManager.\n\nChange-Id: I771502ab76dfc24eb19b9ff58b029bea45d6832c\n"
    },
    {
      "commit": "e8b718c264a2752c475d3022d3cfd6d8dbbce494",
      "tree": "10f406653d764143ed395b786b054eac1512c80a",
      "parents": [
        "9edfec8b4527c62f594adb275e49f6d6ca945c05",
        "3a44f3f1b446315ef894e01d2ab9b5388c2bd8c4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 15 01:37:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 15 01:37:35 2014 +0000"
      },
      "message": "Merge \"Initial support for split APKs, PackageInstaller.\""
    },
    {
      "commit": "3a44f3f1b446315ef894e01d2ab9b5388c2bd8c4",
      "tree": "2d640524ab41be6368e3a5e911efc1bc0cd1255a",
      "parents": [
        "89b77cded638cab56a002c28da4d09f144f7c6cb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 28 17:36:31 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed May 14 18:12:24 2014 -0700"
      },
      "message": "Initial support for split APKs, PackageInstaller.\n\nDefines a new PackageInstaller class that will be used for installing\nand upgrading packages.  An application desiring to install an\napplication creates a session, stages one or more package files in\nthat session, and then kicks off the install.\n\nPreviously, PackageManager would always make its own copy of a package\nbefore inspecting it, to ensure the data could be trusted.  This new\nsession concept allows the installer to write package data directly to\nits final resting place on disk, reducing disk I/O and footprint\nrequirements.  Writes are directed through an intermediate pipe\nto ensure we can prevent mutations once an install has been initiated.\nAlso uses fallocate() internally to support optimal ext4 block\nallocation using extents to reduce fragmentation.\n\nSessions are also the way we support installing multiple \"split\" APKs\nin a single atomic operation.  For a set of packages to form a valid\napplication, they must have exactly the same package name, version\ncode, and certificates.  A session can also be used to add a small\nhandful of splits to an application by inheriting existing packages\nwhen not performing a full install.\n\nAdd PackageParser support for extracting split names and certificates.\n\nBug: 14975160\nChange-Id: I23d1bf4fbeb9f99a8c83be0c458900a0f0d1bccc\n"
    },
    {
      "commit": "4fe8628006e7754f2ddeb212c2672298eedcd83d",
      "tree": "3d27c92da9f9250cf17c67b45e708862ce41e604",
      "parents": [
        "e7db83426e9979a0b6ecf124a013dc944dd3ccce",
        "1147c406515bbfbcb7dbd750f81c7a5de928c5c6"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 15 01:05:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 15 01:05:22 2014 +0000"
      },
      "message": "Merge \"Adding method for applications to query their own tasks.  (Bug 14627210)\""
    },
    {
      "commit": "1147c406515bbfbcb7dbd750f81c7a5de928c5c6",
      "tree": "23907ba99f99780028fc82bb254f42cd6b11b5dc",
      "parents": [
        "9e317da9364bae6a7d40c94cd46748b2255c7e1e"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed May 14 11:05:00 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed May 14 12:11:01 2014 -0700"
      },
      "message": "Adding method for applications to query their own tasks.  (Bug 14627210)\n\nChange-Id: I33299bf59784849171b19af4a5be2ab7665581c5\n"
    },
    {
      "commit": "d9225ba40472848fb1dccd4493f1c9c4b37bc4b8",
      "tree": "3d3aced6b2d731357ff5e89170af09439de0411a",
      "parents": [
        "3783169c10af4a741b1ea0908eb002976f4ba420",
        "6af7d62df8dcf991d41b341ef196cdeddbc631a2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 08 22:04:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 08 22:04:02 2014 +0000"
      },
      "message": "am 60549e20: Merge \"Usage stats!\"\n\n* commit \u002760549e202fd57679b0ead98224264c3308106ebd\u0027:\n  Usage stats!\n"
    },
    {
      "commit": "e22b3b143240f0f18e3d6d3c06686ad3c23b131b",
      "tree": "5e4da4b288868cd4062bc62295b42d82a36aec3c",
      "parents": [
        "ed32c842c6d0cc31587256bfbfc2693588ee556c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 07 18:06:44 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 08 13:58:13 2014 -0700"
      },
      "message": "Usage stats!\n\nStart reworking the usage stats service to be able\nto have an API we can publish.\n\nThe basic information it keeps is still the same, though\nthat will be changing in the future.  The one big addition\nhere is that we are also now collecting configuration usage\nstats.\n\nAlso introduce the start of an access model for usage stats,\nusing app ops.  There is an new app op that gives an application\naccess to usage stats even if it normally wouldn\u0027t have it,\ndisabled by default.\n\nChange-Id: I6ead28e18a7f08eafd057d6ff37dd9cb216358f4\n"
    },
    {
      "commit": "6f5494c7490b7724b30f8a71e2a37e55954038a6",
      "tree": "216641d04a911389146b073227934cd506ecc111",
      "parents": [
        "327f0add841172d973e21e64fba76f24d9a8c94f",
        "b788d4eb019194ddcc63228ecee7b90e773af9e8"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Thu May 08 08:45:04 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 08 08:45:04 2014 +0000"
      },
      "message": "am c5fe3c17: Merge \"Initial implementation of WifiScanner\"\n\n* commit \u0027c5fe3c179c9f82cacaf0ac082f49de9f9c31708c\u0027:\n  Initial implementation of WifiScanner\n"
    },
    {
      "commit": "011e1b35a64180d6f0234af8a3c2b70777eb9f39",
      "tree": "79c54cad4f30c493f587e4ac0fb1e89bbaecc714",
      "parents": [
        "c4bfcc12e92fe3d8f6f1dad0c12176d6dae3131d"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed May 07 21:09:11 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed May 07 21:14:24 2014 -0700"
      },
      "message": "Initial implementation of WifiScanner\n\nThis change implements basic functionality of WifiScanner. Following\nfunctionality is enabled\n\n1. Scanning - specify a list of channels to scan\n2. Significant change detection\n3. AP hotlist\n\nChange-Id: Ieef75b96bdbbd3c7d9b9e698bd16e64d3b465254\n"
    },
    {
      "commit": "dd0a28f80d455bffb22ef957714478350cebe054",
      "tree": "15240eb2f6e75b5432620ce45d350119fc3c033e",
      "parents": [
        "4534585328f08049dd06e633cba778831950f6d4",
        "b853fd064e0772d853a35b7f243ffbcfb9c0445f"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 07 18:40:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 18:40:24 2014 +0000"
      },
      "message": "am 68dca221: Merge \"Check doc comments when you run update-api.\"\n\n* commit \u002768dca221e2457dcf813a6308e504e9f67d69a6ca\u0027:\n  Check doc comments when you run update-api.\n"
    },
    {
      "commit": "ed896004d678d32f59fd316825627682b460d86e",
      "tree": "bb3f015667d01b895dd6c1c7a31be3957fcaee78",
      "parents": [
        "77f5a0f5177cd6fb215535cdd9755702204d7ba0"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 07 10:26:44 2014 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 07 10:26:44 2014 -0700"
      },
      "message": "Check doc comments when you run update-api.\n\nBug: 14614668\nChange-Id: I7ae8de19b51aeaeef70e2ba8bfa268ec70dfaf64\n"
    },
    {
      "commit": "353bda0985af2c250f3a9f1a5e4eae279d1dea0d",
      "tree": "cf18ea2b79a9b546af3e400e8f59a3ff321e6c49",
      "parents": [
        "88cf32e3006da27b10151f1dfb3645976f26bde2",
        "08fa40c5cb5229b7969b2a5146855a337870f45a"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 07 02:32:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 02:32:29 2014 +0000"
      },
      "message": "am d031e36c: First pass at adding FingerprintManagerService\n\n* commit \u0027d031e36c433c94fc6da3732be7e61aa906e45ec4\u0027:\n  First pass at adding FingerprintManagerService\n"
    },
    {
      "commit": "08fa40c5cb5229b7969b2a5146855a337870f45a",
      "tree": "7020af1c292cfc0312973d56d4037b78ee941c72",
      "parents": [
        "6c8e788e37dea5db682e2ad405f8e1b23990765e"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Apr 29 18:18:47 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 07 02:27:21 2014 +0000"
      },
      "message": "First pass at adding FingerprintManagerService\n\nThis adds a new service for monitoring and enrolling fingerprints\nto the platform.\n\nFixed documentation links.\n\nChange-Id: I66013be5e09be9c5f9746c46aacf32d3e26c3b73\n"
    },
    {
      "commit": "ed433f5b88f89b0871b9db5ecb2ad56863b08276",
      "tree": "f3ee39df7256b4229579554fc4537c4c71228b8c",
      "parents": [
        "1ae4c50af767db634b09ce16bbd6fce23293a4cc",
        "5b8b92002230525317d5832a84d7813467594967"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 20:21:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 02 20:21:00 2014 +0000"
      },
      "message": "am 89094f50: Merge \"Make GET_TASKS signature|system.\"\n\n* commit \u002789094f504091775d1f7ff68cf9cde11c87d2417a\u0027:\n  Make GET_TASKS signature|system.\n"
    },
    {
      "commit": "09233289624a85093b1d99e4a6a149bf09059d8d",
      "tree": "ced7eefedc4db60d4134aee3616e9b043cd950d7",
      "parents": [
        "201a24f652745c4bcbe7e26f0ffea973bcb615b3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 30 11:33:59 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 11:51:26 2014 -0700"
      },
      "message": "Make GET_TASKS signature|system.\n\nNormal apps can\u0027t hold it now.  If they try to use\ngetRecentTasks() or getRunningTasks() without the permission,\nthey will only see their own tasks and home in the list.\n\nAlso took this opportunity to eradicate all of the old pending\nthumbnail stuff.\n\nChange-Id: I6dc52a06221c78097162e4a8b482027b798bf3ee\n"
    },
    {
      "commit": "8319d99a346f53774fa7cbb51ed1fea4383e6a4c",
      "tree": "ffe8def6a1edab15919725dfd2d3a24809c7df6d",
      "parents": [
        "27339f21fcfc9b46215834facda17ca908985084",
        "4cd4110f20c2fcf8feaf04414e60b15f5801af4f"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Fri May 02 15:37:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 02 15:37:00 2014 +0000"
      },
      "message": "am 9e35d785: Merge \"API for network cache subsystems.\"\n\n* commit \u00279e35d785d00a3dd219f08cb5bdf5d3c525837619\u0027:\n  API for network cache subsystems.\n"
    },
    {
      "commit": "4cd4110f20c2fcf8feaf04414e60b15f5801af4f",
      "tree": "c0ae49d460540fb10e78cd4d51481f348ec8870a",
      "parents": [
        "59b5a356b828fe60ea2874b0680a1bf7c84809a1",
        "14f1ec05b2add5ee051c0d2e7c7c3b36a6e77b92"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Fri May 02 15:33:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 02 15:33:36 2014 +0000"
      },
      "message": "Merge \"API for network cache subsystems.\""
    },
    {
      "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": "14f1ec05b2add5ee051c0d2e7c7c3b36a6e77b92",
      "tree": "c0be4a0961f6a5f1c4974c6121a56dc54cb2e9d9",
      "parents": [
        "76b81c722135f496935dd270e7c5989f8b9472e3"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Tue Apr 29 11:58:26 2014 -0700"
      },
      "committer": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Wed Apr 30 17:50:46 2014 -0700"
      },
      "message": "API for network cache subsystems.\n\nA network subsystem (e.g. Wi-Fi) will be responsible for implementing\nINetworkScoreCache. NetworkScoreService will load caches for each\nconfigured network subsystem. When it receives a call to update\nscores, it will separate the networks by type and call updateScores on\nthe appropriate INetworkScoreCache.\n\nEach subsystem will also be responsible for requesting scores for new\nnetworks by calling NetworkScoreManager#requestScores.\n\nBug: 14408144\nBug: 14137255\nChange-Id: I76e5e5205bc359c39d6b9c1782126fb7f465cd96\n"
    },
    {
      "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"
    }
  ],
  "next": "77b987f1a1bb6028a871de01065b94c4cfff0b5c"
}
