)]}'
{
  "log": [
    {
      "commit": "c71485abaf6e868fce8ee1c323c4a5ef8a85abe3",
      "tree": "a6bc3bc3e5db2d4d28488e950a5249be0b1de2e0",
      "parents": [
        "174b140dfe30f9a926eefaf118c6ccdb6a0b493e"
      ],
      "author": {
        "name": "Anna Galusza",
        "email": "agalusza@google.com",
        "time": "Tue Mar 29 17:22:17 2016 -0700"
      },
      "committer": {
        "name": "Anna Galusza",
        "email": "agalusza@google.com",
        "time": "Tue Mar 29 18:43:49 2016 -0700"
      },
      "message": "If the AccessibilityService requesting the soft keyboard to be hidden is\nstopped, make sure the keyboard is hidden.\nBug: 27886621\n\nChange-Id: I63ecc0c9506a60cd07660208d37cd6a0bfd5752d\n"
    },
    {
      "commit": "4d2a42336be1dc57093c70a351f407cf0f58c967",
      "tree": "8bb5eb2431b6c23d62dd95efc27fc90139f8a6ba",
      "parents": [
        "1f8fb9f95a6fbd642a0e84476ae8e0fc1a845920",
        "59e53a164e1e8d19830f16b6e3a743c7ebe0c1aa"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Mar 29 15:13:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 29 15:13:04 2016 +0000"
      },
      "message": "Merge \"Various fixes for MagnificationController\" into nyc-dev"
    },
    {
      "commit": "59e53a164e1e8d19830f16b6e3a743c7ebe0c1aa",
      "tree": "da3a9b4db724ab12352e81200540c9c262513f09",
      "parents": [
        "4a2f9857c2759661a54d8705fb65e1ce500d1907"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Mar 28 13:41:32 2016 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Mar 28 13:41:32 2016 -0400"
      },
      "message": "Various fixes for MagnificationController\n\n- Ensure initial magnified and available regions are set\n- Correctly offset magnified bounds by left coordinate\n- Cancel ongoing animations before unregistering callbacks\n\nBug: 22718911\nBug: 27871383\nChange-Id: Iaff63be856598d1f8edb2d94158bbd75045c86ec\n"
    },
    {
      "commit": "3eca3cd33497d44953418f8c6d9de4a00015d64f",
      "tree": "34f86dc51262ef7dbae0487543d8d46e428e6386",
      "parents": [
        "822de0d90cb4d76d5a8bd655f3c9a94f9bc25d7a",
        "16b8251c89743dab939ccfc79fb6f64d0df6aaae"
      ],
      "author": {
        "name": "Muyuan Li",
        "email": "muyuanli@google.com",
        "time": "Fri Mar 25 18:03:35 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 25 18:03:36 2016 +0000"
      },
      "message": "Merge \"Refactor enableAccessibility to AccessibilityManagerService\" into nyc-dev"
    },
    {
      "commit": "2ec58a65d2b976d75a063f83bfcb3d1fac5e51e1",
      "tree": "61872f7316978f589618679bd530b203bb4bf895",
      "parents": [
        "976bbaccc47daa700a9ac2fa4fe9b0b759cf343a",
        "517a3e07611657f36ec85b9cf52d9430edf38adc"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Mar 23 02:36:33 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 23 02:36:35 2016 +0000"
      },
      "message": "Merge \"Fix ACCESSIBILITY_ENABLED settings.\" into nyc-dev"
    },
    {
      "commit": "517a3e07611657f36ec85b9cf52d9430edf38adc",
      "tree": "4cedd09c704103bcd6cafc7a2c44340003427d59",
      "parents": [
        "36a20cdde3176f24279e2382f878cecdbecafa9d"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Mar 22 17:54:37 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Mar 22 17:54:37 2016 -0700"
      },
      "message": "Fix ACCESSIBILITY_ENABLED settings.\n\nA typo meant that the setting reflected the exact opposite of what was\nintended.\n\nBug: 27781201\nChange-Id: Icb0d4d585399f147b319093be57d708af4c6dfdc\n"
    },
    {
      "commit": "16b8251c89743dab939ccfc79fb6f64d0df6aaae",
      "tree": "3c0a6001a2bd9ce49131d7bd8137cf041d0c22b1",
      "parents": [
        "07db6f3969287c2fea714d81a12b1ccd71434e99"
      ],
      "author": {
        "name": "Muyuan Li",
        "email": "muyuanli@google.com",
        "time": "Sat Mar 19 15:50:45 2016 -0700"
      },
      "committer": {
        "name": "Muyuan Li",
        "email": "muyuanli@google.com",
        "time": "Tue Mar 22 02:43:28 2016 +0000"
      },
      "message": "Refactor enableAccessibility to AccessibilityManagerService\n\nenableAccessibility is refactored from EnableAccessibilityController to\nAccessibilityManagerService. Also added are 2 methods disableAccessibility,\nand isAccessibilityEnabled.\n\nBug: 27645255\nChange-Id: I32d75ed6617b8bcf82bbee0dd5ee776f430fb386\n(cherry picked from commit 84da556422d50e43eb674061cc454f331104d493)\n"
    },
    {
      "commit": "45ebfd339f7f2aea83f789b8c6815092e65c592a",
      "tree": "015eed31ce1cdd01f1dd27616034cd642eba2c65",
      "parents": [
        "8c536f91f1a72f671d41d54b3aeda4d70ee90d49",
        "9b0081df70f38fc195423a9338183b348ae412c6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Mar 21 16:28:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 21 16:28:50 2016 +0000"
      },
      "message": "Merge \"Fix decision handle accessibility events.\" into nyc-dev"
    },
    {
      "commit": "6fdd3afdcc43c1dec03ee82e9e1d69e88170d932",
      "tree": "b3e2cd1913c1941de0447c1c98c19ba056379acc",
      "parents": [
        "1169f652348c8a919ea011c18e6d457f7a802a22",
        "da80d676c70fa07d4efe566b2c74b3fbc61805b0"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 17 22:19:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 17 22:19:17 2016 +0000"
      },
      "message": "Merge \"Treat accessibility actions as user activity\" into nyc-dev"
    },
    {
      "commit": "8a372a0a280127743ce9a7ce4b6198c7a02d2a4f",
      "tree": "f2446f9d00e6dc0be78885db357719b9b3830e48",
      "parents": [
        "58ae278294017abca0dffc95f006ae646c88db89"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 16 16:25:45 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 17 14:49:08 2016 -0600"
      },
      "message": "Refactoring FBE APIs based on council feedback.\n\nMostly consists of removing the word \"encryption\" from most APIs,\nsince we can\u0027t actually make promises about the data being encrypted.\n\nBug: 27531029\nChange-Id: Iace9d7c4e64716abf86ed11847c40f3947e1d625\n"
    },
    {
      "commit": "da80d676c70fa07d4efe566b2c74b3fbc61805b0",
      "tree": "b2440d906f08e912e2da1221852625720370f46c",
      "parents": [
        "36a20cdde3176f24279e2382f878cecdbecafa9d"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Mar 15 16:25:46 2016 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 17 10:09:39 2016 -0700"
      },
      "message": "Treat accessibility actions as user activity\n\nResurrecting ag/665912.\n\nBug: 19531976\nChange-Id: Ibdddd507215e61b9f4313c36eab8845e9940a7ac\n"
    },
    {
      "commit": "fd6aa8a1fa6345030c382d7f2d9eac456b425f55",
      "tree": "02c76605cd6132cd55e5b4d326b3671d0af761fb",
      "parents": [
        "5781e61cb6a134cf897d8454a222687880ce639a"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Fri Mar 11 20:21:13 2016 -0800"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Fri Mar 11 20:21:13 2016 -0800"
      },
      "message": "Fix double tap issue in TouchExplorer\n\nIn certain conditions, the first tap in a double tap could be detected\nas Touch Exploration.  This ensures that cannot occur.\n\nChange-Id: I20941be54413534d9dc74e5a3152c27dd0c998fe\n"
    },
    {
      "commit": "9b0081df70f38fc195423a9338183b348ae412c6",
      "tree": "070e7752024b0a46cf02c7e1c8faa5ce9b46ff6d",
      "parents": [
        "0dda14c671e7c19841f963b0bc665da055738437"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 10 14:58:13 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 10 14:58:13 2016 -0800"
      },
      "message": "Fix decision handle accessibility events.\n\nThis was a typo in the original CL.\n\nChange-Id: Iddb2a6ac6848e3ee91694befa1835e56ce50d470\n"
    },
    {
      "commit": "bf1cf52663414eec1d80d23edc029bf6223adb3b",
      "tree": "3f2b258234237d41c95ed74e907548d0d43b0c28",
      "parents": [
        "8064b4a687b41377bff5ea767dedc9c8a366cb51"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Tue Feb 23 16:41:54 2016 -0800"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Wed Mar 09 12:48:08 2016 -0800"
      },
      "message": "Ensure AccessibilityGestureDetector only returns true when a\ncallback returned true.\n\nb/26987664\n\nChange-Id: I52687120f784ec958802a9c93b767c2b8f6a7e38\n"
    },
    {
      "commit": "51f0dd6befc685141d24d12fcbadbca5b5346932",
      "tree": "bcd4ba46a8832f7b1f81912a60ce594346a1260d",
      "parents": [
        "35d44ba4396348511d8032ab586722cfc37ee177",
        "9002a152c4a504ea404fab528c9e7d4ef3cb3247"
      ],
      "author": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Wed Mar 09 18:27:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 09 18:27:39 2016 +0000"
      },
      "message": "Merge \"Increase threshold for gesture detection timeout\" into nyc-dev"
    },
    {
      "commit": "9002a152c4a504ea404fab528c9e7d4ef3cb3247",
      "tree": "8915660c03faefa9c50a641b569192ce83416781",
      "parents": [
        "e8cd832eea94a6be152b2ccdfd9536ae1637af52"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Tue Mar 08 16:08:46 2016 -0800"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Tue Mar 08 16:08:52 2016 -0800"
      },
      "message": "Increase threshold for gesture detection timeout\n\nAfter a user study, it appears a little extra slack for gesture\nrecognition is a good idea.\n\nChange-Id: I8ff90c715a77c985e8bab671c3782bc8679cc564\n"
    },
    {
      "commit": "6ca619fe1aff489e1227b0db6a77c96e973a1db3",
      "tree": "21d4d5bbde65834e1ea5a88c55bc75c417699479",
      "parents": [
        "eff0a83a23d1c34ea8a330e461a5660f7de1d768"
      ],
      "author": {
        "name": "Muyuan Li",
        "email": "muyuanli@google.com",
        "time": "Tue Mar 08 13:30:42 2016 -0800"
      },
      "committer": {
        "name": "Muyuan Li",
        "email": "muyuanli@google.com",
        "time": "Tue Mar 08 14:12:18 2016 -0800"
      },
      "message": "Partial screenshot\n\nAdded a partial screenshot function in TakeScreenshotService\nalso added corresponding shortcut keys in PhoneWindowManager\n\nBug: 26820467\nChange-Id: Id67cd3b4b0eed848eb4665056766546500bdac88\n(cherry picked from commit 03e45541e9d54a2f285906ac7b5bcb374db14495)\n"
    },
    {
      "commit": "54677d2a55592be77d23e36b97a8a4a7d4b7c9f8",
      "tree": "94a0620879f6e21d57c0ab5a065ed337d232fe22",
      "parents": [
        "d53f0df7dfb1eee22f7953870ed9d24688596712"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Feb 29 13:57:31 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 03 08:28:51 2016 -0800"
      },
      "message": "Control AccessibilityServices with one setting.\n\nAccessibility services were controlled by two settings:\nENABLED_ACCESSIBILITY_SERVICES and ACCESSIBILITY_ENABLED. These\nsettings needed to be changed together, and race conditions could\ncreating inconsistent states as ACCESSIBILITY_ENABLED was also\nchanged by the framework itself.\n\nRestructuring to keep ACCESSIBILITY_ENABLED up-to-date, but not to\nuse it to decide whether or not to enable accessibility. Enabling\nis controlled solely by ENABLED_ACCESSIBILITY_SERVICES.\n\nBug: 27455234\nChange-Id: I9ab1e5936080c1b0dd8410dd6e8666e7f6eaccf3\n"
    },
    {
      "commit": "8c8e55904a8f9c5694bdcbc587fb140159060c90",
      "tree": "f83811106527da370cb9745a923ed61e5526e8ce",
      "parents": [
        "01e81117a9bc86849f0bf20d7729c8f8101b0baf",
        "6cb67af65fc0e242ecb0de38620f00dafc67886c"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 26 20:57:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 20:57:46 2016 +0000"
      },
      "message": "Merge \"Control magnification only with the setting.\" into nyc-dev"
    },
    {
      "commit": "6cb67af65fc0e242ecb0de38620f00dafc67886c",
      "tree": "b94654085d8e0ea9ef132064ffae1c937b2fa1da",
      "parents": [
        "f58179a24b4de90d0d1a5601530f7c19a57405f6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 26 09:47:12 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 26 11:34:35 2016 -0800"
      },
      "message": "Control magnification only with the setting.\n\nDon\u0027t turn off magnification if gestures are enabled.\n\nBug: 26571116\nChange-Id: I8dafcd4eef50bfa8f9474bf98637f8e54f3527e1\n"
    },
    {
      "commit": "8ca583b29f7a06dcd2ccb2da7c4273d4db8bf7fd",
      "tree": "07a2b60b0cf822d2f9f9bfaa9a4bb7493500c1ab",
      "parents": [
        "913a2fdb064c479dd5d7c4e47a0844bdd5895414",
        "315c34e7d62ce4b609f2d08b18a11a2d44e93aba"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Feb 25 23:16:51 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 23:16:52 2016 +0000"
      },
      "message": "Merge \"Accessibility to toggle multiwindow mode\" into nyc-dev"
    },
    {
      "commit": "315c34e7d62ce4b609f2d08b18a11a2d44e93aba",
      "tree": "ad9fbecdac8c559a511811eea657f2b407e172cc",
      "parents": [
        "f58179a24b4de90d0d1a5601530f7c19a57405f6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 19 15:12:29 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Feb 25 15:13:11 2016 -0800"
      },
      "message": "Accessibility to toggle multiwindow mode\n\nEncapsulating the logic to toggle multiwindow mode from recents,\nand plumbing it through to accessibility global actions. Sending\naccessibility events when windows bounds change. Exposing the\ndock divider window type to accessibility services.\n\nBug: 27250995\nChange-Id: Ib7491f1f853dc7f01bf5c5a4ac1f914f55d0608a\n"
    },
    {
      "commit": "e88e2665471c7b620fd3b1baca024fc9e705ee32",
      "tree": "79072c57c89b56f7a6ed120b3e3a43b9cdfc4f31",
      "parents": [
        "413573ac59bb9904c3bd28c03843054fee7478a6"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 23 17:52:16 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 23 20:15:15 2016 -0700"
      },
      "message": "Update accessibility to be encryption-aware.\n\nLook for both EA and non-EA accessibility services, but when the user\nis locked only bind to EA services.  Once the user is unlocked, we\ntake another pass and bind to any non-EA services.\n\nWe only consider disabling accessibility once the user is unlocked,\nsince there could be non-EA services waiting in the wings.\n\nBug: 25860579\nChange-Id: I97bd019661457c3577d629ba12290d02f026011a\n"
    },
    {
      "commit": "1b5d292fbb9ec65b4186f82d7e53bd3941854210",
      "tree": "cb9037f7f4e62abedd6e5804582a9f66fd1a61b6",
      "parents": [
        "d8330cea9893387f7c33f4105af343167d1e1f27",
        "c42d933b56f889b3d36f253b8f6b6560021cd432"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Feb 20 01:26:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 20 01:26:38 2016 +0000"
      },
      "message": "Merge \"Clear binder id before creating pending intent as the system.\" into nyc-dev"
    },
    {
      "commit": "c42d933b56f889b3d36f253b8f6b6560021cd432",
      "tree": "ee0e34ed006653e26c5bd18be636e1b72100ee86",
      "parents": [
        "3dbcd203c57e9845582b59d9d5914bd6df7d2e1f"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 19 17:24:55 2016 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 19 17:24:58 2016 -0800"
      },
      "message": "Clear binder id before creating pending intent as the system.\n\nbug:19349693\n\nChange-Id: I989441ac32b89d313ec7a006373faa90f58fc89d\n"
    },
    {
      "commit": "0bc3cc9c2fdc18eb305088adb9be72953df14473",
      "tree": "5ea480b7178e937e20158d4f7d413cb9a5c8d80b",
      "parents": [
        "18026642213698fc095a9510c2431862d3a7f310"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Wed Feb 17 18:57:47 2016 -0800"
      },
      "committer": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Thu Feb 18 17:57:18 2016 +0000"
      },
      "message": "Fix crash when cancelling an accessibility gesture with ACTION_UP.\n\nb/27090049\n\nChange-Id: I7a5b65c4e96513539d820c9a2bef99272fb24680\n(cherry picked from commit 3951e3547f2ebb5ec228b8776855e9f244b1e9e9)\n"
    },
    {
      "commit": "e7b198353c62b00718da2bc04cb1e5efb0b57da5",
      "tree": "9a2dee785008c0b15c7850062766adf11424c835",
      "parents": [
        "f58179a24b4de90d0d1a5601530f7c19a57405f6"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Feb 12 12:05:42 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Wed Feb 17 15:02:35 2016 -0800"
      },
      "message": "Protect MotionEvent stream when a11y changes.\n\nI found this hole while looking for a solution to a bug when\nmagnification was enabled when TalkBack was running. I believe\nwhat was happening was that enabling/disabling magnification\nresets the AccessibilityInputFilter. The filter batches MotionEvents\nfor processing with a choreographer, but the disable/enable cycle\nwhen magnification gets enabled could disrupt the event stream.\nThis change flushes the batched events before objects using them\nare disabled.\n\nI\u0027ve tried a variety of things, but I\u0027m not able to reproduce the\nbug on NYC using the same procedure. I suspect that either the\ntiming of the events is different, or the newer gesture detection\nin TalkBack is protecting it somehow. The hole remains, though,\nand could create invalid streams of MotionEvents without this fix.\n\nBug: 26613222\nChange-Id: Ie9f3da459929397596e0a80a61d5c7f191001ee8\n"
    },
    {
      "commit": "c8e941f4ba5a7ce488deb7606606e2ff6c8f7cf8",
      "tree": "654e5ab49e6883d38653242d9f228bf37045c4fe",
      "parents": [
        "e4f490cc6910cbffdedd4977e68ae57a6437bb13"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Thu Feb 11 14:15:06 2016 -0800"
      },
      "committer": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Fri Feb 12 21:20:36 2016 +0000"
      },
      "message": "Update the timeout values for accessibility gestures.\n\nChange-Id: I1e6ed7bbec46b848c1278922be3110733a64dcb6\n(cherry picked from commit 0522205fd5fdc460fb7af78a3ac4a17fcb988ac5)\n"
    },
    {
      "commit": "cc494765faea28adeca7584d75c97933ffaf309b",
      "tree": "1b39c0173745a45e39209fb6b794107433d2ffe1",
      "parents": [
        "c61e102474c1fe0e16503856531106f8bff9e36b",
        "f564afa4cd17ba4b259e2b1ee01f061d12fd0fe2"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Feb 09 16:59:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 16:59:26 2016 +0000"
      },
      "message": "Merge \"Clean up UiAutomation working alongside a11y.\" into nyc-dev"
    },
    {
      "commit": "78d2e2ddf07414eb342094ad8cf9d830b2220528",
      "tree": "d5e31c3dd6b070c5f533258db77afe3af5ab70a3",
      "parents": [
        "b251a2f51e636d036598ad27473b9cc55fdac1d7"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Feb 02 14:47:44 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Feb 09 00:51:18 2016 +0000"
      },
      "message": "Clean up accessibility gestures.\n\nClosing two small holes in the implementation:\n1. The gesture was dispatched before the callback was registered. It\nwas possible for gestures that failed quickly to fail to report any\nstatus.\n2. Gestures could be dispatched before the input filter was\ninstalled. Adding a wait to give the filter a chance to install\nbefore reporting a failure.\n\nAlso removing an unused method on the input filter.\n\nChange-Id: I77cd80dcd2cec6c72b3761169aba5eaecf62250b\n(cherry picked from commit 03465fb874ccf35ead2228b66ec03afc31d7694e)\n"
    },
    {
      "commit": "f564afa4cd17ba4b259e2b1ee01f061d12fd0fe2",
      "tree": "c33530130da7f80cd9ae38453e7724457136333b",
      "parents": [
        "b251a2f51e636d036598ad27473b9cc55fdac1d7"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Feb 01 17:01:44 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Feb 09 00:08:59 2016 +0000"
      },
      "message": "Clean up UiAutomation working alongside a11y.\n\nFix two bugs: one where Instrumentation did not properly\nhandle destroyed UiAutomations, another where UiAutomation\ndid not properly disable running accessibility services.\n\nChange-Id: I1773dbd373f4d5b0e7c9917ff18d8d9b1a0e07c7\n(cherry picked from commit 846522cea043d3113b3b96daa8f3a1b70e3beb5e)\n"
    },
    {
      "commit": "28239e8a619e6546580a0f3893cf55b0e97fc4e8",
      "tree": "b2884d120ee7294e44ea48700848f97eec5423a1",
      "parents": [
        "4fb2d18c467a674861d23ca95adabefacea25583"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Thu Jan 21 13:24:47 2016 -0800"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Wed Feb 03 12:06:13 2016 -0800"
      },
      "message": "Improve gesture recognition state change for TouchExplorer.\n\nThis increases the tolerace for detecting a user interaction as a\ngesture in Touch exploration mode.  The detection should also be more\nconsistant between devices, as the threshold is based on physical\nunits.\n\nChange-Id: Iec935e862d2634fba0fea6dc6d81e62ed2213cbc\n"
    },
    {
      "commit": "7647b678c2faa3aeb3eac2653db1aef120aef3a6",
      "tree": "b5f06e3b4175168b14f4b636d8b4b0d9caea6b3d",
      "parents": [
        "31b48bee0334d7160b0f8275af0ab39ea7a8bfae",
        "9254b3e336a01ff79742882bd98860b48ebae379"
      ],
      "author": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Tue Feb 02 18:31:35 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 02 18:31:35 2016 +0000"
      },
      "message": "Merge \"Make AccessibilityGestureDetector handle gesture detection start and end.\""
    },
    {
      "commit": "9254b3e336a01ff79742882bd98860b48ebae379",
      "tree": "dd1177071025c798915ed4d2e94815caa97877ff",
      "parents": [
        "676ae8c8c95e4246cfd03c232c080c25b3ca5dea"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Thu Jan 21 13:24:47 2016 -0800"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Mon Feb 01 19:28:33 2016 -0800"
      },
      "message": "Make AccessibilityGestureDetector handle gesture detection start and end.\n\nChange-Id: I2c1861d5d6c5c0dc921e62f03ee6283f1f7a62b6\n"
    },
    {
      "commit": "8766c398df0037df1e3914b23bfcf189f7d5ddf9",
      "tree": "cf5b930990d5d6163546113e6bf47103aa854bc3",
      "parents": [
        "590f3de160178bbd4693d7720c367f773d7664fa"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Jan 29 23:27:59 2016 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 01 16:13:15 2016 +0000"
      },
      "message": "Make color matrix parsing more robust.\n\nBug: 26880793\nChange-Id: I95e1b24ed949c6b341ecee7de5732a286c674824\n"
    },
    {
      "commit": "f3e5d1d483231d615f5e77032f787fcd8047488b",
      "tree": "87714c45fd03a599d9f60bcfc223c1bfa1f9a91a",
      "parents": [
        "1fffffcf395c8c90aa6204cb69c50bd45f27c2cb",
        "9b278112467581e2b8d99f29cf48b9fbef9cc53f"
      ],
      "author": {
        "name": "Anna Galusza",
        "email": "agalusza@google.com",
        "time": "Fri Jan 29 16:58:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 29 16:58:07 2016 +0000"
      },
      "message": "Merge \"Add API for IME control by Accessibility Services.\""
    },
    {
      "commit": "1dd872260b3ccfbe492d1be0bdbb3f98235b3ba3",
      "tree": "e50e16b08256ccc5da854f0bee6ef125b0fb11ea",
      "parents": [
        "104aff50bd41a05a10d5c11d311fd10889f8f069"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Jan 26 17:15:15 2016 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Jan 28 10:09:05 2016 -0800"
      },
      "message": "Optionally support accessibility with UiAutomator\n\nAdding a flag to AccessibilityServiceInfo that only works\nfor UIAutomator that supresses other services. This flag\nis set by default for UIAutomation to match the current\nbehavior, but tests may clear the flag and enable other\nservices.\n\nNeeded to improve cts coverage of AccessibilityService.\n\nBug: 26592034\nChange-Id: Icfc2833c1bd6546a22a169008d88a6b15e83989c\n"
    },
    {
      "commit": "9b278112467581e2b8d99f29cf48b9fbef9cc53f",
      "tree": "ac2dc680d3196a571122b9f1b57465418d0cc68f",
      "parents": [
        "6ec7ed2f96e5b88b7274320d2231a6057b804202"
      ],
      "author": {
        "name": "Anna Galusza",
        "email": "agalusza@google.com",
        "time": "Mon Jan 04 11:37:37 2016 -0800"
      },
      "committer": {
        "name": "Anna Galusza",
        "email": "agalusza@google.com",
        "time": "Wed Jan 27 17:35:59 2016 -0800"
      },
      "message": "Add API for IME control by Accessibility Services.\n\nChange-Id: I3bb806cf420e0551a2c9ef97d95613f73e362df9\n"
    },
    {
      "commit": "a3a1ea3dbe96405a69765d4740a73a37ab240df4",
      "tree": "8a7e120d5898cf591069a3d12c206bc181fc6d68",
      "parents": [
        "4afbe99127773f71fb35b31cc1becd828867ccb5",
        "81fcf7037b86fd9cb1592359d08a1bd5992c6fc1"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 25 17:24:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 25 17:24:02 2016 +0000"
      },
      "message": "Merge \"Clear binder calling identity before mutating secure settings.\""
    },
    {
      "commit": "81fcf7037b86fd9cb1592359d08a1bd5992c6fc1",
      "tree": "f8ba6c2c8acda5e5832ae1a8370322e3f40bfcb4",
      "parents": [
        "4370fba554d0bfa9dd321461b534f3afb98f8f24"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 25 09:12:41 2016 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 25 09:12:44 2016 -0800"
      },
      "message": "Clear binder calling identity before mutating secure settings.\n\nThe accessibility manager service changes secure settings without\nclearing binder calling identnty. Luckily it worked for a long\ntime as the calls resulting in a secure setting change were not\nmade on a binder thread. Now we clear calling identity before\nmutating secure settings - note that we alsways do this after\na security check, hece it is safe.\n\nbug:26766532\n\nChange-Id: Icb188e6de1a134f38de0bdb23c67fa4ff2806ba4\n"
    },
    {
      "commit": "a9e7a3bbe859a8416e54be28bd1f055df60074e5",
      "tree": "2ab6c5453f8b055abb0cc36f3203ca39d32d0297",
      "parents": [
        "6a13e3be66340c8f408f985219450fec30bbea41"
      ],
      "author": {
        "name": "Jinsong Mu",
        "email": "jinsong@google.com",
        "time": "Mon Dec 14 15:58:41 2015 -0800"
      },
      "committer": {
        "name": "Jinsong Mu",
        "email": "jinsong@google.com",
        "time": "Wed Jan 20 21:56:50 2016 -0800"
      },
      "message": "Accessibility services can turn themselves off b/22514381\nAdded disableSelf() method to AccessibilityService\nThis newly added api used used in\nhttps://googleplex-android-review.git.corp.google.com/#/c/833857/\n\nChange-Id: I5fe60181058ef90dd496318cf270e0825bcc411a\n"
    },
    {
      "commit": "e2239c9346b9efb8c879c1925d90f70c4eb2405c",
      "tree": "38aeadd2bc544e5409bffabe9e257af9a2449096",
      "parents": [
        "292494a58b57a913e9bf81cf52315f3c79e4e03b"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 12 16:46:13 2016 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 12 16:46:13 2016 -0800"
      },
      "message": "Explicitly pass userId to getWindowToken\n\nUiAutomationConnection.clearWindowContentFrameStats method currently clears\ncalling identity before calling mAccessibilityManager.getWindowToken. This\ndoesn\u0027t work properly when a call is made by a secondary user, because it\nwouldn\u0027t pass a check in getWindowToken. This is now fixed by explicitly\npassing ID of the calling user.\n\nBug: 26498396\nChange-Id: I8f0cdde33e18f04adb1833c6c0d0c329de921018\n"
    },
    {
      "commit": "7ef1e7ffbc020f4b84fd59f855c8bd2b150b2c44",
      "tree": "195cbec25e76c03651af78fa28258a4d6b38d9cd",
      "parents": [
        "ba2d7e57abbafd1732b77337d9b1cd9fc3957de2",
        "a70778f1c9c3ae946f890b0ac7116a5df844c39b"
      ],
      "author": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Tue Jan 12 19:34:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 12 19:34:48 2016 +0000"
      },
      "message": "Merge \"Renable split tapping while in Touch Explore mode.\""
    },
    {
      "commit": "a70778f1c9c3ae946f890b0ac7116a5df844c39b",
      "tree": "f81f1b6c7cdf35cb914c2ea4de7b1916df1a0ec5",
      "parents": [
        "946502f50a4e4d757df03e16bcc72f21db487a43"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Mon Jan 11 14:22:46 2016 -0800"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Mon Jan 11 16:50:30 2016 -0800"
      },
      "message": "Renable split tapping while in Touch Explore mode.\n\nb/26496116\n\nChange-Id: I9c819e8d3fb2332120b143cf074c0d7cc3921eae\n"
    },
    {
      "commit": "a6b64f5099b7be6e8384958d8bcddb97bb06ec93",
      "tree": "6e60e9a2b280e486d2e230236ac7d5f39680d2d0",
      "parents": [
        "f8565afc8ae823fd65978e95da9f9652495bdc53"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Dec 04 15:21:35 2015 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Jan 11 09:32:43 2016 -0800"
      },
      "message": "Gesture dispatch from accessibility services.\n\nAdd public APIs to describe gestures and dispatch them from\nan accessibility service. Added a new capability that\nservices must declare to have this capability.\n\nBug: 22514086\n\nChange-Id: I9bff2d9335f0310115112d14b7ed033a6d6c2393\n"
    },
    {
      "commit": "08e7fa9b6918f442669970aa0dc048625424c07b",
      "tree": "b3903430ae8c4f3f934d156917cf7215be449f63",
      "parents": [
        "8dac23eafccff2a952850947c9c99cfc844b9ab2"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Dec 07 20:05:08 2015 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Dec 08 07:27:15 2015 -0500"
      },
      "message": "Allow color matrix to be controlled by secure setting\n\nChange-Id: Ia5518ad79fae502e814034edd7ae8d7a57b3eaeb\n"
    },
    {
      "commit": "14ed6cf3e7bada4932314969000d384bed6d3f92",
      "tree": "1f8ebe3468e14fa8523a264e2fdd5cb13d5061ec",
      "parents": [
        "2829e99660df05aceef421fdea2860b727638e4b"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Nov 20 14:46:28 2015 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Nov 30 14:36:34 2015 -0800"
      },
      "message": "Ignore feedbackType in AccessibilityEvent dispatch\n\nSend AccessibilityEvents to all accessibility services\nthat request them. No longer refuse to send them to\nservices with the same feedback type.\n\nChange-Id: I137905c24fc75c075ab938175ecb6ea5f39112cf\n"
    },
    {
      "commit": "b76bbd8e50feb134c5782e5b4c4f0e488a95b701",
      "tree": "cc7777930d3b76467dea1eeea92507bf512ce6f8",
      "parents": [
        "c47132c20590d3daa669c89ba9347f27e4dae8db",
        "5915658c885e6832bb012461c2a79237f0d15133"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Nov 20 21:55:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 20 21:55:53 2015 +0000"
      },
      "message": "Merge \"Dispatch key events to multiple a11y services.\""
    },
    {
      "commit": "5915658c885e6832bb012461c2a79237f0d15133",
      "tree": "d1989477c90b37f31ef50e636e363b9fa3d56869",
      "parents": [
        "f20bfb677653d8f43c70ec58b2f3f884e6690dcb"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Nov 16 16:24:18 2015 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Nov 20 13:43:02 2015 -0800"
      },
      "message": "Dispatch key events to multiple a11y services.\n\nIntroducing a new class to manage key event dispatch\nthat sends all events to all classes that request them.\n\nBug:22332500, 22515057\nChange-Id: I8521f6257a4ac6c8f2eff14186789630d680ff11\n"
    },
    {
      "commit": "214fb68767502f5fede643a062c1dc5975d75b27",
      "tree": "be57cc6559c777d04c54dae2e3c0f17601ed6b97",
      "parents": [
        "0283d44c0856499b5aabc3212487a44d6f4b2f63"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Nov 17 09:47:11 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Nov 17 09:48:25 2015 -0500"
      },
      "message": "APIs for querying and controlling display magnification\n\nAlso separates magnification state and touch event handling. Moves\ncallbacks for window manager changes and display state changes into\nthe magnification controller.\n\nBug: 22718911\nChange-Id: I3a8ba060a07d8f1f51856855a5f85601766fd45d\n"
    },
    {
      "commit": "590f2235d99488721f44ea880682efaa01f2c70d",
      "tree": "3a5f50cbe3cb95f12e408d0815bfad415736322e",
      "parents": [
        "0116852120e4513eefe4b8c379c61088b2cf0850"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 12 12:43:15 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 12 12:43:15 2015 -0500"
      },
      "message": "Prevent runtime restart on missing magnification spec accessors\n\nThe spec property requires an accessible getter and setter. This code\nwill be removed in a following CL that refactors magnification spec\nanimation.\n\nChange-Id: Ia8fecf98700d18e62ae30aa437b81b061c9a9542\n"
    },
    {
      "commit": "57525a7054f16c198f463b1cf27988243bb96248",
      "tree": "6ceae2dbe8d20a5d20fc5f5bf0468dda3700eabb",
      "parents": [
        "c11f46f41662feebbbd2184aaef25c14add45e7d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Oct 29 15:08:21 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Oct 30 15:24:51 2015 -0400"
      },
      "message": "Refactor MagnificationController out to its own class\n\nFirst step in moving ownership to AccessibilityServiceManager so that we\ncan implement the magnification control APIs.\n\nThe magnification Region and the current/sent MagnificationSpecs are now\nprivate to the controller, and all access is handled through accessor\nmethods. Comments have been added to all public accessor methods.\n\nBug: 22718911\nChange-Id: Ia50ee93513785585aac5424543fc1d730b84bd90\n"
    },
    {
      "commit": "407df712e2a381e0227eb780786128a50bfcf5f5",
      "tree": "62a939cbb39cf8ce5ba8d7cba4c5fb68baa473c7",
      "parents": [
        "446433da24b7cfb7e7625675bb9dc4e17b05f3ba"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Fri Oct 16 14:42:17 2015 -0700"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Tue Oct 20 17:22:47 2015 -0700"
      },
      "message": "Move stroke buffer and gesture recognition out of TouchExplorer.\n\nThis also adds a return value to the callbacks on\nAccessibilityGestureDetector.Listener, so that the listener can indicate if the\nevent has been consumed, and processing should be halted.\n\nb/25021896\n\nChange-Id: If4d366ff207c1cebd0e3f7dab5f27a2037ddb510\n"
    },
    {
      "commit": "c18f2fdfcf8ec7a8534c032c4102739edb7f1c5e",
      "tree": "a39a1fc17e3e2f0597dcdebc6f3375ecf4e43b3e",
      "parents": [
        "01334b6466887fab2af192db360a37a0239714d4"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Mon Sep 28 18:27:11 2015 -0700"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Tue Oct 06 14:50:04 2015 -0700"
      },
      "message": "Encapsulate a11y gesture detection in an external class.\n\nChange-Id: I59e0c25c06ba296822c7afb9f8623989986fde96\n"
    },
    {
      "commit": "4d2a3e2ebddbf54bde934c33cb524877dce51262",
      "tree": "6590eea7bc22d8d0c9d6db2cd702b00171e2b629",
      "parents": [
        "8a20b7021a10492dcd2d944aea5ddf8f4e3cf4b6",
        "c78d64132228f1771f4df690e9c8b4e47e0d3eca"
      ],
      "author": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Fri Oct 02 19:31:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 02 19:31:05 2015 +0000"
      },
      "message": "Merge \"Use the standard GestureDetector to handle double tap and hold in TouchExplorer.\""
    },
    {
      "commit": "f3d78a2fa808168972ba6c8f15b9307af223471e",
      "tree": "005bf5f106ead00bb139e021a963cc5dc530406c",
      "parents": [
        "3da3ca609ec48e1ff23bcfda0b208632fab88d80"
      ],
      "author": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Thu Oct 01 10:47:44 2015 -0700"
      },
      "committer": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Thu Oct 01 12:26:24 2015 -0700"
      },
      "message": "[a11y] Add default autoclick delay value to AccessibilityManager\n\nThe goal is to make this value shareable with Settings code (without\nadding dependency on com.android.server)\n\nChange-Id: Ic41af575dcf8081de69bdcdb20fba430bcf3257e\n"
    },
    {
      "commit": "ae25fa31ac147c0e9a12446be5873766b68ed3ea",
      "tree": "fcf4b08ddf1e7615d9fb45012c895079cd45b78b",
      "parents": [
        "f5c87d810f3d470011ad7f10fbadabea9848eda2",
        "f5ee31d6870ff5bb526e5ccd2205854ab3abccb5"
      ],
      "author": {
        "name": "Zach Kuznia",
        "email": "zork@google.com",
        "time": "Thu Oct 01 04:09:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 01 04:09:19 2015 +0000"
      },
      "message": "Merge \"Remove change to event time when sending delayed events in ScreenMagnifier.\""
    },
    {
      "commit": "c78d64132228f1771f4df690e9c8b4e47e0d3eca",
      "tree": "30dc0882894e368f6c9da9b39923701f5de0dac3",
      "parents": [
        "024ce628def1e42d0c1800b66657c5832e2415c7"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Fri Sep 25 12:51:24 2015 -0700"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Wed Sep 30 16:22:30 2015 -0700"
      },
      "message": "Use the standard GestureDetector to handle double tap and hold in TouchExplorer.\n\nb/24407329\n\nChange-Id: I1cbd1a232bd642eb9bf87548b1a3d1afe48a9bed\n"
    },
    {
      "commit": "94ce21094d7a6289c888492632765d2a83624853",
      "tree": "2ce346fe82e9799a2edb8e5de4f97738497d1b29",
      "parents": [
        "8c8db072b5849404f6b2f571f49b726a93aac686"
      ],
      "author": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Mon Sep 14 17:44:14 2015 -0700"
      },
      "committer": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Tue Sep 29 10:31:08 2015 -0700"
      },
      "message": "Always reload AccessibiiltyInputFilter on user switch\n\nMakes AccessibiilityInputFilter aware of current user ID, and pasess the\nuser ID to event stream filters that have per-user parameters:\n- AutoclickController -\u003e for per-user autoclick delay\n- ScreenMagnifier -\u003e for magnification scale\n\nWhile doing this, make AccessibilityInputFilter.disableFeatures private,\nand replace usage in AccessibilityManagerService with\nsetUserAndEnabledFeatures with feature flags set to 0:\nUsing disableFatures directly leaves input filter in inconsistent state\nwhere internal mEnabledFeatures flags don\u0027t match real state of enabled\nfeatures.\n\nBUG\u003d23113412\nBUG\u003d24265227\n\nChange-Id: Ib295f4c08de1a3743e55714459844b6d80787637\n"
    },
    {
      "commit": "f5ee31d6870ff5bb526e5ccd2205854ab3abccb5",
      "tree": "a0e96bbfef451237948c43123b623dfaf788fd1a",
      "parents": [
        "024ce628def1e42d0c1800b66657c5832e2415c7"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Mon Sep 28 16:21:09 2015 -0700"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Mon Sep 28 16:21:09 2015 -0700"
      },
      "message": "Remove change to event time when sending delayed events in ScreenMagnifier.\n\nThis was originally introduced in change id\nIdd8539ffed7ba4892c5a916bd34910fd2ef50f75 to fix an issue with touch event\nhandling in TouchExplorer.  The original issue has been fixed, so this\nworkaround is no longer needed.\n\nb/24470877\n\nChange-Id: Ie2a782b162b837e9bdc4904a486ed292989f83d8\n"
    },
    {
      "commit": "c052c635eebaccebc099bb107ad7846df54ab2ad",
      "tree": "ec5db1a456d32d1a044eac440be538cd93dcc14f",
      "parents": [
        "329d20d5e0c6252d0a3b42389a45187dc22d55bc"
      ],
      "author": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Wed Sep 23 17:08:23 2015 -0700"
      },
      "committer": {
        "name": "Zachary Kuznia",
        "email": "zork@google.com",
        "time": "Thu Sep 24 14:47:07 2015 -0700"
      },
      "message": "Use the standard GestureDetector for Double Taps in TouchExplorer\n\nb/24339804\n\nChange-Id: I96fa1287fa941178fb9970ceb34d95a3604e6815\n"
    },
    {
      "commit": "466f3216505bd039a285881e06ead631331fe368",
      "tree": "55805c829858493e69df6322bdda640db315e2cb",
      "parents": [
        "f387b2839926890f75eff7872c609f4040ffc1f6"
      ],
      "author": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Mon Sep 21 17:57:57 2015 -0700"
      },
      "committer": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Wed Sep 23 14:58:43 2015 -0700"
      },
      "message": "Showing docked stack divider window.\n\nWhen there is docked stack, we want to show a \"handle\" through which the\nuser will resize the docked stack. We add it from the system process,\nbecause we want to avoid IPC calls.\n\nChange-Id: If15fd2a0fcb7077446d1ba6c533acb3028a42039\n"
    },
    {
      "commit": "a3a9194e46c3657ae0312043bf02bdf7198973a2",
      "tree": "837873e647a71a6a023ece831919c5eee6c0192b",
      "parents": [
        "9b9da704180ea0a732163b3a632f07975c0ae601"
      ],
      "author": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Thu Sep 10 16:40:04 2015 -0700"
      },
      "committer": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Mon Sep 21 10:52:23 2015 -0700"
      },
      "message": "Read autoclick delay from settings\n\nInstead of hardcoding autoclick delay, use\nSettings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY value.\nAdds logic for observing the setting\u0027s changes and updating the delay\nthat should be used when scheduling automatical click.\n\nBUG\u003d23113412\n\nChange-Id: Iffe3df0cb64ab28f13d2803d01d581280aedf422\n"
    },
    {
      "commit": "386f8349709380143f9bf38b41d8dffe736075bf",
      "tree": "9c17609fe1ea178fa8d506d465155daed5712c30",
      "parents": [
        "b2b360b6ca4aaae363167f2ec76702f7fc199be5"
      ],
      "author": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Wed Sep 09 12:30:41 2015 -0700"
      },
      "committer": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Mon Sep 14 14:59:26 2015 -0700"
      },
      "message": "Introduce settings for Automatic click when mouse pointer stops\n\nSettings in question are:\n- accessibility_autoclick_enabled -\u003e Whether the feature is enabled\n- accessibility_autoclick_delay -\u003e Amount of time mouse pointer has to\n    stay still before performing click\n\nEnable/disabled AutoclickController event stream transformation (which\nimplements the feature) based on the accessibiilty_autoclick_enabled\nvalue\n\nBUG\u003d23113412\n\nChange-Id: I8178d10c09d86713bb4c725c95268a7c5f432eb4\n"
    },
    {
      "commit": "c9547607048a7f875784a36cd3370332f9c8befd",
      "tree": "f82b293e7ff36a41130b7d1b1f7899354089d609",
      "parents": [
        "d10840fdbbd450c2a8dfb2049cafe98f7efe50f1"
      ],
      "author": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Wed Sep 02 10:33:08 2015 -0700"
      },
      "committer": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Fri Sep 11 14:50:16 2015 -0700"
      },
      "message": "Implement EventStreamTrasformations for autoclick on mouse stop\n\nThe event stream transformer (AutoclickControlelr) observes motion\nevents from mouse in order to detect mouse movement. Once movement\nis detected, a click event sequence gets scheduled with a delay. The\nscheduled click gets rescheduled on every further detected mouse\nmovement, so the click is performed only when mouse movement stops.\n\nMouse movement detection has tolerance to jitter that may be caused\nby user\u0027s poor motor control (that may prevent click ever being triggered\nwhen mouse gets to target, or unwanted clicks when mouse is stationary).\n\nClicks are scheduled by posting delayed tasks to main loop. When\nrescheduling click, previous tasks is not always removed and a new\ncreated. Instead, if possible, new task is scheduled when previous,\ndelayed task is run. In order to do this, click scheduler keeps track\nof scheduled click time and, when scheduled task is run, checks that\nscheduled time is not greater than the current time (if it is, a new\ndelayed task is scheduled).\n\nDetecting events from other input source types, or mouse events other\nthan movement (like clicks, scroll) cancels the scheduled click.\n\nBUG\u003d23113412\n\nChange-Id: I8a72e768cd45cccb93c19476fe6e2c23e8e84f27\n"
    },
    {
      "commit": "976724e81bca33dc48347f88633a37a195b9e4ea",
      "tree": "e825f2a49e4fc1eb3128e30661c58e7b8b6cc4f8",
      "parents": [
        "55a309f8e2a972a2f0ef0cd86736d3c2f47a75f6"
      ],
      "author": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Tue Sep 01 11:41:35 2015 -0700"
      },
      "committer": {
        "name": "Toni Barzic",
        "email": "tbarzic@google.com",
        "time": "Tue Sep 08 10:48:36 2015 -0700"
      },
      "message": "Feed mouse and keyboard events to EventStreamTransformation\n\nUpdates AccessibilityInputFilter to pass keyboard and mouse events\nthrough enabed EventStreamTransformations.\n\nThis is done in preparation for implementing Autoclick on mouse stop\nfeature, which depends on those events.\n\nExisting EventStreamTransformation implementstions are modified to\nnon touchscreen motion events and key board events.\n\nAdds stub EventStreamTransformation (AutoclickController) that will\nbe used to implement autoclick feature.\n\nImplements key event filtering as a separate EventStreamTransformation\n(instead of doing it directly in AccessibilityInputFilter).\n\nIntroduces private EventStreamState classes to AccessibilityInputFilter,\nwhich keep track of whether event sequences for different input sources\nhave started, and help reduce code duplication when determining whether\nan event should be fed to registered EventStreamTransformers.\n\nBUG\u003d23113412\n\nChange-Id: If115799bbe4debce48689370ff5ea9fa6dab9639\n"
    },
    {
      "commit": "a826b8c24c45443271567cae4cde6db04f147a7c",
      "tree": "30810d174aa62a9b02c06688f536170d76e0cdb5",
      "parents": [
        "43765b77a0286403fd9f7f5305219f0d9a10c953"
      ],
      "author": {
        "name": "Xiaohui Chen",
        "email": "xiaohuic@google.com",
        "time": "Wed Sep 02 13:15:21 2015 -0700"
      },
      "committer": {
        "name": "Xiaohui Chen",
        "email": "xiaohuic@google.com",
        "time": "Wed Sep 02 13:15:21 2015 -0700"
      },
      "message": "Cleanup USER_OWNER in a11y service and tests\n\nI need to make some changes to get the tests pass.  First a11y service\nwill now disable when no service is specified, I need to re-enable\na11y after services are enabled.  Second the old event used in tests\nseems to be filtered out by the service, I need to pick a new event.\nAlso the timeout waiting for mock service to start is extended, I hit\nthe old timeout quite often with N9.\n\nBug: 19913735\nChange-Id: I8fe1b7b5d93b6a52df0a8940a08761ea5fbf5084\n"
    },
    {
      "commit": "e85da2bad5b80f4e2269a64255cbaf8c11efce61",
      "tree": "fc3d4f23bc757c11b846eac34aa81a8bec1be2d0",
      "parents": [
        "825c2a006ed3fd5f33c4fe8ecf3e682bebd97817"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Jun 25 17:26:10 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Jun 30 00:27:14 2015 +0000"
      },
      "message": "Add accessibility event for assist disclosure\n\nBug: 21568059\nChange-Id: Ib51d4236fcc87acd54cb5d191197b9b2c6cc54ea\n"
    },
    {
      "commit": "b3876474399ae22ccfc8f04d7f9ab577517db370",
      "tree": "0a821dfc7ab49470e85b00d0bc99a7f62a75db4c",
      "parents": [
        "b7c3e931cd2ef332f05a2bb78e7036d53aeab18c",
        "386a824384a0d5795a38d10d1d2c18e4e50f8c30"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jun 04 02:20:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 04 02:21:09 2015 +0000"
      },
      "message": "Merge \"Make node retrieval methods in AccessibilityManagerService use separate Region instances to make them thread safe.\" into mnc-dev"
    },
    {
      "commit": "386a824384a0d5795a38d10d1d2c18e4e50f8c30",
      "tree": "ec78c084bd26b80ba1d4b3c4d13c6fdf8efb505d",
      "parents": [
        "db2911321b1cb0870d10baab370c93da13a91067"
      ],
      "author": {
        "name": "Nirmal Patel",
        "email": "nirmalpatel@google.com",
        "time": "Tue Jun 02 18:11:32 2015 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jun 03 19:18:00 2015 -0700"
      },
      "message": "Make node retrieval methods in AccessibilityManagerService use separate Region instances to make them thread safe.\n\nb/21087793\n\nChange-Id: Ice690e3d7494788fb9e1e234a54f14831bd4e0d3\n(cherry picked from commit ebd8eb4610d6bb9322a374f8965a78ba1c39ee63)\n"
    },
    {
      "commit": "942bc58518a82bc3dbeffe4d64f9a5d2d2d8cf43",
      "tree": "b918ecc26a1fb1cfe730dbe6e0ee28fc0fcfb92f",
      "parents": [
        "c5ff0020a2467e0b7aed590d790b5a1b4b082f56"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Jun 01 13:42:04 2015 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Jun 02 15:01:48 2015 -0700"
      },
      "message": "Fix calls to Rect.intersect(Rect)\n\nThis CL checks for the return value for Rect.intersect(Rect) for whether\nthere is actually an intersection before taking the calling rect as the\nintersection. In the case of no intersection (Rect.intersect(Rect) returns\nfalse), the calling rect would not have been changed, so here in this CL\nit will be manually set empty.\n\nBug: 7368679\nChange-Id: I7494c1a1649eca09e34412f0a59b795e8b3a82aa\n"
    },
    {
      "commit": "d69e4c1460017062e7c36be55801cb434ad19d97",
      "tree": "fdb11d94a6a8434e7c7667a8496288b599ef81b7",
      "parents": [
        "9ac2718e7dcf274ad41fbb374bedabadc558634b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 24 09:54:54 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 29 17:04:50 2015 -0700"
      },
      "message": "Update use of procstate for services.\n\nNow that we have a separate foreground service proc state\n(above a sleeping top app), update various system services\nto put their bindings into this state when appropriate.\n\nThere are two new bind flags for this -- one that just always\nmakes it a foreground service, another that only does it when\nthe device is awake (useful for things like the wallpaper).\n\nAnd with all of that, tweak network policy manager to only\ninclude apps that are at least foreground service state when\nin power save and device idle modes.  This will allow us to\nfurther reduce the set of apps that have network access\n(in particular not giving access to the current top app when\nthe screen is off), hopefully leading to even better battery\nlife.\n\nChange-Id: I91d85a5c5ed64e856149e9a5d94a634a7925ec7f\n"
    },
    {
      "commit": "6437518061fc8718590e0272ed17ea64710d2299",
      "tree": "d34dde8dcf77f510e99dd2191860ecc068cdddb9",
      "parents": [
        "e658285baf86a223ad369851d1fc5ebacad7b408"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Apr 28 17:30:04 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Apr 28 17:30:04 2015 -0700"
      },
      "message": "Adjust display inversion matrix to account for luminance\n\nBug: 20346301\nChange-Id: I10633705f2bfddbdeec063f9489a4f8679b9e8ee\n"
    },
    {
      "commit": "0a4dc2258fa8216920e1a0b83cbf7d3729386e2f",
      "tree": "3079394c0d6f96d0e2c74be79c44c0921cf28c34",
      "parents": [
        "317918e206b89f4a49bfa35af57607764f322347"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Apr 14 12:58:42 2015 -0700"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Apr 14 21:14:00 2015 -0700"
      },
      "message": "Added TYPE_APPLICATION_ABOVE_SUB_PANEL window type.\n\nTYPE_APPLICATION_ABOVE_SUB_PANEL will be displayed on top of their\nattached window and any TYPE_APPLICATION_SUB_PANEL panels.\n\nBug: 20135562\nChange-Id: I711de3c19c01432c44de205bf09934a8b23b53fd\n"
    },
    {
      "commit": "2d4aadca9487d76cb7220bdba90afa53119664ea",
      "tree": "c332c59f9cb2263aef59f1216995de0eba196afa",
      "parents": [
        "6597e3435f8abfedbb9a4f1bfb10cc17ea7f38bf"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 16 16:55:14 2015 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 16 17:39:07 2015 -0700"
      },
      "message": "Merge restored accessibility enable state, don\u0027t overwrite\n\nWe do not want to accidentally disable the user\u0027s currently-enabled\naccessibility service(s); presumably they turned them on during\nsetup for a reason.  We now merge the prior + current states rather\nthan simply replacing the current state with the former.\n\nBug 19427367\n\nChange-Id: I96eb47df57318c88066c5da6862f23f656639148\n"
    },
    {
      "commit": "90a855e9e6f4f76f7fe729227298ebc318748283",
      "tree": "12ab5d0ac1f10c984e432a6555f02f7612a84047",
      "parents": [
        "e94aefcaa30ea1109c30e15212bea717c87a94cd",
        "4a0e02377ca89d6e606662dc4b96ca87bcb53055"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Wed Feb 18 18:40:20 2015 -0800"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Wed Feb 18 18:40:20 2015 -0800"
      },
      "message": "Resolved conflict for merge of 4a0e0237 to master\n\nChange-Id: I4a567f650103d1226c49a09f6b2c842a0f1ed6f2\n"
    },
    {
      "commit": "4a0e02377ca89d6e606662dc4b96ca87bcb53055",
      "tree": "e75abd773a39e8b23332ac08724352bb410d3a47",
      "parents": [
        "b456104d9f8ff0dba77f80f7e5e23753d58716a2",
        "bdbd4736351231aac4da720ff7326ea2791e0b00"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Thu Feb 19 01:06:51 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 19 01:06:51 2015 +0000"
      },
      "message": "am bdbd4736: Merge \"Refinements to magnification for improved wearable support.\" into lmp-mr1-modular-dev\n\n* commit \u0027bdbd4736351231aac4da720ff7326ea2791e0b00\u0027:\n  Refinements to magnification for improved wearable support.\n"
    },
    {
      "commit": "0944984c36934c6b5431383d1b6a719b64338074",
      "tree": "243bcf5cccba733be02eff717dc4a30c0a7b3a27",
      "parents": [
        "8bd345f90d27d88a7929b874efd6fa57c0c38146"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Wed Feb 18 12:18:15 2015 -0800"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Wed Feb 18 12:24:45 2015 -0800"
      },
      "message": "Refinements to magnification for improved wearable support.\n\nThis change refactors ScreenMagnifier to use resources for its triple-tap\nadjustment and scale threshold values.  New values more appropriate for\nwearable form factors are supplied.  This also fixes a bug in the triple-\ntap detection logic where the incorrect ViewConfiguration value for the\ntap threshold was used, prematurely disqualifying some touch events as\npotential taps.\n\nChange-Id: If47e556aadb5beb1bad24644122560c6fbe33bad\n"
    },
    {
      "commit": "7e760ee59d77f0e8cbdd4c64c1d4bf0b89113878",
      "tree": "97d0199f9b75d138fc194cae6c49823ca24cf379",
      "parents": [
        "afc870e484a70cfcf154381ce752758a78a809ea",
        "f8acd7a961f3a36712519d0f925f86f3da8d0b7c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 03 07:31:28 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 03 07:31:28 2015 +0000"
      },
      "message": "Fix broken activation of the selected view in accessibility mode. automerge: ded133c automerge: b6b526e\nautomerge: f8acd7a\n\n* commit \u0027f8acd7a961f3a36712519d0f925f86f3da8d0b7c\u0027:\n  Fix broken activation of the selected view in accessibility mode.\n"
    },
    {
      "commit": "f8acd7a961f3a36712519d0f925f86f3da8d0b7c",
      "tree": "6fb37306627add6033dd0c75049a8b94d0eeac80",
      "parents": [
        "712e38eaba012904a515dc84d1edda4dab563dcc",
        "b6b526eaafdcc39e9d55a82f61f1e03c4a3487c3"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 03 07:27:33 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 03 07:27:33 2015 +0000"
      },
      "message": "Fix broken activation of the selected view in accessibility mode. automerge: ded133c\nautomerge: b6b526e\n\n* commit \u0027b6b526eaafdcc39e9d55a82f61f1e03c4a3487c3\u0027:\n  Fix broken activation of the selected view in accessibility mode.\n"
    },
    {
      "commit": "ded133c446fa9d0d23e6bde19a66fb2ce3980491",
      "tree": "41f26af8f4fce5f667a3c167ff6ddfae503b9663",
      "parents": [
        "175ddbcf2ed71fdcd44a9b64cdc5d479df496a4d"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jan 30 20:28:41 2015 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 02 23:17:17 2015 +0000"
      },
      "message": "Fix broken activation of the selected view in accessibility mode.\n\nWe were using an approximation to determine where to send a pair of down\nand up events to click on the view that has accessibility focus. We were\ndoing reverse computation to figuring out which portion of the view is\nnot covered by interactive views and get a point in this region. However,\ndetermining whether a view is interactive is not feasible in general since\nfor example may override onTouchEvent. This results in views not being\nactivated or which is worse wrong views being activated.\n\nThis change swithes to a new approach to activate views in accessibility\nmode which is guaranteed to always work except the very rare case of a\nview that overrides dispatchTouchEvent (which developers shouldn\u0027t be\ndoing). The new approach is to flag the down and up events pair sent\nby the touch explorer as targeting the accessibility focused view. Such\nevents are dispatched such that views predecessors of the accessibility\nfocus do not handle them guaranteeing that these events reach the accessibiliy\nfocused view. Once the accessibiliy focused view gets such an event it clears\nthe flag and the event is dispatched following the normal event dispatch\nsemantics.\n\nThe new approach is semantically equivalent to requesting the view to perform\na click accessiblitiy action but is more generic as it is not affected by\nviews not implementing click action support correctly.\n\nbug:18986806\nbug:18889611\n\nChange-Id: Id4b7b886c9fd34f7eb11e606636d8e3bab122869\n"
    },
    {
      "commit": "8a1d65b76adaa07fd6b16f205757d663e0fbf486",
      "tree": "02e13f0a2590617c7d8d43fd8d2cd3d50f949bdc",
      "parents": [
        "166aa68630c04787caf88fc6b9e369efe7543fc6",
        "cd2ed4e64c501a5dbf73941a4a1f1e4bc639ebf3"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jan 23 23:35:42 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 23 23:35:42 2015 +0000"
      },
      "message": "Accessibility: Sometimes cannot interact with nav bar items. automerge: 10a053e automerge: db1983b\nautomerge: cd2ed4e\n\n* commit \u0027cd2ed4e64c501a5dbf73941a4a1f1e4bc639ebf3\u0027:\n  Accessibility: Sometimes cannot interact with nav bar items.\n"
    },
    {
      "commit": "cd2ed4e64c501a5dbf73941a4a1f1e4bc639ebf3",
      "tree": "9d4544829834c96ed3a899e89b4f49d0eb3898c3",
      "parents": [
        "9027d7355e8e804307902fb5ec88cf54e23cdcb4",
        "db1983b3f43e86acbf188961f53af794cce05219"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jan 23 23:31:38 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 23 23:31:38 2015 +0000"
      },
      "message": "Accessibility: Sometimes cannot interact with nav bar items. automerge: 10a053e\nautomerge: db1983b\n\n* commit \u0027db1983b3f43e86acbf188961f53af794cce05219\u0027:\n  Accessibility: Sometimes cannot interact with nav bar items.\n"
    },
    {
      "commit": "10a053e474e2a566b49a1e4c9e2ec4c8cc0013bd",
      "tree": "6b104a4ca7ece00d6d9d9f053caeac1f26c4987f",
      "parents": [
        "42a13865a4527aaf907a6ced96f726b49b2cbbed"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jan 23 14:40:52 2015 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jan 23 15:05:20 2015 -0800"
      },
      "message": "Accessibility: Sometimes cannot interact with nav bar items.\n\nIf there is a window with the accessibility focus we want to click\non the accessibility focused view in this window. The logic to\ncompute the bounds of the window was using the wrong window id,\nhence getting an incorrect result. As a consequence in some cases\nthe user could not click on accessiiblity focused controls in the\nnav bar.\n\nbug:18889611\n\nChange-Id: I89aee3ae2ffe27fe29819049c287a7155154c65b\n"
    },
    {
      "commit": "e5aa1f52589a64367aadc9a83b094c2513491e9c",
      "tree": "9e7a760517be82e15923bce8c667141578edff7b",
      "parents": [
        "235312d64b704315d37e99c133ffa817c47dfc14"
      ],
      "author": {
        "name": "Jinsong Mu",
        "email": "jinsong@google.com",
        "time": "Wed Jan 07 14:00:50 2015 -0800"
      },
      "committer": {
        "name": "Jinsong Mu",
        "email": "jinsong@google.com",
        "time": "Wed Jan 07 14:00:50 2015 -0800"
      },
      "message": "Make talkback or other accessibility services  updateable from playstore\nonly when it\u0027s been enabled. The idea is to set accessibility services package\nstatus to disabled_until_used by default. Change the status to enabled once user\nturn the service on.\n\nIt is first part of CL in framework, that returns installed accessibilityServices\neven they been set disabled_until_used\n\nSecond part of CL will be in Settings, where we read/write package status\nbased on the service has been turn on or off.\n\nThe similiar logic has been used for preventing never used IME from auto updated\nb/18205549\n\nChange-Id: I1a9cba0221e3de0499ba5ac91ca382696bcb7043\n"
    },
    {
      "commit": "9b3ab29ffa6b3f67b5ab7c06338a2c76db59e176",
      "tree": "16800eea612b7de3c05c0cb35038928dfe35dbd2",
      "parents": [
        "1301446c01182b41c3f922121d21ed9b383cc4df",
        "26c8895465bbc94efb0cc96460e5eabe88382698"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Dec 12 21:02:30 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 12 21:02:30 2014 +0000"
      },
      "message": "am 26c88954: am 14e3351a: Merge \"Fix a NPE in AccessiiblityManagerService.\" into lmp-mr1-dev\n\n* commit \u002726c8895465bbc94efb0cc96460e5eabe88382698\u0027:\n  Fix a NPE in AccessiiblityManagerService.\n"
    },
    {
      "commit": "14e3351a1eae2b4fc8a12c9a4586f8ea7b87442c",
      "tree": "e87da1b4395e903f6c855e43f1b3f97cf950cb69",
      "parents": [
        "7486bc1f5a8156e9b586ebb9c32ced218e668652",
        "09687064f4cf681d2aa299c393e32f22fc013c96"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Dec 12 20:48:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 12 20:49:01 2014 +0000"
      },
      "message": "Merge \"Fix a NPE in AccessiiblityManagerService.\" into lmp-mr1-dev"
    },
    {
      "commit": "09687064f4cf681d2aa299c393e32f22fc013c96",
      "tree": "d5f2e6e939f1fdbb1ca8c2f1c29b673ba5df4ea5",
      "parents": [
        "8b33cf4d34a9ea75e1121ee2f1d829b21f3cb5d6"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Dec 11 22:59:08 2014 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Dec 11 22:59:12 2014 -0800"
      },
      "message": "Fix a NPE in AccessiiblityManagerService.\n\nIt is possible that the accessibility windows list is null which\nis treated as if there is no window information. The getWindows\nmethod was accessing properties of the windows filed witgout a\nnull check.\n\nbug:18522998\n\nChange-Id: Ieefe678d3da3d6e8f96c0e4bedac0c55975621fa\n"
    },
    {
      "commit": "a3bc48c863f69bc048cafbae1e8ff53d53ac6b8e",
      "tree": "3e171bdae890038d6ad4d2932eda5695e5e36133",
      "parents": [
        "1032dac1f80cb46b796ab4fe31eb1139cabdd8c9",
        "a706c9079a60531d79a3f32f263c37f386229564"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Dec 10 19:43:33 2014 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 10 19:43:33 2014 +0000"
      },
      "message": "am e39fc96c: Merge \"Ignore accessibility overlay when computing window\\\u0027s interactive region.\" into lmp-mr1-dev\nautomerge: a706c90\n\n* commit \u0027a706c9079a60531d79a3f32f263c37f386229564\u0027:\n  Ignore accessibility overlay when computing window\u0027s interactive region.\n"
    },
    {
      "commit": "12b7328c0b7f83a233d9387eaa66d1a0ed403724",
      "tree": "2051ae34e32c9fba38a5d0585d20ef4d713f6fe8",
      "parents": [
        "8b33cf4d34a9ea75e1121ee2f1d829b21f3cb5d6"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Dec 09 12:27:00 2014 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Dec 09 12:27:04 2014 -0800"
      },
      "message": "Ignore accessibility overlay when computing window\u0027s interactive region.\n\nIf an accessibility service opts-in for the new window introspection APIs\nwhen calling into a window for accessibility node infos we compute the\nwindow\u0027s interactive region, i.e. the portion that is touchable and not\ncovered by other touchable windows, in roder to deterine whether these\nnodes are visible, i.e. the user can interact with them. There was a bug\nin the interactive region computation what we were not ignoring accessibility\noverlay windows which are intended to not change what an accessibility\nservice can \"see\" and are put by such a service.\n\nbug:18652374\n\nChange-Id: I24ce54069087af9bc308e0c6a7b2aa6b952a6136\n"
    },
    {
      "commit": "f477aeb367f05a64a03ed09efc9e0a9d6f9a6ec2",
      "tree": "25454b318857b12c549c7315626730f047800ee6",
      "parents": [
        "967da505b2cb96ed85161fd940dbecb467bfe38c",
        "ed068f7c3047b3775647a6023c6960a4fc535144"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Dec 08 19:12:22 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 08 19:12:22 2014 +0000"
      },
      "message": "am ed068f7c: am 3a0d878a: Ensure all events from a showing window are dispatched.\n\n* commit \u0027ed068f7c3047b3775647a6023c6960a4fc535144\u0027:\n  Ensure all events from a showing window are dispatched.\n"
    },
    {
      "commit": "3a0d878ab56475276c61d574af7651820a5cea5a",
      "tree": "52c7a0e7d8a075102a5797fcd6b000bd78971ed6",
      "parents": [
        "bcaa315d488c18deb1ab4c6169dc4b4236982990"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Dec 04 12:50:11 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Dec 05 00:37:38 2014 +0000"
      },
      "message": "Ensure all events from a showing window are dispatched.\n\nAccessibility services may opt-in to introspect the interactive\nwindows on the screen. If window introspection is enabled there\nis a case where some events from a showing window are received\nbefore the updated window state from the window manager. Now the\nwindow manager sends over the windows before notifying the app\nfor the focus change.\n\nbug:18625996\n\nChange-Id: Ic481e01efbe12dc92f090f799feeb236672fc7b3"
    },
    {
      "commit": "eed63916a184b05fa8572c9a8151745d05777740",
      "tree": "b07e15de03431bb24fffd41c405bb8dbb8024dcd",
      "parents": [
        "532f0a29548c1ebc9467fe8960626981d24fd26f",
        "89e7ffedadd20a3091e72b42f86c500452df193c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 24 02:04:11 2014 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 24 02:04:11 2014 +0000"
      },
      "message": "am bd6fabe2: Merge \"APIs for an accessibility service to put interaction tracking overlays.\" into lmp-mr1-dev\nautomerge: 89e7ffe\n\n* commit \u002789e7ffedadd20a3091e72b42f86c500452df193c\u0027:\n  APIs for an accessibility service to put interaction tracking overlays.\n"
    },
    {
      "commit": "3a5c721072c60c7ed9c8a95d0a65d0e3cb4eb9bb",
      "tree": "764dfd933c0a80c42fd4214f375c456e6370e548",
      "parents": [
        "d00e68c3b6a4c727bd59a7e7c4524fb3fdd193f0"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Oct 14 09:54:26 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Oct 21 14:45:53 2014 -0700"
      },
      "message": "APIs for an accessibility service to put interaction tracking overlays.\n\nAn accessibility service may register to observe the interactive windows\non the primary display. These windows are the one that has input focus and\nones a sighted user can touch. It is sometimes beneficial for an\naccessibility service to overlay a window to intercept user interaction\nand based on that introspect and perform an action on the windows that\nare on the screen. This is problematic as overlaying a full screen window\nthat is touchable prevents the accessibility service to introspect the\ncontent under this window.\n\nThis change adds a special type of window that only an accessibility service\ncan place which does not affect what an accessibility service can \"see\" on\nthe screen. Hence, even putting such a window full screen the service will\nbe able to interact with the other interactive windows it covers.\n\nChange-Id: I053ccc3a5c6360a98dc40bdb172b54dab35d8b31\n"
    },
    {
      "commit": "4e2c29887616596e922e2b5fc5ac4929b3654f6c",
      "tree": "bb8192e8f646d390711dccbec5baeef8464b069d",
      "parents": [
        "1f2ad9eb7417045c0a08b49a3bdf48600627c57e",
        "2f6fd874510cd333f7fc0b08e146d5d069fa2013"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Oct 20 13:15:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 20 13:15:40 2014 +0000"
      },
      "message": "am 2f6fd874: am 5f978bfa: Merge \"Retire RecentApplicationsDialog\" into lmp-mr1-dev\n\n* commit \u00272f6fd874510cd333f7fc0b08e146d5d069fa2013\u0027:\n  Retire RecentApplicationsDialog\n"
    },
    {
      "commit": "5f978bfa0949d58a187dec0fe9ee6b341cb97c1f",
      "tree": "52da3cd6598228d8c0eb2d9630816c9fbabbd820",
      "parents": [
        "0608b9328b1c2f804ffb2d4165c34383d34bde2a",
        "9a64513c7fccc2a9cf331a384906a7669b29b3f4"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Oct 20 13:04:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 20 13:04:09 2014 +0000"
      },
      "message": "Merge \"Retire RecentApplicationsDialog\" into lmp-mr1-dev"
    },
    {
      "commit": "a64eb6ecf0bf9dc36f471ca51cd6589e206000a5",
      "tree": "2250e723893d46439e00499a5ef463c5dbf6d8db",
      "parents": [
        "8596960eb5e072f5514f8863bfd09aac7a43611b",
        "f08b7ce9e9888fc77bfe8d4af70500a7530aedcb"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Sat Oct 18 00:13:01 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 18 00:13:01 2014 +0000"
      },
      "message": "am f08b7ce9: am f247b908: am 4183a2fc: am 5d604181: Merge \"Let TYPE_ANNOUNCEMENT be sent from any window\" into lmp-dev\n\n* commit \u0027f08b7ce9e9888fc77bfe8d4af70500a7530aedcb\u0027:\n  Let TYPE_ANNOUNCEMENT be sent from any window\n"
    },
    {
      "commit": "5d6041813283086c5a290ad6ca07e05b1a6ffc14",
      "tree": "655968ffa1413a5ca6739be7b86ef5f72906d184",
      "parents": [
        "c6c843fbe8fb8d9bdd012a472e22970ee89b9d24",
        "ba3787d849610a7c71fc6f0d9468855c3d369807"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Fri Oct 17 23:54:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 17 23:54:01 2014 +0000"
      },
      "message": "Merge \"Let TYPE_ANNOUNCEMENT be sent from any window\" into lmp-dev"
    },
    {
      "commit": "f43465452bb782166a4cb96dbfede9e7514787ba",
      "tree": "b484de45847e28cca1e42ae0a22269c9ddee4559",
      "parents": [
        "10db7553ec036557032c98cdcd334b55fa1bec10",
        "0ee9f36140530cf8ee60613f4f057c2ec95fe498"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 17 23:19:57 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 17 23:19:57 2014 +0000"
      },
      "message": "am 0ee9f361: am 0b5af04a: am ebb38bcc: am cd2b54e6: Merge \"Accessibility no longer overrides strong encryption.\" into lmp-dev\n\n* commit \u00270ee9f36140530cf8ee60613f4f057c2ec95fe498\u0027:\n  Accessibility no longer overrides strong encryption.\n"
    },
    {
      "commit": "a6711ff6f09cc25c693cbb50452e3f807c6122f5",
      "tree": "71180a936d4e6547d1503be40334f4bb7b29a134",
      "parents": [
        "a865bb5df834194dee339db615c17d7c7b63aaa3"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 17 11:38:06 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 17 14:33:11 2014 -0700"
      },
      "message": "Accessibility no longer overrides strong encryption.\n\nUpdating the accessibility layer behavior to reflect the new\nmodel where accessibility no longer overrides strong encryption.\nNow enabling an accessibility service lowers the encryption\nlevel but the user can bump it up in settings if desired.\n\nbug:17881324\n\nChange-Id: Ic60d760c267d3f934040a42e1963b179bd8b9f5f\n"
    }
  ],
  "next": "ba3787d849610a7c71fc6f0d9468855c3d369807"
}
