)]}'
{
  "commit": "16fb88a673c41b93c5d57ccb28c2697e7d87701a",
  "tree": "f6c32d70ca192de4fd6608c931b501263de2766b",
  "parents": [
    "64dd5be583bab8218e54068bbf70edc5fc6087c8"
  ],
  "author": {
    "name": "Nick Pelly",
    "email": "npelly@google.com",
    "time": "Wed Oct 07 07:44:03 2009 +0200"
  },
  "committer": {
    "name": "Nick Pelly",
    "email": "npelly@google.com",
    "time": "Wed Oct 07 23:25:24 2009 +0200"
  },
  "message": "Encourage developers to connect RFCOMM by UUID instead of Channel.\n\nHide createRfcommSocket(int channel)\nAdd createRfcommSocketWithServiceRecord(UUID uuid)\n\nRename listenUsingRfcomm(String,UUID) -\u003e listenUsingRfcommWithServiceRecord(..)\n\nNow we have a complete API for developers to make peer-peer RFCOMM connections\nwith hard-coding the limited (30) RFCOMM channels, instead using SDP lookup\nof an UUID.\n\nThis commit addresses two serious bugs:\n- Do not throw IOException on accepting an incoming RFCOMM connection with\n  BluetoothSocket. This was a regression from commit 24bb9b8af4ff6915\n- Workaround failure of bluez to update SDP cache when channel changes by\n  trying to use the same RFCOMM channel on the server every time, instead\n  of picking server channels randomly. This is a pretty ugly workaround,\n  and we are still trying to fix the caching issue - but with this\n  workaround we are at least shippable and apps will work at least until\n  they start colliding on the 30 RFCOMM channels.\n\nDrNo: eastham\nBug: 2158900\nJoke: What did the digital watch say to his mom? \"Look mom no hands.\"\nChange-Id: Ia4879943b83afac06b6f1a3f2391cf1628afce7d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "142845400b8899d229160013be91654c18af406b",
      "old_mode": 33188,
      "old_path": "Android.mk",
      "new_id": "2e2fec18ac16597f2c09743e022fa5baab020d7a",
      "new_mode": 33188,
      "new_path": "Android.mk"
    },
    {
      "type": "modify",
      "old_id": "e0a02782373abb9745f473f0028138ad34ea56c0",
      "old_mode": 33188,
      "old_path": "api/current.xml",
      "new_id": "0bca84bcb71af44ede439c8cf4d4ff578938a4df",
      "new_mode": 33188,
      "new_path": "api/current.xml"
    },
    {
      "type": "modify",
      "old_id": "c6a0619cf8ec8441dbab658459d42661ac459748",
      "old_mode": 33188,
      "old_path": "core/java/android/bluetooth/BluetoothAdapter.java",
      "new_id": "8ce911de3733ea22b78f92d918ee3e9d46392449",
      "new_mode": 33188,
      "new_path": "core/java/android/bluetooth/BluetoothAdapter.java"
    },
    {
      "type": "modify",
      "old_id": "d5393ed25cc27286e60e31fe4fbe8379480aac65",
      "old_mode": 33188,
      "old_path": "core/java/android/bluetooth/BluetoothDevice.java",
      "new_id": "ce975c22794273e34d985c6eb627d57df255ad53",
      "new_mode": 33188,
      "new_path": "core/java/android/bluetooth/BluetoothDevice.java"
    },
    {
      "type": "modify",
      "old_id": "d126ea48dddd5df726faf89e0c630ff1ce134abc",
      "old_mode": 33188,
      "old_path": "core/java/android/bluetooth/BluetoothServerSocket.java",
      "new_id": "605bdc11e1934102370708083702a6c05eb670fd",
      "new_mode": 33188,
      "new_path": "core/java/android/bluetooth/BluetoothServerSocket.java"
    },
    {
      "type": "modify",
      "old_id": "b9e33f3bda057b24fc629e7ea4e9be8f2ebc5185",
      "old_mode": 33188,
      "old_path": "core/java/android/bluetooth/BluetoothSocket.java",
      "new_id": "7e725903b3e02a45ec31a6932fcbbc9471113ca5",
      "new_mode": 33188,
      "new_path": "core/java/android/bluetooth/BluetoothSocket.java"
    },
    {
      "type": "modify",
      "old_id": "e54abec2de28d0f2fd5e3fe5b6b7dba5f6561af8",
      "old_mode": 33188,
      "old_path": "core/java/android/bluetooth/IBluetooth.aidl",
      "new_id": "7e752af428f6263ca509578b2b7b427e51ec836f",
      "new_mode": 33188,
      "new_path": "core/java/android/bluetooth/IBluetooth.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8edb3f4c4139b1c124ac6651de652de80f7b4820",
      "new_mode": 33188,
      "new_path": "core/java/android/bluetooth/IBluetoothCallback.aidl"
    },
    {
      "type": "modify",
      "old_id": "0152223e8e76d70a446d065ecc25cdb07f5d3801",
      "old_mode": 33188,
      "old_path": "core/java/android/server/BluetoothEventLoop.java",
      "new_id": "da1918a83bee61de038fff533bc41b36d54e02ef",
      "new_mode": 33188,
      "new_path": "core/java/android/server/BluetoothEventLoop.java"
    },
    {
      "type": "modify",
      "old_id": "93133d70255c8aaeb93c45522809bdf331a16762",
      "old_mode": 33188,
      "old_path": "core/java/android/server/BluetoothService.java",
      "new_id": "3fdbb68018bb7c6bc7ec00245505e403abdb1a58",
      "new_mode": 33188,
      "new_path": "core/java/android/server/BluetoothService.java"
    },
    {
      "type": "modify",
      "old_id": "e37e8323a2798f29102bf8682fb6d8b3094df04a",
      "old_mode": 33188,
      "old_path": "core/jni/android_server_BluetoothEventLoop.cpp",
      "new_id": "62a50e5cad6298a6cf6fa6d33f8c82a5fb290fe6",
      "new_mode": 33188,
      "new_path": "core/jni/android_server_BluetoothEventLoop.cpp"
    }
  ]
}
