)]}'
{
  "log": [
    {
      "commit": "dc6d1a9cc3a23c26c786a732e729fdd418b57d29",
      "tree": "63fd11756426b65372a6c5123f9413480245b096",
      "parents": [
        "6a6a8f00946f963191612f64238bd706c2188dd8"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 28 18:40:57 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 28 18:45:50 2014 -0700"
      },
      "message": "Fix the global gesture to enable accessibility.\n\n1. There was a bug in the touch explorer which was crashing almost\n   every time after accessibility was enabled via the gesture. The\n   problem was that in dragging state when a finger goes up we were\n   not transitioning to touch exploring state.\n\n2. The global actions dialog was not going away after enabling\n   accessibility while it should as the user brought it up to\n   turn accessibility on rather to interact with global actions.\n\nbug:15254250\n\nChange-Id: Iaa45f758e09566822775b53e87d2980138e85ef9\n"
    },
    {
      "commit": "04cab1bcc46b05cbb72632c53ad83943f705b494",
      "tree": "d061e238253fdf9f6b4e6cbcecb7e7459da6f4be",
      "parents": [
        "4b4d7efe522b01237b842c23a1d92559fe412a6e"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 25 18:35:57 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 26 10:06:22 2014 -0700"
      },
      "message": "Fix accessiblity CTS tests (framework).\n\n1. An external contribution changed the ordering of views for\n   accessibility. While it attempted to fix a platform issue\n   for a comparator breaking transitivity, it changed the way\n   we order views and results in very unnatural accessibility\n   traversal order. It also broke CTS tets. This change tweaks\n   the comparator which fixes the tests and improves traversal\n   order.\n\n2. If there is at least one accessibility service which cares\n   about windows we register a callback in the window manager\n   for window change notifications. We are updating the window\n   list on this callback. There was a case where if the service\n   requests window updates and immediately asks for the windows\n   it gets none as we have not received a callback from the\n   window manager yet. Now this call returns after we get the\n   callback in a timed fashion. This is consistent with how the\n   other introspection APIs work.\n\n3. Window info objects are cached in the accessibility service\n   process. When putting them in the cache a cloning call was\n   missing resulting in some cases of clobbering windows given\n   to the client. For example, we get some windows, cache them,\n   and return these windows to the client. Now a call to clear\n   the cache arrives while the user processes the windows and\n   the client windows get clobbered.\n\n4. Added API for checking if a window has accessiblity focus\n   to be consistent to the API we have to check whether this\n   window has input focus.\n\n5. Removed some obsolete code.\n\nbug:16402352\n\nChange-Id: Ided6da4a82cc0fc703008c58a2dff0119a3ff317\n"
    },
    {
      "commit": "8864415e2a29daf504b52afe911eb5c5a8b03fc0",
      "tree": "84a7791ac0eb8383aaf7dba01b59007e27d23b60",
      "parents": [
        "1bfd0f463e279e3ac3f133c5e0ad11ccfd73eed5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 22 03:42:47 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 22 03:52:01 2014 -0700"
      },
      "message": "Fix matrix multiply in accessiblity display adjustments.\n\nFixed a bug caused by a missing temporary when swapping two\nmatrices.  This could produce undefined results in the case where\nboth display inversion and the greyscale daltonizer were enabled\nsimultaneously.\n\nTightened up the code a little to make this kind of error\nless likely by removing redundant state.\n\nRemoved the native prefix on some methods since they are not\nnative at all.\n\nChange-Id: I716ffc8fbe76a304c60d45870074340c0121059f\n"
    },
    {
      "commit": "a4725efd0bfa52cbddf6ca587d37fc4ebcbfaf72",
      "tree": "945ec8ab8824db8e458485b213a32a54d2e71a08",
      "parents": [
        "0dcebb924619c240b9e820d145c8babc8d464b46"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 24 14:17:05 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jul 25 01:17:02 2014 +0000"
      },
      "message": "Improve the window query API performamce.\n\nWe are caching the window data in the accessibility service process.\nWhen windows change we were sending the dalta of the windows the\nservice knows about. To make this work when the app asked for all\nwindows we had to call into the system as new windows may have\nappeared. This was slow.\n\nNow we are telling the service some windows change and if it gets\nthe windows we cache them. We call into the system only on a cache\nmiss and evict all windows from the cache on window change event.\nWe do not evict the nodes of the window as the former may have\njust moved. If views in a window change they fire accessibility\nevents that trigger the correct eviction.\n\nChange-Id: I586a72a2497b0d44a75288fa758e7e88817f3300\n"
    },
    {
      "commit": "cce47eb580d666ead1f6095d1e3b65233592bbaa",
      "tree": "bf41e1016cd8e311d44eeb0ecc9fecb11c3c2d39",
      "parents": [
        "5028fb035794c207698e52b276c54de109dd5022"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 16 15:12:15 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 16 18:25:23 2014 -0700"
      },
      "message": "Add accessibility text contrast setting\n\nb/14624452\n\nAdds a feature which draws all text (in the HW accelerated standard\npath) in a high contrast mode. Text is drawn at full alpha, and either\nwhite or black (depending on its original color) with a starkly\ncontrasted outline beneath it.\n\nChange-Id: I943f624b6367de35367cced3b2a8298f2bc62377\n"
    },
    {
      "commit": "e34560b21989eea54a139a0586d156ba573cc2ea",
      "tree": "d35e6998089afbd5492f23833cedc0c261c74c1e",
      "parents": [
        "2db72ad45b0c4d91f0d009c6d98eb7fb5231e1d9"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jul 10 14:50:06 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jul 10 14:54:26 2014 -0700"
      },
      "message": "Add accessibility action to open power long-press dialog\n\nAlso fixes an infinite recursion bug in the WindowManagerService\nimplementation of WindowManagerInternal.\n\nBUG: 16129909\nChange-Id: I4f9d32f4e6c3ad460652c5e5271540fa5032a1f5\n"
    },
    {
      "commit": "83526c181e1dd1cf77c25ee1f47079037dec5ddd",
      "tree": "3a5dfeaa7547d359d0fe4457824449790ed76d74",
      "parents": [
        "16b414f46f04ba868856f7b8e65b3bdf084218f6"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Wed Jun 18 18:33:34 2014 -0700"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Wed Jun 18 18:33:34 2014 -0700"
      },
      "message": "Always call super when not sending the key event anywhere else\n\nFix for bug 13171440\n\nChange-Id: I1601e749f0114a6faebcdaeb5ac8993d668b54a8\n"
    },
    {
      "commit": "f7174e87b6007000777b0124de9cef70d8618788",
      "tree": "47d9f60bdc9b0d72d7c247d24e84527143847998",
      "parents": [
        "02a9c359a1a6e1175cdd2d560f97be9cdb816a0e"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jun 12 11:29:35 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jun 12 12:11:39 2014 -0700"
      },
      "message": "Fix backwards compatibility for introspected windows.\n\n1. The APIs for introspecting interactive windows were reporting only\n   the touchable windows but were missing the focused window. The user\n   can interact with the latter by typing, hence it should always be\n   reported. Also this was breaking backwards compatibility as if the\n   focused window is covered by a modal one, the focused window was not\n   reporeted and this was putting the active window in a bad state as\n   the latter is either the focused window or the one the user is touching.\n\n2. Window change events are too frequent as on window transition things\n   are chanign a lot. Now we are trottling the windows changed events\n   at the standard recurring accessibility event interval.\n\n3. Fixed a wrong flag comparison and removed some unneded code.\n\nbuy:15434666\nbug:15432989\n\nChange-Id: I825b33067e8cbf26396a4d38642bde4907b6427a\n"
    },
    {
      "commit": "4604abc97d7dd757bb76ff9b7fcf343dc4a15212",
      "tree": "e6dcea83ff38bc8b2afde5a1eef06b747cb88afd",
      "parents": [
        "006812acd20337b646454c3415172ebd369d2a04"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jun 10 18:59:30 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jun 12 08:26:21 2014 -0700"
      },
      "message": "Moving and resizing windows not reported propely for accessibility.\n\nWhen the position and size of a window changes we have to report that\nto the accessibility layer if the window introspection is enabled.\n\nbug:15569915\n\nChange-Id: I3f869e0a582592bfa5f3743d5c2133ee8cb39b34\n"
    },
    {
      "commit": "5c4cd189f298b3ddb9a5e8afc5f68546a9f96726",
      "tree": "7fe9ec74297c2a842a08a51964683a03b54e1c67",
      "parents": [
        "1c7c2a0dfa4c3f42243a2ef7bbdab43c60230d2f"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 21 14:53:16 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 21 14:53:25 2014 -0700"
      },
      "message": "Fixing bugs due to the new custom accessibility action APIs.\n\n1. AccessibiltiyAction was incorectly throwing an exception when\n   a custom action was constructed.\n\n2. AccessibilityManagerService should no longer enforce only standard\n   actions as we allow custom ones too.\n\nbug:15110963\n\nChange-Id: Iea57e0a6449b87bd8d103c55ca255e80705f2565\n"
    },
    {
      "commit": "e08340645d2539ab13900b5f835b84bcfe8b99e0",
      "tree": "b49994d8efa3210add9f92d501d675bbbdf30a5d",
      "parents": [
        "cfd9d7eec23159c06faccf62d12d9a117a3067ef"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon May 12 15:26:45 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon May 12 15:26:45 2014 -0700"
      },
      "message": "Simplify accessibility display adjustments\n\nMakes the inversion bit public so apps can be smarter about rendering\nimages non-inverted (if they are so inclined).\n\nBUG: 14680114\nChange-Id: I8ca2b2517af2ffc13446d7e0b4e859c1171e2d0e\n"
    },
    {
      "commit": "0425d7f56b5c14484777357075b285d59996e6e9",
      "tree": "845550da75475f4ac6a62cdd57073d0dff7d8f7f",
      "parents": [
        "dab404938368fc5bb0a3d9b91135890ab31d0b0c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 08 14:13:35 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 09 08:58:39 2014 -0700"
      },
      "message": "Teach accessibility manager services about user profiles.\n\nFor user profiles the accessibility layer will use the accessibility\nstate of the their owner. A profile cannot have its own plugins or\nsettings. The rationale behind this is that if a user with impaired\nvision is using the device with different profiles linked to his\nmain one, then he/she should be able to interact with the device no\nmatter what profile the app is being run with. Hence, The behavior\nof the accessibility features should be consistent across apps run\nwith different profile.\n\nbug:14564491\n\nChange-Id: Id19ce81e1a2dfa48015c7ab3053d66c058be3e46\n"
    },
    {
      "commit": "02b9b981eae877a4624c1820f96298d88a5ced60",
      "tree": "f3c9e6eb3e5fc4103171cfa0167781b34377e123",
      "parents": [
        "57d2fd46bc67812c736e52c64813a9e14a4de66f",
        "0f7ed1f4776844f3ee8d3ce9d903f62cace66a06"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 11 18:24:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 11 18:24:38 2014 +0000"
      },
      "message": "am 0f7ed1f4: Merge \"Adding system support for a single accessibility focus.\"\n\n* commit \u00270f7ed1f4776844f3ee8d3ce9d903f62cace66a06\u0027:\n  Adding system support for a single accessibility focus.\n"
    },
    {
      "commit": "1e0d4af9986c8c2a658769a63bf8b385d25e0435",
      "tree": "2aee6d0a5fab5ccf8ccc36fbbb02bccd77fc312b",
      "parents": [
        "c095ca1cb8877121f768b5b6940e4025e810d4ba"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 17:41:29 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 11 11:21:48 2014 -0700"
      },
      "message": "Adding system support for a single accessibility focus.\n\nNow that we have APIs to query all interactive windows and allow\nan accessibility service to put accessibility focus in each of\nthem we have to guarantee that there is a single accessibility\nfocus. This is required for correct operation of the touch\nexplorer as on double tap in clicks in the center of the focused\narea, hence having more that one focus is an issue. Also the\nsystem is maintaining a single input focus so now accessibility\nfocus behaves consistently with that.\n\nbug:13965563\n\nChange-Id: I0b5c26dadfabbf80dbed8dc4602073aa575ac179\n"
    },
    {
      "commit": "dd137a85d3e0295989b5b9d1f67ff32027be867d",
      "tree": "328650a01c60ee36afa5e7daa119b1ca7d5d216f",
      "parents": [
        "0c5c18a2be161d3d3f778c348b6830161c637f81",
        "6be2f95202237b7284542e692273d13a5bd26913"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 12:48:07 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 12:48:07 2014 -0700"
      },
      "message": "resolved conflicts for merge of 6be2f952 to master-lockscreen-dev\n\nConflicts:\n\tcore/java/android/view/IWindowManager.aidl\n\ttools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java\n\nChange-Id: Idcbc581294cc52b53eabefd61e5c20cbcea611db\n"
    },
    {
      "commit": "6be2f95202237b7284542e692273d13a5bd26913",
      "tree": "42a2dae8ac52754848593b62b950f96761723240",
      "parents": [
        "2bb8dde44be10212ec453d435aaad27177714f5e",
        "1376d600d8e0eefdbc0aa11d398cf7517fc77129"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 19:32:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 10 19:32:59 2014 +0000"
      },
      "message": "Merge \"Adding render stats APIs to UiAutomation (framework).\""
    },
    {
      "commit": "6360d29cd78839539aafed961a0b96dc7ba3c317",
      "tree": "35793956aeacae383069847a6599c3a0e5ed9797",
      "parents": [
        "615c946448d9afb08a0cce0eeabc4a9d775f402e",
        "bc1a8f42d9eb5f1d91c872904a9a283781291fcb"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 09 23:51:12 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 09 23:51:12 2014 +0000"
      },
      "message": "am bc1a8f42: Merge \"Active window not correctly computed.\"\n\n* commit \u0027bc1a8f42d9eb5f1d91c872904a9a283781291fcb\u0027:\n  Active window not correctly computed.\n"
    },
    {
      "commit": "48eacec53e3f877712c2cf66676f453ddf6b90fb",
      "tree": "a6d96d62f122dd206fbc00035a6e7a0f41cd9d42",
      "parents": [
        "3c86a27d3e9044d04d0f176e59a1ebbcd774a54c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 09 16:45:46 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 09 16:45:49 2014 -0700"
      },
      "message": "Active window not correctly computed.\n\nThe accessibility manager service was not handling the focused\nwindow properly which as a result was breaking the active window\ntracking.\n\nbug:13788022\n\nChange-Id: Iaa3fadfbf7b9545f5151e3603beeda2662fe7618\n"
    },
    {
      "commit": "1376d600d8e0eefdbc0aa11d398cf7517fc77129",
      "tree": "f5a4a7e7a66943dec172cfb10a1868dc8a8c8df4",
      "parents": [
        "ed3db02c051f52f9ad3770e3c6b5b90c71a04fb1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 13 11:17:26 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 07 17:01:42 2014 -0700"
      },
      "message": "Adding render stats APIs to UiAutomation (framework).\n\nbug:12927198\n\nChange-Id: Iae21481c75ae58dcdab3731bf5f1e2844e29d434\n"
    },
    {
      "commit": "380ecb81db52a9d0197ca969951d07b91c20d2b9",
      "tree": "753915d98f530e97095dc9f3c95dba67d3fadfb5",
      "parents": [
        "ca4761661a41fc0750a2bc5e7c90481216e626c3"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Mar 14 17:25:20 2014 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Mar 28 22:35:03 2014 +0100"
      },
      "message": "Make Keyguard a library and make StatusBar the new Keyguard.\n\nThis change achieves a couple of things:\n- Let Keyguard be a library, so we can use it in SystemUI.\n- Introduce FLAG_KEYGUARD for windows and deprecate TYPE_KEYGUARD. Make\nall the TYPE_KEYGUARD behaviour dependant on the flag.\n- Implement a new KeyguardService in SystemUI, and bind that service\nfrom PhoneWindowManager.\n- Introduce BaseStatusBar.setKeyguardState and inflate\nKeyguardSimpleHostView there and use FLAG_KEYGUARD for the window, such\nthat the status bar window essentially gets the Keyguard.\n\nBug: 13635952\nChange-Id: I059d80d8b9b9818a778ab685f4672ea2694def63\n"
    },
    {
      "commit": "cbcc9695f0a701d620f48de75eaee05c4fef6f22",
      "tree": "f9eaa32f9a572982578450a7e542a8b7acc4ee6e",
      "parents": [
        "9ae0c8ffba5ab50fb02d319a00e56fe42960cb4a"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Mar 25 17:26:04 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Mar 25 17:27:37 2014 -0700"
      },
      "message": "Wrong constant used for undefined accessibility window id.\n\nChange-Id: I8b14db034a42a7ffd211a46fa3fee7bf2a6eac8f\n"
    },
    {
      "commit": "8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda",
      "tree": "424ee490ecedaed22da440cbaf4eb34411649bac",
      "parents": [
        "17cb58137949420e83d29aeec4f933c35565027c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 24 13:46:47 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 20 16:52:59 2014 +0000"
      },
      "message": "Added accessibility APIs for introspecting interactive windows.\n\n1. The old introspection model was allowing querying only the active window\n   which is the one the user is touching or the focused one if no window is\n   touched. This was limiting as auto completion drop downs were not inspectable,\n   there was not way to know when the IME toggles, non-focusable windows were\n   not inspectable if the user taps them as until a screen-reader starts\n   introspecting the users finger is up, accessibility focus was limited to\n   only one window and the user couldn\u0027t use gestures to visit the whole UI,\n   and other things I can\u0027t remember right now.\n\n   The new APIs allow getting all interactive windows, i.e. ones that a\n   sighted user can interact with. This prevents an accessibility service\n   from interacting with content a sighter user cannot. The list of windows\n   can be obtained from an accessibility service or the host window from an\n   accessibility node info. Introspecting windows obey the same rules for\n   introspecting node, i.e. the service has to declare this capability\n   in its manifest.\n\n   When some windows change accessibility services receive a new type\n   of event. Initially the types of windows is very limited. We provide\n   the bounds in screen, layer, and some other properties which are\n   enough for a client to determined the spacial and hierarchical\n   relationship of the windows.\n\n2. Update the documentation in AccessibilityService for newer event types.\n\n3. LongArray was not removing elements properly.\n\n4. Composite accessibility node ids were not properly constructed as they\n   are composed of two ints, each taking 32 bits. However, the values for\n   undefined were -1 so composing a 64 long from -1, -1 prevents from getting\n   back these values when unpacking.\n\n5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added\n   a check that enforces such trees to be well formed on dev builds.\n\n6. Removed an necessary code for piping the touch exploration state to\n   the policy as it should just use the AccessibilityManager from context.\n\n7. When view\u0027s visibility changed it was not firing an event to notify\n   clients it disappeared/appeared. Also ViewGroup was sending accessibility\n   events for changes if the view is included for accessibility but this is\n   wrong as there may be a service that want all nodes, hence events from them.\n   The accessibility manager service takes care of delivering events from\n   not important for accessibility nodes only to services that want such.\n\n8. Several places were asking for prefetching of sibling but not predecessor\n   nodes which resulted in prefetching of unconnected subtrees.\n\n9. The local AccessibilityManager implementation was relying on the backing\n   service being ready when it is created but it can be fetched from a context\n   before that. If that happens the local manager was in a broken state forever.\n   Now it is more robust and starts working properly once the backing service\n   is up. Several places were lacking locking.\n\nbug:13331285\n\nChange-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8\n"
    },
    {
      "commit": "4cd353c038ec3c21f25c12897992e5e9826fe824",
      "tree": "6738ef0e78f1ad39481b6df073e42d70047da5b1",
      "parents": [
        "1a405db22a2ade6b745f3e1cf93ba0c54b048d95"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Feb 12 19:54:30 2014 -0800"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Feb 20 20:05:34 2014 -0800"
      },
      "message": "add new accessibility action for EditText to set text content\n\nBug: 12872344\nChange-Id: I85a3805ab0c34b96a7d4228f2382c8ff664e36e8\n"
    },
    {
      "commit": "9f97de13359662c2709eed227b3fab2ce7d5dabc",
      "tree": "7eb16083cd5fd9d30999dfdead280311084c3e5a",
      "parents": [
        "2b1252ddd2650cb38918cb85d2a3711b2cfa8db5",
        "a5a93f559d337ad5b79716b05ea43707eb779dc8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 06 20:25:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 06 20:25:51 2014 +0000"
      },
      "message": "am a5a93f55: am 7f416631: Merge \"Check feature bits before loading optional services\" into klp-modular-dev\n\n* commit \u0027a5a93f559d337ad5b79716b05ea43707eb779dc8\u0027:\n  Check feature bits before loading optional services\n"
    },
    {
      "commit": "898c13df7b9b12ff10062f3542593e12fbe0c119",
      "tree": "323bc4d7da06b48af2079f44c5f8d346d265e956",
      "parents": [
        "df88d73092c62a1a3cd2b2056ca63ae2e70cc238"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 28 15:34:50 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 05 19:26:40 2014 +0000"
      },
      "message": "Check feature bits before loading optional services\n\nAt startup, we check with PackageManager whether a system service is\navailable before attempting to load it. A system service is available\nif its associated feature (similar to hardware features) is present.\nThis does not remove unavailable services from the compiled jar.\n\nChange-Id: I13571805083aa4e65519a74acb52efd17b9fb3d7"
    },
    {
      "commit": "1f4bf364b2a4eecfae7c3243396ad6a5c43843a9",
      "tree": "19118b2b81d28f5469c82c498770416efebaf02c",
      "parents": [
        "49782e46c0eb85a25ae2abcf80880c48dbab5aea",
        "19c662b3df3b35756a92282bb6cc767e6407cb8a"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 23:32:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 19 23:32:03 2013 +0000"
      },
      "message": "Merge \"Move files to new directory structure of framework services\""
    },
    {
      "commit": "49782e46c0eb85a25ae2abcf80880c48dbab5aea",
      "tree": "9fab2a40c41004d78b7001dc766d85f61d24f582",
      "parents": [
        "4dace6f66d498c2d119adf265776aa83b28452af",
        "9158825f9c41869689d6b1786d7c7aa8bdd524ce"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 23:30:35 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 19 23:30:35 2013 +0000"
      },
      "message": "am 9158825f: Move some system services to separate directories\n\n* commit \u00279158825f9c41869689d6b1786d7c7aa8bdd524ce\u0027:\n  Move some system services to separate directories\n"
    },
    {
      "commit": "9158825f9c41869689d6b1786d7c7aa8bdd524ce",
      "tree": "f41944461539f0c70030668b4558296469c307d3",
      "parents": [
        "30d032928a294fbb6f385e9d0367a75b7bf2649b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Nov 22 08:25:26 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 15:25:37 2013 -0800"
      },
      "message": "Move some system services to separate directories\n\nRefactored the directory structure so that services can be optionally\nexcluded. This is step 1. Will be followed by another change that makes\nit possible to remove services from the build.\n\nChange-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85\n"
    },
    {
      "commit": "19c662b3df3b35756a92282bb6cc767e6407cb8a",
      "tree": "94782f00c0050be00cedb530fd1869138bbb06de",
      "parents": [
        "8d9802d98e600a5341dc850a7c0183a69a5dafef"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 15:20:43 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 15:20:43 2013 -0800"
      },
      "message": "Move files to new directory structure of framework services\n\nChange-Id: I6239d90fa0b813e37878f8fc31caf7a2d70fa3ba\n"
    }
  ]
}
