)]}'
{
  "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
  "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
  "parents": [
    "f62c57d684b83df7d2817db976c0afdb500ae92a"
  ],
  "author": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Thu Apr 22 18:58:52 2010 -0700"
  },
  "committer": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Sun Jun 13 17:42:16 2010 -0700"
  },
  "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d394a4628f04713b5f7bef58c3105684af9173b9",
      "old_mode": 33188,
      "old_path": "core/java/android/os/MessageQueue.java",
      "new_id": "df30c761dbe2d52e5babb806a5e3337d0ab34d46",
      "new_mode": 33188,
      "new_path": "core/java/android/os/MessageQueue.java"
    },
    {
      "type": "modify",
      "old_id": "2ade44e99e10a628f570aebcdeaa52131734d73d",
      "old_mode": 33188,
      "old_path": "core/java/android/service/wallpaper/WallpaperService.java",
      "new_id": "3f5d6cacc0896bacee1c9029dc368a2c1b172afa",
      "new_mode": 33188,
      "new_path": "core/java/android/service/wallpaper/WallpaperService.java"
    },
    {
      "type": "modify",
      "old_id": "01f07d694eb1a81594c4066f8eaa99e67ec3a14c",
      "old_mode": 33188,
      "old_path": "core/java/android/view/IWindowSession.aidl",
      "new_id": "4647fb46757b6af233caf9cc844308fc85c87c3a",
      "new_mode": 33188,
      "new_path": "core/java/android/view/IWindowSession.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "74c0aa4632398429d2a134796d41fb34d7002e49",
      "new_mode": 33188,
      "new_path": "core/java/android/view/InputChannel.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66a83b82150191daec6bb267022bb8b33de64030",
      "new_mode": 33188,
      "new_path": "core/java/android/view/InputChannel.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "816f622960e98f4ef0d0d86727fae99c9d3cb48a",
      "new_mode": 33188,
      "new_path": "core/java/android/view/InputHandler.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b38f7d520423d395e9ca9f66267ebc16d4b515f4",
      "new_mode": 33188,
      "new_path": "core/java/android/view/InputQueue.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e56e03c1971266a731c349a5d73ef1cd8dc01e24",
      "new_mode": 33188,
      "new_path": "core/java/android/view/InputTarget.java"
    },
    {
      "type": "modify",
      "old_id": "9aa16b53216d796e47cd3b3b7fbfae61f711a5f2",
      "old_mode": 33261,
      "old_path": "core/java/android/view/KeyEvent.java",
      "new_id": "ae9746e963731d6cecbaef1374c16e95dbffaee5",
      "new_mode": 33261,
      "new_path": "core/java/android/view/KeyEvent.java"
    },
    {
      "type": "modify",
      "old_id": "eefbf7a1a3b3f61e324665cd2175a0222dc430d9",
      "old_mode": 33188,
      "old_path": "core/java/android/view/MotionEvent.java",
      "new_id": "1f0619141b42d8d5722ae7fe6669ac64d4cf6e4b",
      "new_mode": 33188,
      "new_path": "core/java/android/view/MotionEvent.java"
    },
    {
      "type": "modify",
      "old_id": "0f0cf602727f8c4478439ce4c2124af658deb811",
      "old_mode": 33188,
      "old_path": "core/java/android/view/SurfaceView.java",
      "new_id": "8beceeca856172f3ca2a9aa5ba659297ff93a5c8",
      "new_mode": 33188,
      "new_path": "core/java/android/view/SurfaceView.java"
    },
    {
      "type": "modify",
      "old_id": "aa124e6a6e20f0299383c4441b1252699458f280",
      "old_mode": 33188,
      "old_path": "core/java/android/view/ViewRoot.java",
      "new_id": "a41c690d5541e07cba91accd97376b5c3f70ec01",
      "new_mode": 33188,
      "new_path": "core/java/android/view/ViewRoot.java"
    },
    {
      "type": "modify",
      "old_id": "b39cb9d903e5572d5f362686a8d012714fb01614",
      "old_mode": 33188,
      "old_path": "core/java/android/view/WindowManagerPolicy.java",
      "new_id": "431b7860eec7ee5b78ed3b85171337260c35c933",
      "new_mode": 33188,
      "new_path": "core/java/android/view/WindowManagerPolicy.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6fe5063c07c12d9e6992701b2e230cca5c85dc3f",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/view/BaseInputHandler.java"
    },
    {
      "type": "modify",
      "old_id": "d4545d7f276ee96a07acf991edf7f23b7a898b20",
      "old_mode": 33188,
      "old_path": "core/jni/Android.mk",
      "new_id": "d854e875937057058427870e15d5871a81d0aa46",
      "new_mode": 33188,
      "new_path": "core/jni/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "f66ed83d537ee52e3618d30f64d1e1c87abaebe3",
      "old_mode": 33188,
      "old_path": "core/jni/AndroidRuntime.cpp",
      "new_id": "466642a47c6f8d071d45cdc12a43148a0da83ca7",
      "new_mode": 33188,
      "new_path": "core/jni/AndroidRuntime.cpp"
    },
    {
      "type": "modify",
      "old_id": "8984057423be708db300b18a800f0cb769408c3d",
      "old_mode": 33188,
      "old_path": "core/jni/android_os_MessageQueue.cpp",
      "new_id": "030d6c755143c1d4834682fa9b961bad3d0b4b0c",
      "new_mode": 33188,
      "new_path": "core/jni/android_os_MessageQueue.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5c742e23b0a9a97156b57eb8413ef6742a4098e7",
      "new_mode": 33188,
      "new_path": "core/jni/android_os_MessageQueue.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47bb0735f24e60b892690af8599940206f796186",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_InputChannel.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac1defba4829b795a3eea9acea7eb63e73cb507d",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_InputChannel.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9cbde25c99e0a8f60ccd553cedac4b478eed262f",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_InputQueue.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e2a1f23c7f4fa1d74cddca36baa7813e99e5ae78",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_InputTarget.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9230b1b8f1a827e11fd9649a7a2c0d4b0638ee5e",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_InputTarget.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "df3b95218debf9cbfafc97f41d64aa726f734ca8",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_KeyEvent.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c71b1a2747e842b6f0126fcab352ee31ee086e5",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_KeyEvent.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "629c8fec04ff7af8a4179c1e4e53fce2d4287682",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_MotionEvent.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "03ee32fd6eae2c228e1561454279d6b99129de1b",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_MotionEvent.h"
    },
    {
      "type": "modify",
      "old_id": "70ad8c5fa4b8e18566573c2e97b1733b11c3f9c3",
      "old_mode": 33188,
      "old_path": "core/jni/android_view_ViewRoot.cpp",
      "new_id": "5173bb89757c90c3d2663a00f8a241ec3ad3418e",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_ViewRoot.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee4149270ae295ecb5eff051d112c44e78ea47cc",
      "new_mode": 33188,
      "new_path": "include/private/README"
    },
    {
      "type": "modify",
      "old_id": "3b18c77745756460a00e6ecdbb594603a78d5f33",
      "old_mode": 33188,
      "old_path": "include/ui/EventHub.h",
      "new_id": "d322a340532147c864d64fb42f1e1aa912170752",
      "new_mode": 33188,
      "new_path": "include/ui/EventHub.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a5c8a89d12466d7cbc21b0c0ec6e5b02519effd",
      "new_mode": 33188,
      "new_path": "include/ui/Input.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "35468139038618d0b961de288820555e08eb8683",
      "new_mode": 33188,
      "new_path": "include/ui/InputDispatchPolicy.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bde07f2a090bc1a79d6ec48fb4f813d9d77009fa",
      "new_mode": 33188,
      "new_path": "include/ui/InputDispatcher.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb275132e59f275d53e274276a876d2c2c95ddf0",
      "new_mode": 33188,
      "new_path": "include/ui/InputManager.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e7a64c70e58147eae8b1e4645c926841327b57a",
      "new_mode": 33188,
      "new_path": "include/ui/InputReader.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9537523832663d7f95c111fa574f961b12fd5e82",
      "new_mode": 33188,
      "new_path": "include/ui/InputTransport.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "19c8bf09303e6d432ba5072004187fe3c32f3543",
      "new_mode": 33188,
      "new_path": "include/utils/BitSet.h"
    },
    {
      "type": "delete",
      "old_id": "8e22b0f2160a7f4aabeb5ae19d1ac98e5090cdc8",
      "old_mode": 33188,
      "old_path": "include/utils/Buffer.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2ec39fe5000838ae891df3136926237bb263a61f",
      "new_mode": 33188,
      "new_path": "include/utils/PollLoop.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2ee768eef1aa797dd363cd1a59cc5dce11b2326f",
      "new_mode": 33188,
      "new_path": "include/utils/Pool.h"
    },
    {
      "type": "modify",
      "old_id": "cc0bebc404f64d02d85a2cc3ce5e32d06ea4a905",
      "old_mode": 33188,
      "old_path": "include/utils/StopWatch.h",
      "new_id": "693dd3ccfce40fb6fdc8587f96da80712f39deca",
      "new_mode": 33188,
      "new_path": "include/utils/StopWatch.h"
    },
    {
      "type": "modify",
      "old_id": "ad59fd63e10047f76b0351652de9a8bb8df0572d",
      "old_mode": 33188,
      "old_path": "include/utils/Vector.h",
      "new_id": "d40ae166485b9e5ad5c78573232f925bc935ba27",
      "new_mode": 33188,
      "new_path": "include/utils/Vector.h"
    },
    {
      "type": "modify",
      "old_id": "49b03f10bdf714b7e8f7cd46dcb1ae8be3bb6a15",
      "old_mode": 33188,
      "old_path": "include/utils/VectorImpl.h",
      "new_id": "46a7bc26556712815fba3f56b078dfd91bdd5d59",
      "new_mode": 33188,
      "new_path": "include/utils/VectorImpl.h"
    },
    {
      "type": "modify",
      "old_id": "f7acd973ffb49545ea80ec1b587975efe6b35235",
      "old_mode": 33188,
      "old_path": "libs/ui/Android.mk",
      "new_id": "24cdc78680117c74d0523f0dcfe88583927845e2",
      "new_mode": 33188,
      "new_path": "libs/ui/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "d45eaf0b262ee516be1eeda4971fa80e89e1672a",
      "old_mode": 33188,
      "old_path": "libs/ui/EventHub.cpp",
      "new_id": "27895f2842f93c7203a4ea42e478ff7cd3b2e65b",
      "new_mode": 33188,
      "new_path": "libs/ui/EventHub.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d3677087134c8b7a06c288d4277482a14be8ea5d",
      "new_mode": 33188,
      "new_path": "libs/ui/Input.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8e907daa7a01129bd467a90aea4aa70bf8171ea4",
      "new_mode": 33188,
      "new_path": "libs/ui/InputDispatcher.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab354a5da11caef1ebb105af3293b77e7ce1f4f7",
      "new_mode": 33188,
      "new_path": "libs/ui/InputManager.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "76f9ec978ef2d87749f47131dbb5be03613e467c",
      "new_mode": 33188,
      "new_path": "libs/ui/InputReader.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a24180fca55f76df16790d1b68dcebc7d3f0c874",
      "new_mode": 33188,
      "new_path": "libs/ui/InputTransport.cpp"
    },
    {
      "type": "modify",
      "old_id": "6cc4a5ab639082916ccad2e5684caebb04317356",
      "old_mode": 33188,
      "old_path": "libs/ui/tests/Android.mk",
      "new_id": "018f18d4b9ddec7ca9b8b572b196fd2ca1119f12",
      "new_mode": 33188,
      "new_path": "libs/ui/tests/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3d920438a0065b7fb0b72f9cd67b29a475d15823",
      "new_mode": 33188,
      "new_path": "libs/ui/tests/InputDispatcher_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6cc4a5ab639082916ccad2e5684caebb04317356",
      "new_mode": 33188,
      "new_path": "libs/ui/tests/region/Android.mk"
    },
    {
      "type": "rename",
      "old_id": "ef15de9747e00e57ab7fe4b1dad4097f7daa811e",
      "old_mode": 33188,
      "old_path": "libs/ui/tests/region.cpp",
      "new_id": "ef15de9747e00e57ab7fe4b1dad4097f7daa811e",
      "new_mode": 33188,
      "new_path": "libs/ui/tests/region/region.cpp",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "afecdcb0ce0494a8cc0a13d79739721e6d17c716",
      "old_mode": 33188,
      "old_path": "libs/utils/Android.mk",
      "new_id": "945b03958de0b65a3bd4fa1e172d0d0503a79ac9",
      "new_mode": 33188,
      "new_path": "libs/utils/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "90a3e8b35374c0c550da7c3e4e9cb36900b27e6a",
      "new_mode": 33188,
      "new_path": "libs/utils/PollLoop.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8f18cb913ea43bbb23d4d182aa420a791db2cf0f",
      "new_mode": 33188,
      "new_path": "libs/utils/Pool.cpp"
    },
    {
      "type": "modify",
      "old_id": "68a1c52177b953ba39b1cbe6a829821cf223e082",
      "old_mode": 33188,
      "old_path": "libs/utils/StopWatch.cpp",
      "new_id": "b5dda2facca120f53060ce0be20c98ceada515cc",
      "new_mode": 33188,
      "new_path": "libs/utils/StopWatch.cpp"
    },
    {
      "type": "modify",
      "old_id": "0322af7da722d1099f3897521aad5e90d290a509",
      "old_mode": 33188,
      "old_path": "libs/utils/VectorImpl.cpp",
      "new_id": "b09c6cae70c5df0d75cc86997021b4b6af7a1c55",
      "new_mode": 33188,
      "new_path": "libs/utils/VectorImpl.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45e8061afee815f3273a00678cb560eb2bc40313",
      "new_mode": 33188,
      "new_path": "libs/utils/tests/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c719c85c78cdbd071561c6363b92efa65504686",
      "new_mode": 33188,
      "new_path": "libs/utils/tests/PollLoop_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e55af3ccd8a1ec35c5b461365158087b88203e4d",
      "new_mode": 33188,
      "new_path": "libs/utils/tests/TestHelpers.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee2f664140dbdfc812e6ecc20173c828249fbb2d",
      "new_mode": 33188,
      "new_path": "native/include/android/input.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "36855c5081c0c26f767969182efe508af2cad9c9",
      "new_mode": 33188,
      "new_path": "native/include/android/keycodes.h"
    },
    {
      "type": "modify",
      "old_id": "eb61f5e506b2c04cbfff03695985304f552c144e",
      "old_mode": 33188,
      "old_path": "policy/com/android/internal/policy/impl/KeyguardViewMediator.java",
      "new_id": "88203c305cbff57b2444d5c2eb3b6fa72b75f60e",
      "new_mode": 33188,
      "new_path": "policy/com/android/internal/policy/impl/KeyguardViewMediator.java"
    },
    {
      "type": "modify",
      "old_id": "d152bc43d1361323847540cb5aff99344b84548e",
      "old_mode": 33261,
      "old_path": "policy/com/android/internal/policy/impl/PhoneWindowManager.java",
      "new_id": "a01e25bc5b560a4d701a593c8159b2dbce96a11a",
      "new_mode": 33261,
      "new_path": "policy/com/android/internal/policy/impl/PhoneWindowManager.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "72c4166f28c06aaa7b374c5dbc17ea2e8339013b",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/InputManager.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "15756122581ce6eb12e811fedb809465dbcf73b6",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/InputTargetList.java"
    },
    {
      "type": "modify",
      "old_id": "f30346b22cbcc330b62fe077bec5436de62377d4",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/KeyInputQueue.java",
      "new_id": "f62c7ee53c1d91510f82765e3d4784786fd338dc",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/KeyInputQueue.java"
    },
    {
      "type": "modify",
      "old_id": "ac5e3f191ec5e407e2377737ae8c853b7f2402c1",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/WindowManagerService.java",
      "new_id": "9bc3931290e469106ccc7d3f06b198fc0b8a08ed",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/WindowManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "b90e327ea6e38c9bc7d6b3f8842b8fc70da8143d",
      "old_mode": 33188,
      "old_path": "services/jni/Android.mk",
      "new_id": "499ca861719da9deb04fab9e884fe25dc7b6fa35",
      "new_mode": 33188,
      "new_path": "services/jni/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "53262ae9525d288681d5d1c0761f68b3b785ac75",
      "new_mode": 33188,
      "new_path": "services/jni/com_android_server_InputManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "c92f8df58c8464ec646b4fa975490c6387a88975",
      "old_mode": 33188,
      "old_path": "services/jni/com_android_server_KeyInputQueue.cpp",
      "new_id": "f9e3585d882fda9b8a0ae84593090df7d91a90b3",
      "new_mode": 33188,
      "new_path": "services/jni/com_android_server_KeyInputQueue.cpp"
    },
    {
      "type": "modify",
      "old_id": "d11e7e1b6b82d689be1e77c4ecea3fd63518a016",
      "old_mode": 33188,
      "old_path": "services/jni/onload.cpp",
      "new_id": "a1a6838cc1bd2a9595e5b4332153b79b8d014474",
      "new_mode": 33188,
      "new_path": "services/jni/onload.cpp"
    },
    {
      "type": "modify",
      "old_id": "4201e80aae4cf2d209d570b1ef6ca053d864008d",
      "old_mode": 33188,
      "old_path": "tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java",
      "new_id": "f91f601c83f61b5eba42188df16912719acb6ddf",
      "new_mode": 33188,
      "new_path": "tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java"
    }
  ]
}
