)]}'
{
  "log": [
    {
      "commit": "5592a725dd89e433191d3dd835ed99f38a3de474",
      "tree": "2981f28058bd7aec8d49b041a67d18c70feadfd5",
      "parents": [
        "937c4dbb1fdc1afcdc3c4b57d6799d1f49acf9f0",
        "beacf8d64c237346ea431a267c5d413e814234b5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 11 01:18:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 10 22:31:57 2014 +0000"
      },
      "message": "Merge \"Don\u0027t enable Ethernet on the emulator.\" into lmp-preview-dev"
    },
    {
      "commit": "95981dc8ad08002bab932cefcb6b07c6944491f5",
      "tree": "396cced3f611d68c538292dd71cb9391f63fde7b",
      "parents": [
        "46919f358390ad40e19259d12ef04b6898b9e4a4",
        "759275d9da1e78cf9bffbd28bb1d585fa3257aaa"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Jun 10 23:22:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 10 22:06:31 2014 +0000"
      },
      "message": "Merge \"Fix battery controller non-fire bug\" into lmp-preview-dev"
    },
    {
      "commit": "759275d9da1e78cf9bffbd28bb1d585fa3257aaa",
      "tree": "6425999bf8c45817628d7cab662230d7a7b4c383",
      "parents": [
        "488662c5700b6fc47d53bace9fd74166b372566e"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Jun 10 12:59:29 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Jun 10 16:13:06 2014 -0700"
      },
      "message": "Fix battery controller non-fire bug\n\nReceiver wasn\u0027t registered to listen for the action coming\nback from the Alarm Manager.\nAlso, if a task starts being tracked by the battery controller\nand the device is on power, the batt. controller will notify\nthe scheduler as such.\nAdded dumpsys for battery controller to help debugging.\nChange-Id: I7ce305b816aea69e8d05a3daf23124c163546788\n"
    },
    {
      "commit": "46919f358390ad40e19259d12ef04b6898b9e4a4",
      "tree": "ffe99cc9278d2fe98dbe70101c0ec89b638767e1",
      "parents": [
        "ce3d6c4c0201f136d9b89ea224aa10b86faef4da"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Jun 10 16:06:13 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Jun 10 16:11:08 2014 -0700"
      },
      "message": "Fix build.\n\nTwo tests were breaking the build.\n\nChange-Id: If424a552d3fedb912fa94870b88c60dc3750b69a\n"
    },
    {
      "commit": "b7b70f0f99f2b8e51e03fa55c5005e62f7fd1447",
      "tree": "198685ba87dd2032c5c718834e04d9e610770ada",
      "parents": [
        "e9ed3707b234c893622aec3ddecbf2f9d41d1454"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 10 15:20:49 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 10 15:20:49 2014 -0700"
      },
      "message": "Fix build\n\nChange-Id: I339f7f1ab82af699ee34c3baf824d0278477a4cf\n"
    },
    {
      "commit": "7060b04f6d92351b67222e636ab378a0273bf3e7",
      "tree": "82fce1e04dd58a5d79895d0869b3b0adeffbb417",
      "parents": [
        "6d7a25f317be60ae8a4d8806e517052be2398753"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 09 19:50:00 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 10 12:51:55 2014 -0700"
      },
      "message": "Out with the old; in with the new\n\nSwitch to the official \"JobScheduler\" etc naming.\n\nBug 14997851\n\nChange-Id: I73a61aaa9af0740c114d08188bd97c52f3ac86b7\n"
    },
    {
      "commit": "8f70744221b739f749f4e5fecff53083ef1d075a",
      "tree": "64f89c34f1d8ee0dda45a252ea9888a5090a2d9f",
      "parents": [
        "ac383e52a9c76dcc1a14a82848abb49b81c49f99"
      ],
      "author": {
        "name": "Adam Connors",
        "email": "adamconnors@google.com",
        "time": "Thu Jun 05 10:36:01 2014 +0100"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Tue Jun 10 11:39:31 2014 +0000"
      },
      "message": "DO NOT MERGE : Allow system process to call getApplicationBlockedAsUser\n\nMDMs in the managed profile needs to be able to call\nDPM.isApplicationBlocked without the INTERACT_ACROSS_USERS\npermission. DevicePolicyManager checks for appropriate\nPROFILE_OWNER permission and then removes callerId, so this\nchange is needed to prevent a spurious security exception.\n\nBug: 14400206\nChange-Id: Idd1bda6bb234f6cb7cb78a885ae2d7cc5cca4890\n(cherry picked from commit c11c67b3e117b4fec3245f87b6d510461c1f8323)"
    },
    {
      "commit": "ac383e52a9c76dcc1a14a82848abb49b81c49f99",
      "tree": "f85946406a22341d0202638e0928023d9d3c7c96",
      "parents": [
        "9a9d1d5ad2591f04881a401da0ad89a95eeddd00"
      ],
      "author": {
        "name": "Adam Connors",
        "email": "adamconnors@google.com",
        "time": "Mon Jun 09 13:55:47 2014 +0100"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Tue Jun 10 10:24:14 2014 +0000"
      },
      "message": "DO NOT MERGE : Api review: Make ACTION_MANAGED_PROFILE_REMOVED registered only.\n\nAnd update the javadoc to explain use-case.\n\nBug: 15025562\nChange-Id: I8eb2666c8480f873e042687223b1a1f82e7919c9"
    },
    {
      "commit": "beacf8d64c237346ea431a267c5d413e814234b5",
      "tree": "7315da5e757d62807aaa8c4c7acc97dc84d80978",
      "parents": [
        "465c5de4ee3df861dd1ad0b71ca40f3daeb9cbee"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 10 14:51:30 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 10 14:53:22 2014 +0900"
      },
      "message": "Don\u0027t enable Ethernet on the emulator.\n\nDon\u0027t start the Ethernet service on the emulator because it\ninterferes with qemu\u0027s SLIRP emulation, which uses IPv4 over\neth0.\n\nBug: 15341003\nChange-Id: I4041a17b19a4861cae4fbf47ab5e05b007385e19\n"
    },
    {
      "commit": "df8e542a8a638c18074221f47c4e4afcd3502810",
      "tree": "d95848a78bba19bcb3e133aa103759d4a654210d",
      "parents": [
        "d478a3a0d8af2bf690c07cdfeb69a80faf2f29e5",
        "f357c0ca514d73273a18b3896e565b2272e608ad"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jun 10 01:29:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 10 01:29:43 2014 +0000"
      },
      "message": "Merge \"Redefine FLAG_ACTIVITY_NEW_DOCUMENT without NEW_TASK\" into lmp-preview-dev"
    },
    {
      "commit": "f357c0ca514d73273a18b3896e565b2272e608ad",
      "tree": "8aa0acba24ca92fd90c23ea5856fb8d34ec18e49",
      "parents": [
        "f43cea009447cb2d3741de94c93c28e2fd413a43"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 09 09:23:27 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 09 18:09:33 2014 -0700"
      },
      "message": "Redefine FLAG_ACTIVITY_NEW_DOCUMENT without NEW_TASK\n\nChange definition of FLAG_ACTIVITY_NEW_DOCUMENT from\nFLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET to\nFLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET alone.\n\nAlso add new documentLaunchMode of \"never\" to allow activity\nwriters to keep their activity from being launched in document mode.\n\nFixes bug 15468528.\n\nChange-Id: Ied11adf97e85c5d3f99f4c0bbbb4a2905dcfb24e\n"
    },
    {
      "commit": "115afdadb5863a02f0b0daefcc0511bfd35b531e",
      "tree": "63fe6ade57e00de390c3d490b6a61875e5c161aa",
      "parents": [
        "5553aeb2aeee88929b11ee3bbf8e02da1e9368bd"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 06 19:06:26 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 09 17:49:50 2014 -0700"
      },
      "message": "Switch framework to using new scheduled-work API\n\nAlso add the intended permission-use enforcement to said API.\n\nBug 14994893\nBug 14993295\n\nChange-Id: I5a3ffd32d0702c68f4ef6da68f7fa6e9de674380\n"
    },
    {
      "commit": "effacfa75bd9c2ebc889a7bc4f002c07f82f4c31",
      "tree": "ebf6924fa6222a337da7893ab788a859379f08b7",
      "parents": [
        "6fffd2b85469d2b055dbb68f5f28b7c58da2fc3d"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 20:56:40 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Jun 09 17:18:11 2014 -0700"
      },
      "message": "Add OnNetworkActive to TaskManager and simplify locking.\n\nBug: 14993295\nHooks up a ConnectivityManager.NetworkActiveListener.\n    \nPreviously was using 3 locks where 1 would suffice,\nnegligible to no performance issues b/c most of the previous locks\nwere nested.\n\nAdded OnNetworkActiveListener so that the ConnectivityController can kick of\ntasks when it knows that the network is active.\n\nFixed some bugs that stopped timecontroller from executing tasks.\n\nRequesting a retry will not add a deadline to that task. However backed-off\ntasks are run as soon as they are ready, subject to their constraints.\n\nAdded receiver to listen for package removal and user removal, which will\ndelete any outstanding jobs for that uid.\n\nChange-Id: I4c4523af558b927f19b8a215878fcc7198abb93f\n"
    },
    {
      "commit": "508a8a0ab4c8172a8b28abf526a6cc331fa8e926",
      "tree": "6fb6a8248480b342ab0760db8e755a2c5f8c0766",
      "parents": [
        "a3d81885566f79b0e21438bd69634cc53a80918b",
        "13b0241248716b126a538457828a964e86109d58"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Jun 09 20:23:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 09 20:23:10 2014 +0000"
      },
      "message": "Merge \"Add test app for JobScheduler\" into lmp-preview-dev"
    },
    {
      "commit": "a3d81885566f79b0e21438bd69634cc53a80918b",
      "tree": "c22e883695efce7fd7454b7cced8fd1c24f055bd",
      "parents": [
        "55f6ab4c813b6d355ba1ba72e4e2d98b9583f6f3",
        "2e7a9167aeefeb451f8d8c769175b9a0163744f3"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Jun 09 19:07:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 09 19:07:49 2014 +0000"
      },
      "message": "Merge \"Adds listeners for changes to the list of active sessions\" into lmp-preview-dev"
    },
    {
      "commit": "20685929a4b3995d75f72059ac60a4770389a36f",
      "tree": "dad111e1cb6d92301c225d6b57ab37582955ff1b",
      "parents": [
        "b6b31f2741acb8c0e45c34e92addada63ed9f915",
        "fb442b03840245c7e52cf2a540a77c5fc6c54587"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Jun 09 19:07:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 09 19:07:20 2014 +0000"
      },
      "message": "Merge \"Add a way to get the package/pid of the session\" into lmp-preview-dev"
    },
    {
      "commit": "b6b31f2741acb8c0e45c34e92addada63ed9f915",
      "tree": "b379f7d6524d42fbe48a9eb305d34d737637a599",
      "parents": [
        "085eefd1842005e388629fdcaca6832e8766ee2c",
        "0791e1713be3df6acfc9e3dfa0dd8be55cf1a165"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Jun 09 19:07:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 09 19:07:10 2014 +0000"
      },
      "message": "Merge \"b/15452153 Send 0 delta volume requests\" into lmp-preview-dev"
    },
    {
      "commit": "e17b2dd7bcc137bf4d842a779e8d62c63957a978",
      "tree": "f4b841e642e63995697b7bd880e168e7b6f52a65",
      "parents": [
        "f43cea009447cb2d3741de94c93c28e2fd413a43"
      ],
      "author": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Mon Jun 09 15:22:59 2014 +0900"
      },
      "committer": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Mon Jun 09 15:22:59 2014 +0900"
      },
      "message": "Set mBound only when bind succeeds\n\nFixes an issue that TV input is disabled forever after package upgrade,\nwhen it\u0027s upgraded while in use.  The root cause is as below:\n\n- Package is killed while upgrade.\n- Service disconnects, and tries to rebind for reconnecting, but bind fails\n  because service is not available temporarily.  Still ServiceState.mBound is\n  set to true.\n- Should rebind next when callback is registered or new session is created,\n  but doesn\u0027t because ServiceState is already marked bound.\n\nBug: 14981201\nChange-Id: Ia5b0acb33f1247064213024438f114bc40238648\n"
    },
    {
      "commit": "f43cea009447cb2d3741de94c93c28e2fd413a43",
      "tree": "34b0fbd210248073bcf6d265ed942962b2c51840",
      "parents": [
        "ba4b43228628ac0c61187621ee3abdf5e730b627",
        "3f48068d782b81dc1c8a0190b91fbb2862007244"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Mon Jun 09 01:13:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 09 01:13:29 2014 +0000"
      },
      "message": "Merge \"Remove HdmiCecService\" into lmp-preview-dev"
    },
    {
      "commit": "3f48068d782b81dc1c8a0190b91fbb2862007244",
      "tree": "e70558758a0a36bd19dd231ecffd426624f1120f",
      "parents": [
        "faecafce62ca39a7693669f7c9eabf2d71c633cf"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Fri Jun 06 15:52:07 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Mon Jun 09 07:55:47 2014 +0900"
      },
      "message": "Remove HdmiCecService\n\nThe service is replaced with HdmiControlService. Removing all the related\nclasses and the initialization of the service.\n\nChange-Id: Ic7baaddffb9873613ddd1096e874f226da983939\n"
    },
    {
      "commit": "fb442b03840245c7e52cf2a540a77c5fc6c54587",
      "tree": "616c9f9660f52fb1a86cdd7a78bef71a24e471ba",
      "parents": [
        "0791e1713be3df6acfc9e3dfa0dd8be55cf1a165"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Sun Jun 08 11:15:01 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Sun Jun 08 13:20:43 2014 -0700"
      },
      "message": "Add a way to get the package/pid of the session\n\nWe need a package/pid to connect a session to a notification. This\nadds a way to get those from the controller of a session.\n\nChange-Id: I7700a341beebd46116dfb7dc82f1a667c718e728\n"
    },
    {
      "commit": "0791e1713be3df6acfc9e3dfa0dd8be55cf1a165",
      "tree": "2ffbd9c718ef697517c64434a4d79a8e558bb317",
      "parents": [
        "2386bd5de40849bd312482e33105070cf438011d"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Sun Jun 08 10:52:32 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Sun Jun 08 13:20:43 2014 -0700"
      },
      "message": "b/15452153 Send 0 delta volume requests\n\nThe new code was dropping volume requests with a delta of 0. These\nare used to trigger a beep at the end of a volume adjustment.\n\nChange-Id: Idd85cfeaffe78f9aaafb8e6989e240cb70409c1e\n"
    },
    {
      "commit": "2e7a9167aeefeb451f8d8c769175b9a0163744f3",
      "tree": "2b3cd4aae6b41616375eae5f09e7eed0a13911b8",
      "parents": [
        "5d3114b64a88ac1f72becd8d46f148c666f64aa3"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Jun 04 16:53:45 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Sun Jun 08 12:21:32 2014 -0700"
      },
      "message": "Adds listeners for changes to the list of active sessions\n\nThe listeners get notified when sessions are added, removed, or\nreprioritized.\n\nChange-Id: I7f3bfc84049719c3b9c19016c6bac92e1a5c3179\n"
    },
    {
      "commit": "13b0241248716b126a538457828a964e86109d58",
      "tree": "4a12c8e46bc8d1318bb2c0521ae5df961e2632d7",
      "parents": [
        "2f98a26bbf24fdc40ef53a653bb152c7f5a5d0dd"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Jun 06 19:05:44 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Sat Jun 07 20:50:54 2014 -0700"
      },
      "message": "Add test app for JobScheduler\n\nSchedule either a delay/deadline task, or a task with\nconnectivity constraints\nChange-Id: Ie7ea731d0f6673b680cef79f894cb609a61b795d\n"
    },
    {
      "commit": "3c9f70dc86842f78c00d19c9c266b324478bb001",
      "tree": "9685d30fa616090b5b3869b4e25198487468e926",
      "parents": [
        "7fa0e6bc69f75dc508a8bcc7a1e9eaabe51c55e1",
        "ffcfcaadfefec2fb56f67a0a614a54bf4599d62b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jun 06 23:14:32 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 06 23:14:32 2014 +0000"
      },
      "message": "Merge \"Implement maxRecents and fix TaskPersister bug\" into lmp-preview-dev"
    },
    {
      "commit": "2a03b2fa1f352f21c49a9758ce567e0c43acce99",
      "tree": "56f342a2c15111f9f1c9d6e9872ef10b3c4bbfd2",
      "parents": [
        "a4b882f60c1cf4a5a4535eb7082bea2ca8fabff9",
        "52b7a5a5973c05fe59b751b82ee357fdfc1c5ef7"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Jun 06 19:44:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 06 19:44:40 2014 +0000"
      },
      "message": "Merge \"NoMan: Rank by \u0027when\u0027 instead of \u0027postTime\u0027\" into lmp-preview-dev"
    },
    {
      "commit": "599176b6162bd7127251e937a7042c53c31f982b",
      "tree": "f2cd50a87c34b7b97292ae7438c9490096c1baa0",
      "parents": [
        "421e2fd044815f00f0160810a052658abd95c4d8"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jun 06 11:41:27 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jun 06 11:41:27 2014 -0700"
      },
      "message": "Fix build breakage in BatteryController\n\nCaused due to a checkin race.\n\nChange-Id: Icb636e4b2258064572b494ee5fcdd30538691d81\n"
    },
    {
      "commit": "421e2fd044815f00f0160810a052658abd95c4d8",
      "tree": "c00b86e38d31231dae95894b4cecb1f8b0e20b00",
      "parents": [
        "ece9de4466a20e6fb9ce0a6699bd2fd05fe5e422",
        "eb94fa7975b1e8742f3b00cec6bd4f9d6b329e3a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 06 17:46:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 06 17:46:11 2014 +0000"
      },
      "message": "Merge \"Improvements to low power mode.\" into lmp-preview-dev"
    },
    {
      "commit": "eb94fa7975b1e8742f3b00cec6bd4f9d6b329e3a",
      "tree": "6ad975360e99f5d3628178bfded522470dcfea91",
      "parents": [
        "58ff7de971a8172e40c09c3a8489eb276441e1b6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 03 17:48:12 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 06 10:25:36 2014 -0700"
      },
      "message": "Improvements to low power mode.\n\nAdd new public API for monitoring low power mode.\n\nBatteryService now puts device in to low power mode when\nbattery level is low.\n\nWindow manager now watches low power mode to turn off\nanimations.\n\nModifying the animator scale now gets propagated to all\nprocesses.\n\nChange-Id: I8fa566994764ddd4e1977631e28381ab9409f8ee\n"
    },
    {
      "commit": "52b7a5a5973c05fe59b751b82ee357fdfc1c5ef7",
      "tree": "1301e4a0feac45577444e6725c780099b67cd772",
      "parents": [
        "7012db741c508396ec42e731b6f77c372e0a9ed7"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Fri Jun 06 16:09:15 2014 +0200"
      },
      "committer": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Fri Jun 06 17:46:04 2014 +0200"
      },
      "message": "NoMan: Rank by \u0027when\u0027 instead of \u0027postTime\u0027\n\nBug: 15461215\nChange-Id: If17e2ff0a6e36ab45da07c2d883fcf8dc8025dc2\n"
    },
    {
      "commit": "eb3bf68b57c0af3e731aab23a4464d15e00af2e7",
      "tree": "a60a6c977e8f5f22fd13b390862febafa49662bd",
      "parents": [
        "1494f8671ef6d9e6f14fb18b2248eecc37d0dcfc"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 13:39:42 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 13:54:25 2014 -0700"
      },
      "message": "Include forgotten file to fix build.\n\nChange-Id: I4a5ddb6063e5feb18d95ee5c7fe7a126ca59d3b9\n"
    },
    {
      "commit": "3d86fd2bb9db6067c49634bc4c6cdb4d5235ad36",
      "tree": "ead7a5dbd6d077bb22e04f6e9d9ac33d5df0f60a",
      "parents": [
        "03b62b3c7ff57f44a9142bac48603656dfb550ed"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri May 16 18:02:17 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Jun 05 18:28:43 2014 +0000"
      },
      "message": "Add persistence of tasks for TaskManager \u0026 BatteryController\n\nTasks are persisted only if the client has the RECEIVE_BOOT_COMPLETED\npermission. This applies to both periodic and one-off tasks.\nWrite out task as xml, using PersistableBundle for the extras data.\nTodo: Add persistable bundle to xml when ag/468207 is merged.\n\nAlso added BatteryController logic.\n\nChange-Id: I23eeeb8b3bc6ba155e7fa4ec25857a68ee8b1567\n"
    },
    {
      "commit": "ffcfcaadfefec2fb56f67a0a614a54bf4599d62b",
      "tree": "f7b5bc0555ce61fb11a81cf2e8598d5b7bfa9773",
      "parents": [
        "3af4edf57294a72b55f57baed7e044dc2055678a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jun 05 09:54:38 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jun 05 10:18:48 2014 -0700"
      },
      "message": "Implement maxRecents and fix TaskPersister bug\n\nActivities can now set the maximum number of times that they will\nappear in the recent task lists when using DocCentric mode. The\ndefault number is 15, the min 1, and the max 100.\n\nAlso a bug in TaskPersister that deleted files because it did not\nproperly parse their task ids is fixed.\n\nFixes bug 13736052.\n\nChange-Id: I7ccb4e6f89d6202ff31c8577bb7b9d8d1b7e5e8d\n"
    },
    {
      "commit": "5116a821b9507b16bdfa8549a65556493813e111",
      "tree": "f192a67244264e834aca27e2dde5eb5ab090cee5",
      "parents": [
        "a344656a010dc3c88aef39109f1ac459792e7607"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 04 15:59:50 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Jun 05 12:38:13 2014 -0400"
      },
      "message": "Disable the attention light on devices that do not have it.\n\nIf the attention and notificaiton light are mapped to the same\nphysical LED, then pulsing the attention light can turn off the\nnotification light. See bug for detailed discussion.\n\nBug: 12900389\nChange-Id: I2703af23f50ecc3e92140b9843aaf340d520bce5\n"
    },
    {
      "commit": "a344656a010dc3c88aef39109f1ac459792e7607",
      "tree": "e35d4036aa763b3dbcfe6fb0b99e7f96960d727a",
      "parents": [
        "7256a852cee3a656615af19ebeb3ad7379a194fb"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jun 03 18:11:47 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Jun 05 12:38:13 2014 -0400"
      },
      "message": "A notification that emerges from Zen Mode interception should beep.\n\nIf a notificaiton emerges from Zen Mode due to a ranking\nreconsideration (possibly because a long-running query resolved an\nimportant person) then it should get the oportunity buzz, beep, blink,\nand send accessibility events.\n\nSave what we need to know about the old notificaiton record on the new\nrecord so we don\u0027t have to hold onto it.\n\nBug: 15383458\nChange-Id: I15c7834fef03ff6a676e78e9d2caae24f00720ef\n"
    },
    {
      "commit": "64939ae385edf615ac2912060df5624dbaf57cab",
      "tree": "e5d850bcacbbbfb037103cc5dd8aecfc43ae6fbb",
      "parents": [
        "35677d176202d8d8d676c4df65dbeeee9281bace"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed Jun 04 09:25:11 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed Jun 04 22:46:25 2014 +0000"
      },
      "message": "DO NOT MERGE Redact SyncService stuff from master\n\nCherry-pick over from master.\nThis changes the API surface area, deleting things we aren\u0027t releasing.\nI\u0027ll do the internal clean-up at the same time I do the SyncManager\nrefactor to sit on top of the TaskManager.\nBug: 14997851\n\nChange-Id: Ieebbbcd3324827098e88b36e45e6e82315a51e65"
    },
    {
      "commit": "8ae980dcef1265f69fe41338f17266c2a8ec8d20",
      "tree": "38f620a734ada649679cf9e93a114c63fa31a92f",
      "parents": [
        "94236c56ddef7f0a3db010c38940f6eae75f67b4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 16:43:57 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jun 04 19:15:17 2014 +0000"
      },
      "message": "DO NOT MERGE Report new network scores back to factories.\n\nThis is a first order approx of what we want - should probably be good enough in most cases.\n\nbug:15277751\n\nChange-Id: I10e3b25f6ad5c7e022ba966ed514d4e6a999180d\n(cherry picked from commit 94a5c61cb82401dd777d0a7ac43183d92d955323)"
    },
    {
      "commit": "1e9021aef89d53eb08d0e8a4e017c9e79d260241",
      "tree": "03274d0ca036f85ca0e45c7ffa68a3cf7964116f",
      "parents": [
        "d55c56b86e9ec7b15f5b9e715ed009aed6ba9bb1",
        "18ea893a2319e2a192188d2288bb881149c9b06e"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Jun 04 13:18:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 13:18:40 2014 +0000"
      },
      "message": "Merge \"Ensure trust agents are only provided by platform packages\" into lmp-preview-dev"
    },
    {
      "commit": "7722b379efe7528ffbcd9fc23a99fd155b6cd298",
      "tree": "b75b529c6bdbd06e0723472f4c6ae1fa871d6926",
      "parents": [
        "aef51c63d7086088b0c245d18f052a181fe1ff45",
        "2d37070ec13df5650093f8967655938298290ee7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jun 04 01:14:37 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 01:14:38 2014 +0000"
      },
      "message": "Merge \"Fix legacy APIs.\" into lmp-preview-dev"
    },
    {
      "commit": "7737ab44b1a3c1e6afe2957006cdec6ecda63a86",
      "tree": "b63cdfd81eea30caf21fecc95214ffdfad4b7e95",
      "parents": [
        "38bd7b9c4dc8af0d37e4a353e69a5bb130edec07",
        "16b0b56c79ee0bd068ce47ce4460c24b5e62311d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 04 00:54:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 00:54:45 2014 +0000"
      },
      "message": "Merge \"Force write battery stats after a --history-since.\" into lmp-preview-dev"
    },
    {
      "commit": "16b0b56c79ee0bd068ce47ce4460c24b5e62311d",
      "tree": "cd1638c077e0bf3d7ec14fe7fa4aac10b0819d25",
      "parents": [
        "a48e7b5500d38320592cec034619323781112401"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 03 17:24:42 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 03 17:50:30 2014 -0700"
      },
      "message": "Force write battery stats after a --history-since.\n\nThis should help the stats be more consistent across\nsystem restarts.\n\nChange-Id: If1736608373aada8b55d72ecf80fbbc52bd288bd\n"
    },
    {
      "commit": "2d37070ec13df5650093f8967655938298290ee7",
      "tree": "bd8f8dd5932716010077566ef095b784a43c7fb3",
      "parents": [
        "32aa65a11207e1fb7d346a68fdf3299f87a20db4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 17:22:11 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 17:22:11 2014 -0700"
      },
      "message": "Fix legacy APIs.\n\nTwo fixes.  First make sure we mark the request as handled by the network handling it.\nSecond, convert ensureRouteToHostForAddress to use the new legacyNetworkForType.\n\nbug:14993207\nChange-Id: I230968938ca0ed91f834b36a2af60caff2eab682\n"
    },
    {
      "commit": "4021b3ba74471b35e510543b765a2265eff9912a",
      "tree": "1485540863dac74198c89398fe8e123e4385df3f",
      "parents": [
        "bb938107b7ef1f6660b9f9cbafacd9d0a427bedc",
        "8a0da0184f6c5c95d94ab6adfee79bace4040abd"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jun 04 00:21:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 04 00:21:01 2014 +0000"
      },
      "message": "Merge \"Force all windows to redraw before unblanking screen\" into lmp-preview-dev"
    },
    {
      "commit": "8a0da0184f6c5c95d94ab6adfee79bace4040abd",
      "tree": "d426d7012d2cc62bfe18e4acf9f34a92ca6914e3",
      "parents": [
        "4327e2fbcd68ec022a8d365bbe171dbc3cb97c65"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat May 31 15:13:37 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jun 03 17:08:02 2014 -0700"
      },
      "message": "Force all windows to redraw before unblanking screen\n\nThe screen turning on would show windows as they were when the screen\nturned off. This fix forces all showing windows to redraw first and\nonly then allow the screen to turn on.\n\nFixes bug 15092354.\n\nChange-Id: I52c3f47438176a5ac00ba9a4d5205b56a5aa48f9\n"
    },
    {
      "commit": "856edebad73560e9b1cce021a7de9a0470d07176",
      "tree": "b5d422f8786a998f23cf24af8e758b727c0252b4",
      "parents": [
        "a48e7b5500d38320592cec034619323781112401"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sun Jun 01 20:36:47 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jun 03 19:05:55 2014 -0400"
      },
      "message": "Zen: Stateful condition panel.\n\nWhen DND is on, expanded panel shows the current time\ncondition, or time remaining.  The last time bucket\nselected is remembered as the default option for the\nnext time.\n\nMove the server-side countdown helper into a proper\ncondition provider, but register it in-process as a\nsystem provider.\n\nMove common countdown condition parsing into ZenModeConfig\nto reuse from system components.\n\nKeep the manual exit condition around in zen mode config\nand add plumbing for getting / listening to the\ncontroller.\n\nKeep the last QS detail panel around instead of\nrecreating it every time.\n\nFix the time condition\u0027s plus and minus button\nenabling logic, and enhance the click handler to\ndeal properly with the next or previous bucket.\n\nBug:15344758\nChange-Id: Ie7018a1c20e20f6d7e5f9e7874188374e6f8e2ab\n"
    },
    {
      "commit": "52eba54eca02ef0b38e91490d10f9a697cbcb502",
      "tree": "588a5dd5e8991b90b5b4b58d86a5ebf523ecd7f3",
      "parents": [
        "4327e2fbcd68ec022a8d365bbe171dbc3cb97c65"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Mon Jun 02 15:40:32 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jun 03 14:58:51 2014 -0400"
      },
      "message": "Apply Zen Mode later, after we\u0027ve found the old record.\n\nCopy the extracted signales from the previous record to the new\nrecord.  Do this before the signal extractors are called so that code\ncan decide what to do with the information.\n\nBug: 15383769\nChange-Id: Ifa24fa0e4380f08979c2126b63d29794aa50a787\n"
    },
    {
      "commit": "32aa65a11207e1fb7d346a68fdf3299f87a20db4",
      "tree": "1778714ec1355da86791a13afba9a529cc3a2195",
      "parents": [
        "93a2bb2063fdbca9f844202f0eca12330605511b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Jun 02 15:32:02 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 14:00:56 2014 +0000"
      },
      "message": "Fix Legacy NetworkInfo API\n\nMake the connectivity changed broadcasts send correct NetworkInfos.\nAlso update the results of getNetwork.\n\nbug:15290306\nbug:15191336\nbug:14993207\nChange-Id: Ie99ad25f3ebb90d18348e7013761b139e7481866\n(cherry picked from commit 16fe1c18289de200d2249e51db8c0986619f487b)\n"
    },
    {
      "commit": "18ea893a2319e2a192188d2288bb881149c9b06e",
      "tree": "0cb7c43ad9a7a6c28873697f1f133f985d74adaa",
      "parents": [
        "becab9a7dbbfd5395e6889e7d73dd08c3406bf1a"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed May 28 14:53:06 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jun 03 15:49:19 2014 +0200"
      },
      "message": "Ensure trust agents are only provided by platform packages\n\nPrevents the TrustManagerService from binding to any non-platform\ntrust agents and updates the SampleTrustAgent to use the new\npermission.\n\nBug: 15287044\nChange-Id: I38c3deebd5ad359075e68f52d19417bab5ab43db\n"
    },
    {
      "commit": "10621710900981a1e01cb53efa2a2f96f890b633",
      "tree": "e880a4fe9a88a099208f2e484ffd7e64403ce353",
      "parents": [
        "7b2ae34b97943a4dfe3fa6b5c1c74f415b468993",
        "55691b8cc725297e0d36799e234cba3c8c3410f6"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 02:59:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 02:59:22 2014 +0000"
      },
      "message": "Merge \"Refactor NetworkFactory.\" into lmp-preview-dev"
    },
    {
      "commit": "7b2ae34b97943a4dfe3fa6b5c1c74f415b468993",
      "tree": "4ae0b6f46fb294600e72c121e06a4565092a9179",
      "parents": [
        "0aa5420504d0414fdcfd54f7352ac8009707717f",
        "a3be12a236aef0d9c4ff1274075f1e7899d29153"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jun 03 02:31:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 02:31:28 2014 +0000"
      },
      "message": "Merge \"Add onAudioStreamChanged and onClosedCaptionStreamChanged callbacks from TIS to application.\" into lmp-preview-dev"
    },
    {
      "commit": "55691b8cc725297e0d36799e234cba3c8c3410f6",
      "tree": "154c54a4d6582be4508d126c79b9def85a4fe677",
      "parents": [
        "49fa8e15baa4aeeb7cc2581ce9c2d8689973c8c7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 27 13:20:24 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 01:26:48 2014 +0000"
      },
      "message": "Refactor NetworkFactory.\n\nMake NetworkFactory a concrete class and divide responsibilites between it and NetworkAgent.\nFactory will track requests and by default give a single connect/disconnect api for ease\nof use.  Then NetworkAgent is created and destroyed as needed with very simple logic.\n\nChange-Id: I401c14a6e5466f2fc63b04219b97ff85bb9af291\n(cherry picked from commit 9a17b9c5a256cb4bb14821c5ee89b03b99c045e8)\n"
    },
    {
      "commit": "49fa8e15baa4aeeb7cc2581ce9c2d8689973c8c7",
      "tree": "b81a9a178215941ab825e36cb8511e7df976f069",
      "parents": [
        "1b3718ee66322b5d1bd0d4eb9cc3d20e0a6cec6c",
        "562cc54536f1e75d80855de4d1eccaeefd689a32"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 03 01:26:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 01:26:19 2014 +0000"
      },
      "message": "Merge \"Rewrite startUsingNetworkFeature for new API\" into lmp-preview-dev"
    },
    {
      "commit": "a3be12a236aef0d9c4ff1274075f1e7899d29153",
      "tree": "4effaecc291597c4b9d65ad039bbe49161377288",
      "parents": [
        "6abd0d801b6772bb9d0fe6cd4c007dace2f38570"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jun 02 13:33:55 2014 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jun 03 09:53:05 2014 +0900"
      },
      "message": "Add onAudioStreamChanged and onClosedCaptionStreamChanged callbacks from TIS to application.\n\nBug: 14628404\nChange-Id: I40abf647e9d608c2c793d007fd2fe0d511535bdd\n"
    },
    {
      "commit": "6fbe3982b035c200543454bb29b9f3e33b5e347a",
      "tree": "d39c6b570dd0bff67c4fec22d47e024cc4d9db36",
      "parents": [
        "5a26f00c846f62e5c5039923d7d6de2ac04c4436",
        "bd23fa0ba1460a8d5194fd7c700030bf9c3f6fcb"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Jun 03 00:26:05 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 00:26:05 2014 +0000"
      },
      "message": "Merge \"TvContract: Address the feedback from the API review\" into lmp-preview-dev"
    },
    {
      "commit": "5a26f00c846f62e5c5039923d7d6de2ac04c4436",
      "tree": "630bed6603ef292edd540bab9cf39c14e0f6220a",
      "parents": [
        "ad3c4a136e862cc838dbd3b9f24c8cecdfc4b934",
        "72ad7bf915ce40d8437a4ee2518ae07b73502e12"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Jun 03 00:23:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 03 00:23:09 2014 +0000"
      },
      "message": "Merge \"Add ClientState for handling the crash of clients.\" into lmp-preview-dev"
    },
    {
      "commit": "72ad7bf915ce40d8437a4ee2518ae07b73502e12",
      "tree": "78de40f8f6f59ea08c28926378c531468c4d5345",
      "parents": [
        "becab9a7dbbfd5395e6889e7d73dd08c3406bf1a"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed May 14 09:21:08 2014 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Jun 03 09:09:14 2014 +0900"
      },
      "message": "Add ClientState for handling the crash of clients.\n\nBug: 15054040\nChange-Id: I4dd8d1c350186fe705daa20c9944bc8e4dd556c2\n"
    },
    {
      "commit": "e7bb7d6bb2257c24076f5a4b9f536f90a6637f58",
      "tree": "7d4aa3140b0fd1a3510b74075968d2a62c77f3c4",
      "parents": [
        "0bec638839b0a07502ff27c9dcf4419b3c47a0d2"
      ],
      "author": {
        "name": "Chulwoo Lee",
        "email": "chulwoo@google.com",
        "time": "Tue May 27 14:10:37 2014 +0900"
      },
      "committer": {
        "name": "Chulwoo Lee",
        "email": "chulwoo@google.com",
        "time": "Tue Jun 03 08:56:35 2014 +0900"
      },
      "message": "Add a way to get the class name of SetupActivity and SettingsActivity\n\nNow, there can be only one SetupActivity and one SettingsActivity for\none TIS apk though one TIS apk can contain several services. Each TIS\nneed to be able to have its own SetupActivity and SettingsActivity.\n\nBUG: 15177340\nChange-Id: I2d944e3ef35c3a981483ba643fd27b15925bab16\n"
    },
    {
      "commit": "bd23fa0ba1460a8d5194fd7c700030bf9c3f6fcb",
      "tree": "874c23a4a50dc29bb83145535ec1effe7fe47dd0",
      "parents": [
        "0bec638839b0a07502ff27c9dcf4419b3c47a0d2"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Sat May 31 17:20:01 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 16:44:37 2014 -0700"
      },
      "message": "TvContract: Address the feedback from the API review\n\nThis change addresses the following comments from the council:\n- Provider authority should be \"android.media.tv\"\n- Rename COLUMN_DATA to COLUMN_INTERNAL_PROVIDER_DATA and add comment to\n  indicate data is internal to the provider that inserted it, and should\n  not be decoded by other apps. It would be nice to restrict read access\n  to this column, but not essential.\n- Hide COLUMN_LOCKED since implementation isn\u0027t defined yet, also\n  questions about how it interacts with Unicorn.\n- Fix typo in ORIGINAL_NETWORK documentation.\n- All provider MIME types need to be changed to follow platform\n  conventions: \"vnd.android.cursor.dir/channel\",\n  \"vnd.android.cursor.dir/program\", etc. (Notice singular tense and no\n  package prefixes since they\u0027re part of the platform API.)\n- Rename Programs.COLUMN_DATA to COLUMN_INTERNAL_PROVIDER_DATA, along\n  with docs update, for the same reasons as above.\n- Rename COLUMN_DESCRIPTION to COLUMN_SHORT_DESCRIPTION and update docs\n  to indicate it\u0027s a recommended maximum length, not a hard cap.\n- COLUMN_GENRE should be split into two columns: COLUMN_BROADCAST_GENRE\n  (from broadcast standard) and COLUMN_CANONICAL_GENRE (from an Android\n  standard). Define a subclass with the Android canonical genres, which\n  are simple strings that are comma-separated when inserted into\n  COLUMN_CANONICAL_GENRE.\n\nBug: 15345342\nChange-Id: I7f8e70aef617475a59d096fd73a551e7df8a1d3a\n"
    },
    {
      "commit": "562cc54536f1e75d80855de4d1eccaeefd689a32",
      "tree": "a104c501bfd49ce054a0f3f764aa34cc1f03631a",
      "parents": [
        "0bec638839b0a07502ff27c9dcf4419b3c47a0d2"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu May 15 18:07:26 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Jun 02 23:29:20 2014 +0000"
      },
      "message": "Rewrite startUsingNetworkFeature for new API\n\nbug:14993207\nChange-Id: I041a80faa07bf3094af13a6c606f3b15aa03f789\n(cherry picked from commit 09fe5e618b09965183cf53fba87c39025a19e8d1)\n"
    },
    {
      "commit": "0bec638839b0a07502ff27c9dcf4419b3c47a0d2",
      "tree": "0bbffd1709ce08d75717bd47bd3ca44093554c68",
      "parents": [
        "596f0b1a03c1d733697f89757bcf3c80b9900c78",
        "fc0641340ff927d9c35d5613723d25858f751118"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 02 22:57:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 22:57:41 2014 +0000"
      },
      "message": "Merge \"Some battery stats history fixes.\" into lmp-preview-dev"
    },
    {
      "commit": "3c784d6359f15a5451b670a18384e9ae3c9aa276",
      "tree": "981689d1de5fba017eba83ca0495d16f38e160f3",
      "parents": [
        "b75a69f9b3dfe1499828c6e092bf40f69be18bbf",
        "d5cc4a281e7ce29d1e8687ff3394b57a3a549260"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 21:03:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 21:03:58 2014 +0000"
      },
      "message": "Merge \"Put TV Input Framework under android.media.tv, including TvContract\" into lmp-preview-dev"
    },
    {
      "commit": "481acb86e435d1c9d7d7f744941619ca509906af",
      "tree": "97e856e269f17426e6ed8d1a390a97153647e256",
      "parents": [
        "d5d9e73a1ad484b6147d041ab86a193724eb246e",
        "e0d50cc15be2c8aa9e4a4aa6cf34cc7cf23c9109"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 02 20:40:16 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 20:40:16 2014 +0000"
      },
      "message": "Merge \"Compare task userId with userId profiles.\" into lmp-preview-dev"
    },
    {
      "commit": "fc0641340ff927d9c35d5613723d25858f751118",
      "tree": "09ef9a4305fdc2d1eabec9264074425c402f5100",
      "parents": [
        "725010a83f1798e5ba6edb93ca2656a96c29fcae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 02 12:42:12 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 02 12:42:12 2014 -0700"
      },
      "message": "Some battery stats history fixes.\n\n- Now the full wake history uses the history tag if it can.\n  Hopefully this will still result in a consistent history,\n  since that isn\u0027t really want the tag is for...  but the\n  current implementation in places will probably make this work.\n\n- Possibly fix a bug with inconsistent state between partial\n  history snapshots: after a snapshot is printed, don\u0027t allow\n  any more batching into the most recent history entry, so the\n  next snapshot will not miss anything that might get placed\n  into it soon after.\n\nAlso rework command line arguments for enable/disable to make these\ncommands instead of options.\n\nChange-Id: Ia33445cad1538bf8df549cef284f1e736efbc079\n"
    },
    {
      "commit": "d5cc4a281e7ce29d1e8687ff3394b57a3a549260",
      "tree": "a54c168980e6a2fc805892d1653236f7da6ebe5c",
      "parents": [
        "e205192c722e4fa1b37ee1b31dced21cf89ffbb4"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Fri May 30 16:57:43 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 11:02:52 2014 -0700"
      },
      "message": "Put TV Input Framework under android.media.tv, including TvContract\n\nBug: 15345342\nChange-Id: I665ca23f0f074ce29cb2e047109b209178532107\n"
    },
    {
      "commit": "e0d50cc15be2c8aa9e4a4aa6cf34cc7cf23c9109",
      "tree": "5fe569af8cd5a798692f3c76dfe06671908800ff",
      "parents": [
        "9dcfe06154f6bd7c1de2fab2e436b8251b7d5fca"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 02 10:11:53 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 02 10:11:53 2014 -0700"
      },
      "message": "Compare task userId with userId profiles.\n\nChange comparison of Task.mUserId from comparing with only the\ncurrent user id to comparing with all current profile user ids.\n\nFixes bug 14930145.\n\nChange-Id: Ibbae08da6f4eaa31b171becdd8957293758f527b\n"
    },
    {
      "commit": "e78755e180c4f29ccc324112286dd81ab2016c40",
      "tree": "a414dfa20c73b816b375eb093e0d1f2e4cdbc54a",
      "parents": [
        "ddc93ce3438618a15f30fc20d45634325f8ce84f",
        "b69ffd4dc2c8fa85e0064151141ebeee90de471e"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Jun 02 17:10:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 17:10:07 2014 +0000"
      },
      "message": "Merge \"Minimum work to make volume handling work with sessions\" into lmp-preview-dev"
    },
    {
      "commit": "3ef57d99b3b1b751097d58c6c1b98db123d5ccc5",
      "tree": "8d18b9d78b74fc9b4990b3e4b3307c851f5fa4bb",
      "parents": [
        "af9d45e88b173a30cd20db854731e0e5eb207afa"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu May 29 21:52:28 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:07:25 2014 +0900"
      },
      "message": "DO NOT MERGE: Start Device Discovery after logical address allocation.\n\nUsually TV initiates Device Discovery sequence after logical address\nallocation of local devices. For that added new callback interface\nto AddressAllocationCallback to HdmiCecDevice.\nAlong with this, add onAddressAllocated to HdmiLocalDevice so that\nstart sending local device information once logical allocation is done.\n\nChange-Id: I4cdc5dd7770674a17a0f23c383a6c1ca221e3104\n"
    },
    {
      "commit": "e74282b70b4a8ad1186fdc32204e1ecee16cd901",
      "tree": "5362a6efaa32b07d93174d78d3d6273db3549198",
      "parents": [
        "48a0729d621d55b7b1d256106dbc9421b147ee89"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 29 07:39:22 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:02:51 2014 +0900"
      },
      "message": "DO NOT MERGE: Stop publishing HdmiCecService, start publishing HdmiControlService\n\nHdmiCecService will soon be deprecated and replaced with HdmiControlService.\nStopped publishing the service, and turned the corresponding manager to\nstub so that it will do nothing but print out a warning msg instead.\n\nWill help the app transition to the new service in the meantime. Once\nthe migration is finished, will gut out all the HdmiCecService/\nHdmiCecManager stuff.\n\nChange-Id: Ic34a69c4fb99f4e5a2c8323538195204ab16a545\n"
    },
    {
      "commit": "48a0729d621d55b7b1d256106dbc9421b147ee89",
      "tree": "f9d1819b3f821e3bfdaae29532914d50e65da093",
      "parents": [
        "e1e63c7c54b8a6a5d5d207bcedd08d2f8ac2465e"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu May 29 06:52:45 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:01:45 2014 +0900"
      },
      "message": "DO NOT MERGE: Do not reply with \u003cFeature Abort\u003e to CEC Broadcast message\n\nBroadcast message is not targeted to a specific device but for\nannouncement. Individual reponse with \u003cFeature Abort\u003e is neither\nnecessary nor useful. Changed to send the message back only for\ndirect messages.\n\nChange-Id: I927aa8e58a9868e158ed945c753492207e7c97f6\n"
    },
    {
      "commit": "e1e63c7c54b8a6a5d5d207bcedd08d2f8ac2465e",
      "tree": "a3157737ef1c8328113d509890bbfd00c4f3fe07",
      "parents": [
        "d42a7a322b7adf532ae0b70cb9eb1df7e62a8f2d"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Wed May 28 19:11:44 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 11:00:55 2014 +0900"
      },
      "message": "DO NOT MERGE: Dispatch incoming CEC messages to feature actions\n\nThis CL dispatches incoming CEC messages to feature actions that\nthe service manages.\n\nChange-Id: I9221d6a25648846327d00fe5404aaf1e8ec786ce\n"
    },
    {
      "commit": "d42a7a322b7adf532ae0b70cb9eb1df7e62a8f2d",
      "tree": "6c1d65bb855a78f15e7a6069b1c2964d2d12c70d",
      "parents": [
        "a8fd44b74b8822426cdc0e45351899c95bf30e16"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Tue May 27 13:27:36 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:59:03 2014 +0900"
      },
      "message": "DO NOT MERGE: Implement device discovery sequence.\n\nWhen device discover is launched it goes through the following step\n\n1. clear all existing devices\n2. send \u003cPolling Message\u003e of all logical addresses\n  excecpt one of local device\n3. Once got all allocated logical addresses, gather physical address of\n  them\n4. Once got physical address of them, gather display name of them\n5. Once got display names, gather vendor id of them\n5. Once got vendor id of them, register all gathered info to\n  internal device info list.\n\nChange-Id: Ic9aca3b15d88ac7650f10b6d0bfa9c97923975e8\n"
    },
    {
      "commit": "a8fd44b74b8822426cdc0e45351899c95bf30e16",
      "tree": "326e45fe2912ea7ba33315f05a486041a756f01a",
      "parents": [
        "304b4a7281ffe4153d21eb50ebed070f1cf685bc"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Wed May 28 17:42:56 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:58:02 2014 +0900"
      },
      "message": "DO NOT MERGE: Fix a couple of bugs in CEC services\n\n- Correct conversion for byte to int for cec opcode\n- Use the right Handler.obtainMessage() to pass an integer variable\n\nChange-Id: Ie3e86225f1702decce454aeb197911a371f51c17\n"
    },
    {
      "commit": "c47e26ca2ff6f032c4b3a094810b1d1062bcb1ff",
      "tree": "137e50d34e9d21f87b3e1751dda68739b2f9cdb3",
      "parents": [
        "2c2a3017624678ee65d92feb51340f542a1d244c"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Tue May 27 19:52:39 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:55:50 2014 +0900"
      },
      "message": "DO NOT MERGE: Add cec message handler to hdmi cec jni implementation\n\nNotification for incoming cec message can be issued\nfrom any thread but jni can call java method\nin the thread that jni knows like service thread.\nSo this change delegates incoming message to\njni-friendly thread, service thread by exploit\nlooper of service thread.\n\nChange-Id: If3b141d917df3e209912af1778eb509777199969\n"
    },
    {
      "commit": "2c2a3017624678ee65d92feb51340f542a1d244c",
      "tree": "2e58e6c2566e0c1ccb10ad06bf46dfbe69081501",
      "parents": [
        "16e24a2d143345b2052ea7ccbe85fcda6d843608"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Tue May 27 17:23:27 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:54:53 2014 +0900"
      },
      "message": "DO NOT MERGE: Fix a bug using wrong addresses for CEC logical address allocation\n\nChange-Id: I41da586c16dca4f325d147bb3abe5d4e09f7b91c\n"
    },
    {
      "commit": "16e24a2d143345b2052ea7ccbe85fcda6d843608",
      "tree": "14e05168a637ebbce2a59ba4a86029bc82b8cd9d",
      "parents": [
        "562ef5c513a859b3d2b0f54c15f25e4ec3ec9f7a"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Mon May 26 17:33:05 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:53:58 2014 +0900"
      },
      "message": "DO NOT MERGE: Hook up the CEC playback API to service internal logic.\n\nThis change enables CEC playback API (oneTouchPlay, queryDisplayStatus).\nAlso updated local device list type to SparseArray to make it easy\nto get one based on device type.\n\nChange-Id: I6f88b2dac2d873c493a90411549a4e5719a5e460\n"
    },
    {
      "commit": "562ef5c513a859b3d2b0f54c15f25e4ec3ec9f7a",
      "tree": "4696a4ea38bb9e07dff4e4551cb9cc8fa1920187",
      "parents": [
        "9d499bfe4a52068fd0c25b3cce34bd5e445e0f96"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon May 26 11:02:36 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:50:37 2014 +0900"
      },
      "message": "DO NOT MERGE: Add HdmiCecDeviceInfo to HdmiCecLocalDevice\n\nAs HdmiCecLoclaDevice is a wrapper for local devices\nit should include cec device info.\n\nChange-Id: I479665b2aa6bd56470b79dbbb7fb1015f6356090\n"
    },
    {
      "commit": "9d499bfe4a52068fd0c25b3cce34bd5e445e0f96",
      "tree": "f7728d47eda5fb81dc87190bc1ec485342fa95f5",
      "parents": [
        "61ced38d61926bc28638d805436086db22b642c3"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri May 23 16:48:31 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:48:57 2014 +0900"
      },
      "message": "DO NOT MERGE: Implement \u003cPolling Message\u003e.\n\nWhen Device Discovery is launched or Hot-plug detection is\nlaunched, the first step of it is to send \u003cPolling Message\u003e\nto all remote devices. According to type of feature,\nit may have different retry count for sending \u003cPolling Message\u003e.\n\nAs \u003cPolling Message\u003e to all devices should be serialized operation\nit runs on io thread as single operation.\n\nAlong with this, added assertRunOnIoThread and\nassertRunOnServiceThread used to make sure that all methods are\ncalled in proper thread.\n\nChange-Id: I2d2df0216867c188e99ba24b216ec73f3396eeae\n"
    },
    {
      "commit": "61ced38d61926bc28638d805436086db22b642c3",
      "tree": "b8434fb8b44873e78895ea83931bef9f80a6c73a",
      "parents": [
        "47927f756a0f694358567cec845b53ab3fc980e9"
      ],
      "author": {
        "name": "Yuncheol Heo",
        "email": "ycheo@google.com",
        "time": "Fri May 23 20:10:19 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:46:36 2014 +0900"
      },
      "message": "DO NOT MERGE: Add the constants for the callback result of SendCecCommand().\n\n- Move the send failure warning messages into HdmiCecController.sendCommand()\n  from each Actions.\n- Stringfy with more detail messages for some opcodes.\n\nChange-Id: Ib7ce24dd2a1f290e6c3a0b26738772ef1d4a9630\n"
    },
    {
      "commit": "47927f756a0f694358567cec845b53ab3fc980e9",
      "tree": "725e65ba4f5ee25460dd92245734c60f0d3ed975",
      "parents": [
        "404d704158d068c9b1f066ec647461f0f9ec22cd"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Tue May 20 16:45:45 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:45:18 2014 +0900"
      },
      "message": "DO NOT MERGE: CEC Initialization per device type\n\nCEC initialization may vary from device type to type. Changed logical address\nmap to HdmiCecLocalDevice map to handle it. These per-type classes for local\ndevice will be extended also to take care of incoming CEC commands that should\nrequire different action based on device type.\n\nChange-Id: Ia59a464607b14e942fcf83e63aa1d6310ca6a575\n"
    },
    {
      "commit": "404d704158d068c9b1f066ec647461f0f9ec22cd",
      "tree": "f42252e60fadb53f9665c8ef2489d500a4210509",
      "parents": [
        "c6c967b68a9c29e0930bcfa32548633596fe5745"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu May 22 19:28:09 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Mon Jun 02 10:42:03 2014 +0900"
      },
      "message": "DO NOT MERGE: Add SendMessageCallback to Hdmi control service.\n\nAs we have separate IO thread, we should have async callback\nmechanism to get result of send request.\nFor that, I added SendMessageCallback interface to HdmiControl\nService\nAlong with this, replace message-based IO handling with\npost Runnable based one for consistency\n\nChange-Id: I61cf5b751b4f2af3b34956060869f3512f161d11\n"
    },
    {
      "commit": "0bf8a21464d62857052cc033bf648077dbe20259",
      "tree": "1b50a691f2560593d964b29021997e8277d4cdf1",
      "parents": [
        "377801463ef75d7c14f3ef6a346d8ddccb2a4045",
        "832860fb9f6b3a7188a6af2d5d67806593595800"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sun Jun 01 23:09:30 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 01 23:09:31 2014 +0000"
      },
      "message": "Merge \"Add a path for generic event from a session to an application in Tv Input Framework.\" into lmp-preview-dev"
    },
    {
      "commit": "d48d7a6d506a72cc519e05fc4c124087b0db221b",
      "tree": "1991e38e0d11b8d274fd16b4577df8e876993595",
      "parents": [
        "54b5e5bdf621449a1806ff2971b95df273069c44",
        "e29b2dbc762bfa66093d76f5a65f55328d8753c9"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Sat May 31 01:09:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 31 01:09:19 2014 +0000"
      },
      "message": "Merge \"Fade scrim in unlock animation.\" into lmp-preview-dev"
    },
    {
      "commit": "e29b2dbc762bfa66093d76f5a65f55328d8753c9",
      "tree": "715078ec5618bb210f671a9a8679289a301ffb95",
      "parents": [
        "283c907a6a84c5d9ffe38d3468e76131e6917105"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri May 30 23:17:03 2014 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Sat May 31 02:48:06 2014 +0200"
      },
      "message": "Fade scrim in unlock animation.\n\nThis also introduces a startTime which gets sent from window manager\nto SystemUI, which tells when the animation should start, to allow\nfor a more synchronized animation with fading out the scrim and\nfading in the activity behind.\n\nBug: 15163546\nChange-Id: I16212b1ef9eb76f1f98734da1d14fc5b7e626937\n"
    },
    {
      "commit": "05dc18d69ad64254f2bcdd9c1e208ab54ee664fe",
      "tree": "39fdc33974a041a24161e092757318f1ca447dad",
      "parents": [
        "ae706066e1a9aa25c7d57619c0bf8ba24815d3d8",
        "2ee3c1e189819cc6efb4d7de24f1438bdb824087"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 30 23:47:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 23:47:00 2014 +0000"
      },
      "message": "Merge \"Per-app media directories on external storage.\" into lmp-preview-dev"
    },
    {
      "commit": "2ee3c1e189819cc6efb4d7de24f1438bdb824087",
      "tree": "720b998ef3649c638848bfad692689dbabef4a7f",
      "parents": [
        "b2f4bc8727f1df9d88f56a15c08cbf2cb8e2993c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 30 15:38:35 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 30 16:26:45 2014 -0700"
      },
      "message": "Per-app media directories on external storage.\n\nThis change defines per-app directories on external storage that\nwill be scanned and included in MediaStore.  This gives apps a way\nto write content to secondary shared storage in a way that can\neasily be surfaced to other apps.\n\nBug: 14382377\nChange-Id: I4cb367c870509e76f0c2c598f01e2f699780030a\n"
    },
    {
      "commit": "b69ffd4dc2c8fa85e0064151141ebeee90de471e",
      "tree": "da787f506e0ac8a23a268f199096cb27e87c4f8e",
      "parents": [
        "283c907a6a84c5d9ffe38d3468e76131e6917105"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri May 30 14:57:59 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri May 30 15:47:58 2014 -0700"
      },
      "message": "Minimum work to make volume handling work with sessions\n\nThis is the minimum change to make adjusting volume work with\nMediaSessions. This only affects adjusting the volume and adjusting\nthe volume with a suggested stream. Adjusting a specific stream or\nsetting a specific stream will still use the same code.\n\nThis does not fix existing remote volume handling in RCC, which\nwill require a separate change to MediaController.\n\nChange-Id: I5b957ff4bece1ee11e2364e1f216e1c08343c983\n"
    },
    {
      "commit": "283c907a6a84c5d9ffe38d3468e76131e6917105",
      "tree": "acdfdbf13f96f2bce65fa4618e59b630a910061e",
      "parents": [
        "3da92d6df15fcbf9dbde7e3f58f778ab28abaa99",
        "c47fa84b0a6bda48c38ba8822481ce613bafd019"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri May 30 22:18:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 22:18:54 2014 +0000"
      },
      "message": "Merge changes I16ad392e,Ie26a7d01 into lmp-preview-dev\n\n* changes:\n  Refactor transport controls APIs\n  API changes to sessions\n"
    },
    {
      "commit": "99f963ea04d7a86219ece00c356f3f6bce33b6d6",
      "tree": "b91873408609e6d8f4704879b4bd7f7c21b4d316",
      "parents": [
        "4f0e39a929f2043c46ada9f34b23654616f93227"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed May 28 16:52:42 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri May 30 16:16:23 2014 -0400"
      },
      "message": "Add people signals to Zen mode.\n\nDepends-On: I51fcf689ddbee7715e3387b865f18a715887c943\nChange-Id: I7c91dec1afeb54505426c4da59ec4d072a60c240\n"
    },
    {
      "commit": "4f0e39a929f2043c46ada9f34b23654616f93227",
      "tree": "150088db28725a782460396fc240c9a9e9ad67a4",
      "parents": [
        "da44532b615b1a965c94cc43d68eca92fd2ef79d",
        "333a61c3a5a83fe9c50ebeb5c947317f61385b7b"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri May 30 20:15:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 20:15:38 2014 +0000"
      },
      "message": "Merge \"Track Zen Mode status in the NotificationRecord\" into lmp-preview-dev"
    },
    {
      "commit": "333a61c3a5a83fe9c50ebeb5c947317f61385b7b",
      "tree": "bbac1a9f9e5bcaf742116ee53c47bbf931e88b12",
      "parents": [
        "5c0727ff2debd2ce0b92bf264524480009a36935"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed May 28 16:40:57 2014 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri May 30 16:09:51 2014 -0400"
      },
      "message": "Track Zen Mode status in the NotificationRecord\n\nThis requires the record to be present in makeRankingUpdateForListener,\nhowever, if the ranking object is created before the post to the handler,\nthen no cloning is necessary.\n\nDepends-On: I907a1ff28123219db1c08889d723ad1b70b191ab\nChange-Id: I51fcf689ddbee7715e3387b865f18a715887c943\n"
    },
    {
      "commit": "515350a5e2b3fcac79f4ecfbd3d4d7485c04eff5",
      "tree": "4ab8518c48cdd7b71c4dddcfb36d9b726885aed2",
      "parents": [
        "eec8f0cbbba8cfe3de29fef4b2362af3817ea575"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 22 16:30:48 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri May 30 18:21:34 2014 +0000"
      },
      "message": "Support legacy routes added by apps via ensureRouteToHost().\n\nChange-Id: I0ee1ca89fdc859d75a89021ca8c1902811b1e4a9\n(cherry picked from commit fb17b32550de624b7f476b70b7a2fc77f31dde7d)\n"
    },
    {
      "commit": "20d94749043d0851f1da10c7749fd7eb13a35081",
      "tree": "fe14d454373789e1b28d52811b65aaaa572688e2",
      "parents": [
        "5286624b648c7d7cc4c15813f9921c1d0b2e46cc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 29 18:35:45 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 30 10:06:16 2014 -0700"
      },
      "message": "More work on voice interaction visuals.\n\nThere is now a special theme for voice interaction activities\nto use, so they can be a panel that is better intergrated with\nthe rest of the voice interaction experience.  This is still\nnot completely working, I have some hacks in the demo app to\nget it right; I\u0027ll fix that in a future change.\n\nAlso improve VoiceInteractor to be retained across activity\ninstances, for things like rotation.\n\nAnd bump up the number of concurrent broadcasts that are allowed\non non-svelte devices, since they can handle more and this makes\nthe boot experience better when dispatching BOOT_COMPLETED.\n\nChange-Id: Ie86b5fd09b928da20d645ec2200577dee3e6889d\n"
    },
    {
      "commit": "832860fb9f6b3a7188a6af2d5d67806593595800",
      "tree": "1e4c22742eb689b0f0cc151dda761fd21581808c",
      "parents": [
        "2070252f988e4daac08acf88ea6865138d899f75"
      ],
      "author": {
        "name": "Youngsang Cho",
        "email": "youngsang@google.com",
        "time": "Wed May 21 20:54:03 2014 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu May 29 21:04:52 2014 -0700"
      },
      "message": "Add a path for generic event from a session to an application in Tv Input Framework.\n\nPlus, Video size changed event is also added.\n\nBug: 14126559\nChange-Id: I04c553481fbaf8d92adbcc34f3c9d26acc87b361\n"
    },
    {
      "commit": "4f8a92bd20be374811b2cab855f390221893279a",
      "tree": "a102cdcddf42fae1e062337c0ac48d3fb80ef8df",
      "parents": [
        "432fe9829744983576f0afabb4b73165f9695a8f",
        "58e66d69f9f239a444a90c7ff5eae32557fe350c"
      ],
      "author": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Fri May 30 01:41:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 01:41:18 2014 +0000"
      },
      "message": "Merge \"Only allow 1 Stack on Leanback-only devices\" into lmp-preview-dev"
    },
    {
      "commit": "3d5e5c7b266863953ece3d77ab2c334e9a9c4ebc",
      "tree": "d207a9816973cb82b776eccdf045289185eb571c",
      "parents": [
        "073c2e4ad1437bcb97b5290ad31ab40ef309716b",
        "9b9244b6941110ea2d940d9fc8eed0cdff96a016"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu May 29 21:17:32 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 21:17:32 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE Implementation of TaskManager reschedule/cancel\" into lmp-preview-dev"
    },
    {
      "commit": "073c2e4ad1437bcb97b5290ad31ab40ef309716b",
      "tree": "13ac61ad98215dc05a9761c7bf2f6391854bf70f",
      "parents": [
        "8d1de048d7612ec86ba01abc9f8b5eb7d2a2d6e2",
        "24cf152483c03dc446875c8d6440348174317bc5"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 29 21:10:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 21:10:15 2014 +0000"
      },
      "message": "Merge \"Updating task view style, fixing performance on enter-recents animation.\" into lmp-preview-dev"
    },
    {
      "commit": "24cf152483c03dc446875c8d6440348174317bc5",
      "tree": "72f76220a9b7fbd38c029dc0f8c671e0b225156b",
      "parents": [
        "fb816fc701770f95f7d1ebc0ab5ee19584798b74"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 29 12:03:33 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu May 29 12:30:26 2014 -0700"
      },
      "message": "Updating task view style, fixing performance on enter-recents animation.\n\nChange-Id: I42ca9296170a93a14184ae8963abbd3f0494e503\n"
    },
    {
      "commit": "79fa4630bbca7c6c251eea99fe8997e4b45becee",
      "tree": "c65f1dafd3657cb016eb7fc0ebf78a46eb3a1393",
      "parents": [
        "eb61eb786af1db1f1cf6c988d78d1ddc3acb4a16"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue May 27 16:49:09 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu May 29 11:28:48 2014 -0700"
      },
      "message": "API changes to sessions\n\nChanges requested by API Council review. A second CL will refactor\nTransportController and TransportPerformer based on feedback.\n\nChange-Id: Ie26a7d01d7021232a66c2edf1eb58120437fdfde\n"
    },
    {
      "commit": "71ac80c46a1b094ad951e59c24791d9e9ef769bf",
      "tree": "7504cea75bbeb9c3a7b023e978031b9ccd5eee91",
      "parents": [
        "219d7a50fb7a269fe54dd9d70587c269d217336f",
        "b9a6c8ad99c7885dccc23223068c0a551f350cd5"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:51:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 16:51:24 2014 +0000"
      },
      "message": "Merge \"Revert \"Modify task navigation to return to recent tasks.\" DO NOT MERGE\" into lmp-preview-dev"
    },
    {
      "commit": "b9a6c8ad99c7885dccc23223068c0a551f350cd5",
      "tree": "a06ea1745dfedcf8b118cee132c02a8b60cec6d1",
      "parents": [
        "e67a784eb2c914c04c62ea5dfa1e3751df5582cc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:50:59 2014 +0000"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 29 16:50:59 2014 +0000"
      },
      "message": "Revert \"Modify task navigation to return to recent tasks.\" DO NOT MERGE\n\nThis reverts commit 1a4e211e03f1f795d935058e27356a0e8bc5df7c.\n\nChange-Id: Ia691b93347c7eb2395933e5a5ba385ea94e08d6f\n"
    }
  ],
  "next": "219d7a50fb7a269fe54dd9d70587c269d217336f"
}
