)]}'
{
  "commit": "86ea1f5f521981d075aef56f11693e4f3bc32fdb",
  "tree": "72e1e44513d3e9e204a4fbd2855a079822e949eb",
  "parents": [
    "a6dbfdd3a858aac52cc87f80f91e8eef7d613605"
  ],
  "author": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Tue Apr 12 22:39:53 2011 -0700"
  },
  "committer": {
    "name": "Jeff Brown",
    "email": "jeffbrown@android.com",
    "time": "Wed May 25 14:37:17 2011 -0700"
  },
  "message": "Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n\nAdded a new PointerIcon API (hidden for now) for loading\npointer icons.\n\nFixed a starvation problem in the native Looper\u0027s sendMessage\nimplementation which caused new messages to be posted ahead\nof old messages sent with sendMessageDelayed.\n\nRedesigned the touch pad gestures to be defined in terms of\nmore fluid finger / spot movements.  The objective is to reinforce\nthe natural mapping between fingers and spots which means there\nmust not be any discontinuities in spot motion relative to\nthe fingers.\n\nRemoved the SpotController stub and folded its responsibilities\ninto PointerController.\n\nChange-Id: Ib647dbd7a57a7f30dd9c6e2c260df51d7bbdd18e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b09340b41e095d2c1c0471e360f0559261c1cf5c",
      "new_mode": 33188,
      "new_path": "core/java/android/view/PointerIcon.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bb7ed41a05fca6bba0a52b5d2bc8d36c225f0924",
      "new_mode": 33188,
      "new_path": "core/java/android/view/PointerIcon.java"
    },
    {
      "type": "modify",
      "old_id": "7c064df7fb70e2a70a80ff5adccc6ef40ae4f66c",
      "old_mode": 33188,
      "old_path": "core/jni/Android.mk",
      "new_id": "b549098ed122fd2259b622d3ac5a1ebf85ae6c53",
      "new_mode": 33188,
      "new_path": "core/jni/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "e4eb6925a0d878261dd2788bee167abf2ae48cc6",
      "old_mode": 33188,
      "old_path": "core/jni/AndroidRuntime.cpp",
      "new_id": "2e7142ab253c685768b893c8b86432e7219c384f",
      "new_mode": 33188,
      "new_path": "core/jni/AndroidRuntime.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "091341a3c3fcc8e1a8e8a0c5f8717f9ee30dceb7",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_PointerIcon.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bfd64526ad6747ae57a2473f410614bafd43b31",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_PointerIcon.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d7aca3677085b9b2b11dcfee53cbfcc1cb7644ba",
      "new_mode": 33188,
      "new_path": "core/res/res/drawable-mdpi/pointer_spot_anchor.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2222b8e023e2c2875d9ccc0c25971e932c3a5fa3",
      "new_mode": 33188,
      "new_path": "core/res/res/drawable-mdpi/pointer_spot_anchor_icon.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5041aa3a022f487f00499a3c34d4a78fc168b1d3",
      "new_mode": 33188,
      "new_path": "core/res/res/drawable-mdpi/pointer_spot_hover.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dc62a696eb3b8190f83404d30ef075b3d6a12ad3",
      "new_mode": 33188,
      "new_path": "core/res/res/drawable-mdpi/pointer_spot_hover_icon.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "64a42a18f2c373f615009357d3ab7cf1659e9942",
      "new_mode": 33188,
      "new_path": "core/res/res/drawable-mdpi/pointer_spot_touch.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bffee6ab58ba0b4cac85915196b8fac30eb51d8",
      "new_mode": 33188,
      "new_path": "core/res/res/drawable-mdpi/pointer_spot_touch_icon.xml"
    },
    {
      "type": "modify",
      "old_id": "0d9190f819ea3e2e060d1e8d2af93c91eeada070",
      "old_mode": 33261,
      "old_path": "core/res/res/values/attrs.xml",
      "new_id": "07be4636b6fbf9075782ed175b8363d79de9c12a",
      "new_mode": 33261,
      "new_path": "core/res/res/values/attrs.xml"
    },
    {
      "type": "modify",
      "old_id": "74f0d6bfa7d40da871430282060e6d4a2c3b9948",
      "old_mode": 33188,
      "old_path": "core/res/res/values/styles.xml",
      "new_id": "b9c0a60f60847879e6ab9b33b376258a05feb0e4",
      "new_mode": 33188,
      "new_path": "core/res/res/values/styles.xml"
    },
    {
      "type": "modify",
      "old_id": "2f434ec9d87777c26a780afc325f0a364bcaa89c",
      "old_mode": 33188,
      "old_path": "core/res/res/values/themes.xml",
      "new_id": "fa31928426158681ab69eafa7f9dfae76791c4e5",
      "new_mode": 33188,
      "new_path": "core/res/res/values/themes.xml"
    },
    {
      "type": "modify",
      "old_id": "1ef36d007995d9e672c6a4fcc56d3382606a70f9",
      "old_mode": 33188,
      "old_path": "include/ui/Input.h",
      "new_id": "fb6152e9f3df39705c08add6a3c86d3a5c249138",
      "new_mode": 33188,
      "new_path": "include/ui/Input.h"
    },
    {
      "type": "modify",
      "old_id": "0a53d69bef45f6d698bfd0e27e8f48c6040105b9",
      "old_mode": 33188,
      "old_path": "libs/ui/Input.cpp",
      "new_id": "684c332d11a7ce0d086a63c40dc144986ea0027e",
      "new_mode": 33188,
      "new_path": "libs/ui/Input.cpp"
    },
    {
      "type": "modify",
      "old_id": "d5dd126065e7d33d60fee249429e0add0dd096c3",
      "old_mode": 33188,
      "old_path": "libs/utils/Looper.cpp",
      "new_id": "b54fb9dd7353cdfae47cf265b4b2ba31efa601c1",
      "new_mode": 33188,
      "new_path": "libs/utils/Looper.cpp"
    },
    {
      "type": "modify",
      "old_id": "58b531886db12d1160449f9b81d4b1c77c22c585",
      "old_mode": 33188,
      "old_path": "services/input/Android.mk",
      "new_id": "20b45cbc3559d055b561b910d95e35ce4e0302cd",
      "new_mode": 33188,
      "new_path": "services/input/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "94753bfaf41999d9cc1c378313068fb2a741963a",
      "old_mode": 33188,
      "old_path": "services/input/InputReader.cpp",
      "new_id": "59943809e9f2ce9074df865e47fd960bbcced429",
      "new_mode": 33188,
      "new_path": "services/input/InputReader.cpp"
    },
    {
      "type": "modify",
      "old_id": "9ed1391301a7fe696d6b7b575b74f53b14ebb761",
      "old_mode": 33188,
      "old_path": "services/input/InputReader.h",
      "new_id": "9b2f4d2bb7097a88ad472ebd8b0042553f7383d1",
      "new_mode": 33188,
      "new_path": "services/input/InputReader.h"
    },
    {
      "type": "modify",
      "old_id": "15effb7f795196d727c89c982ffecb4863832e2c",
      "old_mode": 33188,
      "old_path": "services/input/PointerController.cpp",
      "new_id": "ffef72057703ca50402b43ed4036a09241161927",
      "new_mode": 33188,
      "new_path": "services/input/PointerController.cpp"
    },
    {
      "type": "modify",
      "old_id": "d467a5a01bcd058fec57e00fd1946dd8da36e128",
      "old_mode": 33188,
      "old_path": "services/input/PointerController.h",
      "new_id": "afd6371168832e8b75cc42178c28836ee25ec5ef",
      "new_mode": 33188,
      "new_path": "services/input/PointerController.h"
    },
    {
      "type": "delete",
      "old_id": "dffad81009c7ac416d0bb5fadce6837050de5bd5",
      "old_mode": 33188,
      "old_path": "services/input/SpotController.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "1d091d7e2aa060a35a13a3473bd96571f45115b9",
      "old_mode": 33188,
      "old_path": "services/input/SpotController.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "c6d4390fcc9214c2bb158ce6a7e452e8268d47fe",
      "old_mode": 33188,
      "old_path": "services/input/SpriteController.cpp",
      "new_id": "2fd1f0ab2715fdeb5d672f12d5becf23bac584e8",
      "new_mode": 33188,
      "new_path": "services/input/SpriteController.cpp"
    },
    {
      "type": "modify",
      "old_id": "27afb5ecbd8240be167aa184d755fb9a77a21d1d",
      "old_mode": 33188,
      "old_path": "services/input/SpriteController.h",
      "new_id": "50ae8a538869af6396d3ad9a717a9ef7d7594e53",
      "new_mode": 33188,
      "new_path": "services/input/SpriteController.h"
    },
    {
      "type": "modify",
      "old_id": "6feb2c7f85efb4f04fd81e711889027253c4efc5",
      "old_mode": 33188,
      "old_path": "services/input/tests/InputReader_test.cpp",
      "new_id": "1596e54cd37f3e0c4be6e6b2a4d6442fbb6ac5f8",
      "new_mode": 33188,
      "new_path": "services/input/tests/InputReader_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "ca1da95f34ebd8b6c0db481ef2d7e4f6b76d54c0",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/wm/InputManager.java",
      "new_id": "becd44aa94c7223d2e75d56ac5ab26fa5fd809e9",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/wm/InputManager.java"
    },
    {
      "type": "modify",
      "old_id": "7985fab08d54116e6646591c92d9839b7504261e",
      "old_mode": 33188,
      "old_path": "services/jni/com_android_server_InputManager.cpp",
      "new_id": "dde47765357275aafc35049991395f9a3e43346d",
      "new_mode": 33188,
      "new_path": "services/jni/com_android_server_InputManager.cpp"
    }
  ]
}
