)]}'
{
  "commit": "f163deb788a78f5346c45ceab322f314789f2193",
  "tree": "8e151fa3e71a1804b288d8b1a5951cfccc20b0fb",
  "parents": [
    "cd9481d29abd982eb21a9e681a140685a66394ab"
  ],
  "author": {
    "name": "sallyyuen",
    "email": "sallyyuen@google.com",
    "time": "Tue Aug 24 09:10:18 2021 -0700"
  },
  "committer": {
    "name": "sallyyuen",
    "email": "sallyyuen@google.com",
    "time": "Fri Sep 17 11:26:18 2021 -0700"
  },
  "message": "Add accessibility support for Drag \u0026 Drop\n\ngo/a11yDragAndDrop\n\nAdd AccessibilityAction#ACTION_DROP to potential drop targets.\nAdd A11yAction#ACTION_CANCEL to the source of the drag.\nDevelopers will be required add the A11yAction#ACTION_DRAG action\n(androidX can do this)\n\nSend AccessibilityEvents when appropriate. These events will be\nsent when a drag is performed via a11y actions, or via touch events\nwith a11y enabled.\n\nDrop and cancel events are mutuall exclusive.\n\nTo avoid a scenario where a user starts a drag via an a11yAction but\ndoesn\u0027t drop or cancel, the system will cancel the event after a minute\ntimeout.\n\nCorner cases:\n1) A user cannot start a drag on another view without first cancelling\nthe current one\n\n2) An ACTION_DRAG on a View won\u0027t be successful if the last touch point\nwas in that View\n\nFor a11y, we send window events directly from the View to avoid source\nmerging in ViewRootImpl. (Specifically for the start events, where the\nevent gets sent from the common ancestor of the source and target\ninstead of the source)\n\nBug: 26871588\nTest: atest DragDropControllerTests CtsWindowManagerDeviceTestCases:CrossAppDragAndDropTests AccessibilityDragAndDropTest\nUse Android\u0027s official sample drag and drop apps. Drag within window and across split screens\nUse ReceiveContentDemo target app with sample app\n\nChange-Id: Ie8554d25ab6c43b08d2dacb8c8907b1636bd72b4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a6abed0209591660bb8a742fc6b2f68675e28d3f",
      "old_mode": 33188,
      "old_path": "core/java/android/view/IWindowSession.aidl",
      "new_id": "9da50889e43f9c59b1e5f3142fd6bcd4f4310fee",
      "new_mode": 33188,
      "new_path": "core/java/android/view/IWindowSession.aidl"
    },
    {
      "type": "modify",
      "old_id": "1ecdb900316d08c947b9167db49f2adbadb83380",
      "old_mode": 33188,
      "old_path": "core/java/android/view/View.java",
      "new_id": "afdb755179a6bb29c5e52619e77b1560e806d84f",
      "new_mode": 33188,
      "new_path": "core/java/android/view/View.java"
    },
    {
      "type": "modify",
      "old_id": "775c15e77d5dd5a5f4404fa75d0a8d6b61c4503a",
      "old_mode": 33188,
      "old_path": "core/java/android/view/ViewParent.java",
      "new_id": "49f5229d3c09c571a01bd2ba897b6ccb44be53a4",
      "new_mode": 33188,
      "new_path": "core/java/android/view/ViewParent.java"
    },
    {
      "type": "modify",
      "old_id": "4c36fc939c34c74955f055f080df849af1b7aaa3",
      "old_mode": 33188,
      "old_path": "core/java/android/view/ViewRootImpl.java",
      "new_id": "d53286885f8541e47417eb6670f2981fa15f4a1a",
      "new_mode": 33188,
      "new_path": "core/java/android/view/ViewRootImpl.java"
    },
    {
      "type": "modify",
      "old_id": "c413a9ba7a272e7f1b2c4588fed03a60ae511748",
      "old_mode": 33188,
      "old_path": "core/java/android/view/WindowlessWindowManager.java",
      "new_id": "ffb7efa672432b7b4556df35c6905cfc41ff5c4a",
      "new_mode": 33188,
      "new_path": "core/java/android/view/WindowlessWindowManager.java"
    },
    {
      "type": "modify",
      "old_id": "d12d07ab74481788015cf06a7e331909b086269e",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/wm/DragDropController.java",
      "new_id": "cc6a8807bb9d243aadeedfec8dc7fb3f7f68b519",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/wm/DragDropController.java"
    },
    {
      "type": "modify",
      "old_id": "18ea738b08ce1079cdd5729c622adcd3488daeed",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/wm/DragState.java",
      "new_id": "e92de67377cd4e0faf41e7ce023f03536374f431",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/wm/DragState.java"
    },
    {
      "type": "modify",
      "old_id": "0b5677724fc350b41dd70e005a6bf6d7c61effa8",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/wm/Session.java",
      "new_id": "8c056b2a43b391b0702bba95034db4040908e271",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/wm/Session.java"
    },
    {
      "type": "modify",
      "old_id": "223dc3121cd6e05fd43d92815ca3ee717fb96550",
      "old_mode": 33188,
      "old_path": "services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java",
      "new_id": "a1e8ca4aa84b2dd5b28acbeb4eb91faccae04e76",
      "new_mode": 33188,
      "new_path": "services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java"
    }
  ]
}
