)]}'
{
  "log": [
    {
      "commit": "be2922ff34424cfb996d895cde0cb31c724d09dc",
      "tree": "75f7ffa0348283cd5306685e87d3acdd83892d80",
      "parents": [
        "076a255a76c8b9aaeb40b873714a6e20ffc9dc6b"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Apr 28 14:58:35 2017 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Apr 28 14:58:35 2017 -0700"
      },
      "message": "A11y changes for API council\n\nBug: 37749679\nBug: 37747749\nBug: 37737948\nBug: 37718183\nBug: 37720667\nBug: 37724600\nBug: 37708057\n\nTest: Updating unit and cts tests, which still pass.\nChange-Id: If28bdf985c4314e8e84dcd6510f406dd4e80dd38\n"
    },
    {
      "commit": "09d4ff8960cd3d45988b0c3ff0835d281f0e16b5",
      "tree": "95612611e3992f43a92999cb32fbd31a2bc872d0",
      "parents": [
        "b216d0f09f4e16a65383e7f4a1e48ab7ea2c0ffe"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Mar 31 11:22:17 2017 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Apr 22 01:21:03 2017 +0000"
      },
      "message": "Remove a11y web flags and associated settings\n\nBug: 35707622\nBug: 28322375\nTest: Ran a11y cts. Updated those tests in linked CL to\nignore this feature.\n\nChange-Id: I1dccb3ae4e1f4d6bb832ae1b0edd4dad4a54289e\n"
    },
    {
      "commit": "c240c9b134fe4d1843433e76c0f6721bd712918c",
      "tree": "a31dab9814b8f7d0beadab7cecd30a6cf9ce0081",
      "parents": [
        "682ce66309bd446cd3526ea2058334e0fb7edb46",
        "35ba7ec539a91013aed6c78e48011903255ae4cb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 12 22:09:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 22:09:24 2017 +0000"
      },
      "message": "Merge \"clear calling identity before calling settings provider\" into oc-dev"
    },
    {
      "commit": "35ba7ec539a91013aed6c78e48011903255ae4cb",
      "tree": "37530cd94900e9652b14c3aef7051406028005e3",
      "parents": [
        "264f2e40e2379d8a44c2a083fa3c09bcd09911a7"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Wed Apr 12 12:59:38 2017 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Wed Apr 12 13:01:34 2017 +0100"
      },
      "message": "clear calling identity before calling settings provider\n\nTest: Run a instrumentation test\ncts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.ManagedProfileTest#testPhoneAccountVisibility\n\nChange-Id: I29b1dc307e9e127b919aebe4d83ab6311ce36f2d\nFix: 34320197\n"
    },
    {
      "commit": "5d6144056493b0d657e74d13de8e751c06510357",
      "tree": "eb7b6da25f16712848f556b67565e346eee37fa6",
      "parents": [
        "4eab3cb11a623e96e1e7b4795aa434e1d69f2d61"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Thu Apr 06 13:46:50 2017 -0700"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Apr 11 13:40:45 2017 -0700"
      },
      "message": "Improved multiuser support for A11y button/Magnification\n\n- Ensures NavigationBarFragment updates Accessibility button state\n  based on the settings of the current user.\n- Launches AccessibilityButtonChooserActivity as the current user\n\nBug: 36652061\nBug: 36699310\nBug: 37103953\nTest: Manual\nChange-Id: Ieded484d548fb4631ceb8a873d667dd53fd2fd79\n"
    },
    {
      "commit": "ecb5b5ccc3c88f6430cf5584357c214797f5fd60",
      "tree": "b7955d94aa8082d7c0f23f02f2533e1afe35e754",
      "parents": [
        "c56d782e13be966e5efbe162f422d9cbc80ea874",
        "afe3ef1b36d040f3095db7ec1df644a074df8906"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Fri Apr 07 02:40:11 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 07 02:40:14 2017 +0000"
      },
      "message": "Merge \"Revise Accessibility button chooser intent/permissions\" into oc-dev"
    },
    {
      "commit": "afe3ef1b36d040f3095db7ec1df644a074df8906",
      "tree": "b1aba158f4e11ce4421fa82de0d53f63e3c6ef08",
      "parents": [
        "399dba4ab0328c0c83015398e949ec40a673e978"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Wed Apr 05 16:47:19 2017 -0700"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Thu Apr 06 11:39:26 2017 -0700"
      },
      "message": "Revise Accessibility button chooser intent/permissions\n\n1) Switch AccessibilityButtonChooserActivity to non-exported\n2) Update AccessibilityButtonChooserActivity\u0027s intent action to\n   be CTS-compliant\n3) Switches to correct permission to validate a click of the\n   accessibility button originated from the status bar service\n\nBug: 36866328\nBug: 36976440\nTest: Manual / Created app to validate launch protection\nChange-Id: Ifcd5e8dbbe683dc99bb900a5870a9ba374fbd5d4\n"
    },
    {
      "commit": "5b43fca04d6a29fd8d6720e90a9e8f222710f776",
      "tree": "4a975de8015d9f70b2a918ac4016fcfe4be31b67",
      "parents": [
        "c01dd791c331815cfa496548cf535147dedfaa8a"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Apr 05 11:27:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Apr 05 11:27:07 2017 -0700"
      },
      "message": "Fix crash when using list of enabled a11y services\n\nAccessibilityManagerService#getEnabledAccessibilityServiceList\nhad an optimization to always return the same, statically\nallocated object. This is almost safe if it\u0027s being called\nfrom another process, as Binder will copy it. When called from\nthe same process, however, it\u0027s a lot less safe and seems to\nhave caused a crash.\n\nI think the optimization was already problematic in Binder\ncalls as well, though. The method grabs a lock, but I think\nit\u0027s still possible for another thread to call the method\nwhile Binder is making the copy.\n\nI\u0027m removing the optimization and just allocating a new List\nto prevent such crashes.\n\nBug: 36364829\nTest: No repro case, so I just ran a11y CTS and unit tests.\nChange-Id: Ib64703a7bbed82c6ca000d8703d23819188b4b9b\n"
    },
    {
      "commit": "3bf7c7634ac5e2aa47eae46a549fd467a8ead370",
      "tree": "48c2fc8845063ece82b48b3a22981c7f35a101bd",
      "parents": [
        "d2778f32e2ca4f81fd8a2ea39e567db6bb035f92",
        "0dd5b944efd13668b92ea058afc7604d4802fe6c"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Apr 04 04:29:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 04:29:27 2017 +0000"
      },
      "message": "Merge \"Fix AccessibilityManager returning duplicate services\" into oc-dev"
    },
    {
      "commit": "fe9a53bc45fd0124a876dc0a49680aaf86641d3e",
      "tree": "56d1ea4b6f0fe98fa628a72f197cefa0fbabcb22",
      "parents": [
        "21a5edcc24cbca1ae3f0855d71737b22ab81ad6d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 31 14:08:23 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Apr 02 22:29:07 2017 -0600"
      },
      "message": "Consistent dump() permission checking.\n\nThis change introduces new methods on DumpUtils that can check if the\ncaller has DUMP and/or PACKAGE_USAGE_STATS access.  It then moves all\nexisting dump() methods to use these checks so that we emit\nconsistent error messages.\n\nTest: cts-tradefed run commandAndExit cts-dev -m CtsSecurityTestCases -t android.security.cts.ServicePermissionsTest\nBug: 32806790\nChange-Id: Iaff6b9506818ee082b1e169c89ebe1001b3bfeca\n"
    },
    {
      "commit": "0dd5b944efd13668b92ea058afc7604d4802fe6c",
      "tree": "faeb1e4ab903df6a084cafe327649d3ce6964ce6",
      "parents": [
        "3ab5c0173a7371c1757c52029cde5f4f84d3bd22"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Mar 28 15:01:01 2017 -0700"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Mar 28 15:01:01 2017 -0700"
      },
      "message": "Fix AccessibilityManager returning duplicate services\n\nPrevents AccessibilityManagerService from providing duplicate\naccessibility service records to clients calling\ngetEnabledAccessibilityServiceList if a service contains more\nthan one feedback flag.\n\nBug: 36493113\nTest: Behavioral CTS test\n\nChange-Id: I2f836e15fdd70543bc8aa9a5602330b0b6846fec\n"
    },
    {
      "commit": "f1a9aff96261a40d16c36dd3d47a8190c308d744",
      "tree": "82f4112935dd8c222902714b456d4ee822a42051",
      "parents": [
        "a2a3b1d7b55f3a147672dedbeb27e899e08a36e7"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 23 17:21:29 2017 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Mar 27 14:59:26 2017 -0700"
      },
      "message": "Fix permission checking for a11y volume.\n\nAdding new permission for changing accessibility volume\nto allow system UI to change it. Also providing audio\nmanager with a whitelist of bound accessibility service\nuids so it can allow servics to change the volume.\n\nBug: 36569297\nTest: Adding CTS test in linked CL.\nChange-Id: I4f327e3a251fc3780c5957f41217c2ef5bb8b16e\n"
    },
    {
      "commit": "5e8b980c5d6bc282b51b3ddfc8722ff973c7e885",
      "tree": "cc22bbb20048d01ebc8748a3f6fc72694dd13e94",
      "parents": [
        "b1c88ecf05bd8992dccd17e6f0b59db7e7ac819f"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Fri Mar 24 10:07:20 2017 -0700"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Fri Mar 24 19:17:12 2017 -0700"
      },
      "message": "Target selection for Accessibility button\n\nAllows for selecting a single accessibility service or feature\nto be triggered by the accessibility button in the navigation bar\n\nBug: 34720082\nTest: Manual\nChange-Id: I320febede0398b1eff38a87d4db31fd7dfc53062\n"
    },
    {
      "commit": "ce687c5e4a0ce27e9190fb5c823ec4649fbc3712",
      "tree": "226bdccc8793790f31ec5ad5054afe0b76c1862e",
      "parents": [
        "a359c9846d2fa8bfe2784222be350d2e6046de16"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Mar 15 08:51:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Mar 22 16:36:12 2017 -0700"
      },
      "message": "Restructure a11y shortcut settings\n\nSeparating the shortcut on/off from the shortcut service.\nEnabling the shortcut to work from the lock screen if the\nuser wants it to.\n\nBug: 35872328\nBug: 35219988\nBug: 35443593\nTest: Adjusted tests for shortcut controller, manually\nactivated shortcut in a variety of conditions.\nChange-Id: Id39d33ec62eb5f11b76b2972089167dc7d4c625b\n"
    },
    {
      "commit": "74922c63e1dfba074aa9219034e48a161bdfba5b",
      "tree": "b8545dca3f8c2aabcbe413eead96cdf1c81ab52b",
      "parents": [
        "849008cc5686bfdaa48876178c9c7277fbaad5c4"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Mon Feb 13 12:43:16 2017 -0800"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Wed Mar 15 14:12:51 2017 -0700"
      },
      "message": "Display magnification via the nav bar Accessibility Button\n\nAdds support for invoking display magnification by first selecting\nthe Accessibility Button, then touching an area of the screen to\nmagnify.\n\nBug: 30960346\nTest: Manual\nChange-Id: Ifd8a355562f204182e34bd37f71a3637d85cf0e1\n"
    },
    {
      "commit": "00de0e644dad9c70f0ed87e9028a14328b08b949",
      "tree": "e5aaa00bb65785a01ee27982f1cdc90ab7b218b3",
      "parents": [
        "64e93531b0b2db10a581e30d6e7e758d98950151",
        "5cd3bb93ce6b63dbe9f19d7ad45be2a87904762c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Mar 14 19:18:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 14 19:18:26 2017 +0000"
      },
      "message": "Merge \"fix IndexOutOfBoundsException in AccessibilityManagerService..manageServicesLocked\" am: 14c7e67da8 am: 6006d681ab\nam: 5cd3bb93ce\n\nChange-Id: Iee29739716cd7a264196d0999ada7d4399b30a3e\n"
    },
    {
      "commit": "6006d681ab8eb6977edb308c7a4a287b65d055a2",
      "tree": "c9a5301f45a6fd1e96161e0b10575152948f4969",
      "parents": [
        "39df78ecc76c82ba523f47355c46c6fda5a2b308",
        "14c7e67da86065eb8b6197ff5894a9b64216e437"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Mar 14 19:07:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 14 19:07:22 2017 +0000"
      },
      "message": "Merge \"fix IndexOutOfBoundsException in AccessibilityManagerService..manageServicesLocked\"\nam: 14c7e67da8\n\nChange-Id: Icfa9fc501806820545dd9df9d671fcdfe645b73f\n"
    },
    {
      "commit": "ef4351cc72abeeba0f659950c199a4f9b7cd1842",
      "tree": "416dddabdf25ed47682f003395b008efef6c9b60",
      "parents": [
        "ca6d48f3371c16b523a119119eed7d5cfec184e0"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Wed Jan 18 11:07:06 2017 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Mon Mar 13 17:51:04 2017 -0700"
      },
      "message": "Dont dispatch a11y events that have no subscribers\n\nThis allows to avoid A11yManager -\u003e A11yManagerService IPC, when there\u0027s no\nsubscribers to a given event\n\nTest: steps:\n  - Enable A11yManager.DEBUG\n  - Navigate through a few random activities\n  - In logcat, ensure log messages are present, notifying that certain events\n  won\u0027t be dispatched\nChange-Id: Ia019fb66053f10095b3651407d09de8e89cdd227\n"
    },
    {
      "commit": "f00cd14f17c0acd6bffe78947d32ea0a2900d139",
      "tree": "33a9800317cd51898e4c359d7343804233085557",
      "parents": [
        "7219795ffb1b2eafa10ac85f603dbef1620bf810"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Mar 03 13:44:00 2017 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Mar 10 15:35:30 2017 -0800"
      },
      "message": "Basic accessibility support for picture-in-picture\n\nExposing actions from the PIP InputConsumer to accessibility,\nstripping all actions from a covered PIP app, and adding the\nInputConsumer\u0027s actions on the PIP app\u0027s root view.\n\nWe were also using an \"undefined\" accessibility ID to mean\nthree different things: a root view, a host view of a virtual\nview hierarchy, and a truly undefined view. I\u0027ve introduced\nnew values for cases where the id could be defined.\n\nAlso gathering all window IDs into one place to reduce the\nchance of collisions.\n\nBug: 34773134\nTest: In progress. Current cts passes.\nChange-Id: I97269741a292cf406272bf02359c76c396f84640\n"
    },
    {
      "commit": "e3bf23bed9ac24719d88f7e3bdb81db0ceda70fb",
      "tree": "277374ad13e989c66b86c0676613adbd28e73575",
      "parents": [
        "278028e97a4ff86b8cc73543e8ca29dc8a304500",
        "7917a2f020b95a6372dd3c506183ea345ab5ae24"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Sun Feb 19 04:48:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 19 04:48:19 2017 +0000"
      },
      "message": "Merge \"Verify fingerprint exists before using it\""
    },
    {
      "commit": "0adfbd33c884ce80ebe161428d7a8ae9e6aced03",
      "tree": "66c0219c0f7ad4786ba1d67bc69db608e9200e79",
      "parents": [
        "d666953f5767825f0951324a96ea31f7f161f5a8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 17 14:55:13 2017 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 17 15:07:33 2017 -0800"
      },
      "message": "Use accessibility action for touch exploration\n\nExplore-By-Touch has been dispatching touch events to the screen\nrather than using the accessibility API. This was intended as a\nworkaround for apps that did not properly handle accessibility,\nbut the workaround itself has been causing bugs in corner cases\nwhere properly accessible Views are partially covered by windows.\n\nThis CL first tries to dispatch a click action, and falls back on\nthe touch dispatch only if the click action fails.\n\nBug: 35200501\nBug: 26216304\nBug: 20665958\nBug: 34949365\nBug: 34844480\nBug: 29535082\n\nTest: Poking around with first party apps and TalkBack works fine.\nThis behavior isn\u0027t covered by automated testing.\n\nChange-Id: I9cc18399d8f40f7381dfcbef91b5991b711bb7f1\n"
    },
    {
      "commit": "7917a2f020b95a6372dd3c506183ea345ab5ae24",
      "tree": "355fc307cc0d31db9ffd52da3d03c643548af95a",
      "parents": [
        "ab9b002400ba1e1bf2a92e860c24ef47d904bbb9"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Feb 16 19:51:14 2017 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Feb 16 20:21:15 2017 -0800"
      },
      "message": "Verify fingerprint exists before using it\n\nThe process will crash if we try to obtain a FingerprintManager\non a device that doesn\u0027t implement one. Verify that the feature\nexists before trying.\n\nBug: 34923693\nTest: Ran A11y unit tests and a11y fingerprint cts.\nChange-Id: I48ad1c2c9c0c5739d8b1826c3c53bb817078e6cf\n"
    },
    {
      "commit": "1e2758256a391be23c537725f0a7785e4fb5b7d0",
      "tree": "15b2bcec000b3967272a5c43e49292d17cbf3b33",
      "parents": [
        "d8df1b083dc691b7f50c480649436906c1bb249c",
        "c2e28932d22faece6e7179c78d4e7656dc63052c"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Feb 07 19:14:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 19:14:09 2017 +0000"
      },
      "message": "Merge \"Provide text locations to accessibility services.\""
    },
    {
      "commit": "edb54686c28951a4069f99ac5dcd1ae7101f89c5",
      "tree": "27fd14c051a6c33fdf893dfe66862c866582f2e9",
      "parents": [
        "e7f68ac3800286a02b4ae918f807dedc334de017",
        "048c2bc19af4cfcb5e959f1bc07fbfa03a72e330"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Feb 07 00:14:46 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 00:14:49 2017 +0000"
      },
      "message": "Merge \"Initial implementation of Nav Bar Accessibility Button\""
    },
    {
      "commit": "c2e28932d22faece6e7179c78d4e7656dc63052c",
      "tree": "780652a8effbc8e5a4d501ba85593116864fe755",
      "parents": [
        "0fcdf4399e86ea3fb905b1298915afec46fb3be6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Dec 08 12:29:25 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Feb 06 12:57:17 2017 -0800"
      },
      "message": "Provide text locations to accessibility services.\n\nBug: 30170631\nTest: New CTS tests on linked CL.\nChange-Id: I723e3777189c8df71c59dada00abdf339ebc983d\n"
    },
    {
      "commit": "048c2bc19af4cfcb5e959f1bc07fbfa03a72e330",
      "tree": "ec93be8b373fe206b0fc010f402868e9b995c865",
      "parents": [
        "cec9d8cee73aca31d255d44a50bcf0409cb43cc2"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Thu Dec 08 16:09:20 2016 -0800"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Mon Feb 06 12:56:08 2017 -0800"
      },
      "message": "Initial implementation of Nav Bar Accessibility Button\n\nThis allows an AccessibilityService to set a flag in its\nAccessibilityServiceInfo that triggers the navigation bar to show an\nAccessibility Button and observe callbacks when the button is clicked\nor there are changes in the visibility of the navigation bar.\n\nTest: Manual (Created a sample AccessibilityService) + CTS\nBug:29231271\nChange-Id: I03d653d85bc37df28ed71d8bba94b7c75fe56e43\n"
    },
    {
      "commit": "6ed45d8cd33c297e608aba94fc1f61dace7a7cca",
      "tree": "7d62835183a39a490ad2b518b27cdf6c1c232cdf",
      "parents": [
        "556897f7018e1b231d6200e21dd45657f180a63c"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Sun Jan 22 13:52:51 2017 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Mon Feb 06 12:50:55 2017 -0800"
      },
      "message": "CompanionDeviceManager\n\nThis introduces an API for apps that support companion devices to provide a\nmore streamlined flow for pairing and setting up the device\n\nBug: 30932767\nTest: Using a toy app, invoke the newly introduced API (CompanionDeviceManager),\n and go through the flow. Ensure filtering works, and device is returned to\n the calling app. Ensure the calling app can pair to the selected device.\nChange-Id: I0aeb653afd65e4adead13ea9c7248ec20971b04a\n"
    },
    {
      "commit": "5cd907d3d6ceebf8731ef1f69347cce6f76109e9",
      "tree": "0337f0b68d2a3600c4713a3e5d8e990a38ffbc1f",
      "parents": [
        "f9295bcc249f5dc8da8fb85a4b108a0b8f729e2f"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Thu Jan 26 14:14:08 2017 -0800"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Thu Feb 02 08:20:49 2017 -0800"
      },
      "message": "Alert Windows behavioral changes\n\n- Introduced TYPE_APPLICATION_OVERLAY window type. Can be used by apps\nto display windows on top of other app windows, but below critical\nsystem windows.\n- Deprecate alert window types TYPE_PHONE, TYPE_SYSTEM_ALERT,\nTYPE_SYSTEM_OVERLAY, TYPE_PRIORITY_PHONE, and TYPE_SYSTEM_ERROR.\nApps should now use TYPE_APP_OVERLAY for this.\n- Apps targetting O or greater are not allowed to add the old alert\nwindow types.\nApps targetting less than O can still add the old types.\nApps with permission INTERNAL_SYSTEM_WINDOW (system signature apps) can\nstill add the old types.\n- Z-order old alert windows types below TYPE_APPLICATION_OVERLAY if\nthey are added by an app without the INTERNAL_SYSTEM_WINDOW permission.\n\nTest: android.server.cts.AlertWindowsTests\nBug: 33256752\nChange-Id: I12170955a7a333151d3387c169b51c53c32164fc\n"
    },
    {
      "commit": "1f2b03a42a94b8b3c1d0dc80f8157e799b90b961",
      "tree": "7656d7b1926b1b7ff52ac538b5010f37de1c036f",
      "parents": [
        "e916e1741a3483ad076085e4a6d08a2eb39abe7d",
        "8e839b6224de8d101b83f346942627dfbec484e9"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Feb 01 20:16:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 20:17:03 2017 +0000"
      },
      "message": "Merge \"Correct accessibility check for current user\""
    },
    {
      "commit": "8e839b6224de8d101b83f346942627dfbec484e9",
      "tree": "46ad0ea6a38dfb730e058c3ecbd757c5ed63c933",
      "parents": [
        "b01cac7c5337eb71a05b5f2b019f73b8041404c9"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Jan 31 17:18:55 2017 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Jan 31 17:18:55 2017 -0800"
      },
      "message": "Correct accessibility check for current user\n\nThis fixes a bug I introduced in ag/1444443 as the result\nof missing a comment.\n\nBug: 34077911\nTest: Manually verified that EBT is no longer broken\nChange-Id: Iec7484c515f8b08ab2e04b4f513629cb6509ab7a\n"
    },
    {
      "commit": "27fcd9c97a2ceb50bab026237390207e5ee9e290",
      "tree": "d3860272f2978e1cef6afadf9f68f99afe806e53",
      "parents": [
        "669b1d6bfe2d737cbd69f75d32378f7e6cab0c30"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jan 20 15:57:24 2017 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Jan 31 14:27:09 2017 -0800"
      },
      "message": "Accessibility can capture fingerprint gestures\n\nBug: 27148522\nTest: Unit tests for two new classes in this CL, CTS in\nlinked CL.\nChange-Id: Icb5113e00b1f8724814263b3cc7f72fe4a6f0b41\n"
    },
    {
      "commit": "f180a9f56c5b01deb82fbeca0219ee42d84fb04c",
      "tree": "949fbee68f7bcb0b399865aa6899ef988c43c10f",
      "parents": [
        "ad3190beccf2369947bfb8b3cf8a33eccd6819ad",
        "6029cae5558d314e26394b6c3b14464ac633d6fa"
      ],
      "author": {
        "name": "Chad Brower",
        "email": "cbrower@google.com",
        "time": "Mon Jan 30 22:25:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 22:25:28 2017 +0000"
      },
      "message": "Merge \"Update the accessibility gesture recognition logic, using prior assumptions about allowed gesture set to increase accuracy.\""
    },
    {
      "commit": "6029cae5558d314e26394b6c3b14464ac633d6fa",
      "tree": "95e444e9e9974781e1dedaa8a2a99f41f510c1de",
      "parents": [
        "b9cb9000c0faa665aa8a7b8bb05262473c9c1f4f"
      ],
      "author": {
        "name": "Chad Brower",
        "email": "cbrower@google.com",
        "time": "Wed Jan 18 15:29:33 2017 -0800"
      },
      "committer": {
        "name": "Chad Brower",
        "email": "cbrower@google.com",
        "time": "Fri Jan 27 10:28:43 2017 -0800"
      },
      "message": "Update the accessibility gesture recognition logic, using prior\nassumptions about allowed gesture set to increase accuracy.\n\nTest: Using gesture data from real users at\nhttps://drive.google.com/corp/drive/folders/0BzgTMSNz7WvCNTExbGwtSTRWTzQ\nmeasured accuracy via standalone app at\nhttps://cs.corp.google.com/piper///depot/google3/java/com/google/android/apps/internal/accessibility/A11yGestures/\nAlso added unit test to check that synthetic gesture motions are recognized.\n\nChange-Id: I06e61ec814ee52db7441c4998012c2df9910589e\n"
    },
    {
      "commit": "106fe732050f3d75a08c3bc48fdbcf84cac20b41",
      "tree": "6134b208951b078d6a09155cf03c07c5c238e24c",
      "parents": [
        "0e39a438bfa5c279d361cf59e745df1d326c57ba"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Nov 22 18:18:39 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Jan 18 17:12:54 2017 -0800"
      },
      "message": "New accessibility shortcut.\n\nRemoving accessibility gesture from power dialog.\n\nAdding new accessibility shortcut activated by holding both volume\nbuttons down. This shortcut is configurable by OEMs and users to\nwork with any installed accessibility service.\n\nBug: 30160335\n\nTest: Added automated testing for the EnableAccessibilityController.\nManually toggled various services on and off.\nChange-Id: I546bd29a2ab1ba64a0cbfd11e2004cdf85ee6cfd\n"
    },
    {
      "commit": "c1facb81e0949216789a3d9a94c6538cb0b9ee05",
      "tree": "10f9f70c286fcb14ca77fef96a6a92ee481c9bd1",
      "parents": [
        "82b0bcceba74764e2eab0f75ba3887f9b37107cc",
        "08ea4abe23af77aef734a068c8f4c54178b7de0e"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Fri Jan 13 02:26:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 02:26:38 2017 +0000"
      },
      "message": "Merge \"Only send cache event if cache is detected to be used\""
    },
    {
      "commit": "4acc16d1b611074baa9eeb7ec5628350b7eb5fa5",
      "tree": "0fffc136fa7c9e80df440b5a15faf8fb9d9e9c1b",
      "parents": [
        "3eca29e119cf3b1a3c2f214e27478137f97befe8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Sep 14 17:04:49 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jan 06 09:38:53 2017 -0800"
      },
      "message": "Add flag and listener for a11y volume requests.\n\nWe\u0027re adding a dedicated volume level for accessibility. Services\ncan use the new flag to request that this volume be activated for\naccessibility usages.\n\nTo let AudioManager know when the request state changes, adding a\nhidden convenience method to check if any active service requests\nthe a11y volume stream. This method can be used to enable the\nstream and to decide when to show the UI to change its volume.\n\nAudioManager wanted a listener for changes to this flag, so rather\nthan add yet another special-purpose listener, I\u0027ve added one that\ngets called back whenever there are state changes in a11y services.\nThese changes happen infrequently enough that we shouldn\u0027t need\nmore targeted methods.\n\nBug: 30448020\nBug: 27899567\n\nTest: Adding CTS in linked CL.\nChange-Id: Ifc53314dc7d9a6ee3d50b04ebcc1a87280cafa5e\n"
    },
    {
      "commit": "08ea4abe23af77aef734a068c8f4c54178b7de0e",
      "tree": "885751e3b003f034f87b1cf8f107ba413227adcc",
      "parents": [
        "d61d501a06793d2914e087140bd1350acac1a16e"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Dec 27 18:02:33 2016 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Wed Jan 04 10:50:58 2017 -0800"
      },
      "message": "Only send cache event if cache is detected to be used\n\nBug: b/32642665\nTest: Repeat test of Icbdb91803b646fa06aaf11996d350f6f65c1e809\nChange-Id: Ibc09ea5cb25e4ac021baed5b598d6ba7a76295bc\n"
    },
    {
      "commit": "eb1375c091d9df48b11bc44e34527b52b63d8f96",
      "tree": "9ecfe09f1fcd20d6bfd542b6e991ab98bd8437cc",
      "parents": [
        "96b97d722f14cd18223b00aaf57ef6b0db47dc0c"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Dec 20 16:32:59 2016 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Thu Dec 29 13:05:58 2016 -0800"
      },
      "message": "Always propagate AccessibilityCache events\n\nBug: b/32642665\nTest: Steps:\n\t- Retrieve root AccessibilityNodeInfo\n\t- Change text on its child TextView\n\t- Wait for a few seconds to let the AccessibilityEvent propagate to\n    the AccessibilityCache\n\t- Get the child AccessibilityNodeInfo from the root, corresponding to\n    that TextView, and ensure that it\u0027s updated to reflect the text\n    change\nChange-Id: Icbdb91803b646fa06aaf11996d350f6f65c1e809\n"
    },
    {
      "commit": "4606a4ae89c08df107ebe265fbe6c256c3ec2fe9",
      "tree": "346f087171db5ba0213e230121cf9116d17b8507",
      "parents": [
        "4ce798f45fa0d3cd35a420cd5c94f1f28f646283"
      ],
      "author": {
        "name": "liangweikang",
        "email": "liangweikang900911@gmail.com",
        "time": "Wed Dec 21 18:21:53 2016 +0800"
      },
      "committer": {
        "name": "weikang liang",
        "email": "liangweikang900911@gmail.com",
        "time": "Fri Dec 23 01:21:54 2016 +0000"
      },
      "message": "fix IndexOutOfBoundsException in AccessibilityManagerService..manageServicesLocked\n\nhttps://code.google.com/p/android/issues/detail?id\u003d230754\n\nTest: compile\n\nChange-Id: I9152d56445ab1e3320ae7359a47c82edf8fbeed0\nSigned-off-by: liangweikang \u003cliangweikang900911@gmail.com\u003e\n"
    },
    {
      "commit": "74f9e1b867acbf248dd1640ef4c3f514b0ec9743",
      "tree": "364156a8618a3dd76a6cc55f019b33a821b2f817",
      "parents": [
        "18382374353550fd4fd9134cf096a7c270804160"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Nov 02 15:40:42 2016 -0700"
      },
      "committer": {
        "name": "vinodkrishnan",
        "email": "vinodkrishnan@google.com",
        "time": "Thu Dec 15 08:06:15 2016 +0000"
      },
      "message": "Add null check to a11y interrupt.\n\nAlso adding same robustness to interrupt that we have for\nsending a11y events.\n\nBug: 32507871\n\nTest: Ran a11y CTS. Verified manually with sample app\nthat sends interrupt and accessibility service that\ncrashes when started. That case used to crash the\napp, and doesn\u0027t anymore.\nChange-Id: I5cf05dcbb54ea23ae876cb3258dd206c55dce775\n(cherry picked from commit 867ad35d9c676b5ba2047b0fc9a4006737e5c4aa)\n"
    },
    {
      "commit": "9a14b56b60062c0cd962607e4db61de0937331dd",
      "tree": "6af70144e2e354afde75821d71d760502e9373bd",
      "parents": [
        "223182e7adf291d343b36c8e5d38fc0195e02b97",
        "867ad35d9c676b5ba2047b0fc9a4006737e5c4aa"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Dec 14 18:49:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 14 18:49:30 2016 +0000"
      },
      "message": "Merge \"Add null check to a11y interrupt.\""
    },
    {
      "commit": "867ad35d9c676b5ba2047b0fc9a4006737e5c4aa",
      "tree": "48115fa3fcfa35b253020f670958ba44dd9e7bce",
      "parents": [
        "0f10b2f1643054644006031ee505b43fb063e4af"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Nov 02 15:40:42 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Dec 05 14:57:48 2016 -0800"
      },
      "message": "Add null check to a11y interrupt.\n\nAlso adding same robustness to interrupt that we have for\nsending a11y events.\n\nBug: 32507871\n\nTest: Ran a11y CTS. Verified manually with sample app\nthat sends interrupt and accessibility service that\ncrashes when started. That case used to crash the\napp, and doesn\u0027t anymore.\nChange-Id: I5cf05dcbb54ea23ae876cb3258dd206c55dce775\n"
    },
    {
      "commit": "2f165944ce6109134e7285a71da32d1a1647960b",
      "tree": "03994122ca495fba97a4a0a731063f95df883c6f",
      "parents": [
        "0f10b2f1643054644006031ee505b43fb063e4af"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Sep 21 11:18:05 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Dec 02 15:52:38 2016 -0800"
      },
      "message": "Support continuing dispatched a11y gestures.\n\nTest: Ran the tests in this CL, as well as new CTS tests for\nthe new API.\n\nBug: 29477207\nChange-Id: Ie5aba553286e954f7afe76ccfa97a7e8be9d75af\n"
    },
    {
      "commit": "2585033100755e8ce6cd43db15a7cfd67e7264a3",
      "tree": "4c0481cd7033a42c70433a24571167d6fccd052a",
      "parents": [
        "eed332badaf9e3314d32aca8cf9087bcdd168e74"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Nov 03 15:28:03 2016 -0700"
      },
      "committer": {
        "name": "Rati Agrawal",
        "email": "ratiag@google.com",
        "time": "Fri Nov 04 21:12:25 2016 +0000"
      },
      "message": "Add check for null manger for a11y recents action\n\nBug: 31986988\n\nTest: Ran A11y cts\nChange-Id: Ia6a1e1b921d8b0008edbcf1f1a8d1d3d0eb969c6\n(cherry picked from commit 3cdd6c7654ff688b2dbd638e388bc56db7a020e2)\n"
    },
    {
      "commit": "02ea9b75878b83ba1f7a1fb057f9740a58eeb224",
      "tree": "d1e329f234045ce18f74c676c755dbfb4a0ccf0d",
      "parents": [
        "3db726c43af0e05b03963592b5a5015aec981cbd",
        "3cdd6c7654ff688b2dbd638e388bc56db7a020e2"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Nov 04 19:37:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 04 19:37:40 2016 +0000"
      },
      "message": "Merge \"Add check for null manger for a11y recents action\""
    },
    {
      "commit": "a46f009bbfc693319290c273b4e647dea2eebe10",
      "tree": "2f422e1dbc26d284a383ef29d31e913fe727fd7a",
      "parents": [
        "c2a2b94393c54f0b303eca0efc5f3c8281f7ee65",
        "89e3ffc66c5a05f188ff9748b48abebc247f664b"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Nov 03 23:11:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 03 23:11:55 2016 +0000"
      },
      "message": "Merge \"Add tests for MagnificationController.\""
    },
    {
      "commit": "3cdd6c7654ff688b2dbd638e388bc56db7a020e2",
      "tree": "c0eda2c202fcdd780e42cd55b0c124769b739435",
      "parents": [
        "eb7af8b3cca721955384e57b6daddc308774e6c8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Nov 03 15:28:03 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Nov 03 15:52:02 2016 -0700"
      },
      "message": "Add check for null manger for a11y recents action\n\nBug: 31986988\n\nTest: Ran A11y cts\nChange-Id: Ia6a1e1b921d8b0008edbcf1f1a8d1d3d0eb969c6\n"
    },
    {
      "commit": "89e3ffc66c5a05f188ff9748b48abebc247f664b",
      "tree": "f19f44e1f07b531ae755a6fdb53a21596139b276",
      "parents": [
        "eb7af8b3cca721955384e57b6daddc308774e6c8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Sep 19 13:51:10 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Nov 03 13:00:47 2016 -0700"
      },
      "message": "Add tests for MagnificationController.\n\nAlso refactoring the class to make it easier to test and\nchaning behavior where the current behavior seemed poorly\ndefined.\n\nRefactoring:\n- Combined all handlers into one.\n- Simplified animation to use a ValueAnimator.\n- Eliminated ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE\n  setting. Move rest of settings reading into mockable class.\n- Move callbacks from WindowManager into the main class.\n- Pulled out my instrumented Handler from the\n  MotionEventInjectorTest into its own class so I can reuse\n  it.\n\nBehavior changes:\n- Always constraining out-of-bounds values rather than\n  refusing to change them.\n- Constraining offsets on bounds changes. We previously\n  left them alone, even if they were out of bounds.\n- Keeping track of the animation starting point. We were\n  interpolating between the current magnification spec\n  and the final one. This change means the magnification\n  animates to a different profile.\n\nTest: This CL adds tests. I\u0027ve also run a11y CTS.\n\nBugs: 31855954, 30325691\n\nChange-Id: Ie00e29ae88b75d9fe1016f9d107257c9cf6425bb\n"
    },
    {
      "commit": "ac2561e8206ac42921bb6ddbb0a5972fb360e394",
      "tree": "15f2bef8479d20bfda1927a2d55e7634e3c47b42",
      "parents": [
        "87045377c464ed6ec97dc7d4f5c6d8b473cd4ed9"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Nov 01 15:43:46 2016 -0700"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Nov 02 10:28:45 2016 -0700"
      },
      "message": "Make window token add/remove APIs require displayId\n\nWindow tokens can now only be on one display, so we now require clients\nthat want to add/remove window tokens to specify the display they would\nlike the token to be created on. This simplifies the token handling code\nin WM and will be useful moving forward for clients that want to add\nwindows to external displays.\n\nTest: Existing tests pass\nChange-Id: I6b2d8d58a913b3624f1a9a7bebbb99315613f103\n"
    },
    {
      "commit": "c413f7078d2a69badcb4a2326a4a3d55c25da020",
      "tree": "1501cf91e599562edf81eb038d15051e81d496cc",
      "parents": [
        "6e68bedacc3086f49b0cff6d20e006bcc6559603"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Oct 06 17:11:14 2016 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Oct 13 10:07:20 2016 -0700"
      },
      "message": "Switch UM to internal isUserUnlockingOrUnlocked\n\nInternal version of UMS maintains a self-locking data-structure of user\nstates that  is pushed from ActivityManager. Previously there could\nbe discrepancies between UMS.isUserUnlockingOrUnlocked and\nUM.isUserUnlockingOrUnlocked, which is calling a blocking version\nin ActivityManager.\n\nTest: manual + UserManagerTests\n\nBug: 31995235\nBug: 31833240\nChange-Id: Ibafe403f57cd32d9052bb55fe7273a861be1d037\n"
    },
    {
      "commit": "65097bf83f12554fa847f50bfbbe3e40f516b705",
      "tree": "6fa7e478707aa7aa9254c579e1297b4d3d5b9ab0",
      "parents": [
        "85153a12eb5d787091929b8e7d2f9366cec95d46"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Oct 04 16:38:45 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Oct 05 11:08:20 2016 -0700"
      },
      "message": "Move a11y event dispatch back to ui thread.\n\nTest: Ran CTS\n\nBug: 31753900\nChange-Id: I0ba096cb99dd8347a7e9d6c41ff0aa8293dc5d15\n"
    },
    {
      "commit": "6286496f1eebc48637de5fdef33cb299bdd78698",
      "tree": "992cde6dd628fc5d26e4476a42cf4d61c8ccaf9d",
      "parents": [
        "0b2199858963b407acb5c30a3c315bffd49ccdce",
        "e613d1083743e94f2260c4f85118fd1eb62ab9dc"
      ],
      "author": {
        "name": "chchao",
        "email": "chchao@google.com",
        "time": "Tue Sep 20 20:09:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 20:09:07 2016 +0000"
      },
      "message": "In AccessibilityGestureDetector.clear(), dispatch a MotionEvent.ACTION_CLEAR event to mGestureDetector to cancel the ongoing gesture. am: 37ee5c796e am: 60948808a8\nam: e613d10837\n\nChange-Id: I3dde2a0a3a21830b08611c642725e5477c35a8f4\n"
    },
    {
      "commit": "60948808a8e7c4085a2f84ec11f77192b61c0cd1",
      "tree": "62b2dfcb41bcf3be1f3e3ea6d6de206f2b3ad40a",
      "parents": [
        "dedfa06a627e7ce08f4ae30829ea4ddcdff2e31b",
        "37ee5c796ee366882cd67dd621cc6ebc31f5ed31"
      ],
      "author": {
        "name": "chchao",
        "email": "chchao@google.com",
        "time": "Tue Sep 20 04:12:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 04:12:02 2016 +0000"
      },
      "message": "In AccessibilityGestureDetector.clear(), dispatch a MotionEvent.ACTION_CLEAR event to mGestureDetector to cancel the ongoing gesture.\nam: 37ee5c796e\n\nChange-Id: I0f76484c70e08435494f9e9ff1223082c9a3ceac\n"
    },
    {
      "commit": "151e88568f08f8237b98f19150fc74e6594db027",
      "tree": "be4625ddf2ea62ab4b4bf850cea6ba8bb5ba9ae0",
      "parents": [
        "d5d8d04c4db3345b8fe34bc1c1ec5b64503c97fd",
        "2967412d36bc9775086a07fd7d9759c7d0aa8a5b"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Sat Sep 17 00:53:30 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 17 00:53:30 2016 +0000"
      },
      "message": "Fix bug in magnification coordinate calculation. am: 87d96992ea am: 77b279df94\nam: 2967412d36\n\nChange-Id: I964dbe0f850d3e7da23d1a07b9f65fa54043986b\n"
    },
    {
      "commit": "37ee5c796ee366882cd67dd621cc6ebc31f5ed31",
      "tree": "819d340df62065758a7823affedda83960d1e4cd",
      "parents": [
        "67ce5f0c90e366b02cb39cbe0fa6613f88056a40"
      ],
      "author": {
        "name": "chchao",
        "email": "chchao@google.com",
        "time": "Wed Sep 14 17:07:12 2016 -0700"
      },
      "committer": {
        "name": "chchao",
        "email": "chchao@google.com",
        "time": "Wed Sep 14 17:15:35 2016 -0700"
      },
      "message": "In AccessibilityGestureDetector.clear(), dispatch a MotionEvent.ACTION_CLEAR event to mGestureDetector to cancel the ongoing gesture.\n\nb/30706806\n\nChange-Id: I78954e5484d8deda2dadb7c0ae7e05d5c6b734f2\n"
    },
    {
      "commit": "af5d0765dbcda5c9694d1c34ab38236a8160a2f4",
      "tree": "dc3c1c1759828ab975d7bac607735403ed65c929",
      "parents": [
        "dc81d34ddd9770065c981d9e7b36f7f87ce90412"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Sep 14 09:44:44 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Sep 14 19:21:20 2016 +0000"
      },
      "message": "Change users without crashing a11y services.\n\nAccessibility services crash when changing users for several\nreasons. we were looking up permissions for the current\nuser, which wasn\u0027t the user who created the service. We also\nend up resetting the accessibility state, which reads user-\nspecific settings and thus must be done with the calling\nidentity cleared.\n\nBug: 27594523\nChange-Id: I2b910d77704a6054b3a591c38f54d3ed3a2dc427\n"
    },
    {
      "commit": "87d96992ea331bf1e1c1c20647bc47abed42edfb",
      "tree": "0e0a1252daa337e105b949982a99d2f5bfa3ce15",
      "parents": [
        "cb443c529b820b7db77c5db7941193728230da75"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Sep 13 14:34:22 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Sep 13 14:34:22 2016 -0700"
      },
      "message": "Fix bug in magnification coordinate calculation.\n\nWe were checking if a coordinate was inside its window before\ncompensating for magnification.\n\nBug: 31054088\nChange-Id: I4993d84e877fcf3d01382b3cf1c10e2fab58dbba\n"
    },
    {
      "commit": "b0f9f777687c522d7936a6c8eceae8fd1e927730",
      "tree": "a067a366661daffeb1b549e103fd0ebd23b6c9a5",
      "parents": [
        "0b08cfe7d269b55123af485f4393d3f4aff53e12",
        "ecf0962a64a0be721040b6db76b9e51df62fd5d7"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Aug 29 21:52:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 29 21:52:48 2016 +0000"
      },
      "message": "Fix crash when user changes after a11yservice dies am: e797b84ed2 am: 575e714616\nam: ecf0962a64\n\nChange-Id: I138041bd7f6781fd4ceaec52dff5e2bb9125574a\n"
    },
    {
      "commit": "1bb2cc8cc3065923c9dc69a17dcdd0094f758a1d",
      "tree": "cffd10148cb01d2bd202211e817418f5b9bb842e",
      "parents": [
        "a71239203ff48cc34dff86ed2877406fc1a4812c",
        "5de2feab261831e2d6fbe28eab53b884860cd6ea"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 25 18:05:31 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 18:05:36 2016 +0000"
      },
      "message": "Merge \"Revert \"Dispatch a11y events in separate thread.\"\" into nyc-mr1-dev"
    },
    {
      "commit": "5de2feab261831e2d6fbe28eab53b884860cd6ea",
      "tree": "892effc2365a742831887abca5652e061b9c6d37",
      "parents": [
        "c34649411d053185b3572c4cd924e6f14295d8cd"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 25 16:31:25 2016 +0000"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 25 16:31:25 2016 +0000"
      },
      "message": "Revert \"Dispatch a11y events in separate thread.\"\n\nThis reverts commit c34649411d053185b3572c4cd924e6f14295d8cd.\n\nDispatching accessibility events in their own thread is causing Chrome and gmail to crash. We\u0027ve identified two issues: Chrome is allocating strings natively using references that aren\u0027t valid outside of their thread, and the text is being set to values that are changed in the UI thread. \n\nI\u0027m going to resolve these issues on master by making deep copies of the strings, but that change will have its own performance implications.\n\nSince we were bit almost immediately by an unexpected result of this change, and I need to erode its benefit by making deep copies, I think it\u0027s a bad bet to push it into MR1.\n\nBug: 31042124\nChange-Id: I6f5c225a9197036db43fd0ac6008447b22617525\n"
    },
    {
      "commit": "e797b84ed2213c4a7267b3653bcda6f5bc7af01c",
      "tree": "d5eb28600806fe98779be3d37b16a1697178eb90",
      "parents": [
        "f50ff35ceaf0bd4fa676cf4262be1c63024aa7d3"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Aug 24 17:04:59 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Aug 24 17:30:46 2016 -0700"
      },
      "message": "Fix crash when user changes after a11yservice dies\n\nWe were failing to create a death link for the service that\nreplaces the crashed a11y service. Adding an invariant that\nmService is always linked to death if it is non-null.\n\nBug: 31044551\nChange-Id: I98b6a3969cfacb0309e19938899a51c809249d6b\n"
    },
    {
      "commit": "0dbf913d78059a83944d85a4859429412f6d6054",
      "tree": "f000acc9c871c2140af697dbfcec3eb6091ef0d2",
      "parents": [
        "b67b8a6d6cfffd13a244249be44033a2772e5af9"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Aug 23 09:27:04 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Aug 23 09:27:04 2016 -0700"
      },
      "message": "Merge ag/1290921 to master.\n\nOriginal commit:\nDispatch a11y events in separate thread.\n\nMoves the IPCs into a separate thread, where they should affect\njank a lot less.\n\nBug: 30183085\nChange-Id: I7bc8a777fe76dd76f661cc3e3e1d45a2a28df0d2\n"
    },
    {
      "commit": "c34649411d053185b3572c4cd924e6f14295d8cd",
      "tree": "1cffdf4a770ac42a138102c813870961daf85d58",
      "parents": [
        "4ecc9d2db400225b6f5e0d76d17b8f94354996a6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 04 10:37:17 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Aug 19 09:22:10 2016 -0700"
      },
      "message": "Dispatch a11y events in separate thread.\n\nMoves the IPCs into a separate thread, where they should affect\njank a lot less.\n\nBug: 30183085\nChange-Id: Ib76159d158e7a867e76cdd5c8ea3a318949fcc5b\n"
    },
    {
      "commit": "669340c7851e512dff834dab57cb0005e4fd1a40",
      "tree": "e85603fd2d06b39e05160394d1ed5046f33d3e78",
      "parents": [
        "ccd3de69c73590404ebdf445f26a47ecbc392aad",
        "771f9aefdc3b9e4327af1fbcf179ea9c6256e794"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 18 15:50:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 15:50:37 2016 +0000"
      },
      "message": "Merge \"Add null check in key event handling.\""
    },
    {
      "commit": "7f7588d3fb24c7fdae38ecc030668558d5dd5c5e",
      "tree": "ebf1e9ad876e56b8313a9ad1e0b79312e3703ece",
      "parents": [
        "d1f8be5f53f860ecd55f30aa1f07de26aed20923",
        "f49d1bab467365dfc2cf0ebdb633a734e5aaf441"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 18 01:01:17 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 18 01:01:17 2016 +0000"
      },
      "message": "Restart accessibility services after they update. am: 1e6695bbd4 am: fff4a144de\nam: f49d1bab46\n\nChange-Id: I27d86acb98d9cf19f89af036202af9b0a911eea6\n"
    },
    {
      "commit": "771f9aefdc3b9e4327af1fbcf179ea9c6256e794",
      "tree": "9abed0e723d7f81badb399c5891c48eb430eea21",
      "parents": [
        "ff46913110758b65a3a567fd0e6d9ab68bfce742"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Aug 17 17:52:38 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Aug 17 17:52:38 2016 -0700"
      },
      "message": "Add null check in key event handling.\n\nBug: 30866905\nChange-Id: I4bc4c984026d7d2be594b816e3d6de60410970ef\n"
    },
    {
      "commit": "921f8e35d82f567b21a2faba6032b6e8f4f6f70c",
      "tree": "7bdae1baba2899c66755f9aa12536329e2836ce8",
      "parents": [
        "ff46913110758b65a3a567fd0e6d9ab68bfce742",
        "9391bc557c0d27932c503991edc5b51e13481f11"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 17 14:26:57 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 17 14:38:12 2016 -0700"
      },
      "message": "resolve merge conflicts of 9391bc5 to master\n\nChange-Id: I6de231781233826b399688dc8ead70ba515b1ccb\n"
    },
    {
      "commit": "fff4a144deae13f78eedd5caffb5d8efa46abda6",
      "tree": "8cfcfd28df9ee016509470bf29202df411625ff6",
      "parents": [
        "aac31ac9881705e10cf7483edaec66f697cc51d4",
        "1e6695bbd44433564d42e20447aadf57c8d1b08e"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Aug 17 20:56:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 17 20:56:02 2016 +0000"
      },
      "message": "Restart accessibility services after they update.\nam: 1e6695bbd4\n\nChange-Id: I10714ce8ebc0b9ca6dd206a4a11e283704d668ae\n"
    },
    {
      "commit": "ee4ff424ea01425e2b647a3017303442e52740aa",
      "tree": "250536c494a07518e7d186a633edb6471b3760a7",
      "parents": [
        "8ecc7f730344e10a92eb47f6039a9f544d21499e",
        "1e6695bbd44433564d42e20447aadf57c8d1b08e"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Aug 17 20:52:04 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 20:52:06 2016 +0000"
      },
      "message": "Merge \"Restart accessibility services after they update.\" into nyc-mr1-dev"
    },
    {
      "commit": "5e09ceb6419ec03758881bb0df6615840d8e0f5c",
      "tree": "17ca1cf18a32e6652e6c15ae756bc760b664f955",
      "parents": [
        "b126ddb917235d60a2cdd646711232fd36f58174",
        "fea963edeeb60c76465c0d644078def191f41e0f"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 17 17:16:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 17 17:16:18 2016 +0000"
      },
      "message": "Add new window type TYPE_DRAWN_APPLICATION\nam: fea963edee\n\nChange-Id: If7acf1349b87d4be88a9b4f9fbd984bbd4aca8ad\n"
    },
    {
      "commit": "1e6695bbd44433564d42e20447aadf57c8d1b08e",
      "tree": "140cac00d5b89a940026eb0429f9369129262212",
      "parents": [
        "2a0e48aaf5fe309c3a4fd6ab761be8129e95f57a"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Aug 16 15:10:01 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Aug 16 16:51:45 2016 -0700"
      },
      "message": "Restart accessibility services after they update.\n\nIn ag/1273924, we stopped restarting services that were\nstill bound. When the package changes, however, the system\nunbinds from a service and has no way to tell us that it is\nnot going to restart it (as it would if the service\ncrashed.)\n\nNow we listen for package updates and unbind affected\nservices. The services will then be restarted as there will\nbe enabled services that are no longer bound.\n\nBug: 30866905\nChange-Id: I375edfd6a37ed25f959ec354930cec8f288deb6b\n"
    },
    {
      "commit": "f925b8df927a93b20174cde16989cd739421e48c",
      "tree": "7e6edee20a56aeeca94400b6c18830d255a13eed",
      "parents": [
        "49b684d562f5dc4f10d580039c03f40255224d4b",
        "fea963edeeb60c76465c0d644078def191f41e0f"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 16 19:49:28 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 19:49:29 2016 +0000"
      },
      "message": "Merge \"Add new window type TYPE_DRAWN_APPLICATION\" into nyc-mr1-dev"
    },
    {
      "commit": "2a0e48aaf5fe309c3a4fd6ab761be8129e95f57a",
      "tree": "db97a02635c42af166f5c888240b98067e8ea89c",
      "parents": [
        "1fb9466c1d6ef050b7de09fe26d3e2c6070571ec"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Aug 15 17:49:55 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Aug 15 17:49:55 2016 -0700"
      },
      "message": "Add null check to KeyEventDispatcher.\n\nMake sure we don\u0027t try to dispatch key events to services\nthat have died. Doing so crashes the device.\n\nBug: 30866905\nChange-Id: I1cc0515cca8924b0c2744de98ac75a901b94246d\n"
    },
    {
      "commit": "fea963edeeb60c76465c0d644078def191f41e0f",
      "tree": "6c39e24fb0d435468e42b28ba85582a7037a8997",
      "parents": [
        "e543fb29b27afd75eb5b40699f659151cc26b237"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 15 17:14:16 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 15 17:36:40 2016 -0700"
      },
      "message": "Add new window type TYPE_DRAWN_APPLICATION\n\nThis type behaves like a normal TYPE_APPLICATION, except that WM\nwill always wait for it to be drawn before starting a transition.\n\nWM always waits for TYPE_BASE_APPLICATION (main window), but for\nTYPE_APPLICATION, it only waits if the window relayouts to visible\nand gets a surface before the main window is drawn. If main window\nitself is ready very fast, transition could start without the other\nwindow.\n\nbug: 30830849\nChange-Id: Ife71a9812db7c8eba6ee4ead10ce4f31d9e93b40\n"
    },
    {
      "commit": "30cf918c4b916348fdc3d61fe9f227902479a1f0",
      "tree": "f801511832e0251421bb3d2e9790025b715e80db",
      "parents": [
        "3f12f666ce5809c7f37ce1130db5dda6813656ee",
        "3d40beacfd191d159aba8475e501bba5bf57839e"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 11 21:11:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 11 21:11:57 2016 +0000"
      },
      "message": "Limit capabilities of a11y gesture dispatch. am: a8918f23c7 am: 0e97bb6c1a\nam: 3d40beacfd\n\nChange-Id: I006b848679d7e605740e1e1e9eecddad7878873b\n"
    },
    {
      "commit": "0e97bb6c1ad41031d85fe37a8a9e57b7321b5297",
      "tree": "d4db5eda3fe61f8eeac30c7482a402315789f10e",
      "parents": [
        "4e1d6f439ac0802c09f35acb7f97fb0862d83999",
        "a8918f23c712e97fa1dc4911f64827d64fc906e5"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 11 20:53:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 11 20:53:44 2016 +0000"
      },
      "message": "Limit capabilities of a11y gesture dispatch.\nam: a8918f23c7\n\nChange-Id: I8c14c8b8ada7e7c53b17be2df63c14c4e0e10c83\n"
    },
    {
      "commit": "364580d20acd2c2aae34c37cc4bbd748c3890831",
      "tree": "c1b13c820821abafb4972f98ac7b3b6fe192ce45",
      "parents": [
        "aefa892035e0f50b9db85cebb0aa6baa062c92b3",
        "a8918f23c712e97fa1dc4911f64827d64fc906e5"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 11 20:35:11 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 20:35:12 2016 +0000"
      },
      "message": "Merge \"Limit capabilities of a11y gesture dispatch.\" into nyc-mr1-dev"
    },
    {
      "commit": "a8918f23c712e97fa1dc4911f64827d64fc906e5",
      "tree": "48e1ef71ad750f87c0e28867d77abadf0c9eeea1",
      "parents": [
        "0cf4d47a4094a43984a5215ab1a283b0fdcf87a8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Aug 05 11:23:50 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Aug 08 10:23:17 2016 -0700"
      },
      "message": "Limit capabilities of a11y gesture dispatch.\n\nChanging the service side to accept descriptions of\nmotion events, not motion events themselves, so we can\ncontrol their creation.\n\nBug: 30647115\nChange-Id: Ia6772a1fc05df91818e3f88959d1e2b4a35fe0cc\n"
    },
    {
      "commit": "ba5b372d96803cb8dd8bb5890b469383b0f55b82",
      "tree": "361826181ec176528c12165f43b39c69d1bf4736",
      "parents": [
        "5de1ff667284fae14606927c965509927d8a7a90",
        "546879062922ccf3c419995283a6ff3a74ea3ab2"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Aug 05 23:55:25 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 05 23:55:25 2016 +0000"
      },
      "message": "Improve handling of crashing a11y services. am: a8cfb3733d am: 32c6f10a7f\nam: 5468790629\n\nChange-Id: I34570f56688194857b61cf7163dfcf5494019c2a\n"
    },
    {
      "commit": "32c6f10a7f4233e1da0c4353eee8f788246d8e37",
      "tree": "324bdb66afc454287ff254cebefcb5ff60ce29d6",
      "parents": [
        "a2ead90f445dce63a1accfde4d48acf6b6f3cc6a",
        "a8cfb3733d7022d3a4be87f15701dbac7a17045c"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Aug 05 23:44:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 05 23:44:40 2016 +0000"
      },
      "message": "Improve handling of crashing a11y services.\nam: a8cfb3733d\n\nChange-Id: I303d1dfdb328b787b4315d846dfb4d9bbc747b75\n"
    },
    {
      "commit": "f861b916e4c5a5b7be5ee19184629f3dca80e870",
      "tree": "97478d0803a449e4cfb0e785fa2e630440b68840",
      "parents": [
        "1b72661e451ec79fa0e39a70a5a07749616b62dd",
        "a8cfb3733d7022d3a4be87f15701dbac7a17045c"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Aug 05 23:28:46 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 23:28:48 2016 +0000"
      },
      "message": "Merge \"Improve handling of crashing a11y services.\" into nyc-mr1-dev"
    },
    {
      "commit": "0b59a14311fbdfb07651212bb3cbc6dee6318466",
      "tree": "daac1d4cf0d9fbe059e7a40bf72e78f2a4acce3b",
      "parents": [
        "194af0b205bbbcbcdf8cdd70cf32469e1f84a95a",
        "7bd4a5a36f8269485e98ced6ba79828cc9320d18"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Aug 05 01:14:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 05 01:14:40 2016 +0000"
      },
      "message": "Only filter a11y motion events if needed. am: dc5dedeaa2 am: a83d1ca796\nam: 7bd4a5a36f\n\nChange-Id: I6bffe258d2e7cdfb78070a242b37f34da38c5287\n"
    },
    {
      "commit": "dc5dedeaa2220a86f0b7a0d13ab308ad694e1369",
      "tree": "44214f812a35c1204c23557d103c1846b7122cd8",
      "parents": [
        "0cf4d47a4094a43984a5215ab1a283b0fdcf87a8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Aug 02 14:30:44 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 04 15:58:44 2016 -0700"
      },
      "message": "Only filter a11y motion events if needed.\n\nWe\u0027ve seen some jitter in motion events with accessibility\nenabled. We can eliminate it by not passing motion events\nthrough the filter if we know they won\u0027t be affected.\n\nBug: 30183085\n\nChange-Id: I0ecc8d5a39c8e370fc3a8ab85c6357251a31f8ad\n"
    },
    {
      "commit": "a8cfb3733d7022d3a4be87f15701dbac7a17045c",
      "tree": "a69ac19f3c554d368319fff174ef3739eea6f6cf",
      "parents": [
        "0cf4d47a4094a43984a5215ab1a283b0fdcf87a8"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jul 29 17:26:41 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Aug 04 15:45:13 2016 -0700"
      },
      "message": "Improve handling of crashing a11y services.\n\nWe were confusing handling of services that were unbound with\nthose that had crashed. We would lose track of services that\nhas crashed, start new ones, and then when the system restarted\na killed services we would have multiple instances running. It\nwas possible for this to get very out of hand.\n\nBug: 30306689\nChange-Id: I4e63d25b6d2fec3ec68f450a4602898c43a2b2ad\n"
    },
    {
      "commit": "140df85b137e620bdc98652a08a81fc03b51cc1c",
      "tree": "237dc116646577c99a896d4d1f712695ad1352bb",
      "parents": [
        "625939907dd475ddaa7d78b7f08c8779081714cd",
        "a7dcedc65fbdae3625f25e1a40756d251a5a586b"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Jul 20 16:45:46 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 16:45:47 2016 +0000"
      },
      "message": "Merge \"Add tests for accessibility motion event injector.\""
    },
    {
      "commit": "f6d56f92fffa94c058951744f12a9194dc0f10f1",
      "tree": "801da1ab928b56b87b3e7f4b41917d0059801b84",
      "parents": [
        "41f2ca2960d9b705a55b8470fea8bb4be1479d9c",
        "fd138896d5fc0c4ec3e46ad923fa4935ceaabdeb"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jul 18 21:54:13 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 21:54:14 2016 +0000"
      },
      "message": "Merge \"Update windows before sending a window state change event\""
    },
    {
      "commit": "a7dcedc65fbdae3625f25e1a40756d251a5a586b",
      "tree": "23144abac0b8058ba42a424369f8f96727012ca1",
      "parents": [
        "8a8d81633e724d98b0b681cb94a80b928a60963d"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jul 15 08:40:37 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jul 15 14:35:35 2016 -0700"
      },
      "message": "Add tests for accessibility motion event injector.\n\nChange-Id: If871f0a67d9265683fcbbabea382d54f3898a4c5\n"
    },
    {
      "commit": "290c38567e48ba960e05da4d4ef5648c89e224ff",
      "tree": "78a24bf54f610f2cce01bf0efb9bc6a4291967d8",
      "parents": [
        "c70e33c6e92a6b2d930b5c577639be5df6be43c0",
        "5f3bf63121e5cd6ceb4e8924986bf021987141aa"
      ],
      "author": {
        "name": "Justin Klaassen",
        "email": "justinklaassen@google.com",
        "time": "Thu Jul 14 20:09:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 20:09:52 2016 +0000"
      },
      "message": "Merge \\\\\"Refactor display color transforms\\\\\" into nyc-mr1-dev am: 94673f0b7c\nam: 5f3bf63121\n\nChange-Id: I06a60ef4a1fa23e0c1f5b6ab97462811b6aaf239\n"
    },
    {
      "commit": "22eb19939d815856887f1329f41aa04b397505ff",
      "tree": "2019c89a97ba4ecd600860bf651028b652d9b6bf",
      "parents": [
        "28318faf169aa264a429687f16c9b1af931878a3"
      ],
      "author": {
        "name": "Justin Klaassen",
        "email": "justinklaassen@google.com",
        "time": "Mon Jul 11 20:52:23 2016 -0700"
      },
      "committer": {
        "name": "Justin Klaassen",
        "email": "justinklaassen@google.com",
        "time": "Thu Jul 14 11:28:07 2016 -0700"
      },
      "message": "Refactor display color transforms\n\n- Removed Secure.ACCESSIBILITY_DISPLAY_COLOR_MATRIX, it\u0027s not desirable\n  to persist the actual color transformation matrix.\n- Refactored all SurfaceFlinger transforms to DisplayTransformManager,\n  which allows color transforms to be set independently from the a11y\n  manager service.\n\nBug: 30042357\nChange-Id: Iefa477dedb66aac90e1218e327802a3fab6899ed\n"
    },
    {
      "commit": "fd138896d5fc0c4ec3e46ad923fa4935ceaabdeb",
      "tree": "f3e17c92a4641640f61208806d1c305bd92e3feb",
      "parents": [
        "847206df40ba9ee3ffc10053209b6c5c6dcf1b39"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 13 18:20:42 2016 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 14 01:24:37 2016 +0000"
      },
      "message": "Update windows before sending a window state change event\n\nChange-Id: Ie25b75ccc739dcacbbffd2b3a32fe65086882c64\n"
    },
    {
      "commit": "8c1e36b440e8484123604975620b8675f0ad64a5",
      "tree": "da2627433f73ac14da6b32ec2a6afa64f5819924",
      "parents": [
        "ee72cedf660c2652a8f3cb84af8821ea33df874a"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jun 24 18:16:14 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jul 01 15:57:42 2016 -0700"
      },
      "message": "Add tests for KeyEventDispatcher.\n\nSome minor but needed changes to the class under test to\ngain visibility for tests to do things like make events\non Handlers happen on demand to verify various event ordering.\n\nChange-Id: I5096de697906f8d28b47f47dc2be2f8199ee4e19\n"
    },
    {
      "commit": "ee77b881a4187f6354ad669878db08ff74421b66",
      "tree": "42ed05146ca33835620d40ce13a36d228dfac16f",
      "parents": [
        "f6824b51cca4ecb0812f8ccd97e71ae9077f8671"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Jun 20 11:54:59 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Jun 22 12:35:26 2016 -0700"
      },
      "message": "Report all content changes to a11y services.\n\nChanges were discarded if they arrived too quickly in\nA11yManagerService. Excuse content change events from\nthrottling at this level.\n\nBug: 29355115\nChange-Id: Ifd9da07315ce0c18f59c1dad6a621110ad48343b\n"
    },
    {
      "commit": "ec1783828e541f22e93e67ec80511b9187bc93be",
      "tree": "ec663e89dd55e41ec2aacd07afe607e54ac5488c",
      "parents": [
        "c4b6e2a1849690a7f8dfa3be75ee84f1453f8224"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Fri May 13 13:11:36 2016 -0700"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Wed May 25 12:38:58 2016 -0700"
      },
      "message": "Ensure MotionEvent.split() won\u0027t be given an invalid value.\n\nb/27496784\n\nChange-Id: I28bb4ac5bb8a705e7af9b22b2b56cd4061aa06a0\n"
    },
    {
      "commit": "37fc1c1ce4629973a101ab5cde41406bb6266793",
      "tree": "da062df59975555f46be7c87f6b57cf86f0c3ddd",
      "parents": [
        "f829c1463b4805545d15924ad6243b9405eb83d6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed May 11 16:24:13 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed May 11 16:24:13 2016 -0700"
      },
      "message": "Don\u0027t disrupt a11y state when user is unlocked.\n\nAccessibilityManagerService#unlockUser was assuming that we should\nswitch to the unlocked user\u0027s state. If that user is a new work\nprofile, this transition disables all accessibility features.\n\nBug: 28726050\nChange-Id: I3797d34b580d00642b204fff3fc9a07b720738e0\n"
    },
    {
      "commit": "2fbdd48682c32407daff4fd6577c3838c7c7a220",
      "tree": "3e43fc019f49c7a4e533fe4dc905fbb5e063a198",
      "parents": [
        "5ee41098b0d36cce4f6cb690cbaafdffb4177e8f"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon May 02 09:39:07 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon May 09 16:21:29 2016 -0700"
      },
      "message": "Reduce cost of a11y services with magnification.\n\nServices that declare that they can control magnification,\nbut never actually make a change or register a listener\nwaste cycles as we compute magnification data they never use.\n\nAvoid registering for magnification callbacks unless magnification\ngestures are enabled, a service is listening for magnification\nchanges, or a service has changed magnification.\n\nBug: 28425922\nChange-Id: I114a833669bd53b2cd757c94ea52b65a2f838a08\n"
    },
    {
      "commit": "0f36545bb8a3db08cad3c5c64e7d3f3e7c2dbf26",
      "tree": "e8b37cf62332026c2888e4df0cd6995167005b7c",
      "parents": [
        "7cdc320a6be3ef285b8f0c7923c2a91ac618fbe3"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon May 02 11:36:00 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon May 02 11:36:00 2016 -0700"
      },
      "message": "Re-enable accessibility when UiAutomation closed.\n\nWe need to read the settings when UiAutomation closes in order to\nconfigure other accessibility features from settings.\n\nBug: 28461805\nBug: 28460671\nChange-Id: I030761922ec4acfa2d916e171c39e9dc2deb85a2\n"
    },
    {
      "commit": "ce18c8167766f92856f94a8e88e19de4698960e6",
      "tree": "22853d749be424597f87b2e2132536e63ba98fc4",
      "parents": [
        "32c1169ab3ece0316de5af6c85fc87e17400ca61"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 27 16:00:41 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 28 10:51:39 2016 -0600"
      },
      "message": "Introduce \"unlocking\" vs \"unlocked\" nuance.\n\nThere is a narrow window of time during user unlock where we\u0027re\nreconciling user storage and dispatching the \"unlock\" status to\nvarious internal system services.  While in this \"unlocking\" state,\napps need to be told that the user still isn\u0027t actually \"unlocked\"\nso they don\u0027t try making calls to AccountManager, etc.\n\nThe majority of internal services are interested in merging together\nboth the \"unlocking\" and \"unlocked\" state, so update them.\n\nClarify naming in AccountManagerService to make it clear that a local\nlist is being used, which mirrors the naming in MountService.\n\nTo match UX/PM requested behavior, move PRE_BOOT_COMPLETED dispatch\nafter the user is unlocked, but block BOOT_COMPLETED dispatch until\nafter all PRE_BOOT receivers are finished to avoid ANRs.\n\nBug: 28040947, 28164677\nChange-Id: I57af2351633d9159f4483f19657ce0b62118d1ce\n"
    },
    {
      "commit": "1f70f0b7d60ad0b98fe6597162769bce8b85e3ed",
      "tree": "7194bf00b70392588ce9666ce89bc3bc8fec3d2f",
      "parents": [
        "0db93cea0fef6aa73caa0ef422b8e0a4e45a24e5",
        "70439244ba1abc4f32357d2ee8ff38f73158fe37"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Apr 27 22:50:34 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 27 22:50:37 2016 +0000"
      },
      "message": "Merge \"Fix several accessibility magnification issues.\" into nyc-dev"
    },
    {
      "commit": "70439244ba1abc4f32357d2ee8ff38f73158fe37",
      "tree": "4d5f45fe3190aad574db00d16d971815be0f812a",
      "parents": [
        "b1dea03f0a72923793895048e1a5aac0d4e485c5"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 10 15:15:49 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Apr 27 13:57:43 2016 -0700"
      },
      "message": "Fix several accessibility magnification issues.\n\nClarifying region used for magnification as \"magnificationRegion\",\nboth in the public API and in the code. There\u0027s been significant\nconfusion about what \"magnfifiedRegion\" means. Removing\n\"availableRegion\" from everywhere except where it\u0027s required, as\nthat region was identical to magnified/magnification region.\n\nTrying to shut down magnification was a complex situation where\nanimations in progress and new magnification requests were tricky to\nhandle correctly. It was not possible to guarantee that the\nmagnification callbacks were unregistered consistently. There were\nat least two situations that led to phone restarts:\n1. If a triple tap was detected between unregistering the callbacks\nand shutting down the input filter. In this case the magnification\nrequest would go through.\n2. If an animation had just started when magnification was turned\noff, so the current magnification was 1.0 but the animator was\nabout to change it. In this case the callbacks would be unregistered,\nand then the animator would start changing the magnification.\n\nThis change makes registering and unregistering magnification atomic.\nIt also makes MagnificationController stick around indefinitely once it\nis created, registering and unregistering as needed to support\nmagnification gestures and services that control magnification. Services\nthat merely query the status of magnification no longer register for\ncallbacks.\n\nOne part of shutting down is turning off the animation and guaranteeing\nthat it won\u0027t try to make further changes. Adding a flag to\nSpecAnimationBridge and a lock in that class so we can guarantee that\nnothing happens when we aren\u0027t registered for magnification callbacks.\n\nAlso reconfiguring all accessibility options when a service stops to\nmake sure that only the features required by the current configuration\nare enabled.\n\nBug: 27497138\nBug: 27821103\nChange-Id: If697cbd34b117d82c8eee1ba7d0254089ee4241d\n"
    },
    {
      "commit": "4b88bddb12a62ec2d791d45e5b995aab87666a7b",
      "tree": "1691dc1ae68ce332a7e8312279e1332957b609ad",
      "parents": [
        "54d056ed6d75083ce166eb003fb93efc53cefea5",
        "698c96dbd261c6f5c2be618d7ca206ef9c8cbd51"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Apr 21 01:38:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 21 01:38:49 2016 +0000"
      },
      "message": "Merge \"Fix a11y key event handling from multiple devices.\" into nyc-dev"
    }
  ],
  "next": "698c96dbd261c6f5c2be618d7ca206ef9c8cbd51"
}
