)]}'
{
  "log": [
    {
      "commit": "60b48c66b694bf4604125157fa44808a76a66483",
      "tree": "a52209203bdaae33f37b16cf87a0c5dc14809edd",
      "parents": [
        "be5e3975f6ffd114ff9e7ffb3fe7cacff5ff9365"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 19 11:08:04 2021 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 19 19:53:07 2021 +0000"
      },
      "message": "Fix error for compiler update.\n\nframeworks/native/services/inputflinger/reader/mapper/SensorInputMapper.cpp\n:306:23: error: declaration shadows a local variable [-Werror,-Wshadow]\n    for (const auto\u0026 [sensorType, sensor] : mSensors) {\n                      ^\n\nBug: 193903230\nTest: build with the next compiler\nChange-Id: I8087db738cfbef82e8264bbbc22515361bd11bf1\n(cherry picked from commit 823144f333f8976eb98f28d8b802d1a82e6442fb)\n"
    },
    {
      "commit": "78eb975e7b63d3ac74988ebc18cf4cc6c3f19622",
      "tree": "cbc3c305f5c8375a2da03b0dd8479852e88c1ef7",
      "parents": [
        "f3d34a7129aa8354ee9bb18f8eabdf198785edfe"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@arm.com",
        "time": "Thu Jun 03 16:44:09 2021 +0100"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Jul 12 23:35:31 2021 +0000"
      },
      "message": "Check if /dev/input exists before accessing the path\n\nIt is possible that development platforms don\u0027t have any input devices,\nhence /dev/input directory won\u0027t be created. Hence check if /dev/input exists\nbefore adding inotify watch and scanDirLocked for /dev/input.\ninotify_add_watch is also added for /dev/input when it is created. for e.g.\nduring EventHubTest.\n\nTest: atest inputflinger_tests (on a development board with no input\ndevices)\nSigned-off-by: Usama Arif \u003cusama.arif@arm.com\u003e\nChange-Id: I8675921280e351dd8885becce79a7cb4a9936c10\nMerged-In: I8675921280e351dd8885becce79a7cb4a9936c10\n(cherry picked from commit b27c8e63e5b4961c300c50e1c935e0f7cdeea0fa)\n"
    },
    {
      "commit": "638b6f8d3a80dbfef629d9bbf077624ceea77832",
      "tree": "b6131acc251404145f0dcb9460ce9a07ec10a292",
      "parents": [
        "53fef3fd80fc8e433ce3211887b57b6d52b17957",
        "10d57c6cfa946d7c87fe4aa51a137865f01fdb0a"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Jul 05 15:37:49 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Jul 05 15:37:49 2021 +0000"
      },
      "message": "Merge \"Prevent processing touch after receiving an invalid tracking id\" into sc-dev am: 10d57c6cfa\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15023701\n\nChange-Id: I0096a30673f62e3e67cace5ed14144b86a079593\n"
    },
    {
      "commit": "10d57c6cfa946d7c87fe4aa51a137865f01fdb0a",
      "tree": "2939dca0189e21222063d2e47e34bc49f9ec2b76",
      "parents": [
        "16d968616fc8e73db077a137bb9d2177feccd5c3",
        "9ad189451df1b2ca53d08945507b00a0bdde445b"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Jul 05 15:28:10 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 05 15:28:10 2021 +0000"
      },
      "message": "Merge \"Prevent processing touch after receiving an invalid tracking id\" into sc-dev"
    },
    {
      "commit": "d8c8af857d8a0d3457ab11566372b238be78a869",
      "tree": "296cb44fc9791c0bd2c83abf75a418a80580e435",
      "parents": [
        "75646dc2bf42c5a277b208b1a1d7064718217471",
        "918bccf6023fe5415216036eb9e322a09971e9ee"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 02 16:30:16 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 02 16:30:16 2021 +0000"
      },
      "message": "Merge \"Add VerifyInputEventTest to presubmit\" into sc-dev am: 918bccf602\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15179350\n\nChange-Id: Ic63d59060a996acc98e5e49168f56847b12f1ad0\n"
    },
    {
      "commit": "70fac283a5235c14c28a680b064d7102d9b8fea9",
      "tree": "355036749bb38078cd7f0c6f60f54e360209f184",
      "parents": [
        "263d778ae3c307620aa61f5aeebd748502e56187"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Jul 01 20:32:02 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Jul 01 20:32:02 2021 +0000"
      },
      "message": "Add VerifyInputEventTest to presubmit\n\nThis test will now run as part of presubmit for input-related code. It\nwill ensure that we will never break it by modifying input code in\nisolation.\n\nBug: 192532606\nTest: cd frameworks/native/services/inputflinger \u0026\u0026 atest\nChange-Id: I6d3432a79b92564f66636d3f68951bcfaec260c1\n"
    },
    {
      "commit": "5107ce61223bb93328ab95596e3256c738be7319",
      "tree": "a9836351e527ae325a92576b0ae95692081ec337",
      "parents": [
        "72fc49d9d7237e9d4fd454da3cdbbde79a9299f1",
        "61cfde719b9dac7d718a0af72c3a8748d0f7ffe7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 01 03:42:00 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 01 03:42:00 2021 +0000"
      },
      "message": "Merge \"Set FLAG_IS_ACCESSIBILITY_EVENT for events injected from accessibility\" into sc-dev am: 61cfde719b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15019654\n\nChange-Id: I438e2a02beecb4c39e0a284d1ec33dc0721859f7\n"
    },
    {
      "commit": "f00a4ec687e2bf9110106238c7738927fc3e87d7",
      "tree": "da6c6f59b222c21f55b7cb40111a06aa8c052d25",
      "parents": [
        "4019c52f68e694278e1f5833a45a04137af3780c"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jun 16 03:55:32 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jun 30 18:11:59 2021 +0000"
      },
      "message": "Set FLAG_IS_ACCESSIBILITY_EVENT for events injected from accessibility\n\nIf an input event was modified or injected by accessibility, set the\nappropriate flag. This helps applications distinguish the real hardware\nevents from synthesized events.\n\nThis also allows a11y services more flexibility in modifying the event\nstreams coming from real hardware.\n\nBug: 152399927\nBug: 175069843\nTest: atest inputflinger_tests libinput_tests\nChange-Id: I805cba4c84582fa4cd4e0892ec00428d4b255ec6\n"
    },
    {
      "commit": "9ad189451df1b2ca53d08945507b00a0bdde445b",
      "tree": "624671295963e360d842f9152828169d94685653",
      "parents": [
        "963026b842e6750d69a4f6c1bf125f94bd9b97a9"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Sat Jun 19 02:04:46 2021 +0000"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Jun 28 06:45:11 2021 +0000"
      },
      "message": "Prevent processing touch after receiving an invalid tracking id\n\nTouch driver would send an INVALID_TRACKING_ID value when touch\nreleased from touch screen. That tells input framework should send an\nup or pointer up event and stop processing the pointer, so if any\nunexpected data is also updating from driver side, we have to prevent\nit becomes as a valid pointer.\n\nBug: 190460965\nBug: 190144579\nBug: 190860244\nBug: 188375341\nTest: atest inputflingger_tests\nChange-Id: Iee15ab7f7edd19f0cfe1ee27dcaf17c301e8f780\n"
    },
    {
      "commit": "1d0f2f9fa0b9720aef96acae486a454ef781612d",
      "tree": "cadaa29688dff8a66f776b232eaf01ffa38bf184",
      "parents": [
        "059a82212b269cdd0cf894a7d45fc1b7658491f5",
        "831288d496135c75d50467facd69064e0d8fa7bc"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Jun 21 20:35:53 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Jun 21 20:35:53 2021 +0000"
      },
      "message": "Merge \"FocusResolver: Clean up focus requests and results when a display is removed\" into sc-dev am: 831288d496\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15032232\n\nChange-Id: Ie9bf3bf37b63695f8916d061423b6e639a3be5fb\n"
    },
    {
      "commit": "599f1413c4972f03b550fc33c7041459f3bcb547",
      "tree": "33b11fee24ba3f1e86013d3272e4a4bcff048f6f",
      "parents": [
        "a785b9a9c362954c3d136cba1f30ff4bd9edf49c"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Jun 21 10:39:58 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Jun 21 10:39:58 2021 -0700"
      },
      "message": "FocusResolver: Clean up focus requests and results when a display is removed\n\nPrevents FocusResolver from leaking focus requests and results as\ndisplays are added and removed.\n\nTest: atest inputflinger_tests\nFixes: 188008394\nChange-Id: I635b9becf91056fd540ab9d9546dd67a09324fc6\n"
    },
    {
      "commit": "8ab9434e8318911f4ef1bbd6a93e014e011153bc",
      "tree": "cc8555c64a27427d6e4ab9c9344819a396198336",
      "parents": [
        "88ee9d0373271dd6859de99d2c7d129077575cc2",
        "9473f5563afd11e0d202b4bff7f4beb53008dd1e"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 15 21:54:52 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 15 21:54:52 2021 +0000"
      },
      "message": "Merge \"Use the injected device id for events that are a11y trusted\" into sc-dev am: 9473f5563a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14673429\n\nChange-Id: Ia6e1a3919bdf0b01385dce1d54dc9e95d66a6782\n"
    },
    {
      "commit": "9473f5563afd11e0d202b4bff7f4beb53008dd1e",
      "tree": "cdea1be57f466ebf2fd2dad825bde1e2ef2e0a98",
      "parents": [
        "c71ee4b1418fd1d4b401755a77acfe6641cc6dad",
        "5d552c4b7fffb63d9bc4c26ca222d43bb57b359d"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 15 21:50:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 15 21:50:38 2021 +0000"
      },
      "message": "Merge \"Use the injected device id for events that are a11y trusted\" into sc-dev"
    },
    {
      "commit": "3e66b96c3efbcbbe02437d82b05422ffa649afb6",
      "tree": "2bd72e00ba3abef275e103383fedd4d39e8e491d",
      "parents": [
        "46d5130fd943943f43ba4a1bffbe53294643c796",
        "ef32db74b5b43d067a6b96adda9f185405d1727d"
      ],
      "author": {
        "name": "Steve Pfetsch",
        "email": "spfetsch@google.com",
        "time": "Tue Jun 15 21:35:33 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 15 21:35:33 2021 +0000"
      },
      "message": "Merge \"TouchVideoDevice: Silence log spam\" into sc-dev am: ef32db74b5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14811641\n\nChange-Id: Iff0d6c0449d9eaf8588d92925722f07ff7b68c03\n"
    },
    {
      "commit": "6d2425d45ba8854999da1cbc8eb07163d9c41b52",
      "tree": "49e9d42a74f0df337fa44d7b3e5f3b11e296bbdb",
      "parents": [
        "c2baccc476ad91b538e84e3f4379a66f237ee07b"
      ],
      "author": {
        "name": "Steve Pfetsch",
        "email": "spfetsch@google.com",
        "time": "Wed Jun 02 18:37:28 2021 +0000"
      },
      "committer": {
        "name": "Steve Pfetsch",
        "email": "spfetsch@google.com",
        "time": "Wed Jun 09 22:23:53 2021 +0000"
      },
      "message": "TouchVideoDevice: Silence log spam\n\nWhen it was originally written, the TouchVideoDevice could expect that\nevery queued heatmap frame would correspond directly to a set of touch\ncoordinates. This is no longer true because touch coordinates may be\ndropped before reaching InputFlinger. Therefore, heatmap frames may be\ndropped frequently and the accompanying error message is less valuable.\n\nBug: 184000818\nBug: 189901803\nChange-Id: I9ba848c70c0c5014e6ed5c2af8fd0f5629971254\n(cherry picked from commit 343ab843bd668ff687c7dcba2006775a2b03549f)\n"
    },
    {
      "commit": "122279f36fd6b54bbf00fb66fc6cd79f6e1675a4",
      "tree": "b6402c1a7b37377610ec5c2ca24fc200458d117e",
      "parents": [
        "975f0726fe18ef2bb3b204aadff8b918b5afc085",
        "0d1e6c83311388165ff218a934b28250d6bdc92a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 09 02:54:39 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 09 02:54:39 2021 +0000"
      },
      "message": "Merge \"Return a copy of InputDeviceLightInfo instead of pointer\" into sc-dev am: 0d1e6c8331\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14847816\n\nChange-Id: Ia17c993a0bce545ca03147a5112b6c3279e886e4\n"
    },
    {
      "commit": "1983a71e2a29934ec3a7c8a0fb20e0ced0ad44dc",
      "tree": "b5187bcb2eef8d3ea32504dc9ed4c70ad19245dc",
      "parents": [
        "9d7aee1d786b01942e90cb6972b2bc1e06920aef"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jun 04 19:27:09 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 08 20:08:53 2021 +0000"
      },
      "message": "Return a copy of InputDeviceLightInfo instead of pointer\n\nRefactor InputReaderInterface to return a copy instead of pointer. This\nwill ensure that we don\u0027t read from memory that\u0027s been freed.\n\nAlso, refactor InputDevice api\u0027s to return a list of infos instead of\nhaving to query each individually. In all usages so far, there\u0027s no need\nto get a specific info by type.\n\nBug: 190126442\nTest: atest inputflinger_tests libinput_tests\nChange-Id: I7f993a14259bb802e2631663c1c8bb65cc9b6702\n"
    },
    {
      "commit": "f3a46c174b257bedf973ef7835b9aa0dd882c720",
      "tree": "d26e9b07e249152c10f7f22bb4929ab15dbb166a",
      "parents": [
        "fcf65c143a326fb41569ba9087f4cc85044a3c50",
        "657c2f0bdfca7d3089af948cdbd8c5f23ca3ec69"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Jun 08 17:09:25 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 08 17:09:25 2021 +0000"
      },
      "message": "Obsfucate the input device uniq id. am: 657c2f0bdf\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14724090\n\nChange-Id: I3a7db323076815f170c2b6fa55908632a322e466\n"
    },
    {
      "commit": "657c2f0bdfca7d3089af948cdbd8c5f23ca3ec69",
      "tree": "374f9954712401916f2c5d7a620c6806e50f5def",
      "parents": [
        "330f09cd6768fd04de4b957303e07f2c3a32c7da"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue May 25 16:24:37 2021 -0700"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon Jun 07 22:25:29 2021 -0700"
      },
      "message": "Obsfucate the input device uniq id.\n\nIn Android input device stats atom, obsfucate the device unique id, by\napplying SHA256 HAMC and trim to 8 bytes.\n\nBug: 177445452\nTest: statsd_testdrive 351\nChange-Id: Ib1906f9722f707e96c3d8a7623343efdf4c638ac\n"
    },
    {
      "commit": "5d552c4b7fffb63d9bc4c26ca222d43bb57b359d",
      "tree": "d39ad333c14b922051d156911355c5c9b6bb5c7e",
      "parents": [
        "64812298b71eeb04b1c471a3cf7f48fd27cfee40"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 21 05:02:22 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jun 04 04:07:29 2021 +0000"
      },
      "message": "Use the injected device id for events that are a11y trusted\n\nIf an event is a trusted event coming from accessibility, then allow the\ndevice id that\u0027s provided in the InputEvent to be used during injection.\n\nThat means, events injected from accessibility will not always have\ndevice id \u003d\u003d -1 (VIRTUAL_DEVICE_ID).\n\nThe only exception are the events coming from external accessibility\nservices (MotionEventInjector). For simplicity, we mark all of those\nevents as untrusted.\n\nThe flow is as follows:\n\n1. When a11y is enabled, mInputFilterEnabled is set in InputDispatcher\n2. Every event processed by dispatcher is first sent to InputFilter (\u003d\u003d\u003d\naccessibility).\n3. The event from dispatcher sent to a11y has new flag,\nPOLICY_FLAG_ACCESSIBILITY_TRUSTED.\n4. By default, a11y passes all the policy flags back to inputdispatcher\nwhen it tries to reinject the event.\n5. If a11y hits a path where untrusted events may be injected, it\nremoves the FLAG_A11Y_TRUSTED from the policyFlags and continues the\nevent handling.\n6. Eventually, if a11y does not handle the input event, it sends it back\nto InputDispatcher using \u0027injectInputEvent(..., policyFlags)\u0027.\n7. InputDispatcher will look at the policyFlags of the injected event.\nIf the new flag is present, InputDispatcher will create EventEntry with\nthe provided device id. Otherwise, it will create EventEntry with the\nvirtual device id (-1).\n8. The events received by the apps will now have the original device id\nif a11y is enabled.\n\nTest: atest CtsInputTestCases:android.input.cts.GamepadWithAccessibilityTest\nTest: atest VerifyInputEventTest\nBug: 175069843\nChange-Id: Ie6399654f4434fdc8232e50373b6277d2f43a864\n"
    },
    {
      "commit": "b7f8e19f35f15747a937897c725b7aa9e6c2360b",
      "tree": "abf460b1c9a74daa67435da63b5354c037c836f5",
      "parents": [
        "df8614ef6067250a678c161a313b6d800348f451",
        "f76775af4374b9cdda21cc1616cf0fd6937d4c13"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 02 07:55:16 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 02 07:55:16 2021 +0000"
      },
      "message": "Merge \"Temporarily turn off latency reporting\" into sc-dev am: f76775af43\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14791672\n\nChange-Id: Iacb61008f5bd3366571cafdd821a1e0196e98ec5\n"
    },
    {
      "commit": "f76775af4374b9cdda21cc1616cf0fd6937d4c13",
      "tree": "b576b593f7ea9c4ed75f799c75d8f98413187a5a",
      "parents": [
        "067798669399589eaab3b9087b437d462a319833",
        "9a7d94a24d36b25353f049c94a9e23025643b077"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 02 07:30:02 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 02 07:30:02 2021 +0000"
      },
      "message": "Merge \"Temporarily turn off latency reporting\" into sc-dev"
    },
    {
      "commit": "9a7d94a24d36b25353f049c94a9e23025643b077",
      "tree": "0ee5660087f206cbf7c2ecf6f8ba5bcb85ee11f8",
      "parents": [
        "9a049d867e71b419af44a83567c0b1af3897086f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 01 17:38:24 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 01 17:38:24 2021 +0000"
      },
      "message": "Temporarily turn off latency reporting\n\nThe latency tracker is currently causing a crash due to a failed\nassumption. Inside the tracker, there are 2 collections that are\nexpected to always be in sync. However, in dogfood, we are seeing:\nAbort message: \u0027Event 102634453 is in mEventTimes, but not in mTimelines\u0027\n\nWhile we are trying to identify the issue, let\u0027s turn off the latency\nreporting by simply not invoking the \u0027trackListener\u0027 portion of the\nlatency tracker.\n\nThis will avoid calling \u0027reportAndPruneMatureRecords\u0027, which is\ncurrently the source of the crash.\nThis will not negatively impact the calls to \u0027trackFinishedEvent\u0027 and\n\u0027trackGraphicsLatency\u0027 because those will just quit early if the event\nis not found.\n\nBug: 189319094\nTest: presubmit\nChange-Id: I3282eb30622d48f13a380020704105981bd3ae39\n"
    },
    {
      "commit": "422329184ba42e8811966005ed0e10d4a84c232f",
      "tree": "df98446d0fd9b2ae8666251ccba6d6435d1a0cbd",
      "parents": [
        "728710d2fc2d8dc7e880921971e5b919e2b8e665"
      ],
      "author": {
        "name": "liushenxiang",
        "email": "liushenxiang@xiaomi.com",
        "time": "Fri May 21 20:24:09 2021 +0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 26 17:50:19 2021 +0000"
      },
      "message": "[BugFix] Reset key repeating in case a keyboard device was disabled or enabled.\n\nThe \"resetKeyRepeatLocked\" will never be called when we disable a keyboard device. In this case, if we long click a key on keyboard and it began to repeat. Then we disable the keyboard. We find that the key repeating will never stop until a next key event come.\n\nTest: atest inputflinger_tests\nSigned-off-by: liushenxiang \u003cliushenxiang@xiaomi.com\u003e\nChange-Id: Ic0e37d1e1e447d4965f3fbb479e0eca7c726a6ab\n(cherry picked from commit 97b0d3b5fcbe4dcf0a8d359f52027bbf49a8f387)\n"
    },
    {
      "commit": "accebe0f914df759e13135d93ed8a0c61606fc87",
      "tree": "c7a4a48cf307e52933cc5113a18abf9047e1495d",
      "parents": [
        "f5334b8e52722ee13dd019203cfc9099a9cd930e"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu May 13 14:33:56 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon May 24 17:39:02 2021 -0700"
      },
      "message": "CursorInputMapper: Rotate cursor position for per-window-input-rotation\n\nWhen per-window-input-rotation is enabled, InputReader works in the\nun-rotated display coordinate space while the PointerController works in\nthe rotated coordinate space.\n\nThis means when we obtain the cursor position in CursorInputMapper, it\nis in the rotated coordinate space. So we need to convert it to the\nunrotated coordinate space.\n\nBug: 179274888\nTest: atest inputflinger_tests\nTest: manual with a mouse device while rotating phone\nChange-Id: Ide81ac902606e6ec6c4f8fa1d8bbfd5aa3a49b8e\n"
    },
    {
      "commit": "f5334b8e52722ee13dd019203cfc9099a9cd930e",
      "tree": "020cc720597050fa0d9f52b92fc9e17aca7bc360",
      "parents": [
        "72b639e74a8aa608b424fd70b86ef8efeb391a13"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu May 13 14:00:39 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon May 24 14:51:25 2021 -0700"
      },
      "message": "CursorInputMapper: Populate axes in navigation mode\n\nA bug in CursorInputMapper resulted in the output of the mapper always\nreporting a value of 0 for the x and y axes when it was in navigation\nmode. This was not caught by the tests because the tests used an epsilon\nof 1.0, while expecting events with magnitudes of around 0.1667. The\nrelatively large epsilon meant the test was always passing.\n\nHere, we fix the bug, and update the tests for CursorInputMapper to use\na smaller epsilon.\n\nBug: 179274888\nTest: atest inputflinger_tests\nChange-Id: I406486069aa42f713b8390364bcdd47ec5b33b82\n"
    },
    {
      "commit": "72b639e74a8aa608b424fd70b86ef8efeb391a13",
      "tree": "01629044839ea8c574740eec5eeb332d23c88642",
      "parents": [
        "3554ef9bf5d92de39b872db64e4fe9e3f8303a41",
        "93a0f91b555bc3e914885bbfc4e86211e97bfa33"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 24 21:45:50 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 24 21:45:50 2021 +0000"
      },
      "message": "Merge \"Cancel touchscreen gestures from Dispatcher when display rotates\" into sc-dev"
    },
    {
      "commit": "3a7faf308a72dce8629476808108a7238773d2f8",
      "tree": "fa80fd547b6c2959305089598b9c84d368bdb325",
      "parents": [
        "46259c5ca650474647f19cc1dc80384db58f68f0",
        "857583385bd7504f89780c99d24b0da073fd43ce"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon May 24 17:35:01 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 24 17:35:01 2021 +0000"
      },
      "message": "Merge \"Change native lights to be consistent with java API.\" into sc-dev"
    },
    {
      "commit": "4400b4035950b2557699b24e92933cf161687f1e",
      "tree": "e879714e2e519d45013773e4b9c93490dbd6d0f5",
      "parents": [
        "886b4e080b993734d6d041828b1c72d79f600ca3",
        "ef93114cf92bb38394937270b2dc2dc2f2e74189"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat May 22 21:19:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 22 21:19:03 2021 +0000"
      },
      "message": "Merge \"Add libinput stack leakage test to presubmit\" into sc-dev"
    },
    {
      "commit": "9a049d867e71b419af44a83567c0b1af3897086f",
      "tree": "7829d0dccb98dca04498dd3e6d467b2e1d5173fb",
      "parents": [
        "794054ca581f80ed612e0340dafd2ae9f36be9e0",
        "99b9d38e2227e62c282ddafc9327507a61e47953"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 21 07:17:44 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 21 07:17:44 2021 +0000"
      },
      "message": "Merge changes from topic \"input statistics\" into sc-dev\n\n* changes:\n  Use zetasketch for input statistics\n  Report input metrics using LatencyAggregator\n  Add LatencyTracker to InputDispatcher\n  Remove LatencyStatistics from dispatcher\n"
    },
    {
      "commit": "c961c74dc99f0d6c7c26a48a3761e239cf67fdad",
      "tree": "ad7d1b69e3f30f5f7c132a576bd83fdf8e1e9de2",
      "parents": [
        "7ed6f2fca8325ffa8a62d356adad51937f9d0a37"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 19 19:16:59 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 19 19:54:19 2021 +0000"
      },
      "message": "Add log for when gesture monitor is created\n\nWe previously added logs for the creation and deletion of gesture\nmonitors. After a recent bug related to gesture monitors was fixed, the\n\u0027monitor created\u0027 log got dropped. However, the \u0027monitor is removed\u0027 log\nis still there.\n\nAdd the \u0027created gesture monitor\u0027 log back. If we remove this log in the\nfuture, we should remove both of them at the same time.\n\nBug: 187881580\nTest: adb logcat -b all | grep -i \"monitor \"\nTest: reboot phone and observe logs with the above command\n\nObserve:\n05-19 19:46:19.825 19661 19997 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d20337\n05-19 19:46:19.827 19661 19765 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d20337\n05-19 19:46:19.828 19661 19690 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d20337\n05-19 19:46:20.619 19661 19762 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d20337\n05-19 19:46:20.619 19661 20406 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d20337\n05-19 19:46:20.679 19661 20406 I InputDispatcher: Created monitor edge-swipe for display 0, gesture\u003dtrue, pid\u003d19870\n05-19 19:46:34.795 19661 19765 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d20337\n05-19 19:46:34.865 19661 19691 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d20337\n05-19 19:46:34.870 19661 19765 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d20337\n05-19 19:46:34.870 19661 19691 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d20337\n05-19 19:46:35.313 19661 19765 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d20337\n05-19 19:46:35.315 19661 20979 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d20337\n\nChange-Id: I30c2387b87e03d05896d9c8d126b286aec67b74f\n"
    },
    {
      "commit": "ef93114cf92bb38394937270b2dc2dc2f2e74189",
      "tree": "50df3ff45b3a5a00ad5093c3a1d4f31aed8f0e31",
      "parents": [
        "d59bcb858c93cd8f0a57e64cf0144534aa540f4f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 31 00:11:30 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 19 05:00:29 2021 +0000"
      },
      "message": "Add libinput stack leakage test to presubmit\n\nTo prevent future breakages from adding / removing fields to\nInputMessage, add this security test to presubmit for all input-related\ncode.\n\nTest: cd frameworks/native/services/inputflinger \u0026\u0026 atest\nObserve:\nRunning Tests...\n\narm64-v8a CtsSecurityBulletinHostTestCases\n------------------------------------------\ncom.android.compatibility.common.tradefed.testtype.JarHostTest (1 Test)\n[1/1] android.security.cts.Poc19_03#testPocBug_115739809: PASSED (29.769s)\n\nBug: 184090953\nBug: 120630087\nChange-Id: I269b7fbac298377bd2ae87ae7977f7843f0f455b\n"
    },
    {
      "commit": "44edce91b5253d325a2c3b225edf8008d14bb420",
      "tree": "9fc049f1af90e82e1774ab1e459d12f941657360",
      "parents": [
        "8c68daf647609eb2fae3686585d86baed57c4b04"
      ],
      "author": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Fri May 14 18:09:55 2021 -0700"
      },
      "committer": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Tue May 18 10:05:48 2021 -0700"
      },
      "message": "Parcel/Unparcel displaysize in InputWindowInfo\n\nSomehow left this out causing compatraw to not work.\n\nAlso converted some float displaySize to int to match the\nrest of displaySize uses.\n\nBug: 179274888\nTest: atest libinput_tests:InputWindowInfo\nChange-Id: I194f562e448d67d6fd8a04b86376e54c13933ae5\n"
    },
    {
      "commit": "99b9d38e2227e62c282ddafc9327507a61e47953",
      "tree": "6d6250f908b2cfa1fcf68ca60955c8cebd97993f",
      "parents": [
        "a04181fc9c3a4f6b290e3ccf0f6a6e9ab9a6c542"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Apr 01 08:03:41 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue May 18 07:48:33 2021 +0000"
      },
      "message": "Use zetasketch for input statistics\n\nSwitch LatencyAggregator to use the actual zetasketch library. Report\nthe data to westworld via 2 atoms. 1 atom is for slow events, and 1 is\nfor latency sketches.\n\nEstimating \u003c 25 Kb per atom after few minutes of non-stop interaction with the screen.\nAdded a hard limit at 20 Kb\n\nDumped the data to a file on the device, and then read that data using\nthe full zetasketch implementation. Confirmed that the data looks OK.\n\nBug: 167947340\nTest: adb shell dumpsys input and review the size of the resulting\nsketches\n\nChange-Id: I69b0f3753c86226886186d5f6edd779d2f9404e5\n"
    },
    {
      "commit": "a04181fc9c3a4f6b290e3ccf0f6a6e9ab9a6c542",
      "tree": "4dc13f5db942beca35dd29e1bbd54bedee8e6d4d",
      "parents": [
        "f2652121831c62734a84f0b6dfaab242796232c8"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 26 05:56:49 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 17 21:11:36 2021 +0000"
      },
      "message": "Report input metrics using LatencyAggregator\n\nThe new class, LatencyAggregator, is responsible for reporting the input\nmetrics to statsd.\n\nBug: 167947340\nTest: tested using statsd_testdrive\nChange-Id: I1990851a44df897fe989046e7363bd71e1c0c129\n"
    },
    {
      "commit": "f2652121831c62734a84f0b6dfaab242796232c8",
      "tree": "57b28b4e490ab07a233957dc18b6ae50f394d993",
      "parents": [
        "060a7276bfb9a9a33070405c1f3fce861b9e89b3"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 05 21:39:46 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 17 21:11:36 2021 +0000"
      },
      "message": "Add LatencyTracker to InputDispatcher\n\nLatencyTracker will be used to record the complete timeline of an input\nevent dispatch, from the kernel to the presentation of a graphics frame\nto the display.\n\nThe data about input event timeline is coming from three different\nlocations:\n\n1) notifyMotion: this is when the InputDispatcher first learns about the\nevent from InputReader. At this point, we learn the time when the event\nwas first created, to time when the event was read by the user space,\nand we are now adding the timestamps when the InputReader notifies the\ndispatcher about the event.\n\n2) finishInputEvent: this is when the app sends an \u0027ack\u0027 that a specific\ninput event has been processed. Through this call, we learn about when\nthe event was first sent to the app, and when it was read by the app. At\nthis time, we are also collecting the \u0027finishTime\u0027, so that we can\nmeasure the total time that the app spent processing the event.\n\n3) sendTimeline: this is when the SurfaceFlinger notifies the app about\nthe metrics for a specific frame. This metrics information is passed\ndown through the InputChannel to the InputDispatcher. Here we learn\nabout the time when the app sent the buffer to the SurfaceFlinger\n(gpuCompletedTime), and the time when the frame was presented\n(presentTime).\n\nOverall, the end-to-end touch latency is presentTime - eventTime.\nThe rest of the data can be used to measure the breakdown of this\nlatency.\n\nThe goal of LatencyTracker is to combine all this data and present a\ncomplete, unified timeline for a specific input event for further data analysis.\n\nIn a separate CL, we will report this complete timeline to statsd.\n\nBug: 169866723\nTest: atest inputflinger_tests\nChange-Id: I6e6e80e3393878fe86f3935c7c0e13dfff8629f9\n"
    },
    {
      "commit": "060a7276bfb9a9a33070405c1f3fce861b9e89b3",
      "tree": "698253eaaaa9b08a113b6ff7aeb24527bf53b0b3",
      "parents": [
        "d863dc9569bcbdc97bdfc4e7d80e11b6f246e32f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Feb 03 19:40:10 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 17 21:11:36 2021 +0000"
      },
      "message": "Remove LatencyStatistics from dispatcher\n\nCurrently, InputDispatcher is sending touch event information to\nwestworld. We will now be transitioning to new atoms that have better\ncoverage and statistical significance.\n\nIn this intermediate CL, we remove the LatencyStatistics so that we can\nreplace it with something better in the upcoming CLs.\n\nBug: 167947340\nTest: m libinput_tests inputflinger_tests\nChange-Id: I8fcb846321245011c3b6e6f896b99b8d9037a2a4\n"
    },
    {
      "commit": "857583385bd7504f89780c99d24b0da073fd43ce",
      "tree": "cec33402f6188d35091559e9925ff9edb006fd6c",
      "parents": [
        "d16d3a03fcab524ace2e27c3bdb8b0dd8510e940"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun May 16 23:05:17 2021 -0700"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun May 16 23:07:40 2021 -0700"
      },
      "message": "Change native lights to be consistent with java API.\n\nChange native lights type to match java API light types.\n\nBug: 181743615\nTest: atest InputDeviceLightsManagerTest, atest LightsManagerTest, atest android.hardware.input.cts.tests\nChange-Id: I45fe0489fdc070bb4057f4bea061f0cbeacad0de\n"
    },
    {
      "commit": "23cb5990e703eac9add89742f292a145b0ebe8d0",
      "tree": "bd46531a0b8407503a8c24d32734cb809eb43ed9",
      "parents": [
        "50f6e980f469f08bc5c860e609bcb2afb1f97ee5",
        "d0c6bc8b32db0ae41fc7efefb09d5d3e66c0aca5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 12 21:15:10 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 12 21:15:10 2021 +0000"
      },
      "message": "Merge \"Add InputDispatcherInterface::transferTouch api\" into sc-dev"
    },
    {
      "commit": "40256647d00406e69d9a354020bf3763894d487e",
      "tree": "f05b3b21037a8982a45dda7b2ea0cb1c2789a4db",
      "parents": [
        "ca5d8f95c18f1413a19f74113c6410bc561ac02c",
        "cadce9d7847e44d15269adbb1c76f27aa97778ad"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 11 03:47:10 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 11 03:47:10 2021 +0000"
      },
      "message": "Merge \"Fix potential block in InputReader\" into sc-dev"
    },
    {
      "commit": "d0c6bc8b32db0ae41fc7efefb09d5d3e66c0aca5",
      "tree": "a51cf88426da31364d2d8c1b61c0f12e8415d328",
      "parents": [
        "ca8596e1336a57981d584258fdae1de91699bd68"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Mar 13 03:14:52 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 10 12:08:39 2021 -0700"
      },
      "message": "Add InputDispatcherInterface::transferTouch api\n\nThe new api will allow the transfer of touch from the current\nwindow (wherever that may be) to the specified window.\n\nBug: 177997773\nTest: atest inputflinger_tests\nChange-Id: I6acd17cfb6de0fa8466c73e99e27c0b283864eae\n"
    },
    {
      "commit": "88fceed4409fda4804ffd5b22053c1d06b317d60",
      "tree": "494baf37649d480f58201f9332cf14236aeed924",
      "parents": [
        "ca8596e1336a57981d584258fdae1de91699bd68",
        "47cf0a089e4b1f02045e72b881f48ff1a2bdbd71"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 07 20:54:33 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 07 20:54:33 2021 +0000"
      },
      "message": "Merge \"Add NO_FOCUS_CHANGE flag to pointer gestures to disallow focus changes\" into sc-dev"
    },
    {
      "commit": "47cf0a089e4b1f02045e72b881f48ff1a2bdbd71",
      "tree": "c50d3a6adc75901be01fc32defab1f2fc4ff733f",
      "parents": [
        "92ffb4885f5da471a52481820357a63bdbe369da"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 11 20:30:57 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri May 07 11:19:23 2021 -0700"
      },
      "message": "Add NO_FOCUS_CHANGE flag to pointer gestures to disallow focus changes\n\nWhen using a multi-touch trackpad, it is the expected behavior in most\noperating systems that the user is allowed to perform gestures (like\nscroll, pinch, etc.) on an unfocused window without bringing it into\nfocus. The previous behavior in Android was that any DOWN event on an\nunfocused window would bring the unfocused window into focus, including\nany pointer gesture.\n\nThis change adds the NO_FOCUS_CHANGE flag to the MotionEvents generated\nby certain pointer gestures so that it does not change window focus.\nGestures such as tap and tap drag are not affected.\n\nBug: 173733166\nTest: atest inputflinger_tests\nTest: manual: in multi-display scenario with freeform windows and a\ntrackpad: open two freeform windows so that they overlap, perform\ngesture (scroll/pinch) on unfocused window, observe that the window is\nnot focused; perform tap on unfocused window, observe that the window is\nfocused.\n\nChange-Id: I74e52f8daa13d4e6c047bc23982ec56942c555f6\n"
    },
    {
      "commit": "cadce9d7847e44d15269adbb1c76f27aa97778ad",
      "tree": "feecc02442f124428eca26165e3e62bc78e65b67",
      "parents": [
        "b8e9586db0d2d2c16a5fe77c2e5802b0675afbf2"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri May 07 17:24:04 2021 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri May 07 17:24:04 2021 +0800"
      },
      "message": "Fix potential block in InputReader\n\nThe \u0027dispatchExternalStylusState\u0027 is a callback function for\n\u0027ExternalStylusInputMapper\u0027 when the stylus device state is changed,\nit\u0027s unnecessary to hold the lock again because it already hold when\nprocessing the raw event.\n\nBug: 187253236\nTest: atest inputflinger_tests\nChange-Id: I19a2ef5f4c7a5afb622691ef7ec532f8d4dbb7ed\n"
    },
    {
      "commit": "ae02a1f49c1b0ae49af4331be1117b37616c0adb",
      "tree": "09f6dc17c663dc36065f18edfff1364cd268d02d",
      "parents": [
        "96e84d982fc1e50998983bed031a005140fb0355"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat May 01 23:14:04 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 07 00:20:20 2021 -0700"
      },
      "message": "Store connections by token instead of by fd\n\nThe connections are currently stored by fd. If a connection is removed\nvia \u0027removeInputChannel\u0027, it is possible to re-create the same\nconnection and have it keyed by the same fd. When this happens, a race\ncondition may occur where a socket hangup on this fd would cause the\nremoval of a newly registered connection.\n\nIn this refactor, the connections are no longer stored by fd. The looper\ninterface for adding fds has two versions:\n1) the old one that we are currently using, which is marked as \u0027do not\nuse\u0027\n2) the new one where a callback object is provided instead.\n\nIn this CL, we switch to the new version of the callback.\n\nThere is now also no need to store the inputchannels in a separate\nstructure, because we can use the connections collection that\u0027s now\nkeyed by token to find them.\n\nIn a future refactor, we should switch to using \u0027unique_ptr\u0027 for the\ninputchannels. Most of the time when we are looking for an input\nchannel, we are actually interested in finding the corresponding\nconnection.\n\nIf we switch Connection to shared_ptr, we can also look into switching\nLooperEventCallback to store a weak pointer to a connection instead of\nstoring the connection token. This should speed up the handling of\nevents, by avoiding a map lookup.\n\nTest: ./reinitinput.sh. Observe that it doesnt finish after this patch\nTest: atest inputflinger_tests\nBug: 182478748\n\nChange-Id: I601f765eebfadcaeff3661a10a10c4a4f0477389\n"
    },
    {
      "commit": "84f07f0cbec87736f3d04846a7558869d69a2005",
      "tree": "3c53336d3f203a99953f64a1827f6325a78426c6",
      "parents": [
        "9e8dd09f886e14585d2018f713b7d384e768856a"
      ],
      "author": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Fri Apr 16 10:42:42 2021 -0700"
      },
      "committer": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Thu Apr 29 13:24:06 2021 -0700"
      },
      "message": "Add enough information to compatibility-transform getRaw()\n\nMany apps are mis-using getRaw (assuming it means screen-coordinates).\n\nThis means, for now, we have to do a compatibility transform on the\nAPI to prevent breaking said apps.\n\nFortunately, since the input window transform includes rotation,\nthe only extra information we need to calculate this compat-raw\nis the display size.\n\nThis CL topic pipes the display size around so that it makes into the\nMotionEvent and can be used to calculate getRaw()\n\nBug: 179274888\nTest: atest inputflinger_tests:InputDispatcherTest\nChange-Id: Iff893643312e8ec9f38eeb96d76a41fdb3a28350\n"
    },
    {
      "commit": "de2afa826e002b35ae209a79ca6155d2b3b006cb",
      "tree": "e545c4ad1542409d1fd8858def66c2e252b4f2db",
      "parents": [
        "3654df01af03d6089f1c3b0726678e72d2ec4ef6",
        "6a9a83129025758ce6438197f402e3b56a115dfc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 26 19:22:40 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 26 19:22:40 2021 +0000"
      },
      "message": "Merge \"Dispatcher: refactor getWindowHandleLocked and StrongPointerHash\" into sc-dev"
    },
    {
      "commit": "93a0f91b555bc3e914885bbfc4e86211e97bfa33",
      "tree": "66a013da917a6a506b9997ddd502badcfb83486c",
      "parents": [
        "6a9a83129025758ce6438197f402e3b56a115dfc"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Apr 21 13:47:42 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Apr 23 12:18:55 2021 -0700"
      },
      "message": "Cancel touchscreen gestures from Dispatcher when display rotates\n\nWhen the display rotates, previously, touchscreen devices were reset,\nand a notifyDeviceReset is sent to Displatcher. When that happens,\nDispatcher cancells all active gestures from that device.\n\nWith this CL, we skip a device reset when the display rotates because\nthere is nothing that changes for the touchscreen device. Instead, when\nwe get a new set of input windows from SF in dispatcher, we track if the\norientation changes, and if it does, issue a cancellation for all\npointer events.\n\nBug: 185943742\nTest: manual\nChange-Id: Ic8ff19c0dc9cca7b1053a137ea041e5a0da82a76\n"
    },
    {
      "commit": "6a9a83129025758ce6438197f402e3b56a115dfc",
      "tree": "21a1e177d93d1038c9f1ca16b814094acd31d4ba",
      "parents": [
        "1510dad2e8929f632a49f56e7658f2c5d5246390"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Apr 23 11:59:31 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Apr 23 12:02:26 2021 -0700"
      },
      "message": "Dispatcher: refactor getWindowHandleLocked and StrongPointerHash\n\nBug: 185943742\nTest: build, presubmit\nChange-Id: Ie22f28259f20f048a194af38b8d5431be55dd731\n"
    },
    {
      "commit": "f0dcab5d1c7949c76f456b1ca1e9d8ed7dfd336d",
      "tree": "d7ed784bca61726bb9828acdcbbb8422926e26e9",
      "parents": [
        "883da26fb71201ddcdff7813f33298a8d7778d3c",
        "59a9f294f6ab652b2dd015a26eff3c7048f09eb8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 23 09:15:57 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 23 09:15:57 2021 +0000"
      },
      "message": "Merge \"Log creation and removal of monitors\" into sc-dev"
    },
    {
      "commit": "59a9f294f6ab652b2dd015a26eff3c7048f09eb8",
      "tree": "3df3eeb43f538367b7fd57febae3c59cd34be5f8",
      "parents": [
        "f45fd103bf2ef1ae7b528daf67cbcb487b1a5045"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Apr 22 18:43:28 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Apr 22 20:58:20 2021 +0000"
      },
      "message": "Log creation and removal of monitors\n\nTo help investigate \"no swipe-up to go home\" gesture issue, add a log\nfor when gesture monitors are added or removed.\n\nBug: 182478748\nTest: Use TestDPC apk to set up a work profile on the device. Then run\n\u0027logcatcolor | grep -i monitor\u0027 to check the logs. Turn work profile off\nand then on again\nObserve: logs when work profile is turned on\n04-22 02:29:01.495  5422  5516 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d6132\n04-22 02:29:01.548  6132  6132 D TouchInteractionService b/182478748: TouchInteractionService.initInputMonitor: user\u003d0\n04-22 02:29:01.548  6132  6132 D TouchInteractionService b/182478748: create swipe-up input monitor: user\u003d0\n04-22 02:29:01.552  5422 11731 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d6132\n04-22 02:29:01.553  6132  6132 D TouchInteractionService b/182478748: TouchInteractionService.initInputMonitor: user\u003d0\n04-22 02:29:01.554  6132  6132 D TouchInteractionService b/182478748: create swipe-up input monitor: user\u003d0\n04-22 02:29:01.554  5422  6315 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d6132\n04-22 02:29:01.557  5422  5516 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d6132\n04-22 02:29:01.573  6132  6132 D TouchInteractionService b/182478748: TouchInteractionService.initInputMonitor: user\u003d0\n04-22 02:29:01.574  6132  6132 D TouchInteractionService b/182478748: create swipe-up input monitor: user\u003d0\n04-22 02:29:01.575  5422  5516 I InputDispatcher: Erasing monitor swipe-up (server) on display 0, pid\u003d6132\n04-22 02:29:01.577  5422  5689 I InputDispatcher: Created monitor swipe-up for display 0, gesture\u003dtrue, pid\u003d6132\n\nChange-Id: Iaa035fa977f9120e42b91c80a48bc8b6d1fe7003\n"
    },
    {
      "commit": "1ba71cce6f2889bec7b50defc14cf6cac63a3b86",
      "tree": "da249e1a45d7870efe05899e0e38810564529311",
      "parents": [
        "8514c8e0a39f6d542e90aee2200dec8855590cb8"
      ],
      "author": {
        "name": "Christine Franks",
        "email": "christyfranks@google.com",
        "time": "Wed Apr 07 14:37:42 2021 -0700"
      },
      "committer": {
        "name": "Christine Franks",
        "email": "christyfranks@google.com",
        "time": "Tue Apr 20 15:04:39 2021 -0700"
      },
      "message": "Add dynamic display id associations for keyboards\n\nBug: 184615313\nTest: atest -a inputflinger_tests and atest -a libinput_tests\nChange-Id: I96eb6af186e001ff37d90db2436c7d60a269d4bf\n"
    },
    {
      "commit": "09b02ac437d324b0a0c01587ff476506446cb4c9",
      "tree": "482396b4ac164d8529696ee002fa012c513985bb",
      "parents": [
        "39fa2dfaa2adc4d9fb1cb8c5ecb4d883cdd9b195"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Apr 14 22:24:04 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Apr 16 13:35:02 2021 -1000"
      },
      "message": "Print string version of status when errors occur\n\nTo make it easier to debug, let\u0027s switch to string versions of status.\nThat way, we can easier identify the code that is in front of us.\n\nBug: 185231584\nTest: adb shell monkey 10000\nChange-Id: If3f5e27866b23500a791fce57e8da02a1c2f54d0\n"
    },
    {
      "commit": "286c7f2ae69ce07ce5d4d49ddb612ef26d2a04b1",
      "tree": "9b451df804c28061c2ffcffa959d1e493d008607",
      "parents": [
        "494199e2d72b068ecb0c3986a21d07e1a166589c",
        "6d0571e4e8523d14d471d5a0e093d6a2edbc49f1"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Apr 12 10:08:20 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 10:08:20 2021 +0000"
      },
      "message": "Merge \"Fix the drag window still alive after drop failed\" into sc-dev"
    },
    {
      "commit": "6d0571e4e8523d14d471d5a0e093d6a2edbc49f1",
      "tree": "cf5297e7d5e7935a3bd66e6d58366ca2b8356341",
      "parents": [
        "cb1d05d099fc0c991b2f2470e451ff1a3ccc7bd1"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Apr 09 20:18:16 2021 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Apr 12 10:10:45 2021 +0800"
      },
      "message": "Fix the drag window still alive after drop failed\n\nWe should report the invalid drop window even if there is no visible\nwindow can be found, the DragState from WindowManager side would\ndecide playing a cancel animation or remove the drag window immediately.\n\nTest: atest CrossAppDragAndDrop\nTest: atest inputflinger_tests\nBug: 182792292\nBug: 183880545\nBug: 183880412\nBug: 182234653\nBug: 183877512\nChange-Id: I017caeb2ed953e395831cd5b77186f5ab3d33765\n"
    },
    {
      "commit": "1dd2e5c72657fd4792a5d5f0136efd050be5a92a",
      "tree": "c2939862c9b70a7c4d6a7d0f7063a65b5d80a844",
      "parents": [
        "8414e16835677036b4d067db9c7c0636e3f6d231"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun Apr 04 23:12:41 2021 -0700"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Apr 06 22:48:14 2021 -0700"
      },
      "message": "Refactor InputController into PeripheralController.\n\nRename the InputController and related class to PeripheralController,\nand rename MiscDevice to AssociatedDevice to better reflect the behavior\nof these hardwares.\n\nBug: 13831915\nTest: atest inputflinger_tests\nChange-Id: Ib61f7f6cc4fe616d08afc29bf1f1e08c1c9f565d\n"
    },
    {
      "commit": "e2b1e5c71765d5b8bc303bbfa6741c0c96e95d44",
      "tree": "fdb0dd18d06524d550f080a9fe2ba5531c29214c",
      "parents": [
        "6368475d4373ef9427b452f9704361d6c7e04fc7"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Mar 10 22:45:12 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Thu Apr 01 22:58:35 2021 -0700"
      },
      "message": "Introduce Device Controller to InputReader\n\nIntroduce Device Controller to manage non-evdev devices associated with\nthe input device kernel interface. These devices doesn\u0027t interact with\ninputflinger with input events which requires a mapper to process the\nraw event with assoicated input sources.\n\nBug: 180342233\nTest: atest inputflinger_tests\nChange-Id: Ib492bb3de889db180c05367bb6a7e7a2e0d78ce7\n"
    },
    {
      "commit": "2814c319824f2e4cedac64173f39d975dd75f988",
      "tree": "71a709ab5548b2f0e7b7d0f1bc5f823207de1ab5",
      "parents": [
        "25b04bb37d55840ac7da53e686bd175bf336be79",
        "f94ae02551f703e2b549299a9e39a1cebf547df8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 31 10:11:52 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 31 10:11:52 2021 +0000"
      },
      "message": "Merge \"Pass latency information from app to input\" into sc-dev"
    },
    {
      "commit": "d63b09b7e5a05368a4e38169172b2a052e8a52c4",
      "tree": "aab0e959abaf6eeb9952bf7512957a7d587fea2e",
      "parents": [
        "cb769ae92396a50eb1a0c019d113a9e53842bbab",
        "93f342c9198b195bff3a0e09689d41dd1f5250ba"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 30 16:21:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 30 16:21:38 2021 +0000"
      },
      "message": "Merge \"InputDispatcher: Check injection permission in tests\" into sc-dev"
    },
    {
      "commit": "6d4bed94ceec266ecc470da8e886d12cae580e1b",
      "tree": "405191ea7de841d3fef2445f023b797e1ccb651a",
      "parents": [
        "ac3aacf7ca34f2cea9e7d5a9befba67f063ebe22"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Mar 17 11:59:33 2021 +0800"
      },
      "committer": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Thu Mar 25 00:05:52 2021 +0800"
      },
      "message": "Move drag event to InputDispatcher (7/n)\n\nThis CL handle the special case while using a stylus device. During drag\nand drop and the primary button was down, we will check the button being\nlifted in the future, if that happens, we\u0027ll drop the item.\n\nThis includes the behavior:\n-- Touch screen with stylus -\u003e start drag drop with button pressed -\u003e\n   move and drag item -\u003e drop item by releasing button.\n\nWe could still drop item when receiving ACTION_UP.\n\nBug: 19621008\nBug: 158242495\nTest: atest inputflinger_tests\nChange-Id: Ia84f4fd85367f96272af3a19c3db50c4216de1b0\n"
    },
    {
      "commit": "f94ae02551f703e2b549299a9e39a1cebf547df8",
      "tree": "f2fb36f861035c69128f38ca2f6b50f59934f2ff",
      "parents": [
        "1da42f046525842aa515211a20dc1459cc699a42"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Feb 04 01:23:17 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 24 10:06:08 2021 +0000"
      },
      "message": "Pass latency information from app to input\n\nOnce the app learns about the frame\u0027s timeline, it will tell\ninputdispatcher about it. We are adding a new callback similar to\n\u0027finishInputEvent\u0027, called \u0027reportLatencyInfo\u0027.\n\nThis will tell inputdispatcher about the queue time and the present time\nof each frame that was caused by input.\n\nInputDispatcher will then be able to reconstruct the input event\ntimeline and report the end-to-end latency metrics.\n\nIn a separate CL, we will add LatencyTracker, which will eventually\nreceive this data.\n\nUsing the event id and the provided queue time and present time, we will\nbe able to reconstruct the end-to-end latency inside LatencyTracker.\n\nBug: 167947340\nTest: atest inputflinger_tests libinput_tests\nChange-Id: I181532a01b34eecd186bc3c74db289fc59c5955c\n"
    },
    {
      "commit": "d5ecb64ef43ea1e6fb85c1abe2bd9d679bc3df9b",
      "tree": "3d4bf090a51e7cf1af9b6348cc92599a97229bb8",
      "parents": [
        "718f955e7f0536e6c7f996e578bdaa164ec8157c",
        "f452d0b9bbfa019422801b7ae132bb31fccd181e"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Mar 19 06:16:21 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 06:16:21 2021 +0000"
      },
      "message": "Merge \"Move drag event to InputDispatcher (5/n)\" into sc-dev"
    },
    {
      "commit": "93f342c9198b195bff3a0e09689d41dd1f5250ba",
      "tree": "a41f5b957f7e833a3804ec1aa5a8992c6934d48a",
      "parents": [
        "f0ca8651c21abc18f3fba893e78afab93f61a58c"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 11 15:05:30 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 18 15:37:42 2021 -0700"
      },
      "message": "InputDispatcher: Check injection permission in tests\n\n- Forwards the unused parameters injectionTimeout and injectionMode to\nthe test helper method.\n\n- Checks injection permission in the test against the default PID and\nUID used for injection. Adding this caused a regression in many tests.\nSince the tests never gave Dispatcher permission for injection, none of\nthe input events were marked with the TRUSTED flag, which, for tests\nthat inject a key DOWN event, disqualified key repeats from taking\nplace. Now that injected events are TRUSTED, the dispatcher can never\nidle after a key DOWN because it needs to wake up to process the key\nrepeat. Therefore we need to disable key repeats with the policy flag\nwhen injecting a key DOWN in tests that need the Dispatcher to idle.\n\nBug: 173733166\nTest: atest inputflinger_tests\nChange-Id: Ie5084ae3e8f2a0b77930bf3943cce0d7bd21d3a6\n"
    },
    {
      "commit": "277ee042b538b24aaab298a68cca9d395cd3dfc0",
      "tree": "bf22772018f3e066a041447f05a29870660d0a6d",
      "parents": [
        "29ee953d708df3c1c4b01ff9dcdafea85ccfbbe7",
        "d3fef469955c015e6f54816bde81eae831c7c048"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Mar 17 01:07:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 01:07:03 2021 +0000"
      },
      "message": "Merge \"Add InputDevice stats atom logging\" into sc-dev"
    },
    {
      "commit": "f452d0b9bbfa019422801b7ae132bb31fccd181e",
      "tree": "dc7605795559f7f9de59180cc78d7a930406670b",
      "parents": [
        "ead2fee4d9f20d9175c57170181bbd0b9571f60e"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Jan 06 00:19:52 2021 +0800"
      },
      "committer": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Tue Mar 16 18:00:26 2021 +0800"
      },
      "message": "Move drag event to InputDispatcher (5/n)\n\nThis CL add \u0027notifyDropWindow\u0027 to tell the policy about the dropping\nwindow has been detected. That could help the drag controller to handle\nthe drop event and dispatch the clip data to the corresponding client.\n\nBug: 158242495\nTest: atest inputflinger_tests\nChange-Id: If7bce072dff5bdacb7eb765f94eb73ed63a58170\n"
    },
    {
      "commit": "eedd0fc7b1a1269fc4891ddb110c5197739cc3d0",
      "tree": "b2da1bb55347b43cb87cacc52ca69e7515ecc8dd",
      "parents": [
        "cc81b2f4c32846ecfacb9c56a61eb9af694f345f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 09:50:36 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 20:25:07 2021 +0000"
      },
      "message": "Use Result\u003cInputPublisher::Finished\u003e instead of callback -- try 2\n\nWhen the \u0027Finished\u0027 message is received inside InputDispatcher, we are\ncurrently providing a callback function that gets executed with the\nparameters that are matching the InputMessage fields.\n\nThis does not scale well for the case where there is more than 1 type of\nInputMessage received from the InputConsumer. We would have to provide 2\ncallbacks, which is not user-friendly.\n\nThe calling code inside InputDispatcher is already aware of the\nInputMessage struct, but InputMessage is intended to be a protocol of\ncommunication between input channels, and is not meant to be used\nelsewhere. To provide the output of \u0027finished\u0027 signal, we introduce a\nnew \u0027Finished\u0027 struct into InputPublisher. InputPublisher will now try\nto read a message, and will provide a response in that struct.\n\nThis approach will also now force the caller to check ok(), which will\nincrease correctness.\n\nBug: 167947340\nTest: atest inputflinger_tests\nTest: TBD\n\nRevert submission 13838212-revert-13780058-receiveFinishedSignal-UGCLLLUBPW\n\nReason for revert: Relanding with fix\nReverted Changes:\nIdb3a44b4a:Revert \"Update the usage of receiveFinishedSignal\"...\nI1e71010f5:Revert \"Use Result\u003cInputPublisher::Finished\u003e inste...\n\nChange-Id: I9c425bb7249d43648e558214e40fa35aeaa0bb11\n"
    },
    {
      "commit": "870da0041ca5ef9f2c4c54ff5282acf95373ed5e",
      "tree": "2f4c09e119ef5db49a80448be6bdc1024317bae3",
      "parents": [
        "a1589108b6b469f49293ab3d96ee6ee5ae24b79f",
        "7cce0ad081d8997b97cf94ca99df8f06f330e906"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 06:52:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 06:52:36 2021 +0000"
      },
      "message": "Merge \"Revert \"Use Result\u003cInputPublisher::Finished\u003e instead of callback\"\" into sc-dev"
    },
    {
      "commit": "7cce0ad081d8997b97cf94ca99df8f06f330e906",
      "tree": "326c333299927d17ddd6086031429959f036be6c",
      "parents": [
        "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Fri Mar 12 04:18:38 2021 +0000"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Fri Mar 12 04:18:38 2021 +0000"
      },
      "message": "Revert \"Use Result\u003cInputPublisher::Finished\u003e instead of callback\"\n\nRevert submission 13780058-receiveFinishedSignal\n\nReason for revert:\nCaused severe delay in back navigation on IME-focusable window.\n\nReverted Changes:\nI301c6e9c3:Use Result\u003cInputPublisher::Finished\u003e instead of ca...\nI43a0f2d31:Update the usage of receiveFinishedSignal\n\nBug: 167947340\nFix: 182514338\nTest: Manually verified as follows:\n 1. Set up the device as \"Set up offline\" mode.\n 2. adb shell am start -n com.google.android.dialer/.extensions.GoogleDialtactsActivity\n 3. On one terminal, run adb logcat -s InputMethodManager:*\n 4. On another terminal, run adb shell input keyevent 4\n 5. Make sure that the following message is not shown.\n  \"Timeout waiting for IME to handle input event after 2500 ms\"\n\nChange-Id: I1e71010f5f4ae268dfcbc3bde50881c2fa3d51d5\n"
    },
    {
      "commit": "a1589108b6b469f49293ab3d96ee6ee5ae24b79f",
      "tree": "96dfb6419fc68fcae697630f2065771b86ede67f",
      "parents": [
        "cb36a8764dcc8ebc26288243ce38c2008d1b65d9",
        "b89ccb0e3e412f65f512bb5f3ebcd93de696b8a9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 12 03:52:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 03:52:36 2021 +0000"
      },
      "message": "Merge \"Move drag event to InputDispatcher (3/n)\" into sc-dev"
    },
    {
      "commit": "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8",
      "tree": "23b26bb9228eca41fdcc4dca4191141271bd0311",
      "parents": [
        "5c2a67856070668b9f886a5e1fef7694444b8a1f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 05 02:32:57 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 11 03:38:48 2021 +0000"
      },
      "message": "Use Result\u003cInputPublisher::Finished\u003e instead of callback\n\nWhen the \u0027Finished\u0027 message is received inside InputDispatcher, we are\ncurrently providing a callback function that gets executed with the\nparameters that are matching the InputMessage fields.\n\nThis does not scale well for the case where there is more than 1 type of\nInputMessage received from the InputConsumer. We would have to provide 2\ncallbacks, which is not user-friendly.\n\nThe calling code inside InputDispatcher is already aware of the\nInputMessage struct, but InputMessage is intended to be a protocol of\ncommunication between input channels, and is not meant to be used\nelsewhere. To provide the output of \u0027finished\u0027 signal, we introduce a\nnew \u0027Finished\u0027 struct into InputPublisher. InputPublisher will now try\nto read a message, and will provide a response in that struct.\n\nThis approach will also now force the caller to check ok(), which will\nincrease correctness.\n\nBug: 167947340\nTest: atest inputflinger_tests\nChange-Id: I301c6e9c39c02692f5565aa8affdcfd0e17bcefc\n"
    },
    {
      "commit": "b89ccb0e3e412f65f512bb5f3ebcd93de696b8a9",
      "tree": "7f968c0f6d5399c428384ce5864e79d3cf115195",
      "parents": [
        "5c2a67856070668b9f886a5e1fef7694444b8a1f"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Dec 30 16:19:01 2020 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Thu Mar 11 02:31:42 2021 +0000"
      },
      "message": "Move drag event to InputDispatcher (3/n)\n\nThis CL re-implements the drag hover detecting in InputDispatcher,\nmoving it away from DragState.\n\nCurrently, any window or windowless surface could receive drag event if\nit is visible and touch-deliverable. But it\u0027s hard to tell if a surface\ncould receive this drag event in WM side because we didn\u0027t know the\nfinal touch region of the surface that could be cropped by others.\n\nThe new expected behaviors are:\n- DragAndDropController will transfer touch to drag window when perform\n  drag, and InputDispatcher will store drag window when transfer\n  touch focus.\n- InputDispatcher will start detecting drag hover window by pointer.\n- Send drag exit if drag pointer leave the window.\n- Send drag event to the target window during moving.\n\nBug: 158242495\nTest: atest inputflinger_test\nChange-Id: I0266f81afd4fb60280ae7694dd7241500cf9cb18\n"
    },
    {
      "commit": "5c2a67856070668b9f886a5e1fef7694444b8a1f",
      "tree": "326c333299927d17ddd6086031429959f036be6c",
      "parents": [
        "eeb9ba214c25c39093529cfa9cf1d540ea1fe2b8",
        "d7482e78de144f17c35ad63f187333df0bff531f"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 11 01:40:37 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 01:40:37 2021 +0000"
      },
      "message": "Merge \"Per-window input rotation: Let InputReader use un-rotated coordinates\" into sc-dev"
    },
    {
      "commit": "bd52771be41ae18f9fda43301eeeab89021d4248",
      "tree": "2c18ead52b1185fbe3bc952f6957e9993b3b196f",
      "parents": [
        "a7836eb3ded16ace0f1fe4a8596184b081daa48b"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 09 19:17:09 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Mar 10 14:25:23 2021 -0800"
      },
      "message": "InputDispatcher: Remove transform for non-pointer events\n\nMotionEvents that are not pointer events should not have a window\ntransform associated with them because they don\u0027t correspond to\non-screen locations.\n\nBug: 182325974\nTest: manual, verify pointer capture in freeform and multi-window modes\nChange-Id: I774bbdfacffa68a42e72e3ca52ec4b474560ff34\n"
    },
    {
      "commit": "d7482e78de144f17c35ad63f187333df0bff531f",
      "tree": "37b83ed4cefa6944a3b4736e655c9024bcafee7e",
      "parents": [
        "a7836eb3ded16ace0f1fe4a8596184b081daa48b"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 09 13:54:55 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 09 15:46:00 2021 -0800"
      },
      "message": "Per-window input rotation: Let InputReader use un-rotated coordinates\n\nInputReader works in the rotated coordinate system that is oriented with\nthe display\u0027s orientation obtained through DisplayViewport.\n\nWhen per-window input rotation is enabled, we let InputReader work in\nthe un-rotated coordinate space as if the display\u0027s orientation is\nalways ROTATION_0. Since the input rotation is included in the\nper-window transform, the output from InputReader should not be rotated.\n\nThis requires two changes in InputReader:\n\n1. When setting an orientation to use for an InputDevice, we do the\nopposite of the default behavior: If a device was being rotated before,\nwe don\u0027t rotate it anymore, and vice-versa. We invert the direction of\nthe rotation so that when the coordinates are rotated by the per-window\ntransform, they appear as expected.\n\n2. Since PointerController should still use the rotated coordinates, we\nneed to convert all display coordinates going in/out of\nPointerController.\n\nBug: 179274888\nTest: test touch, mouse, and touchpad input in all four orientations\nusing a test app and the PointerLocationView.\n\nChange-Id: I1eec8ba1d72355564a79cdf1c14c88828124e8a4\n"
    },
    {
      "commit": "d3fef469955c015e6f54816bde81eae831c7c048",
      "tree": "edea53db907c5c16f346f3dfbd85b90593faffdd",
      "parents": [
        "7aba05457ddc099639e3636b7dcc80e8e4aa2346"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun Mar 07 17:10:08 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Mar 09 11:01:15 2021 -0800"
      },
      "message": "Add InputDevice stats atom logging\n\nLogging InputDevice information with Android stats atom, when an\nInputDevice is added to inputflinger.\n\nBug: 170321221\nTest: Manual test: m statsd_testdrive, statsd_testdrive id\nChange-Id: I484fd0a487b35c1946ee7db6ff0f70a92168b6bd\n"
    },
    {
      "commit": "11e34081ef8227755c655c53953f7e2aad0bb090",
      "tree": "96e6add30f8f13bf7e8b94fd30554f9dbdcbf814",
      "parents": [
        "cf69b996705e8cf02fe0880ce4f0ebf562fc2cff",
        "b04b9b8a04851db813e913fc2e3db3b91e1fe196"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Mar 09 04:35:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 04:35:46 2021 +0000"
      },
      "message": "Merge \"Add support for a hw_timeout_multiplier system property.\" into sc-dev"
    },
    {
      "commit": "a170ec6a87f2720eb9846ea75cd9807db54b12ad",
      "tree": "fbaa8d357947b7ed294542aec7f1f80d671a9919",
      "parents": [
        "e173113c1e0b1293a991959086c71afab2f9fb2c",
        "57479982c2af7174cf36adad1ef1399a47d44699"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 04 23:47:47 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 04 23:47:47 2021 +0000"
      },
      "message": "Merge \"Do not modify vector after getting references\" into sc-dev"
    },
    {
      "commit": "ef300c1454b17b529a1e1d7b39a4ff77f5365009",
      "tree": "55d30444fafe8a3c6004fafeab4ce351c387d4af",
      "parents": [
        "b93cfe24b26e331f5e55a872194a8210019d5304",
        "7766c03ec5f76ea0ad6e37b214c425653b8416a6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 03 01:52:12 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 03 01:52:12 2021 +0000"
      },
      "message": "Merge \"Use NamedEnum for printing Entry type\" into sc-dev"
    },
    {
      "commit": "57479982c2af7174cf36adad1ef1399a47d44699",
      "tree": "f2d10e38e1951b049c38c01e58e5f152548df2d5",
      "parents": [
        "7766c03ec5f76ea0ad6e37b214c425653b8416a6"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 03 01:32:21 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 03 01:35:22 2021 +0000"
      },
      "message": "Do not modify vector after getting references\n\nWe used to obtain a reference to a specific element inside a vector. We\nwould then modify the vector, invalidating the reference. But we then\nused the reference, and passed it to \u0027assignPointerIds\u0027.\n\nRefactor the code to modify the collection first, and then to proceed\nwith modifying / reading the elements.\n\nBug: 179839665\nTest: atest inputflinger_tests (on a hwasan build)\nChange-Id: I9204b954884e9c83a50babdad5e08a0f6d18ad78\n"
    },
    {
      "commit": "7766c03ec5f76ea0ad6e37b214c425653b8416a6",
      "tree": "b719f3e36c34185733791d9d678bc544ae93b4d5",
      "parents": [
        "86d048d6f0d02e568fd1f1360d13db2b3fc9d049"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 02 20:32:20 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 02 20:46:34 2021 +0000"
      },
      "message": "Use NamedEnum for printing Entry type\n\nCurrently, we are using InputMessage::typeToString, a manually written\nfunction, to print the entry type.\n\nLet\u0027s use \"NamedEnum\" instead to simplify the process of adding new\ntypes.\n\nBug: 167947340\nTest: compile only\nChange-Id: I26d0a469bf93adbe2795d8a378c25e6ded891274\n"
    },
    {
      "commit": "6025467214c00568a5f903a1c82810c5dfef35be",
      "tree": "35d67f3e2e33b021f24501ef35696b326a2fdc7f",
      "parents": [
        "65936cc763582d098d6e5fcd75cf1d52bbcff4c5",
        "7393d1743eb3aef35ffe84cc303df720f9791b43"
      ],
      "author": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Tue Mar 02 10:42:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 02 10:42:36 2021 +0000"
      },
      "message": "Merge \"Add InputDispatcher unit tests for untrusted touches [6/n]\" into sc-dev"
    },
    {
      "commit": "8fafd5dc0deb392ce05e66950c53cc574da39fa0",
      "tree": "8f9398e2e9044ac87757daf974d36d8c6c77fc8e",
      "parents": [
        "a3332676dbcc550d324c61e6762a08fddbd6ea47",
        "be05b5bf11c22ad50a27b9a99472d0446d2eb230"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 01 21:38:45 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 01 21:38:45 2021 +0000"
      },
      "message": "Merge \"InputDispatcher: Fix incorrect sensorType parameter when debugging\" into sc-dev"
    },
    {
      "commit": "a3332676dbcc550d324c61e6762a08fddbd6ea47",
      "tree": "2adffeec74414319f338a29c263299a8ef8c47d9",
      "parents": [
        "cd5e6384eb9d51ea6a1907952ebd3a395f0b2b39",
        "a4c502a3c1802ed986ac81cd1ae7778287c93d4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 01 21:05:34 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 01 21:05:34 2021 +0000"
      },
      "message": "Merge \"Prevent duplicate devices from getting registered\" into sc-dev"
    },
    {
      "commit": "a4c502a3c1802ed986ac81cd1ae7778287c93d4e",
      "tree": "67bd25bfddbb06ac57974b9245dc3cfb2fbebc44",
      "parents": [
        "79e26e175fe62e1dc31a6f587a3a9f999db59db2"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Feb 05 00:45:20 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Mar 01 18:21:02 2021 +0000"
      },
      "message": "Prevent duplicate devices from getting registered\n\nIn EventHub, we have the following race currently present:\n\n1. Phone is booted\n2. EventHub is created. First, mNeedToScanDevices is set to true in the initializer list.\nThen, in constructor body, inotify gets set up.\n3. Around the same time, the touch driver is probing.\n\nBased on the logs, steps 2. and 3. happen within a millisecond of each other.\n\n4. Since inotify is already registered, we are getting an inotify callback in EventHub.\n5. EventHub::getEvents is executed.\nscanDevicesLocked happens first and finds the /dev/input/event3 node that is now present.\n6. The new device gets added\n7. The pending inotify is read. The device is added again.\n\nSo this is a race between scanDir and registration of inotify. If we register inotify\nafter scanDir, we run the risk of missing the device, if it happens to appear between those\ntwo tasks. If we register before (as we do now), we run the risk of double-registering a device, which is surfaced by this bug.\n\nIn the inotify interface, there does not appear to be any api to get\ncallbacks for the nodes that are already present. As a result, we put a\nsimple patch to prevent this race.\n\nBug: 178139688\nTest: manually verified by adding and reviewing the logs on device\nTest: verified using a proof-of-concept test in patchset 4\nChange-Id: I1bbe7574dfe84c79c112e538f14f5a0dcde98dcc\n"
    },
    {
      "commit": "7393d1743eb3aef35ffe84cc303df720f9791b43",
      "tree": "462845998b6ae7b1a27590192406f2ae004df455",
      "parents": [
        "a43a5a4be9d417948a2984af8c0cec2e26063b3f"
      ],
      "author": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Fri Feb 26 13:56:11 2021 +0000"
      },
      "committer": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Mon Mar 01 18:03:44 2021 +0000"
      },
      "message": "Add InputDispatcher unit tests for untrusted touches [6/n]\n\nLast tests (for now at least). Tests around BLOCK_UNTRUSTED mode and\none for same application token.\n\nBug: 158002302\nFix: 177840583\nTest: atest InputDispatcherUntrustedTouchesTest\nChange-Id: Ibbd7156c48977571ca54b7bc305b698b463ec2c6\n"
    },
    {
      "commit": "886de14415a0263ca49e7010f217dff502c9a769",
      "tree": "ddae28885155fbbcdc36e89198f7c5a5bf4ad9c3",
      "parents": [
        "2ca7b8f9b1e4d00c055a03c6950cf874aeb0a80c",
        "3306e497c5b6c85164713032de0c789d5a118f89"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 02:11:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 02:11:38 2021 +0000"
      },
      "message": "Merge \"[LSC] Add LOCAL_LICENSE_KINDS to frameworks/native\" into sc-dev"
    },
    {
      "commit": "834da01d354176d7775131b2a3f7d443a757b46b",
      "tree": "e70217015d5bf558428380994119020a77f1cbe4",
      "parents": [
        "671994c80bad8c58d6b79ee94e0b1eae26423b2a",
        "1dcad9858006c650b0f25a31e87975f183e86dd0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 26 00:34:00 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 00:34:00 2021 +0000"
      },
      "message": "Merge \"FocusResolver: Persist focus requests\" into sc-dev"
    },
    {
      "commit": "3306e497c5b6c85164713032de0c789d5a118f89",
      "tree": "49d03f9512073b8dd90e517e605d8d627d3aa26c",
      "parents": [
        "671994c80bad8c58d6b79ee94e0b1eae26423b2a"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 15:35:37 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 15:35:37 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/native\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  cmds/atrace/Android.bp\n  cmds/bugreport/Android.bp\n  cmds/bugreportz/Android.bp\n  cmds/cmd/Android.bp\n  cmds/dumpstate/Android.bp\n  cmds/dumpsys/Android.bp\n  cmds/dumpsys/tests/Android.bp\n  cmds/flatland/Android.mk\n  cmds/idlcli/Android.bp\n  cmds/installd/Android.bp\n  cmds/installd/tests/Android.bp\n  cmds/ip-up-vpn/Android.mk\n  cmds/lshal/Android.bp\n  cmds/lshal/libprocpartition/Android.bp\n  cmds/rawbu/Android.bp\n  cmds/rss_hwm_reset/Android.bp\n  cmds/service/Android.bp\n  cmds/servicemanager/Android.bp\n  cmds/surfacereplayer/Android.bp\n  cmds/surfacereplayer/proto/Android.bp\n  cmds/surfacereplayer/replayer/Android.bp\n  data/etc/Android.bp\n  libs/adbd_auth/Android.bp\n  libs/android_runtime_lazy/Android.bp\n  libs/arect/Android.bp\n  libs/attestation/Android.bp\n  libs/attestation/tests/Android.bp\n  libs/binder/Android.bp\n  libs/binder/ndk/Android.bp\n  libs/binder/ndk/tests/Android.bp\n  libs/binder/parcel_fuzzer/Android.bp\n  libs/binder/rust/Android.bp\n  libs/binder/rust/tests/Android.bp\n  libs/binder/tests/Android.bp\n  libs/binder/tests/fuzzers/Android.bp\n  libs/binderdebug/Android.bp\n  libs/binderdebug/tests/Android.bp\n  libs/binderthreadstate/1.0/Android.bp\n  libs/binderthreadstate/Android.bp\n  libs/bufferqueueconverter/Android.bp\n  libs/cputimeinstate/Android.bp\n  libs/diskusage/Android.bp\n  libs/dumputils/Android.bp\n  libs/fakeservicemanager/Android.bp\n  libs/ftl/Android.bp\n  libs/gralloc/types/Android.bp\n  libs/gralloc/types/fuzzer/Android.bp\n  libs/gralloc/types/tests/Android.bp\n  libs/graphicsenv/Android.bp\n  libs/gui/Android.bp\n  libs/gui/sysprop/Android.bp\n  libs/gui/tests/Android.bp\n  libs/incidentcompanion/Android.bp\n  libs/input/Android.bp\n  libs/input/tests/Android.bp\n  libs/math/Android.bp\n  libs/math/tests/Android.bp\n  libs/nativebase/Android.bp\n  libs/nativedisplay/Android.bp\n  libs/nativewindow/Android.bp\n  libs/nativewindow/tests/Android.bp\n  libs/renderengine/Android.bp\n  libs/renderengine/tests/Android.bp\n  libs/sensor/Android.bp\n  libs/sensor/tests/Android.bp\n  libs/sensorprivacy/Android.bp\n  libs/ui/Android.bp\n  libs/ui/tests/Android.bp\n  libs/ui/tools/Android.bp\n  libs/vibrator/Android.bp\n  libs/vibrator/fuzzer/Android.bp\n  libs/vr/libbroadcastring/Android.bp\n  libs/vr/libbufferhub/Android.bp\n  libs/vr/libbufferhubqueue/Android.bp\n  libs/vr/libbufferhubqueue/benchmarks/Android.bp\n  libs/vr/libbufferhubqueue/tests/Android.bp\n  libs/vr/libdisplay/Android.bp\n  libs/vr/libdvr/Android.bp\n  libs/vr/libdvr/tests/Android.bp\n  libs/vr/libdvrcommon/Android.bp\n  libs/vr/libpdx/Android.bp\n  libs/vr/libpdx/fuzz/Android.bp\n  libs/vr/libpdx_default_transport/Android.bp\n  libs/vr/libpdx_uds/Android.bp\n  libs/vr/libperformance/Android.bp\n  libs/vr/libvr_manager/Android.bp\n  libs/vr/libvrflinger/Android.bp\n  libs/vr/libvrflinger/tests/Android.bp\n  libs/vr/libvrsensor/Android.bp\n  opengl/libs/Android.bp\n  opengl/tests/EGLTest/Android.bp\n  opengl/tests/configdump/Android.bp\n  opengl/tests/fillrate/Android.bp\n  opengl/tests/filter/Android.bp\n  opengl/tests/finish/Android.bp\n  opengl/tests/gl2_basic/Android.bp\n  opengl/tests/gl2_cameraeye/Android.bp\n  opengl/tests/gl2_copyTexImage/Android.bp\n  opengl/tests/gl2_java/Android.bp\n  opengl/tests/gl2_jni/Android.bp\n  opengl/tests/gl2_yuvtex/Android.bp\n  opengl/tests/gl_basic/Android.bp\n  opengl/tests/gl_jni/Android.bp\n  opengl/tests/gl_perf/Android.bp\n  opengl/tests/gl_perfapp/Android.bp\n  opengl/tests/gl_yuvtex/Android.bp\n  opengl/tests/gldual/Android.bp\n  opengl/tests/gralloc/Android.bp\n  opengl/tests/hwc/Android.bp\n  opengl/tests/lib/Android.bp\n  opengl/tests/lighting1709/Android.bp\n  opengl/tests/linetex/Android.bp\n  opengl/tests/swapinterval/Android.bp\n  opengl/tests/testFramerate/Android.bp\n  opengl/tests/testLatency/Android.bp\n  opengl/tests/testPauseResume/Android.bp\n  opengl/tests/testViewport/Android.bp\n  opengl/tests/textures/Android.bp\n  opengl/tests/tritex/Android.bp\n  services/audiomanager/Android.bp\n  services/automotive/display/Android.bp\n  services/batteryservice/Android.bp\n  services/displayservice/Android.bp\n  services/gpuservice/Android.bp\n  services/gpuservice/bpfprogs/Android.bp\n  services/gpuservice/gpumem/Android.bp\n  services/gpuservice/gpustats/Android.bp\n  services/gpuservice/tests/unittests/Android.bp\n  services/gpuservice/tracing/Android.bp\n  services/inputflinger/Android.bp\n  services/inputflinger/benchmarks/Android.bp\n  services/inputflinger/dispatcher/Android.bp\n  services/inputflinger/host/Android.bp\n  services/inputflinger/reader/Android.bp\n  services/inputflinger/reporter/Android.bp\n  services/inputflinger/tests/Android.bp\n  services/powermanager/Android.bp\n  services/powermanager/benchmarks/Android.bp\n  services/powermanager/tests/Android.bp\n  services/schedulerservice/Android.bp\n  services/sensorservice/Android.bp\n  services/sensorservice/hidl/Android.bp\n  services/sensorservice/tests/Android.bp\n  services/stats/Android.bp\n  services/surfaceflinger/Android.bp\n  services/surfaceflinger/CompositionEngine/Android.bp\n  services/surfaceflinger/FrameTimeline/Android.bp\n  services/surfaceflinger/TimeStats/Android.bp\n  services/surfaceflinger/TimeStats/timestatsproto/Android.bp\n  services/surfaceflinger/layerproto/Android.bp\n  services/surfaceflinger/sysprop/Android.bp\n  services/surfaceflinger/tests/Android.bp\n  services/surfaceflinger/tests/fakehwc/Android.bp\n  services/surfaceflinger/tests/unittests/Android.bp\n  services/surfaceflinger/tests/vsync/Android.bp\n  services/surfaceflinger/tests/waitforvsync/Android.bp\n  services/utils/Android.bp\n  services/utils/tests/Android.bp\n  services/vibratorservice/Android.bp\n  services/vibratorservice/benchmarks/Android.bp\n  services/vibratorservice/test/Android.bp\n  services/vr/bufferhubd/Android.bp\n  services/vr/hardware_composer/Android.bp\n  services/vr/hardware_composer/aidl/Android.bp\n  services/vr/virtual_touchpad/Android.bp\n  vulkan/libvulkan/Android.bp\n  vulkan/nulldrv/Android.bp\n  vulkan/vkjson/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_notice\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT legacy_notice\nto:\n  opengl/Android.bp\n  opengl/tests/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    legacy_notice\nto:\n  libs/vr/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  headers/Android.bp\n  services/vr/Android.bp\n  vulkan/Android.bp\n\nAdded SPDX-license-identifier-BSD SPDX-license-identifier-MIT\n    legacy_notice\nto:\n  opengl/tests/angeles/Android.bp\n\nAdded SPDX-license-identifier-MIT\nto:\n  services/vr/performanced/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: Icd397e38ca313ae4886bd92afa927d4633a75c4f\n"
    },
    {
      "commit": "1dcad9858006c650b0f25a31e87975f183e86dd0",
      "tree": "70f681bc39b3f2e0303f6c69041d04493cebb323",
      "parents": [
        "a8bad0e28a3ba92eed11b75d1e18f00b79f70efa"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Feb 24 14:38:25 2021 -0800"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Feb 25 12:25:09 2021 -0800"
      },
      "message": "FocusResolver: Persist focus requests\n\nWhen WM provides a focus request, the request is handled or\nkept in a pending state until the window becomes visible. The request\nis dropped in all other cases such as the window handle does not have\nthe focusable flag set. This might lead to cases where a focus request\nis dropped as a result of state mismatch or synchronization issues\nbetween wm and sf.\n\nThis fix makes the focus request persistent and better aligns with the\nprevious model where the focus bit was set as part of the window handle.\nThis means a request will be handled as long as the window is focusable\nor replaced by another request. If the window toggles its focusability,\nit will lose and gain focus.\n\nTest: atest inputflinger_tests\nTest: go/wm-smoke\nTest: atest atest FlickerTests\nBug: 176451870\nChange-Id: I790a4b69c15f595109118d49167cf9a450e67ec9\n"
    },
    {
      "commit": "a2a777386263118bdd758a9ff28c20216c0f3d09",
      "tree": "d58ebac7a3753ad04c75e2bbe470c0fc45a9d5e3",
      "parents": [
        "79e26e175fe62e1dc31a6f587a3a9f999db59db2"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 11:46:30 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 11:49:26 2021 -0800"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to frameworks/native\"\n\nThis reverts commit f84491a4874f20653104f47622d7215521310526.\n\nThis reverts commit 2e6718529b3f3b55d310db6738e71255e9b74dee.\n\nChange-Id: I1a9655335b856d6909b27929e00c0bde3186d893\n"
    },
    {
      "commit": "09c142e6660f4e7e866eab9fe2cfdc89cd82b48e",
      "tree": "edcb8c5ac9cf5923f35c9cea1c8742757ce7d43e",
      "parents": [
        "96a824cecf22fdc1e961e6b48c8549aba4b87292",
        "a43a5a4be9d417948a2984af8c0cec2e26063b3f"
      ],
      "author": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Thu Feb 25 17:32:44 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 17:32:44 2021 +0000"
      },
      "message": "Merge \"Add InputDispatcher unit tests for untrusted touches [5/n]\" into sc-dev"
    },
    {
      "commit": "01803f65fb75a3fe4012f45a0f3aedc0d51c36c7",
      "tree": "6486e480eaec4290dcfef09fdb3056cba559acf8",
      "parents": [
        "38f5ed3d50940e1417e60245ab70d47d29feed64",
        "b4e0a59973efabf4f9ce93bffec24a552fb91361"
      ],
      "author": {
        "name": "Sean Stout",
        "email": "sstout@google.com",
        "time": "Thu Feb 25 10:28:37 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 10:28:37 2021 +0000"
      },
      "message": "Merge \"Include display ID in user activity reporting\" into sc-dev"
    },
    {
      "commit": "38f5ed3d50940e1417e60245ab70d47d29feed64",
      "tree": "e9c0cfa1cc8a941f013f83e0886bb86b443603b7",
      "parents": [
        "43354f9f2c221860700e3769e99c69dffc0bca7c",
        "d193677e001bcc630a5e3bf1da717e1b6321b569"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 25 07:19:59 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 07:19:59 2021 +0000"
      },
      "message": "Merge \"Remove the trailing new line from output of sysfs capacity_level file.\" into sc-dev"
    },
    {
      "commit": "d193677e001bcc630a5e3bf1da717e1b6321b569",
      "tree": "35027d94d6cc9147ae5a9790f2009a4f38552b3d",
      "parents": [
        "329808e195760ea0b1984b7878693da457837a55"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon Feb 22 10:30:40 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Feb 24 20:46:09 2021 -0800"
      },
      "message": "Remove the trailing new line from output of sysfs capacity_level file.\n\nSome input device kernel driver populates capacity_level string with\nnew line, need to trim it before looking it up.\n\nBug: 180925649\nTest: Manual test with Nintendo Switch Pro controller\nChange-Id: Iae1744075c56ad7f95060d07bfe9f254e1a5f3dc\n"
    },
    {
      "commit": "be05b5bf11c22ad50a27b9a99472d0446d2eb230",
      "tree": "b4ae0ce21bc8b58998fa086d61b0035a7e5df3a5",
      "parents": [
        "ee577e1b3691af74612929ca00743f2230180f15"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Feb 24 16:39:43 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Feb 24 16:41:30 2021 -0800"
      },
      "message": "InputDispatcher: Fix incorrect sensorType parameter when debugging\n\nBug: None\nTest: build\nChange-Id: Ia8ef950fe4760c2ab8dec566ace808780d99772b\n"
    },
    {
      "commit": "a43a5a4be9d417948a2984af8c0cec2e26063b3f",
      "tree": "1cffaf99b7d8dbe185489b36fb66ed7411904f01",
      "parents": [
        "7dc57eff26cb36da4e7e92e74217855d40a9d56a"
      ],
      "author": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Wed Feb 17 12:21:14 2021 +0000"
      },
      "committer": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Wed Feb 24 16:19:40 2021 +0000"
      },
      "message": "Add InputDispatcher unit tests for untrusted touches [5/n]\n\nThis is the unit test compliment of ag/12198106.\n\nTest that taps *inside* windows with flags FLAG_WATCH_OUTSIDE_TOUCH |\nFLAG_NOT_TOUCHABLE result in ACTION_OUTSIDE events. This is important\nfor security to make sure apps can\u0027t learn the position of touches\n(outside vs inside) while letting them pass-through.\n\nBug: 158002302\nBug: 177840583\nFix: 110901409\nTest: atest InputDispatcherUntrustedTouchesTest\nChange-Id: Iaa59fa4c057c2f1d81d0e7010fddf0248adf23e5\n"
    },
    {
      "commit": "a0b1e44aa7e4f7995d7086c29b97f3ee2c2ca9a2",
      "tree": "1ca7f257951f68e86cf8b17052fc8e4ce4a50cf6",
      "parents": [
        "6fd33e3d9dbbb548378ff0b9b2bff429d465abaf",
        "58ba3d153472d8faff31de9033dfb2940ef77777"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Feb 24 05:56:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 05:56:46 2021 +0000"
      },
      "message": "Merge \"Pass RawEvent latency from InputReader to InputListener\" into sc-dev"
    },
    {
      "commit": "b4e0a59973efabf4f9ce93bffec24a552fb91361",
      "tree": "a9154d1f410683ba6920603fc631dc20d6456744",
      "parents": [
        "44e9f3b54d71a0b71d10918047163fd11bebfdf8"
      ],
      "author": {
        "name": "Sean Stout",
        "email": "sstout@google.com",
        "time": "Tue Feb 23 07:34:53 2021 -0800"
      },
      "committer": {
        "name": "Sean Stout",
        "email": "sstout@google.com",
        "time": "Tue Feb 23 21:52:32 2021 -0800"
      },
      "message": "Include display ID in user activity reporting\n\nWhen reporting user activity, include the display ID that was interacted\nwith. This will facilitate supporting per-DisplayGroup timeout behavior.\n\nBug: 175764389\nTest: manual - ensure display ID is sent correctly\nChange-Id: I4b9e615cbda06e8c8b26a88a5193563ab3739148\n"
    },
    {
      "commit": "58ba3d153472d8faff31de9033dfb2940ef77777",
      "tree": "55bd14155b11597072d6d32f8b01b46f20927d08",
      "parents": [
        "55ee875058762d442ce645576fc95bcd3621a1e0"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Feb 11 01:31:07 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Feb 23 23:50:25 2021 +0000"
      },
      "message": "Pass RawEvent latency from InputReader to InputListener\n\nTo keep track of the lower-level latency like touch driver latency, keep\ntrack of the time when eventhub reads the events.\n\nThis information will be stored inside RawEvent as it is being read.\n\nNext, this information will be passed to the InputListener. The InputListener will\nreport this data to LatencyTracker, which will aggregate this\ninformation in order to get end-to-end touch latency.\n\nDifferent mappers process the input_event events differently. So a\nmapper-specific approach is used here.\n\nBug: 169866723\nTest: atest inputflinger_tests\nChange-Id: I5e4e90b3251351327022c467af99a6d84f82164e\n"
    },
    {
      "commit": "7d3bb35c99a6aed98eef635cc35cd8595f50e688",
      "tree": "266d980b4d9d712216142af772ef3afe30a98697",
      "parents": [
        "7dc57eff26cb36da4e7e92e74217855d40a9d56a"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Feb 23 08:07:55 2021 -0800"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Feb 23 08:09:16 2021 -0800"
      },
      "message": "LightInputMapper: Use const reference for some args\n\nWe switch a couple of function arguments to const reference\ninstead of by-copy.\n\nBug: 161633625\nTest: TreeHugger\nChange-Id: I37a80c1ac1e7907315951ed3b65653eec4bde2b5\n"
    }
  ],
  "next": "87645ab5f53a143a12e9bf67bc5f5e6dcbdcf90d"
}
