)]}'
{
  "log": [
    {
      "commit": "f6586cbde7d4612963eb2e8a2413235630676b83",
      "tree": "331efab4ff95a97093e82ab9e1cc0b91bcc57867",
      "parents": [
        "67e02e60ca58db95b397fde7bfeeebb012e8aff8",
        "1de1186d28f0ca7c0b6298edfa8ae497e651ba87"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 15 23:31:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 23:31:25 2015 +0000"
      },
      "message": "Merge \"Implement issue #22403908: Enable assistant to refuse context sharing\" into mnc-dev"
    },
    {
      "commit": "1de1186d28f0ca7c0b6298edfa8ae497e651ba87",
      "tree": "a2fb5d493d38c1e5879a6e37e3e9d2773d8823aa",
      "parents": [
        "1d4247c4cc89c6d62e44ed3115f26579979b44b5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 15 14:20:51 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 15 14:20:51 2015 -0700"
      },
      "message": "Implement issue #22403908: Enable assistant to refuse context sharing\n\nNew APIs allow the voice interaction service to set/retrieve a filter\nfor which of the show flags are allowed.\n\nChange-Id: I588cbe55afee0548ad3afa22d3a7d3bc43cb54a6\n"
    },
    {
      "commit": "d0a159025a06a7400ab3dfca1d754494947092e0",
      "tree": "8c07dfe09413d2cc0219ae0ca8195132dc20ea13",
      "parents": [
        "1d4247c4cc89c6d62e44ed3115f26579979b44b5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 15 11:18:09 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 15 11:18:09 2015 -0700"
      },
      "message": "Fix issue #22124996: VI: Command Request not Active\n\nThis stupid thing wasn\u0027t even completely implemented\nin HandlerCaller!  D\u0027oh!\n\nChange-Id: I0dac42c208fa0f08a6e20a6cb17b072f51efcaa7\n"
    },
    {
      "commit": "6f0fdc4167ad906fc7409856e86cd0cc601c3b53",
      "tree": "b3097ee875c68282d9758f74654a61a9705f433e",
      "parents": [
        "79d9219c9f9734025837a01a6f8e490d1e0ab57e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 07 14:29:36 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 07 16:47:37 2015 -0700"
      },
      "message": "Implement better handling of text in assist.\n\nTextView is now much smarter about the text it reports, limiting it\nto what is visible (plus a bit more).  Also add a facility for it to\nreport where the lines of text are, both as offsets in the text string\nand their baselines on screen.\n\nPart of fixing issue #22328792: Fix scalability issues in AssistStructure\n\nChange-Id: Idddb8c3a3331355f381e2d4af06d520fe7c7ce8e\n"
    },
    {
      "commit": "de15edaa9bf486a4050bb067317d313fd807bb10",
      "tree": "489bb47ee9025eaccb14fa979f3b3e583f92fcbf",
      "parents": [
        "80abf887a1578669d3167ea83d52a497a64ea491"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 12:30:54 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 12:37:00 2015 -0700"
      },
      "message": "Work on issue #21589105: Scope WRITE_SETTINGS and SYSTEM_ALERT_WINDOW...\n\n...to an explicit toggle to enable in Settings\n\nAdd a new permission flag, saying the permission can be automatically\ngranted to pre-api-23 apps.  Apply this to SYSTEM_ALERT_WINDOW.\n\nChange-Id: I24a0ceabe7e9f5e458a864d30eda2696ad14a699\n"
    },
    {
      "commit": "593334ab70a8341c7d24d71a377ab5617e3f4ab7",
      "tree": "7005af1c583f459a8ce7a02a30f65502258ba015",
      "parents": [
        "1aaad610dfc7445ec29fd906974677515c3a9f87"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 14:38:17 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 16:59:41 2015 -0700"
      },
      "message": "Fix issue #22124996: VI: Command Request not Active\n\nJust forgot to add the request to the active set.\n\nAlso eradicate a bunch of old cruft that has been replaced\nby the final APIs, and improve voice interaction test to\nsit fully on top of the final APIs and have a test for\ncommand request.\n\nChange-Id: Ieff7a6165ebf2a4c5fb80c1ebd020511a2ae63ee\n"
    },
    {
      "commit": "70d8be7616a450e9b7ef09c8bda5a8b25936a29a",
      "tree": "9eeadb688ab64c3c0cdd1d0b79a1849b6fdfbe8a",
      "parents": [
        "f207285d8d813730683b0c099edff84ac0b13244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 23 19:33:02 2015 +0000"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 25 20:24:34 2015 -0700"
      },
      "message": "Fix issue #22013372: Assist should take translationX and friends...\n\n...into account when calculating the position information\n\nActually what we need here is the full transformation matrix, if it\nis available.  And that means actually computing the location of\nviews on the screen requires doing this all through transformations,\nso the AssistVisualizer has been changed to do this (while still\nalso keeping the old mechanism for comparison to verify that things\nare working correctly).\n\nAlso added new properties for elevation and alpha.\n\nAnd optimized the parcelling of AssistStructure to not write things\nthat aren\u0027t needed; this reduces the parcelled size by about half.\n\nChange-Id: I50b0dd2e6599c74701a5d188617a3eff64b07d03\n"
    },
    {
      "commit": "cb247780d3a5ecaa66587443eaa090dcd04996c6",
      "tree": "0bf051753c11ca221ac90e6361cddddef5ff3eda",
      "parents": [
        "60061c26a24f654f5a6ac599d85c3bea14ee9aff",
        "e9f13e171d5c506c0f2ef7389e03d787f9fd6f7b"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Thu Jun 25 17:53:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 17:54:01 2015 +0000"
      },
      "message": "Merge \"Remove Webviewtests in frameworks\" into mnc-dev"
    },
    {
      "commit": "e9f13e171d5c506c0f2ef7389e03d787f9fd6f7b",
      "tree": "1290173d28329bb0ae762329a2481abbe1854fba",
      "parents": [
        "c60408264c7fe19d2f1f3550556f7e6bc1ca716d"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Thu Jun 25 10:35:51 2015 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Thu Jun 25 10:50:26 2015 -0700"
      },
      "message": "Remove Webviewtests in frameworks\n\nBug: 22090564\n\nThese tests were not touched for at least 3 years, and with webview\nmoving to chromium, they are tested at the chromium side.\n\nChange-Id: I4424871dd97c5dc23bb3dbdcee0915d5ab893c7e\n"
    },
    {
      "commit": "9336eb5d1c962d6e4cd66a1ce3333da510dfd6d5",
      "tree": "0e0a16b80e595236d1396f3bff7b8b689d83ecfb",
      "parents": [
        "6301d802244f6e6c9fc6084e4bedd20ba0bd3064",
        "92537303a24f6f5caa35fc6e9f22602ddf934b0e"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Jun 24 21:27:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 21:27:15 2015 +0000"
      },
      "message": "Merge \"Update the internal test case to show the strokeWidth can scale now\" into mnc-dev"
    },
    {
      "commit": "92537303a24f6f5caa35fc6e9f22602ddf934b0e",
      "tree": "96ae102e1a2738fe85aaac8376017e4be19f9ce5",
      "parents": [
        "91870fa281c736b59fb8481e4469da51397c586d"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Jun 24 14:06:53 2015 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Jun 24 14:06:53 2015 -0700"
      },
      "message": "Update the internal test case to show the strokeWidth can scale now\n\nChange-Id: I16b0a232eb4108aedc9289e51a52ec9472b9dfd0\n"
    },
    {
      "commit": "16036f26847f3f1a88a093fb776bf081008ff8d8",
      "tree": "de55112eb541f881a41eabbe6fb846a85ea39477",
      "parents": [
        "9622c0cc900da84c903f0395053dd4d9a9e4f53d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 22 14:05:51 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 22 15:14:17 2015 -0700"
      },
      "message": "Fix issue #20654534: API Review: android.app.assist\n\nRemove the old classes.\n\nChange-Id: I949350cadc5fc304e2651d7db0ffd38e45db9b6e\n"
    },
    {
      "commit": "91870fa281c736b59fb8481e4469da51397c586d",
      "tree": "a2bb7185207cc2a9ef0dad0251c182799ff8739e",
      "parents": [
        "9a08fe2aca44f190162b198a726bc406ed19c1c7",
        "b6e9534ea5ad1b0d5059f6b943ed951184ec0c29"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Jun 18 17:05:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:05:13 2015 +0000"
      },
      "message": "Merge \"Separate 2 clip paths into 2 groups\" into mnc-dev"
    },
    {
      "commit": "b6e9534ea5ad1b0d5059f6b943ed951184ec0c29",
      "tree": "b750205faddc71d9a0a1df2dd645ded5074a6e19",
      "parents": [
        "476695227393b6c35c6777754b0e3b6448ceb7d2"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Jun 17 14:59:01 2015 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Jun 17 16:50:03 2015 -0700"
      },
      "message": "Separate 2 clip paths into 2 groups\n\nSince 2 clip paths is taking the intersection as the final clip, we should\nseparate this test case into 2 groups.\n\nPrior to M release, the 2nd clip path is overriding the first one.\nThe behavior changed in this CL:\ne9c01a40a2f0f0da195dfbb2909aaee5c005d1c6\n\nb/16376848\nb/19946683\n\nChange-Id: Ib21c95e70f1317321725acbbe0ccf91713f748c3\n"
    },
    {
      "commit": "1958e5e7870579337f1d1d3e6c6fae096ba3abb9",
      "tree": "fad208704fc337915aff86df8021895eb1910701",
      "parents": [
        "f63655e49fcccd922e8d5f61c67f58bd4a361211"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 12 18:11:41 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 11:53:59 2015 -0700"
      },
      "message": "Fix issue #21813831: Need API for asking to be added to power whitelist\n\nAdd the API.  Clean up a few related things.\n\nChange-Id: I190adad1812f36f6095b98a1001fedb94874e8b5\n"
    },
    {
      "commit": "e554cc96597d4b738f14a1514772e4d49e78c542",
      "tree": "cdee6876faa1c56d2e0ec3dc0cfb51f2913372db",
      "parents": [
        "17de4b2a73996366ff3d7759793a6809654caebe",
        "3d1933c45fe9ba2389ebd166d96abeceab1971d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 12 19:38:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 19:38:39 2015 +0000"
      },
      "message": "Merge \"Implement some control over ALLOW_WHILE_IDLE alarms.\" into mnc-dev"
    },
    {
      "commit": "3d1933c45fe9ba2389ebd166d96abeceab1971d1",
      "tree": "aa62fd57d10a9ae0bfb86e73655bc07b3b2b47e3",
      "parents": [
        "8a435ced674562b827f91800317a89056e050b15"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 10 16:25:57 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 12 12:37:35 2015 -0700"
      },
      "message": "Implement some control over ALLOW_WHILE_IDLE alarms.\n\nSince these alarms allow you to bypass the idle restrictions,\nwe don\u0027t want them to be so open-ended like other alarms.  This\nimplements a policy where the alarm manager will only deliver these\ntypes of alarms every X minutes to each application.  For this\ninitial implementation, X is 1 minute under normal operation and\n15 minutes when in idle mode.\n\nTo do this, I needed to introduce a new internal allow-while-idle\nflag for system alarms, which applications can\u0027t get, and doesn\u0027t\nhave these new restrictions.\n\nAlso tweaked how the alarm manager handles the alarm window, so it\ndoesn\u0027t change if the alarm gets rescheduld; the window is now always\nwhat as computed based on the time when the alarm was first\ngiven to it.\n\nFinally, fix TimeUtils to be able to correctly print times that\nare \u003e 999 days.\n\nChange-Id: Ibad8c6a7c14b0624b54e82267be23224b4c31e84\n"
    },
    {
      "commit": "17de4b2a73996366ff3d7759793a6809654caebe",
      "tree": "ea4b1be97c53e507c124120681efde58e2c20ad3",
      "parents": [
        "6161eb3494837cb7031b940e02fcbf5449e5be77",
        "1ce4b6d3c6cb5b2eb9c9d00472be12245db92427"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Jun 12 19:28:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 19:28:54 2015 +0000"
      },
      "message": "Merge \"remove usage of deprecated method setLatestEventInfo\" into mnc-dev"
    },
    {
      "commit": "1ce4b6d3c6cb5b2eb9c9d00472be12245db92427",
      "tree": "d8c7d63276de0a8609ff5bb2422a2e55bad1562a",
      "parents": [
        "08f247fe2e073a5ec62dc0469d83f514aab31c42"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Jun 11 10:19:43 2015 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Jun 12 10:16:04 2015 -0400"
      },
      "message": "remove usage of deprecated method setLatestEventInfo\n\nBug: 18510449\nChange-Id: I56a77991c729990e501f402e007dfa79ee57621e\n"
    },
    {
      "commit": "c8e8729244d75584ce71a74d29c452fe538a22c5",
      "tree": "11388496fdf1aef923b10b70f26c4e11f7a2def2",
      "parents": [
        "3d53a26d1a8471f4709b528686601381fd7e6da4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 10 15:33:45 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 11 22:01:45 2015 +0000"
      },
      "message": "UsageStats: Change INTERACTION to SYSTEM_INTERACTION\n\nSYSTEM_INTERACTION events are signals to the system for a package\u0027s\nimplicit actions (service bound, etc).\n\nThese should not affect the API visible stats like lastTimeUsed, etc.\nUSER_INTERACTION is for user initiated actions (notification interaction, etc).\n\nBug:21761781\nChange-Id: I4585cf35fbb158612a3c737710108bec34e89183\n"
    },
    {
      "commit": "a3acdb33df7c7be7ff3d9f376ff833e4b0c1d897",
      "tree": "452c3cd2b7a2706fcbdcd1432e820c71e31b13bb",
      "parents": [
        "ea7438e4a698945b3e3a7786cff726c337291a68"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 08 17:07:40 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 09 14:15:49 2015 -0700"
      },
      "message": "Fix issue #21621920: VI: need mechanism to get current request\n\nAdd new APIs to associate a Request with a name, get all active\nrequests, and get active request by name.\n\nAlso add a new Activity.onProvideReferrer() which will allow\napplications to propagate referrer information to the assistant\n(and other apps they launch) in a consistent way.\n\nChange-Id: I4ef74b5ed07447da9303a74a1bdf42e4966df363\n"
    },
    {
      "commit": "5ac36cea8611d15027c4353e3c8ef932d6ad437a",
      "tree": "93695bfe83c8e89c6006cfc1864edde0a19a6840",
      "parents": [
        "37cf07717137a41fd5c3724fe9c44de2f89a7f8c",
        "dd231d466faa3102d59e458a6726ff3004e6b1c7"
      ],
      "author": {
        "name": "James Cook",
        "email": "jamescook@google.com",
        "time": "Mon Jun 08 20:03:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 08 20:03:39 2015 +0000"
      },
      "message": "Merge \"Use VoiceInteractor.Prompt in VoiceInteraction test app\" into mnc-dev"
    },
    {
      "commit": "54d729b73f54798d3112129894cb6fe8ef75920b",
      "tree": "f9ac0e9440ff058a879f7a1cff4e1746629612a9",
      "parents": [
        "383ce580b1c9e706d1b06a23d81986f3b4ed83fb",
        "67ba2c7fa25a635c640956ff3a5e64164cb23396"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 08 19:46:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 08 19:46:24 2015 +0000"
      },
      "message": "Merge \"Fix issue #21572679: API Review: ActivityOptions, usage time report\" into mnc-dev"
    },
    {
      "commit": "dd231d466faa3102d59e458a6726ff3004e6b1c7",
      "tree": "24746ffe70d873a0f02c406cd1bab84447c7b102",
      "parents": [
        "aaf68f216327a8a2adaf72032904b50796b4aea7"
      ],
      "author": {
        "name": "James Cook",
        "email": "jamescook@google.com",
        "time": "Mon Jun 08 10:03:35 2015 -0700"
      },
      "committer": {
        "name": "James Cook",
        "email": "jamescook@google.com",
        "time": "Mon Jun 08 10:03:35 2015 -0700"
      },
      "message": "Use VoiceInteractor.Prompt in VoiceInteraction test app\n\nThe framework API that takes a CharSequence as a prompt is now\ndeprecated, so update the test code to use the new API.\n\nBug: 21695917\nChange-Id: Ic4b7afa6c547a9885a900ed092910f3c6bdd1dd4\n"
    },
    {
      "commit": "67ba2c7fa25a635c640956ff3a5e64164cb23396",
      "tree": "fc3e734c9f8b05f4baa310828979e7fad0c6e103",
      "parents": [
        "2fe44efced5ac28bc3e03c9c101644b4ef0134bb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 05 14:23:38 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 05 14:23:38 2015 -0700"
      },
      "message": "Fix issue #21572679: API Review: ActivityOptions, usage time report\n\nChange-Id: I62751e93e39f90d5d2ec725586880724f3edbbc7\n"
    },
    {
      "commit": "83a52031fd5c277d0c6e75da50bf8013e8a70399",
      "tree": "7d1cf90ee2ccead94abe77cee440fc64a7d7b88f",
      "parents": [
        "1da56b51d59aa4c587dcdb5bf4c1719961be0ae7"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri May 29 17:19:41 2015 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Jun 04 12:55:21 2015 -0700"
      },
      "message": "Setup the animation callback for AnimatedVectorDrawable\n\nb/21341096\n\nChange-Id: I84e20366db21ceaa4f044be3e322f9215bb06ad2\n"
    },
    {
      "commit": "b0a5e78fc06aeb67ac1f55832c9ceef5f92a0807",
      "tree": "310f16ba5e22eec96820b6d8f0945d789a3d7ca6",
      "parents": [
        "52999685178656caba37fa0e9055ac26d707bdce",
        "69c6adc96eecfde74ceb83cf9177428dc08b6067"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 04 16:56:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 04 16:56:52 2015 +0000"
      },
      "message": "Merge \"More API changes.\" into mnc-dev"
    },
    {
      "commit": "69c6adc96eecfde74ceb83cf9177428dc08b6067",
      "tree": "1c9fb3e63573cf0133ad3680d3cc8a048b0874c0",
      "parents": [
        "133b107d28649ef5a984be0acc06f53e49853b22"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 02 10:52:59 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 02 16:56:41 2015 -0700"
      },
      "message": "More API changes.\n\nStart moving Assist* stuff to android.app.assist.\n\nClean up some more of the VoiceInteractionSession APIs.\n\nClearly document that finish() is not the same as hide(),\nalways call hide() instead, and fix the finish() path to\nalso always do a hide to make sure everything is cleaned\nup correctly.\n\nChange-Id: I962d4069fcb34fe89547a95d395ae1b9fa3b4148\n"
    },
    {
      "commit": "7d01d2c6cfcdfad74735619ab95f8396be54dc0f",
      "tree": "582d73c990c989bc69a4031af35009fbdc5856fd",
      "parents": [
        "11accf51c2e5b3e4fcfc3d61e9b8a46c1ce0284a",
        "d944986fbdb3d45fab9ae4120af76ca4f6b0909c"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Jun 02 22:25:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 22:25:29 2015 +0000"
      },
      "message": "Merge \"Fix API review: Camera prewarm\" into mnc-dev"
    },
    {
      "commit": "d944986fbdb3d45fab9ae4120af76ca4f6b0909c",
      "tree": "8e7f67f5b08b7e64f86806b8d29579f03057c3e6",
      "parents": [
        "cd0f3a1afe668ba3705819da0350d6d05a0b1bcf"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri May 29 14:49:08 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Jun 01 18:01:20 2015 -0700"
      },
      "message": "Fix API review: Camera prewarm\n\nLet the intent receiver of a camea launch intent declare a prewarm\nservice instead of sending broadcasts.\n\nBug: 21347653\nChange-Id: I11e31aad4f788ad90eb46a661b819d3e808ddb51\n"
    },
    {
      "commit": "9ed0c4109df27c0956f97b7a074c0b67daa0ebd8",
      "tree": "ed7ea8de025d73be59dc9d531cd50a0d7f9005d5",
      "parents": [
        "e1c68765cf53473e710438f90e42e0cb26dffe1b",
        "2ee5c368f844bc0f6ce55ff6d5cf3d5604cad5d8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 01 22:28:44 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 01 22:28:45 2015 +0000"
      },
      "message": "Merge \"Update VoiceInteractionService from API review.\" into mnc-dev"
    },
    {
      "commit": "2ee5c368f844bc0f6ce55ff6d5cf3d5604cad5d8",
      "tree": "592fceaa701e4bb71162f6d4da7ccc951fe5caa5",
      "parents": [
        "4573dddcce3f232d2eeb20bfe0e204e15a9416e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 29 17:58:53 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 01 11:42:04 2015 -0700"
      },
      "message": "Update VoiceInteractionService from API review.\n\nThis may even manage to retain compatibility with existing\nbinaries!  (For now.)\n\nChange-Id: I3b1386287a6b9b20b57ac2e2444fd6f458837277\n"
    },
    {
      "commit": "b2c589c3f7509a569439ab1a0b173689ad06a00b",
      "tree": "c7e23cbdb2d86cb089a458293cf0962cb217a00c",
      "parents": [
        "34cca12bbda96ea8aad86b0455eb61e4674a4616"
      ],
      "author": {
        "name": "Andrew Flynn",
        "email": "flynn@google.com",
        "time": "Mon Jun 01 09:27:38 2015 -0400"
      },
      "committer": {
        "name": "Andrew Flynn",
        "email": "flynn@google.com",
        "time": "Mon Jun 01 09:27:38 2015 -0400"
      },
      "message": "Change colors of AVD test\n\nso you can actually see the animation rather than animating between\nthe same color.\n\nChange-Id: Id32f6f5a22c000093fb9cbc1e9274eacbd183373\n"
    },
    {
      "commit": "1cd7e4c3d0216cfb9a8a685ca8cf6f0d740a9dff",
      "tree": "2ae1662b8d6a4ff711e6ce621e690e4f6204c0f1",
      "parents": [
        "5cd795a9094eb02c983751ecabca6f24b0a01c58",
        "fca52b7583d1e5f5ff8ed06554875d2a30ef56fa"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 28 22:03:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 28 22:03:08 2015 +0000"
      },
      "message": "Merge \"Use path intersection instead of saveLayer+mesh to mask projected ripples\" into mnc-dev"
    },
    {
      "commit": "4573dddcce3f232d2eeb20bfe0e204e15a9416e9",
      "tree": "2ffa4bac4aff27239990db0e2761473b18a61bfa",
      "parents": [
        "bf7fe1e051fefc5e6c1b96411a842b0305a9192c",
        "09d57fe9b357495b7bc62be39a8befa00d9d7ffb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 28 21:35:40 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 28 21:35:41 2015 +0000"
      },
      "message": "Merge \"Add new API to set URI on AssistContent.\" into mnc-dev"
    },
    {
      "commit": "6ac0c8c5faaa2fdf56a533a6a3452d53850809ee",
      "tree": "c5c64242918f8495a1bd59d25e49726f8e4a015c",
      "parents": [
        "3aeb5f848eee2c6de9bb49c9dcc7ca5127ef7c1e"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 28 13:22:28 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 28 20:26:37 2015 +0000"
      },
      "message": "lock device orientation during app compatibility test\n\nDevices on test benches are usually held sideways, which leads to app\nrotation during launch. While it\u0027s useful to identify such issue from an\napp perspective, the app compatibility test should be isolated from such\nnoise for the purpose of the testing for basic level of compatibility.\n\nChange-Id: I403f96e5d8512ca6a17b05a83d69f4b02f760a32\n"
    },
    {
      "commit": "09d57fe9b357495b7bc62be39a8befa00d9d7ffb",
      "tree": "1d71edec334401bb5b978f64267d7d8b496582cb",
      "parents": [
        "da1b398173a94e94c61a0d186c7dc0ef2a7bd060"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 27 18:05:52 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 28 11:44:58 2015 -0700"
      },
      "message": "Add new API to set URI on AssistContent.\n\nAlso rework how we transfer AssistContent and AssistStructure\nto the assistant, so they are delivered as completely separate\nobjects rather than the kludgy bundling them in the assist\ndata thing.\n\nChange-Id: Ib40cc3b152bafeb358fd3adec564a7dda3a0dd1d\n"
    },
    {
      "commit": "01d1acc3c7f2c15d926a5454c2d899135d3db318",
      "tree": "4c635b2cd5f888a16998096edf0e718d19cf7967",
      "parents": [
        "3c6511518f8d87cee56870bcd4bd01174e412af3",
        "12c137ff3f2e7db6b0825f819a9346aa8834e3cb"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed May 27 20:33:47 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 27 20:33:49 2015 +0000"
      },
      "message": "Merge \"AnimatedVectorDrawable Attr proof of concept\" into mnc-dev"
    },
    {
      "commit": "4f486ee6963c52719a4420dc3dc8ff02519a3599",
      "tree": "07eed759f6f578f53fd473069888b7da9a942ae8",
      "parents": [
        "da1b398173a94e94c61a0d186c7dc0ef2a7bd060"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 26 13:54:34 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 26 18:26:46 2015 -0700"
      },
      "message": "don\u0027t report missing launch intent as failure\n\nSome apks includes widgets and does not have a launchable\nactivity. The inclusion of such apk for launching is an issue\nwith test configuration, not test failure.\n\nAlso logging intent used for app package for debugging purpose.\n\nChange-Id: Ibca05757a401ea036e9910d8580d7cafd356567c\n"
    },
    {
      "commit": "fca52b7583d1e5f5ff8ed06554875d2a30ef56fa",
      "tree": "e383a2db169421a722fa9c559dd01904e83fa504",
      "parents": [
        "aa1cd25db72297f13539928e8aa45ba992f2f230"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 11:45:59 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 26 17:53:16 2015 -0700"
      },
      "message": "Use path intersection instead of saveLayer+mesh to mask projected ripples\n\nbug:14297149\n\nSaveLayer\u0027s performance cost is high, and proportional to the surface\nbeing projected onto. Since ripples (even unbounded ones) are now\nalways projected to the arbitrary background content behind them, this\ncost is especially important to avoid.\n\nThis removes the last semi-secret, saveLayer from the projected\nripple implementation.\n\nAlso fixes the HW test app to correctly demonstrate this projection\nmasking behavior.\n\nAdditionaly, alters PathTessellator to gracefully handle\ncounter-clockwise paths, and simplifies the work done by\nShadowTessellator to ensure all of its paths are counterclockwise.\n\nChange-Id: Ibe9e12812bd10a774e20b1d444a140c368cbba8c\n"
    },
    {
      "commit": "9f521c9b17660959d8c1b6af3f8658b6b52a553c",
      "tree": "a409e92c680a2ecde4db5408b900538e50b0365e",
      "parents": [
        "47e745c9786f757c2351e7192b7cd76527b95861"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon May 25 12:09:12 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon May 25 12:10:36 2015 -0700"
      },
      "message": "update app compatibility post launch detection\n\ndecide if the app is still running after launch by checking\nrunning tasks and look for a task with base activity belonging\nto the package launched.\n\nChange-Id: Ibb3894e765ccbca62f803decc3c1c1f36dc2d454\n"
    },
    {
      "commit": "e5c42621095a12e7d22ca5ab871dacd28c9bff41",
      "tree": "2ba8e545b5c97ede4be9532d08e0cd03cd24e0b5",
      "parents": [
        "8b20cdb27bc5b4c433c4fc650203be9a25842bbd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 19 16:04:04 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 21 18:19:50 2015 -0700"
      },
      "message": "Improve reporting to apps of transaction too large failures.\n\nIf the app tried to do various things with too much data --\nstarting an activity, starting a service, sending a broadcast --\nthis would fairly silently fail with little indication of what\nwas going on.  Fix this in two ways:\n\n- Now when the native code generates a TransactionTooLargeException,\n  it may include an additional message in it telling you how much\n  data was in the parcel being sent, to help you understand why\n  this happening.\n\n- In all the framework code paths where we call to the system and\n  may fail, convert these failures into a a runtime exception and\n  rethrow them back to the app so that it will clearly get the\n  above message.\n\nChange-Id: I745159b97d3edb6fca86aa09cbc40c1f15a7d128\n"
    },
    {
      "commit": "b5a380d409a1431a38db978864b9d85b689e3cce",
      "tree": "5cd36c4c095331869e1019739500b517fbf516a6",
      "parents": [
        "aba3ecb976cacd7c92fe8f8afae20d112781d68e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 20 18:18:46 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 21 16:45:29 2015 -0700"
      },
      "message": "Add API to track usage time of apps.\n\nThis adds a new ActivityOption for the caller to ask the\nsystem to track the time the user is in the app it launches,\ndelivering the result when they are done.\n\nThe time interval tracked is from when the app launches the\nactivity until the user leaves that app\u0027s flow.  They are\nconsidered to stay in the flow as long as new activities\nare being launched or returned to from the original flow,\neven if they cross package or task boundaries.  For example,\nif the originator starts an activity to view an image, and\nwhile there the user selects to share, which launches gmail\nin a new task, and they complete the share, the time during\nthat entire operation will be included.\n\nThe user is considered to complete the operation once they\nswitch to another activity that is not part of the tracked\nflow.  For example, use the notification shade, launcher, or\nrecents to launch or switch to another app.  Simply going\nin to these navigation elements does not break the flow\n(although the launcher and recents stops time tracking of\nthe session), it is the act of going somewhere else that\ncompletes the tracking.\n\nThe data is delivered to the app through a PendingIntent,\nwhich includes the total time the app was in the flow along\nwith a time break-down by app package.\n\nChange-Id: If1cf8892d422c52ec5042eba0e15a8e7e8f83abf\n"
    },
    {
      "commit": "c19cdfa14dd5c64f3c185a7b07ac9ca2ecc2f0e7",
      "tree": "7b41adf189a0858b41c156dfa5b2553a067d4d99",
      "parents": [
        "b300d31bf1cb138f0a7c4c484459cc6a2ce2f69c"
      ],
      "author": {
        "name": "Jean-Luc Brouillet",
        "email": "jeanluc@google.com",
        "time": "Tue May 19 14:59:42 2015 -0700"
      },
      "committer": {
        "name": "Jean-Luc Brouillet",
        "email": "jeanluc@google.com",
        "time": "Wed May 20 13:40:06 2015 -0700"
      },
      "message": "Clean RenderScript warnings\n\nChange-Id: Ia7a98c1c977c839c74ae8081e70b5deb4b60c25d\n"
    },
    {
      "commit": "dbd90f032971d59bfb8e0fd2964a3ecb0a9843bd",
      "tree": "c1572f0ef226c79589c6000e03acab913178fd2d",
      "parents": [
        "ba6a72fd668c5396e2dc903806c915233bed43c7",
        "7edddb4961c7c64f8d2a06495f742e04b5cc7696"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Tue May 12 18:51:02 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 18:51:09 2015 +0000"
      },
      "message": "Merge \"Tests for Notification object construction and parceling.\" into mnc-dev"
    },
    {
      "commit": "61e1e09a2b6471defa1032a44a20090618c21d3f",
      "tree": "e599662f77773f82f4327af20b132f5db4e5ad6f",
      "parents": [
        "eeb60bc7bbba2eed29d78dcc56ec1760655c5481"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 28 16:21:06 2015 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 12 10:26:13 2015 -0700"
      },
      "message": "Change attribute values per API council.\n\nlockTaskModeDefault \u003d\u003e default\nlockTaskModeNever \u003d\u003e never\nlockTaskModeIfWhitelisted \u003d\u003e if_whitelisted\nlockTaskModeAlways \u003d\u003e always\n\nFixes bug 20642190.\n\nChange-Id: I29cc546e12c330df9ec9af3cc91faf0d0f3df3b4\n"
    },
    {
      "commit": "7edddb4961c7c64f8d2a06495f742e04b5cc7696",
      "tree": "8e820f471ffe72f3a17359e5270db77abba67e9e",
      "parents": [
        "cbcbb828e8e3d1f901be00c896d816d01c17b19d"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 06 16:49:28 2015 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon May 11 23:32:08 2015 -0400"
      },
      "message": "Tests for Notification object construction and parceling.\n\nThe tests use the new hidden Parcel APIs (if available on\nthe running platform) to emit statistics about ashmem usage.\n\nBug: 20153922\nBug: 20079551\nChange-Id: I400d2a932f297e582c335389570f93c0d4a19fc9\n"
    },
    {
      "commit": "12c137ff3f2e7db6b0825f819a9346aa8834e3cb",
      "tree": "8818ddcac56054f604b0e288e779dc014e7b5191",
      "parents": [
        "dbf62ace0dcb671f5eaa97c0dfa75e39bc9c88be"
      ],
      "author": {
        "name": "Andrew Flynn",
        "email": "flynn@google.com",
        "time": "Mon May 11 13:36:42 2015 -0400"
      },
      "committer": {
        "name": "Andrew Flynn",
        "email": "flynn@google.com",
        "time": "Mon May 11 13:36:42 2015 -0400"
      },
      "message": "AnimatedVectorDrawable Attr proof of concept\n\nThis crashes while trying to run due to the \u0027?attr/color1\u0027 reference inside\nres/anim/blink.xml\n\nBug: 20817800\nChange-Id: Ie3ea24ac9b22e69af152d6ffe87c8c953929299c\n"
    },
    {
      "commit": "08cba16a59c442619ec952e7ce251e4038eb8322",
      "tree": "e10376f29cba33e179158407152373d17edc5d9d",
      "parents": [
        "f659a56c3062392d6b6020d148553ce49797eb5a",
        "765e00af5b769aff89300a167f545cac2088b1f1"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sat May 09 00:27:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 09 00:27:56 2015 +0000"
      },
      "message": "Merge \"allow top sleeping state in app process verification\" into mnc-dev"
    },
    {
      "commit": "765e00af5b769aff89300a167f545cac2088b1f1",
      "tree": "b9d2883cf27da04d4537d01aeee96b7511839730",
      "parents": [
        "e1a1d2e85a3f0626ae13322998fd45a1eb4a49d7"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri May 08 17:10:29 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri May 08 17:10:29 2015 -0700"
      },
      "message": "allow top sleeping state in app process verification\n\nThis happens when an app is launched but has a dialog shown on\ntop of it. Typical reason is a licensing prompt of sorts.\n\nChange-Id: Id73f45f54767b869873c62f13aeeb470c1a5cd81\n"
    },
    {
      "commit": "ed9af066b2407a36699fae2e475c4d1b53d2ca1d",
      "tree": "005f834b928f7a47220e1468b7aa90d6fee1bfd3",
      "parents": [
        "180fd27832b429aaca0a35e8b93c88195b6451be",
        "49b043f37d7231b1544cb72e1bfb616e5a00688d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 20:42:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 20:42:12 2015 +0000"
      },
      "message": "Merge \"Fix issue #20655182: API Review: ViewAssistStructure\" into mnc-dev"
    },
    {
      "commit": "94a6d15ede149189bba9e5f474ed853c98230e75",
      "tree": "edc5a5211a7b69e091a13ddc3c60dcf88d9a5ea6",
      "parents": [
        "0d857b9028f2702ce439e13feccde8182d40e1e5"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue May 05 15:07:00 2015 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu May 07 18:44:21 2015 -0700"
      },
      "message": "Use new hierarchy viewer protocol in all View subclasses\n\nA previous CL introduced a new way of encoding view properties for\nuse by heirarchy viewer. This CL updates all views using the old\n@ExportedProperty annotation to use this new method. The older\nmechanism will be removed in a subsequent CL.\n\nChange-Id: I6cc23b90cd9da1c6ce89b4caffe54874db203452\n"
    },
    {
      "commit": "0d857b9028f2702ce439e13feccde8182d40e1e5",
      "tree": "a20bf172e726bef479b16ab121ee5a348df6b613",
      "parents": [
        "0a008049a21c5fbe36eac8047c5411c2e3aff41b"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Apr 22 10:23:56 2015 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu May 07 18:44:15 2015 -0700"
      },
      "message": "Improve hierarchy viewer dump hierarchy latency\n\nHierarchy Viewer obtains the properties for each view by using\nreflection and looking for fields and methods that have the\n@ExportedProperty annotation. Using reflection made it quite slow\nfor large view hierarchies.\n\nThis CL adds a new method (encode) to each class that wishes to\nexport data to hiererachy viewer. Inside this method, the object\ncan write a sequence of key, value pairs corresponding to the\nvalues it wants exported.\n\nWith this change, the dump hierarchy operation that used to take\nmore than 10 seconds can be performed in a few hundred milliseconds.\n\nChange-Id: I199ac2e7ca3c59ebcfec7e6bd201e134c41fd583\n"
    },
    {
      "commit": "49b043f37d7231b1544cb72e1bfb616e5a00688d",
      "tree": "b08f8d748f099c46346e0e5e997d217eea8c88ca",
      "parents": [
        "cfd6e9dfd063cba795497f251aa6f7fe2554f10b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 07 14:21:38 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 07 16:30:52 2015 -0700"
      },
      "message": "Fix issue #20655182: API Review: ViewAssistStructure\n\nFix the various view assist related APIs.\n\nAlso remove the blockAssist view attribute, and instead use\nthe window\u0027s FLAG_SECURE to drive blocking of the entire\nhierarchy (which is semantically correct, and will protect\nexisting apps that have already indicated they need it).\n\nChange-Id: I6beebc86b202809cba0a356cae9607d8d0fb5e78\n"
    },
    {
      "commit": "39fce1d226c96e49cf8466a347dabe9dba702151",
      "tree": "ddd814438f3726ae2ff9632b247d01f3e8adf752",
      "parents": [
        "dc9b2dfae2d2c0ef6d7e8d769a78abc17add537a",
        "34092cf80a7402a299ee91a12c5e05b7655169b1"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 07 19:05:47 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 19:05:50 2015 +0000"
      },
      "message": "Merge \"improve app crash detection in compatibility test\" into mnc-dev"
    },
    {
      "commit": "34092cf80a7402a299ee91a12c5e05b7655169b1",
      "tree": "6458f9a5183eafcb30fd504b6e9f3312fb283e28",
      "parents": [
        "9132c5ab0746f56909ed5630a6e93c9fadefabd0"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 07 10:51:29 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 07 11:48:33 2015 -0700"
      },
      "message": "improve app crash detection in compatibility test\n\nIn addition to ensuring that process exists, we also need to\ncheck that it\u0027s the right state. Because crashed foreground\nactivity can still get started as background service.\n\nBug: 20899208\nChange-Id: I101e556ce757af1afb66686827c5851dd6fda620\n"
    },
    {
      "commit": "20db98c5d8909452f0e385bbd075d0fb8fa4cd9c",
      "tree": "c77c24e1e94fc220aa0b553bb2f50a5123d46f19",
      "parents": [
        "9132c5ab0746f56909ed5630a6e93c9fadefabd0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 06 21:00:06 2015 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 06 21:00:06 2015 -0700"
      },
      "message": "Remove incomplete media router API.\n\nThis time not also accidentally deleting frameworks/base/Android.mk.\n*sigh*\n\nBug: 20641986\nChange-Id: I2e43ab1fdf4201fec4d5a5b73c04f27a4a848630\n"
    },
    {
      "commit": "a8cc0584c60cbe7e880895353d95e9b9cc5c1b62",
      "tree": "0a85f88036631df12b74a349e711195d70b40687",
      "parents": [
        "2e5a2051de54e64612e1357d4534c7ec851aa508"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu May 07 03:23:20 2015 +0000"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu May 07 03:23:20 2015 +0000"
      },
      "message": "Revert \"Remove incomplete media router API.\"\n\nThis CL has broken all builds on mnc-dev.\nReverting until Jeff can take a look at it.\n\nThis reverts commit 2e5a2051de54e64612e1357d4534c7ec851aa508.\n\nChange-Id: Ib9b3569bfebdc7bbfbcb7aee82733b93736c5bb5\n"
    },
    {
      "commit": "2e5a2051de54e64612e1357d4534c7ec851aa508",
      "tree": "fb7abdcd4dc4d8be87890cb40161339d88a99527",
      "parents": [
        "4244ce6a17063fd67fa174f7e551830c4df7d5bf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 19 17:39:42 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 06 19:54:46 2015 -0700"
      },
      "message": "Remove incomplete media router API.\n\nBug: 20641986\nChange-Id: I310fadafb5a6b8190a32e5d87f3e1823c87bcef7\n"
    },
    {
      "commit": "e9194b98a2098a1d94957e4723eaaf7399ecf3be",
      "tree": "93be36d5499bba5c1f21df4598a0ab7e92121b36",
      "parents": [
        "6329bbceebc8c0d6de164cb693a828402542fd35",
        "704b9f82c345da2d63bc2785fb3733b486d3e119"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue May 05 23:53:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 23:53:23 2015 +0000"
      },
      "message": "Merge \"Extended test to support launching assist above lock screen\" into mnc-dev"
    },
    {
      "commit": "704b9f82c345da2d63bc2785fb3733b486d3e119",
      "tree": "420d5355f51c915a3a46f30d3783313166ecf621",
      "parents": [
        "e70d6535237d2e6f03adcd0bdc11e45ea714dc97"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Apr 27 16:18:37 2015 -0700"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue May 05 14:53:08 2015 -0700"
      },
      "message": "Extended test to support launching assist above lock screen\n\nChange-Id: Ic65e638eed214a240cc13666f857e9b297f28168\n"
    },
    {
      "commit": "58a20d19f52841a8eb4044451eeba335938fa363",
      "tree": "e18e5f870b7a8ed4bddbc70f3adc2902d6fcbd0b",
      "parents": [
        "703b5f895d8be08d795ace72c74576e1e4b6c5b6"
      ],
      "author": {
        "name": "Maxim Siniavine",
        "email": "siniavine@google.com",
        "time": "Tue May 05 12:00:24 2015 -0700"
      },
      "committer": {
        "name": "Maxim Siniavine",
        "email": "siniavine@google.com",
        "time": "Tue May 05 12:00:24 2015 -0700"
      },
      "message": "Update permissions on memory usage instrumentation\n\nChange-Id: I0c2bbd893252eb1dc3cf8b93b787efd772317216\n"
    },
    {
      "commit": "574f53793d6441ebf55ca8811588ad37d9451a9a",
      "tree": "cf2c794a03a58b425264abb90939d2418d97621d",
      "parents": [
        "106f88c890bd128ef89aa4f0dee591c2ad38fa6b",
        "b9d71a6f89b1183f6389b1774652445a420c6cbf"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 01 23:09:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 23:09:52 2015 +0000"
      },
      "message": "Merge \"Add body sensors app op - framework base\" into mnc-dev"
    },
    {
      "commit": "31a2d063df5111e730abe7d07be064690deedc34",
      "tree": "ad96bc2fe1f7a8bc0feeb39a63763240746c4308",
      "parents": [
        "5c705c595d6adbb4b6e8ad5dee29205246cd5cc4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 01 14:22:47 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 01 14:30:15 2015 -0700"
      },
      "message": "Revert \"Revert \"Merge getDisplayList and updateDisplayListIfDirty\"\"\n\nFixes breakage from HwAccelerationTest\n\nThis reverts commit b2847afde24aac22c8fb804cdce0c24b8a7c40c4.\n\nChange-Id: I762b3c9020fc1d06bac61ffa8b956049147515b1\n"
    },
    {
      "commit": "b9d71a6f89b1183f6389b1774652445a420c6cbf",
      "tree": "b6f17102b2f86b40630e4a7cd681721797a8f324",
      "parents": [
        "9fc943d1a69f2ab0f6d8285b09aef7e344a1fd1a"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 30 10:38:13 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 01 13:56:04 2015 -0700"
      },
      "message": "Add body sensors app op - framework base\n\nChange-Id: Idd5cd573fab3405e5b2a6e51d2d9d115650826e9\n"
    },
    {
      "commit": "5f560d056243638a83a4e7770035fdb66004c9d7",
      "tree": "23e0d0ca97b0784421ddd3f5c7798f351b399a6b",
      "parents": [
        "cf2999aacf45506ff6f9c2876bfd4fd5a99fc394"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Apr 30 11:49:29 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri May 01 13:33:38 2015 -0700"
      },
      "message": "Rename supportsAssistGesture to supportsAssist\n\nBug: 20642759\nChange-Id: Idddc786980244cc94570d04fd414540bbad60448\n"
    },
    {
      "commit": "fa5ecdc4ac6d7a8db2bb9e4a6a60a3189025df30",
      "tree": "ab6c59fa33dd8871ee7580e83dd405f2bf9d4347",
      "parents": [
        "50ea942255e139d3ace81cdd3f90be75625edd69"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 12:03:28 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 16:31:58 2015 -0700"
      },
      "message": "Respect the record audio app op - framework\n\nChange-Id: I5696d2ef22738ccffaf8bd7a0ee68cbc3dea3bf1\n"
    },
    {
      "commit": "799d8d0a0fa42d360f2ccd9cc66aace8eb167c67",
      "tree": "990d965804347d2047ac03f1b77c7b966252ebb1",
      "parents": [
        "a1f6211e795be5101ab763dd451b307ae56c8cad"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 22 16:36:39 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 22 17:36:48 2015 -0700"
      },
      "message": "Add \"assist block\" API.\n\nTo prevent assist structure traversal down the view hierarchy.\n\nChange-Id: I50ce5f8de6f2eca3cb862de8eacd6422c40a2f7c\n"
    },
    {
      "commit": "c21ae9ed221912b61306e075d3f22726ac04013c",
      "tree": "13584199534e3148ceceb7cdae210fe1c4d598b6",
      "parents": [
        "8ce568e756c4096002d2bfb786114aac5a06e54e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 15 09:45:42 2015 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 21 10:11:12 2015 -0700"
      },
      "message": "Add API for putting up locktask pinning toast.\n\nFixes bug 18993662.\n\nChange-Id: Ic1753285044857f8ea897784485fd1a9580acf25\n"
    },
    {
      "commit": "2ad0bb46a42476f91b63baa95f0bcf97a337a4fc",
      "tree": "038cec3cde560e9d898ef8c3aa0f1d5cff58fa14",
      "parents": [
        "15df08abd8190353e1430f88c2ed6462d72a5b25"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 08 15:43:26 2015 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 15 14:27:56 2015 -0700"
      },
      "message": "Add tests for android:lockTaskMode.\n\nAndroid app to exercise the new attribute.\n\nFor bug 19995702.\n\nChange-Id: I0794301a6b677ec6367dd3ad99a40b5d3f9f1d7c\n"
    },
    {
      "commit": "88022af3b432b6294ba3ec62e9d025c52d71a7f1",
      "tree": "af4c6836623f1affb561e6b66d69a80d3f960936",
      "parents": [
        "f04046dfb0696113c8c1a3cf7425b7d6d85378b3",
        "57e7443d9de2453c150776a318107ee830abe722"
      ],
      "author": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Apr 09 19:36:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 19:36:54 2015 +0000"
      },
      "message": "Merge \"Add permission for AppCompatibilityTest.\""
    },
    {
      "commit": "57e7443d9de2453c150776a318107ee830abe722",
      "tree": "35e679ec6f290242ba6601f919f0dbc764418120",
      "parents": [
        "57baee2e12d1102372153cb4a66ff151c5cc855c"
      ],
      "author": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Apr 09 12:32:33 2015 -0700"
      },
      "committer": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Apr 09 12:35:49 2015 -0700"
      },
      "message": "Add permission for AppCompatibilityTest.\n\nBug: 20134812\nChange-Id: Iaf9a9963a16af1e2bb157159648db70666a33c48\n"
    },
    {
      "commit": "25ff0646ca16060040ff68ad6d02422db96327e0",
      "tree": "8174fd39edca16b0fbe03cbe0301314901f7f2e5",
      "parents": [
        "1620a65d32251ca058b60cb2751394e9ee1f0019",
        "a86790bf23a98ede5fc0c29b996a5229e08181cd"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Apr 07 18:50:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 18:50:54 2015 +0000"
      },
      "message": "Merge \"Add Camera prewarm intent.\""
    },
    {
      "commit": "a86790bf23a98ede5fc0c29b996a5229e08181cd",
      "tree": "356a816c89f4dd08c1437221eb57aa168fe0a015",
      "parents": [
        "6e9fa1a4b74dc4e35470739cfd64881cb9bcc7b1"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Apr 02 16:32:29 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Apr 07 11:24:05 2015 -0700"
      },
      "message": "Add Camera prewarm intent.\n\nAlso adds a test app for testing this intent. In addition, the secure\ncamera gets launched in the background to fix jank while sending the\nintent.\n\nBug: 20016619\nChange-Id: I7bb7e22ddaf5dc67fc09b9e63e5f3d10fe8e3ee4\n"
    },
    {
      "commit": "d59a5d59df920d743723521a2afed9de1da3373b",
      "tree": "2fa60c308b330a8203d00f1e99811e54c6f486a9",
      "parents": [
        "cef55cde1cf1b9b15583d6b4c439dfea7bac7c26"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Apr 04 14:52:14 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Apr 04 17:36:05 2015 -0700"
      },
      "message": "Various fixes and improvements...\n\nIssue #19912529: VI: VoiceInteractor callback ClassCastException\n\nFix to use correct argument.\n\nIssue #19912636: VI: Documentation for VoiceInteractionSession.onBackPressed\n\nAdded documentation.\n\nIssue #19912703: VI: VoiceInteractionSession NPE on Abort Request\n\nMaybe fix this -- don\u0027t crash if there is no active session.\n\nIssue #19953731: VI: Add value index to...\n...android.app.VoiceInteractor.PickOptionRequest.Option\n\nThere is now an optional index integer that can be associated with\nevery Option object.\n\nIssue #19912635: VI: Behavior of startActivity when in voice...\n...interaction is unexpected\n\nWe now forcibly finish the current voice interaction task whenever\nanother activity takes focus from it.\n\nIssue #20066569: Add API to request heap dumps\n\nNew ActivityManager API to set the pss limit to generate heap\ndumps.\n\nAlso added app ops for assist receiving structure and screenshot\ndata, so that we can track when it does these things.\n\nChange-Id: I688d4ff8f0bd0b8b9e3390a32375b4bb7875c1a1\n"
    },
    {
      "commit": "df62ab4833dc34207e68f8ad22e31a5fcaa6744e",
      "tree": "ef3481166f3008123d64f58627e5693f055d86cf",
      "parents": [
        "689dd8fb5bbc07720cf1777133505784a1b53a10",
        "9af77a4ce22540726fbddd275f89e65fd1a1edf8"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Apr 03 20:08:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 03 20:09:02 2015 +0000"
      },
      "message": "Merge \"Add group scaling factor into stroke width.\""
    },
    {
      "commit": "64e71cd6cce5c65548a570204f6cc8641ef1eddb",
      "tree": "f789d1dfeb4d5154a58f696917925602b77ed4f7",
      "parents": [
        "edea751f6416869ff08268d9aeec2f6b6e65f7f0",
        "6e9fa1a4b74dc4e35470739cfd64881cb9bcc7b1"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Apr 03 18:26:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 03 18:26:41 2015 +0000"
      },
      "message": "Merge changes from topic \u0027assist\u0027\n\n* changes:\n  Add test assist to implement motion study\n  Implement new assist gesture and motion\n  Add flag to voice interactor for supporting assist gesture\n  Add more internal API\u0027s for assist\n  Add ability to start voice interaction session directly\n"
    },
    {
      "commit": "6e9fa1a4b74dc4e35470739cfd64881cb9bcc7b1",
      "tree": "1da9f58bf17952a7657bcc4d727102cfd94d539b",
      "parents": [
        "2fdeeabe78b0f54f3163b1b3741ac813828b3511"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Apr 01 13:37:39 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Apr 03 11:12:44 2015 -0700"
      },
      "message": "Add test assist to implement motion study\n\nThis change introduces another test VoiceInteractionService, Assist,\nto test the full SystemUI -\u003e assist layer motion when invoking\nassist.\n\nThe old assist test project was renamed to LegacyAssist.\n\nChange-Id: Iddf8a36a76083625f8aa4faecef1930e9952d05b\n"
    },
    {
      "commit": "5688b03f7f4fafd671451ff73103be0f2388b32e",
      "tree": "03f3362f7919592e14f2bd56957fc4c722397e26",
      "parents": [
        "3425dae8dc63372e8944dce43f7ed2d567512248"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 02 18:25:35 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 02 18:43:31 2015 -0700"
      },
      "message": "Add quick and dirty async AssistStructure building.\n\nNew APIs on ViewAssistStructure all the app to request to\nbuild a sub-tree asynchronously and indicate when it is done\nwith that.  The overall AssistStructure is now only flattened\nand transfered on-demand, when the app receiving it requests\nits data -- and at that point we can wait for any asynchronous\nbuilding to complete.\n\nNew AsyncStructure view is a very simple example of using this\nto asynchronously build a child view.\n\nChange-Id: I14f9199bee64915ad3dc80b2190916ec874308af\n"
    },
    {
      "commit": "9af77a4ce22540726fbddd275f89e65fd1a1edf8",
      "tree": "78f7335463e410712fd09c023b8abee4eaa097b8",
      "parents": [
        "072be09aafc258a8d9d8c4f1dbf4f800b3983434"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Apr 01 16:38:44 2015 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Apr 02 16:09:03 2015 -0700"
      },
      "message": "Add group scaling factor into stroke width.\n\nOriginally, stroke width is independent of group scaling.\nBut that is a bug and causing animation trouble.\n\nb/19501782\n\nChange-Id: I33d5e44f2f8b2a82fee1a5a326223a39aaffa86c\n"
    },
    {
      "commit": "6251f0d42be7da54d7f1bc8f570a44883b7d9052",
      "tree": "d7e928e1d55745a3ff4771c546678e4b27fc6d1b",
      "parents": [
        "6cedefa2e4a10724982a72e22abc349c7578902d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 01 16:45:03 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 01 17:08:27 2015 -0700"
      },
      "message": "Rework assist to walk down the view hierarchy.\n\nInstead of collecting all of the data directly in AssistStructure,\nwe now have a dispatch mechanism down the hierarchy to do so.\nWhile doing this, also added the ability to automatically collect\nassist data from AccessibilityNodeProviders attached to views\n(so now we see all of the data in for example Calendar).\n\nThis is a first step needed towards being able to asynchronously\npopulate assist data.\n\nChange-Id: I59ee1ea104ca8207bad8df7a38195d93da1adea7\n"
    },
    {
      "commit": "1588f0ff54b88240b55eeaba97e67f0f1dee5f92",
      "tree": "2f9ab06c201b4d4717ab46111f3efa2e69451da3",
      "parents": [
        "111928fa324db73f94389bdfab4b108cbd30d8f4"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Mar 24 14:11:37 2015 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Mar 24 15:49:13 2015 -0700"
      },
      "message": "Add listener support in AVD\n\nInternally, switch to use AnimatorSet instead of an array of Animators\n\nb/19825918\n\nChange-Id: Ia67d2cc7dd89362e6b0019c916d3f2a0d0f3e39e\n"
    },
    {
      "commit": "312035232b45b251d48c3ba94d88600bbc42771a",
      "tree": "aaca3ddef8220654e0b135f94566a6004018da1a",
      "parents": [
        "93f724b04ef83aae7ab6ce97a9dc890d0c8c8b47",
        "0b071a08d8dec3e68937590938199273f3b123cc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 24 00:02:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 00:02:38 2015 +0000"
      },
      "message": "Merge \"Add view ID, rework assist API.\""
    },
    {
      "commit": "0b071a08d8dec3e68937590938199273f3b123cc",
      "tree": "efa185352b9d5f4fca62dbfb35cf259fed1b3c5b",
      "parents": [
        "79ec42e6a3c6a6f6a00ef3ad92221a5ad2149aa9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 20 15:05:35 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 23 13:59:47 2015 -0700"
      },
      "message": "Add view ID, rework assist API.\n\nAdd view ID information to the assist structure.\n\nAlso rework the API to simplify how it works by removing\nthe ViewNode wrapper around ViewNodeImpl -- these are now\njust the same thing.  And then add complexity by introducing\na formal WindowNode object that contains the top-level window\ninformation (so I can add in some more window-specific info\nin the future).\n\nChange-Id: I5d525cf61ab6a73193e5cceb4c09d2d21cc27bae\n"
    },
    {
      "commit": "47fe60a643d5d138ee3b0d836a1c4ab8b6e5b730",
      "tree": "b50fada585a400bb915cb2cbc44e4c31eda85588",
      "parents": [
        "0964cfc384398cdacd82030649b9c43b95ffa970",
        "8a9355a98ece3d7fc9d022e759d05378060c86e2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 20 20:46:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 20:46:40 2015 +0000"
      },
      "message": "Merge \"Output modified bcp47 tag in ResTable_config::toString()\""
    },
    {
      "commit": "4a357cd2e55293402d7172766f7f9419815fc1e8",
      "tree": "f2cedee7f41f48a8141a2798ca6100912553e4ef",
      "parents": [
        "f2560e62cf26cae64f5751b0479743e09cb7bd7f"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Mar 18 18:37:18 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Mar 18 18:37:18 2015 -0700"
      },
      "message": "Replace usages of deprecated Resources.getColor() and getColorStateList()\n\nChange-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0\n"
    },
    {
      "commit": "43c410eaacf7d287c6c3f5621e6e0b96501004dc",
      "tree": "ef836af43be15a316e3d730914f1ace60e398fe6",
      "parents": [
        "dd0d4b75794081e873977a5480d3d1dbff270d05",
        "f6829a0a618b4523619ec53c996b04d67e3186b9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 18 21:36:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 18 21:36:56 2015 +0000"
      },
      "message": "Merge \"Remove HardwareCanvas\""
    },
    {
      "commit": "27eac1d58fe0b7ca3a2e27f5ed64eff232745f45",
      "tree": "c1f0dc2a368ab1c7db1be81dc02b020eea0d1628",
      "parents": [
        "7438f814f16ff1ced53d93a2fe9e3973490f3843"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 16 17:15:53 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 17 16:45:51 2015 -0700"
      },
      "message": "Add ability to get a screenshot for assist.\n\nNew flag you pass in to startSession() to say you want it,\nnew callback on VoiceInteractionSession to receive it.\n\nChange-Id: I61fdcfdee41a60d46036a2ef16681a9b4181115a\n"
    },
    {
      "commit": "8a9355a98ece3d7fc9d022e759d05378060c86e2",
      "tree": "d6d76f94f2688f9bcee4c961dafc4cc3ec97a6bd",
      "parents": [
        "9c329b8b6440823ef94bffebc0b1098e8b2ad622"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 10 16:55:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 16 22:25:26 2015 +0000"
      },
      "message": "Output modified bcp47 tag in ResTable_config::toString()\n\nWe expect to be able to parse the output of ResTable_config::toString(),\nso it should use modified bcp47 (b+en+Latn+US).\n\nChange-Id: I597a1779a1fa5cff171c473e6a0368d93b9c7722\n"
    },
    {
      "commit": "3d07c94c393831091958fe6a98811843db8973bd",
      "tree": "0cd5c4ea3dc580772b28ef76e9b5b76fe23de081",
      "parents": [
        "872d191e6134b429f833013b8706c7b54ebd0d2a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 13 18:02:54 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 16 11:29:12 2015 -0700"
      },
      "message": "Add new voice request for picking from a list.\n\nAlso add API for voice interaction service to control\nwhether the system should hold a wake lock while it is\nworking with an activity (and actually *do* hold a wake\nlock while doing so, duh!).\n\nAnd while in there, clean up the launching wake lock to\ncorrectly give blame to the app that is launching.\n\nChange-Id: I7cc4d566b80f59fe0a9ac51ae9bbb7188a01f433\n"
    },
    {
      "commit": "a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9d",
      "tree": "2b0f1d1e65920fdbf7e3b7867070ee32776f246e",
      "parents": [
        "d6ee06a0c86d9d1556bb4b15c9aaea538e415e38"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 11 15:16:13 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 12 17:07:51 2015 -0700"
      },
      "message": "More work on collecting assist data.\n\nOptimize parceling of AssistData (which is now renamed to\nAssistStructure) by pooling duplicated class name strings.\n\nChange text associated with a view node to a CharSequence,\nso styling information comes along.\n\nInclude global text attributes -- size, colors, etc.\n\nIntroduce a new AssistContent structure, which allows us\nto propagate information about the intent and data the\nactivity is looking at.  This further allows us to propagate\npermission grants, so the assistant can dig in to that data.\nThe default implementation propagates the base intent of an\nactivity, so if for example you bring up the assistant while\ndoing a share the assistant itself has the same information\nand access that was given to the share activity (so it could\nfor example share it in another way if it wanted to).\n\nDid some optimization of loading PersistableBundle from xml,\nto avoid duplicating hash maps and such.\n\nChanged how we dispatch ACTION_ASSIST to no longer include\nthe more detailed AssistStructure (and new AssistContent)\ndata when launching; now the example code that intercepts\nthat needs to be sure to ask for assist data when it starts\nits session.  This is more like it will finally be, and allows\nus to get to the UI more quickly.\n\nChange-Id: I88420a55761bf48d34ce3013e81bd96a0e087637\n"
    },
    {
      "commit": "f6829a0a618b4523619ec53c996b04d67e3186b9",
      "tree": "816816dadc5cd7ac8ad1b6a309525f6300fc9b82",
      "parents": [
        "edacf22ca132ac48207a68aa30998f5b43d893b8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 10 10:28:59 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 10 14:56:11 2015 -0700"
      },
      "message": "Remove HardwareCanvas\n\nChange-Id: I239646a7f00f09d3f76fe6b6162eed86bc0d6e77\n"
    },
    {
      "commit": "978a1ed5aa2752cd36ff51df91d2d2d8be2171d9",
      "tree": "4c383bf6ee66fd90b721fc670bb24a2d94fd15bd",
      "parents": [
        "5414d155e5ce3147f9db1b2ec6fb2dcd6473e089"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 02 11:37:24 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 02 12:54:14 2015 -0800"
      },
      "message": "Add generic \"INTERACTION\" event type to UsageStatsManager\n\nThis will allow for updating a package\u0027s last time used\nproperty for packages that are interacted in ways other than\nlaunching their activities (interacting with notifications, etc.)\n\nChange-Id: Ic6f9519f46fa04abd37ea6fc9475bcd9ea721003\n"
    },
    {
      "commit": "ffeecb1bfb9b71f4b62c9ef1fbf7b58a7a63f655",
      "tree": "79ce65f76cff29d67abc6b867f0f79795be7a38b",
      "parents": [
        "6e53931f49f49245deef8622eb8e7dc6ccf04536"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 25 11:08:11 2015 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 25 17:36:17 2015 -0800"
      },
      "message": "Rework voice interaction session lifecycle.\n\nWe now have a formal concept of the session being shown and\nhidden, with it being able to continue running while hidden\nas long as there is enough RAM.\n\nThis changes the flow that a VoiceInteractionSession will\nsee: onCreate() is when it is first created, onCreateContentView()\nis when its UI first needs to be built, onShow() is called each\ntime it needs to be shown and has the arguments given when the\nshow request was made (which has been renamed from startSession to\nshowSession), and then onHide() will be called when the UI is\nno longer shown.\n\nThe methods show() and hide() now allow a VoiceInteractionSession\nsubclass to control when it is shown and hidden, working with the\nshown state being maintained by the system.\n\nChange-Id: Ic4a430ec7e8bf76a5441fd0425e2932806170fcc\n"
    },
    {
      "commit": "36a35e366a65980843b96759f863643f17ca1ee7",
      "tree": "c4eba90c7c54625044e7fc97d09e31021065aeeb",
      "parents": [
        "6c770900d6dc96b98c980c23f4a62ccf30a36586"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 18 09:24:33 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 18 17:47:21 2015 +0000"
      },
      "message": "Fix layer shader to store layer pointer\n\nbug:19419672\n\nChange-Id: I4277348ceab41fbf45a107a8b21f64e2b4af23e0\n"
    },
    {
      "commit": "ae6688b09649447e57468b3e7935691bc09ec9b9",
      "tree": "799d4b2ddeb5b32a578b7300196bfefdf272703e",
      "parents": [
        "bc26d2eafd6185a197a968b2dffde5871791cf0b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 11 17:02:41 2015 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 13 11:27:57 2015 -0800"
      },
      "message": "Update voice interaction layer for new UI design.\n\nCan switch from a pure overlay at the top of the screen,\nto interactive mode with the voice UI drawing at the bottom\nand pushing its target activity up like an IME.\n\nAdd mechanism to get assist data to the voice interaction UI.\n\nAdd some basic visualization of the assist data, outlining\nwhere on the screen we have text.\n\nAdd a test ACTION_ASSIST handler, which can propagate the\nassist data it gets to the voice interaction session so\nyou can see what kind of data we are getting from different\napps.\n\nChange-Id: I18312fe1601d7926d1fb96a817638d60f6263771\n"
    },
    {
      "commit": "3bdd327f8532a79b83f575cc62e8eb09a1f93f3d",
      "tree": "92480de80f3818f6f1746df0ea719cf547324b22",
      "parents": [
        "8b0c8ffb2d921ce5c90bcaaa3f1182d531d90d2c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 27 18:17:35 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 12 11:15:49 2015 +0000"
      },
      "message": "Move apache specific portions of android.net.http to external/apache-http.\n\nWe continue to compile external/apache-http into ext.jar. This contains\na few changes apart fom the classes moving around :\n\n- Makefile changes to build docs and api-stubs for now. A future change\n  will revert these changes and remove these classes from stubs and\n  docs.\n- Hardcode event IDs in legacyerrorstrings to avoid a dependency between\n  the frameworks and apache. These strings are on their way out and will\n  never change anyway.\n- Remove imports due to {@link} tags and use {@code} instead.\n- Remove an accidental(?) dependency on apache commons code that\u0027s a\n  part of apache-http.\n\nbug: 18027885\n\nChange-Id: I51cd038d846ec7d02c283a4541b10a6a9cf62ecf\n"
    },
    {
      "commit": "83162a90278d9d52d8fca7ee20ba314b452261de",
      "tree": "ced2c68ab15582dffb405ff24396e2ac2bf57c9b",
      "parents": [
        "3d62078498e8e9f7552d49f5f5e53ec339f4c2ce"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jan 26 14:43:30 2015 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 27 13:56:20 2015 -0800"
      },
      "message": "Eliminate groupId and add task to AppWindowToken\n\nSimplifies access by eliminating indirect referencing.\n\nFixes bug 18088522 item #15.\n\nChange-Id: I9049192a7f3e1028d60c4f2d4d4a0d4aad590aa4\n"
    },
    {
      "commit": "8667eff6b82da054f35a0368b00864b2cb97a8f9",
      "tree": "93bd49ba8134cdd67a9b4aa2086f3f650989c49d",
      "parents": [
        "84a6d9e609ac6ad65e5bf43c8980d78917be543e",
        "428ecf296694fa8c7214e068d36d47d1c74e5110"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jan 16 01:54:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 16 01:54:59 2015 +0000"
      },
      "message": "Merge \"Remove unused method moveTaskToBack.\""
    },
    {
      "commit": "428ecf296694fa8c7214e068d36d47d1c74e5110",
      "tree": "9bedd44058ad2b1b069daf1c1bd5a120efddbe34",
      "parents": [
        "799bc1d383ea40637e88c4a9dba8671585202d99"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jan 14 16:09:01 2015 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jan 15 17:20:40 2015 -0800"
      },
      "message": "Remove unused method moveTaskToBack.\n\nEveryone uses moveActivityTaskToBack() instead.\n\nFixes item #3 of bug 18088522.\n\nChange-Id: I16028335fe1eef8a2aa47804f46536e395a16d8c\n"
    }
  ],
  "next": "97611881e14fc653322bf27016597da03e4fe07c"
}
