)]}'
{
  "log": [
    {
      "commit": "737667499d0535e780a9b4fb4bd60a93add3577d",
      "tree": "515b86a322aa580a1511b5dc0350bb6e2e414298",
      "parents": [
        "97c05f176eaa4f68e78f29eeb39c156274c244d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 09 17:16:28 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 09 17:56:31 2023 +0000"
      },
      "message": "Regularize formatting of \u003candroid/sharedmem.h\u003e docs.\n\nBug: https://github.com/android/ndk/issues/1933\nTest: treehugger\nChange-Id: Ifbb4d08722aa953f3e86d770e8d6c9017ab9d680\n"
    },
    {
      "commit": "cd9f121268c7461d2f96788ed1cf895faeae1c4d",
      "tree": "b63129b72cc87173679b0729d57e42cb17ec5549",
      "parents": [
        "abd53c9ea7b471d774b3054920ff08edd97c18bb",
        "b360539ad268252394e1efecb504ecae1b4e96d2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 25 20:52:17 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Sep 25 20:52:17 2023 +0000"
      },
      "message": "Merge \"Add CoGS team as OWNERS of ftl\" into main am: b360539ad2\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2762145\n\nChange-Id: Ica2eb723f5477eabe739cb6c8241b77469b93a16\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "eb44a9cf3836848862214b61c964a823beb86558",
      "tree": "ed6f355b735613065ca1427377436dce702abc26",
      "parents": [
        "9a14813c0bcf6bb85262040380d394d1eeaaf71d"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Sep 25 19:42:56 2023 +0000"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Sep 25 19:42:58 2023 +0000"
      },
      "message": "Add CoGS team as OWNERS of ftl\n\nChange-Id: I3a0c6b46197debe5985d386b56bb1178e24d85f9\n"
    },
    {
      "commit": "ba1dae5b26d4a5a0a29e83670ae96a704d1e1b1d",
      "tree": "af7a35a05137758a6b1117e12774e01055e2af0a",
      "parents": [
        "84deea7501094b9b9d5bff43a05f9e806c5b1fd1",
        "aedcfe8397afed5eb5f823e5fe40b7cbf3c1c908"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 19 18:36:57 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 19 18:36:57 2023 +0000"
      },
      "message": "Merge \"Use `` for code font rather than ||.\" into main am: aedcfe8397\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2753315\n\nChange-Id: I50f822b234e1f4806886eac5848da71691600109\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "aedcfe8397afed5eb5f823e5fe40b7cbf3c1c908",
      "tree": "3ba0f4d31f48f395befa2b466574ee5c568966b6",
      "parents": [
        "ba1f9d6702d1ae1b2d36d2088e15451d0bf9ff30",
        "84612edbefcb547dfae1a441d05a151b64c0473b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 19 17:45:54 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 17:45:54 2023 +0000"
      },
      "message": "Merge \"Use `` for code font rather than ||.\" into main"
    },
    {
      "commit": "f9323e4f88af0ef22c761316fee134be253ba7c3",
      "tree": "a033af19d20e4442ab1443fa99ee8e6a8328497f",
      "parents": [
        "325bf886893d46f3a142a65ce576de87965ce942",
        "a1d5887936b9df2046c21316a2fbc2ad8d72e25d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 18 20:28:12 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Sep 18 20:28:12 2023 +0000"
      },
      "message": "Merge \"s/FD_SETFD/F_SETFD/.\" into main am: a1d5887936\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2752732\n\nChange-Id: I40049c07a67828ef494e1cbd01ca36ea61c3f41e\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "a1d5887936b9df2046c21316a2fbc2ad8d72e25d",
      "tree": "39e4b670e6ae63ec1a3d6c3d7dbc80f8ded1ac11",
      "parents": [
        "4526e2a5a9af44cb94e5a0b68d155c30ccebacfc",
        "950ee79d9376e0c63436aa1ab1385fcdc4507977"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 18 19:25:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 19:25:49 2023 +0000"
      },
      "message": "Merge \"s/FD_SETFD/F_SETFD/.\" into main"
    },
    {
      "commit": "9039cb87793e315bba40c42290b0b30e946e4cc6",
      "tree": "95289799bd5368f6fd6a8a59cf0fcbfdcd13912c",
      "parents": [
        "5e0ef9f48bf73367de7c321613ab8061692819e8",
        "92db70b61821d3916cc89d6bcb1cb2d82e2264c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat Sep 16 00:30:22 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Sep 16 00:30:22 2023 +0000"
      },
      "message": "Merge \"Fix formatting.\" into main am: 92db70b618\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2752733\n\nChange-Id: Ibfbfe8eadd22a84d16ca033faaf33824af1e19a4\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "84612edbefcb547dfae1a441d05a151b64c0473b",
      "tree": "9a0ae34819493778f8b9f471b1b764ca1710cf49",
      "parents": [
        "e88ec57f5ec6dce50d0c2a6d1468145b77cde99e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 15 22:54:30 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 15 22:54:30 2023 +0000"
      },
      "message": "Use `` for code font rather than ||.\n\nCurrent wrong formatting:\nhttps://developer.android.com/ndk/reference/group/bitmap#androidbitmap_compress\n\nBug: https://github.com/android/ndk/issues/1933\nTest: treehugger\nChange-Id: I7174c728fbe589e1d80be82a5f0df56e054c9609\n"
    },
    {
      "commit": "d4b452cd4d879014c40945353502b774a2558681",
      "tree": "245c7dcf15a88080fb437e5d1d9fb6b38a08c03f",
      "parents": [
        "e88ec57f5ec6dce50d0c2a6d1468145b77cde99e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 15 22:52:03 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 15 22:52:03 2023 +0000"
      },
      "message": "Fix formatting.\n\nThese words are meant to be in the code _font_, not in their own\nseparate code _blocks_. See\nhttps://developer.android.com/ndk/reference/group/thermal#athermal_getthermalheadroom\nfor the current wrong formatting.\n\nBug: https://github.com/android/ndk/issues/1933\nTest: treehugger\nChange-Id: I2a30439bd58dd1435c4efb525a90e06631fbe6cf\n"
    },
    {
      "commit": "950ee79d9376e0c63436aa1ab1385fcdc4507977",
      "tree": "e36f203230927a6c347805af225e9b2622e1668d",
      "parents": [
        "e88ec57f5ec6dce50d0c2a6d1468145b77cde99e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 15 22:46:31 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 15 22:49:13 2023 +0000"
      },
      "message": "s/FD_SETFD/F_SETFD/.\n\nAlso fix an \u0027a\u0027/\u0027an\u0027 typo.\n\nBug: https://github.com/android/ndk/issues/1933\nTest: treehugger\nChange-Id: Ifd505772dce79ebd68d928c67775030e2fd98d3f\n"
    },
    {
      "commit": "1930f60ddfe3f2e3e7b5e7137772e1be84cc78e2",
      "tree": "db24538c6d629a1208bf53b22fac528474200b18",
      "parents": [
        "784055ed4694602516e48e12fa74ef1739ae5066",
        "979f2d8a9553e5788f49fc423b7785b47997d143"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 26 15:04:48 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 26 15:04:48 2023 +0000"
      },
      "message": "Merge \"Add a unit test for TouchpadInputMapper\" into udc-dev"
    },
    {
      "commit": "979f2d8a9553e5788f49fc423b7785b47997d143",
      "tree": "f3e3e46520ec09dfcb5da3e9a7b247e7a5782eeb",
      "parents": [
        "119daca2c6ef663c7b5b7985e7f02a13066e3c51"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue May 16 14:26:24 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 24 07:25:15 2023 -0700"
      },
      "message": "Add a unit test for TouchpadInputMapper\n\nThis test will provide RawEvent\u0027s to TouchpadInputMapper and will look\nat the returned events.\n\nThe main purpose of this CL is to document the existing behaviour of\nCursorInputMapper and TouchpadInputMapper. The tests highlights that\ntoday, dispatcher must handle the case where the touch starts without\nHOVER_EXIT. That means that the dispatcher logs of \"conflicting pointer\nactions\" can be mostly ignored.\n\nThe goal was to make the tests for the two mappers as similar to each\nother as possible.\n\nA slightly different testing infra is introduced here compared to the\none used in InputReader_test.\n\nChanges:\n* Use mocks for interfaces instead of constructed objects\nThis helps figure out which parts are important to mock for a specific\ntest vs which ones are not. When a function is called with a parameters\nthat the mocks aren\u0027t expecting, a warning is printed during test run.\nThis helps identify the complete state needed in order for the test to\nexecute.\n\n* No longer require InstrumentedInputReader\n\n* No longer require a listener. We only check the events that are coming\n  from the \u0027process\u0027 call, which is what the interface for the mapper\n  does.\n\nLimitations:\n* Still require an InputDevice object to be constructed in order to test\n  InputMappers. Ideally, a mapper would only depend on the EventHub\n  state (to read the current value of keys / axes after a reset).\n\nBug: 263319225\nTest: m inputflinger_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/inputflinger_tests/inputflinger_tests --gtest_filter\u003d\"*HoverAndLeftButtonPress*\"\nChange-Id: I7de0dee7abcf6bcb9d3283e29d9a85de2f331a44\n"
    },
    {
      "commit": "2c5692bd42154e938474b6f9638d3edb1c6b4c91",
      "tree": "9b9fc3b60e51d2cfd95eaabe2f93c7d929878e9e",
      "parents": [
        "bb319326a6a8235e0227d404e428f9fcd23cfaec"
      ],
      "author": {
        "name": "Brian Duddie",
        "email": "bduddie@google.com",
        "time": "Thu May 18 15:04:32 2023 -0700"
      },
      "committer": {
        "name": "Brian Duddie",
        "email": "bduddie@google.com",
        "time": "Thu May 18 15:04:32 2023 -0700"
      },
      "message": "Fix NDK documentation for ASensorEvent\n\nCorrectly associate comments with the applicable fields by moving the\ncomment to before the field declaration.\n\nFixes: 283307966\nTest: presubmit\nChange-Id: Ibb87216f5d0deb458248df8989fdfeed79edf0e4\n"
    },
    {
      "commit": "5796a17668e65625bd364ff917ecc52dcf1a5a75",
      "tree": "29d976c4c0d68c3bf3d5c87b135cdc1f62f4ed65",
      "parents": [
        "12baa2e688e7a2cb8fbb3480220d0142815ef7d1",
        "6c377b36aaacf19192484fac3b6c864f5e6f886a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 17 18:34:30 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 17 18:34:30 2023 +0000"
      },
      "message": "Merge \"Create InputTarget in a separate function\" into udc-dev"
    },
    {
      "commit": "f982044859e939e488967562b2d64f00f7ec1504",
      "tree": "1dd9a0d5c3ea0e08160b0f008a2fe5967f2b7109",
      "parents": [
        "585bc6638380ce3b0f430483a1d11de0ea69fca3",
        "341477e54b672fba0ea19e7f470c5801df2d4bbe"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue May 16 19:34:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 16 19:34:59 2023 +0000"
      },
      "message": "Merge \"Revert^2 \"Use \"SessionHint\" enum in ndk API\"\" into udc-dev"
    },
    {
      "commit": "6c377b36aaacf19192484fac3b6c864f5e6f886a",
      "tree": "1cec1947b436c427c31e5d18f97000bd3527e5b2",
      "parents": [
        "70c6ee8fff6c40fa78d4cff5643c6156d99b764f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 15 17:03:39 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue May 16 09:11:18 2023 -0700"
      },
      "message": "Create InputTarget in a separate function\n\nTo make the code more readable and reusable, move the creation of\nInputTarget into a separate function.\n\nIn a future commit, the new function \u0027 createInputTargetLocked\u0027 will be\nneeded in other places of InputDispatcher, too.\n\nBug: 263319225\nTest: m inputflinger_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/inputflinger_tests/inputflinger_tests\nChange-Id: Iae78c7c812afe5bb059c56669a3de00fdfc496ef\n"
    },
    {
      "commit": "341477e54b672fba0ea19e7f470c5801df2d4bbe",
      "tree": "bd3f8566bd820eebb86fb0bc801ec8c00e7b817c",
      "parents": [
        "3e76a50f69a2f1955ea5f412c997f80d2a0a0651"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Mar 03 23:31:17 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri May 12 23:28:24 2023 +0000"
      },
      "message": "Revert^2 \"Use \"SessionHint\" enum in ndk API\"\n\nBug: 266596626\n\n63a0fd1944c0fe541e6cc3af16cc1119ac7d1065\n\nChange-Id: Icd1164728c38b9d813dbe5f47118a08c4bef48dc\n"
    },
    {
      "commit": "85bffd5370e97ef8a3fd7d029676d214ba8b71a8",
      "tree": "566c7044e59c438e311be4fca93a8a25aedb8571",
      "parents": [
        "ee324d5fe81414b3971ae9579878a70afa8f5c7f",
        "172d5a3281d6b1dd1e6cf5871db2484098f14dc2"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon May 01 21:36:55 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 01 21:36:55 2023 +0000"
      },
      "message": "Merge \"Add docs for ASurfaceControl default behavior\" into udc-dev"
    },
    {
      "commit": "172d5a3281d6b1dd1e6cf5871db2484098f14dc2",
      "tree": "89a38e59952b24cb32f50e4016861b6d1c044cab",
      "parents": [
        "a8827e9c7abb0923f9b7a1de381545ddd2396bc4"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 25 22:23:41 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Apr 28 17:34:17 2023 +0000"
      },
      "message": "Add docs for ASurfaceControl default behavior\n\nTest: spellcheck\nFixes: 271461920\nChange-Id: I7a86abd1f764af73288edf575a288d4fcab02b86\n"
    },
    {
      "commit": "2a916c4622b762c1f39d69a2991f459a8fe7ec81",
      "tree": "62ad57f877ca3cbaeba9f320466363e75d5edc0a",
      "parents": [
        "8bf29931eabb065027fda7ffa7db294b04772a36"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Apr 17 10:37:05 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Apr 24 09:19:31 2023 -0700"
      },
      "message": "Use std::unordered_map in KeyCharacterMap\n\nPreviously, KeyedVector was used in KeyCharacterMap. Convert this to the\nstd::unordered_map.\n\nBug: 278299254\nTest: m checkinput\nTest: m libinput_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/libinput_tests/libinput_tests\nChange-Id: I643aa8cc8ae0c68ade4d11d02e34be64faf7f157\n"
    },
    {
      "commit": "8bf29931eabb065027fda7ffa7db294b04772a36",
      "tree": "cc8371804d0095e1c0c5ad316cd75e3574e1bc0e",
      "parents": [
        "3c0c57fe6e2d797d4744b125e9c50611a0cdb989",
        "0a6fee80fbda45cd72a8e75948e0925798064648"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Mon Apr 24 11:01:11 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 24 11:01:11 2023 +0000"
      },
      "message": "Merge \"Force input device changed callback when Keyboard layout info is updated\" into udc-dev"
    },
    {
      "commit": "a67ba5369401e558b59a1f6ed6f2aa6c4d9d2d23",
      "tree": "b19de2d37615ff6f07905d0075800bf399533e1c",
      "parents": [
        "e469593af9a8220d82d91cc815e0aee317fef45e",
        "1fb63cc53396df922be029b5147cf36f2b6b7ee3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Apr 21 20:18:30 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 21 20:18:30 2023 +0000"
      },
      "message": "Merge \"Tweak ASC_setExtendedRangeBrightness docs\" into udc-dev"
    },
    {
      "commit": "0a6fee80fbda45cd72a8e75948e0925798064648",
      "tree": "b575e2e824a623635a1bdb18cb742bf71a0330b0",
      "parents": [
        "6050892386175a21941b5bd8814983e2509ecbb7"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Tue Apr 11 18:53:04 2023 +0000"
      },
      "committer": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Thu Apr 20 20:34:07 2023 +0000"
      },
      "message": "Force input device changed callback when Keyboard layout info is updated\n\nVirtual keyboard creation uses KEYBOARD_LAYOUT_ASSOCIATION reconfig to\nassociated input device with keyboard layout info. But this can\nhappen after input device added (Race condition between device creation\nand input device added callback.)\nIf input device already added then we sometimes don\u0027t get input device\nchanged callback since the generation is same.\n\nTest: atest VirtualKeyboardLayoutTest\nBug: 277778640\nChange-Id: I218b6d797da27ec3a383fbcd2ebeacb0afbf5fab\n"
    },
    {
      "commit": "f4cd8871d030ff3dd111043076a20501a51c94a7",
      "tree": "b149a0b660a61c235cada16a1e60f96c4cc55c36",
      "parents": [
        "449a984c57de8c924fcf264be2afaaf5a8c99207",
        "e9fe2dfd709703308cd8d8d6d9926412812a5ca1"
      ],
      "author": {
        "name": "Biswarup Pal",
        "email": "biswarupp@google.com",
        "time": "Thu Apr 20 14:28:18 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 20 14:28:18 2023 +0000"
      },
      "message": "Merge \"Pass virtual input event timestamps to uinput\" into udc-dev"
    },
    {
      "commit": "1fb63cc53396df922be029b5147cf36f2b6b7ee3",
      "tree": "257369b72b14d94d8aba3003628708f57e49f6bb",
      "parents": [
        "187a18c4971e82a26e975e8b7fc24c5be67d6ed1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 19 14:39:11 2023 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 19 17:06:36 2023 -0400"
      },
      "message": "Tweak ASC_setExtendedRangeBrightness docs\n\nBug: 278780207\nTest: n/a doc only change\nChange-Id: I7e47f63ce70d28827188e3848a725e1608722172\n"
    },
    {
      "commit": "50355837d27fdb899bd2e141cb3cd196a5f6fe05",
      "tree": "f32448d5a59ee9cb7ee1854728e98abd7e9f78e9",
      "parents": [
        "0dd3ca0c885d1194a81aebfb49ae9e71c8a9ce75",
        "80872bddcc529d750c12349675504ea00271712a"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Apr 19 19:34:07 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 19 19:34:07 2023 +0000"
      },
      "message": "Merge \"SF: Clean up ftl::SmallMap lookup fallbacks\" into udc-dev"
    },
    {
      "commit": "80872bddcc529d750c12349675504ea00271712a",
      "tree": "3e151d2772fe229b1bc94d11d718294e1af2427c",
      "parents": [
        "ccda33e2eb762b0f9ffff3de982011b6fc7f84ec"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 15 11:34:33 2022 -0500"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Apr 18 19:28:35 2023 -0400"
      },
      "message": "SF: Clean up ftl::SmallMap lookup fallbacks\n\nAvoid std::cref to a local variable, which is not intuitive and incurs\nconstruction in the non-fallback case.\n\nBug: 185536303\nTest: ftl_test\nChange-Id: I1c5a94bdab105a04f8230fe762bdc433eea5c97a\n"
    },
    {
      "commit": "12f8913b184f0be4e7a9187bb6dec5ccc0ab54a0",
      "tree": "de99183cc5c38d7d054d88c949b6d3c08c05cb3c",
      "parents": [
        "ccda33e2eb762b0f9ffff3de982011b6fc7f84ec"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 18 20:47:03 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 18 20:47:03 2023 +0000"
      },
      "message": "ftl_flags: Add default parameter to any()\n\nAdd a default parameter to any() so that we can easily test if any of\nthe bits in the bitfield have been set.\n\nBug: 245989146\nTest: atest ftl_test\nChange-Id: Ibee03c2f70288d1a353e1d86539fb7f88b1e5d3c\n"
    },
    {
      "commit": "ccda33e2eb762b0f9ffff3de982011b6fc7f84ec",
      "tree": "67a7b10b0efee4c86c6e516534f120434da32aa8",
      "parents": [
        "eaa7b055e9a31aa46f87346000c0f1884d92fcf0",
        "37ae1ea1a96ca939ae8e7c97474f843d0612edcd"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 18 19:05:21 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 18 19:05:21 2023 +0000"
      },
      "message": "Merge \"input: Cleanup doxygen linking\" am: f5bb504dda am: 858b668222 am: 37ae1ea1a9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2526643\n\nChange-Id: Ieed087854c811cfbdb75ff045b17c3143e8387ea\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e9fe2dfd709703308cd8d8d6d9926412812a5ca1",
      "tree": "ab71fe5f5488a22ba76faf2cddf9bf9df13bbbfa",
      "parents": [
        "cda245feee2ceba5f5c45578273b071974c8e461"
      ],
      "author": {
        "name": "Biswarup Pal",
        "email": "biswarupp@google.com",
        "time": "Wed Apr 05 18:20:54 2023 +0000"
      },
      "committer": {
        "name": "Biswarup Pal",
        "email": "biswarupp@google.com",
        "time": "Tue Apr 18 18:18:12 2023 +0000"
      },
      "message": "Pass virtual input event timestamps to uinput\n\nTest: Verify that virtual input timestamps are propagated to EventHub correctly, provided that uinput supports event timestamps\nBug: 271946580\nChange-Id: Ifb79654000e1040ccfb85d35dee856a24db5eb73\n"
    },
    {
      "commit": "f5bb504dda94c02fa7ec41ef272ab7dca20de7e2",
      "tree": "a46ba4aa6c6a316e07f1b5a08f963571e5e95265",
      "parents": [
        "4bcaeb12eaa2175d7722f2ca45f6299e9a2101e1",
        "e153adc9eaa688bd88a8b8632787f431b74b6cb5"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 18 17:18:44 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 17:18:44 2023 +0000"
      },
      "message": "Merge \"input: Cleanup doxygen linking\""
    },
    {
      "commit": "0bae1a0fbde55fc78ecfb203bc555009a86c4233",
      "tree": "351ac288c93eee64b14e25451c594e9ae3745c36",
      "parents": [
        "5af2834b5ec418e7d1c8b5925b488df12c18aab4"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Apr 17 09:00:59 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Apr 17 15:14:59 2023 -0700"
      },
      "message": "Return Key* from getKey\n\nThe call getKey can fail. Rather than returning a separate bool that the\ncaller might ignore, return a pointer to simplify the code.\n\nBug: 278299254\nTest: m libinput_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/libinput_tests/libinput_tests\nChange-Id: I28c25bee8890bdc90ca7e069c803423a7420e6b4\n"
    },
    {
      "commit": "5af2834b5ec418e7d1c8b5925b488df12c18aab4",
      "tree": "d4bc8ef01d6f78fac1d01ed0ce1ad40ed362c736",
      "parents": [
        "0fe0126d4a0cab98a8c5cc92496d7abe9f0fb781"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Apr 17 08:45:31 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Apr 17 15:14:59 2023 -0700"
      },
      "message": "Pass reference to finishKey\n\nSince the parameter is assumed to be non-null, pass it by reference.\n\nBug: 274058082\nTest: m libinput_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/libinput_tests/libinput_tests\nChange-Id: Iedf8970a57e4463e6addc8ee1013feb3ee60c009\n"
    },
    {
      "commit": "e153adc9eaa688bd88a8b8632787f431b74b6cb5",
      "tree": "098ef19839299caf86271d752a6ff49b30d59282",
      "parents": [
        "473007c4594472a3f4c0dcfd03e789fae192c523"
      ],
      "author": {
        "name": "Greg Pataky",
        "email": "gregpataky@google.com",
        "time": "Tue Apr 04 23:34:52 2023 +0000"
      },
      "committer": {
        "name": "Greg Pataky",
        "email": "gregpataky@google.com",
        "time": "Fri Apr 14 22:03:37 2023 +0000"
      },
      "message": "input: Cleanup doxygen linking\n\nThis goes through the file and adds either `#` or `{@link ...}` doxygen\nlinkage for all enum values, types, and functions to allow deep linking\nto be generated.\n\nTest: `development/tools/ndk/build_ndk_docs.py` and manual inspection of the generated doc.\nChange-Id: I0b6a154c9ba2cb4749d007b22088675667b6d7b4\n"
    },
    {
      "commit": "ae55bae7a86fe002f1f2822b1a2005dff4e38cab",
      "tree": "e54bc9d7d8878aa74e25675946fc50f89769fe00",
      "parents": [
        "49ac55258d087e1357315fea60c5a873d6e8bfff",
        "63b6361f3e23ab44c7e1adfe06ce9e11270d5100"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Apr 13 23:37:50 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 23:37:50 2023 +0000"
      },
      "message": "Merge \"Convert input event type to enum class\" into udc-dev"
    },
    {
      "commit": "63b6361f3e23ab44c7e1adfe06ce9e11270d5100",
      "tree": "77f7eba10d46b433af628048fc5517affd5beafc",
      "parents": [
        "c2eb8505edd83a38f4f4ff0454ba958615ccda12"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Apr 12 11:00:23 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Apr 13 08:42:08 2023 -0700"
      },
      "message": "Convert input event type to enum class\n\nThis will increase type safety and simplify some of the printing.\n\nBug: 274073185\nTest: m checkinput\nChange-Id: I848c2f156cc23232c50d2338b4788be3232dba1a\n"
    },
    {
      "commit": "18838bcf7d0b61a31d039615287fb3a5ca189231",
      "tree": "9496b30f5884f998fb8e1dd4aa458a02f5fdc6e7",
      "parents": [
        "3704cb3be5100dd9f8ad85f4b7ac6d3b0459d10f"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Wed Apr 05 16:52:27 2023 -0700"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Tue Apr 11 00:02:54 2023 +0000"
      },
      "message": "Add `front` and `back` methods to RingBuffer\n\nTest: Corresponding added RingBuffer tests pass\n(`atest libinput_tests`)\n\nBug: 268245099\nChange-Id: If330940e67e70d809748b2aaa6156bed835c6c9d\n"
    },
    {
      "commit": "d618fcc6e919a86740679de024a4edc5cd69b517",
      "tree": "4b1d421a8137361b29146f2012327df82abcbe7a",
      "parents": [
        "ecd41c772b9c76d6cb6f79c5b54cadc9093003d3",
        "48a440198d9830490a99bbecc8acc0b16a5e90f7"
      ],
      "author": {
        "name": "Josep del Río",
        "email": "joseprio@google.com",
        "time": "Fri Apr 07 10:27:19 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 07 10:27:19 2023 +0000"
      },
      "message": "Merge \"hasKeycodeLocked() also checks usage codes\" am: 8521bfe7ad am: c224482a8a am: 48a440198d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2514955\n\nChange-Id: Ic0ce48b297bb9040d919e6c94d2398fdd1187ac7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "dbd14eb7bcfc3255455c343da1b52f99bbd864ff",
      "tree": "dcd7cdebf8a35e34f905ab111475e1f39f8cb68c",
      "parents": [
        "1f428c8affd9ca3951b01e88cb93545f109f78f3"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Thu Mar 30 18:41:45 2023 -0700"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Wed Apr 05 19:31:11 2023 -0700"
      },
      "message": "Add outputLength method\n\nTest: build succeeds, `atest libinput-tests` passes.\n\nBug: 268245099\n\nChange-Id: I030da703a907eef44e85d186144eddc53b5998cc\n"
    },
    {
      "commit": "aadf8d5cc088c6dbe063de5da651a83466992512",
      "tree": "d33cdb1974f3d1053f62d91f5e413ddb2beb2e4f",
      "parents": [
        "c4a353c0ad052e95bfce5958f2de25307fa32106"
      ],
      "author": {
        "name": "Charles Lin",
        "email": "charleslin@realtek.com",
        "time": "Thu Mar 30 13:34:54 2023 +0800"
      },
      "committer": {
        "name": "Charles Lin",
        "email": "charleslin@realtek.com",
        "time": "Fri Mar 31 08:45:11 2023 +0800"
      },
      "message": "hasKeycodeLocked() also checks usage codes\n\nKey map can use both scan code and usage code.\nAdding usage code check to avoid misjudgment.\n\nBug: 275526611\nTest:\nIn Android TV, pairing a BT RCU with keylayout which\nhas usage page/id for DPAD. In PlayStore app search\nbox, make sure user can move focus to search result\nby pressing dpad DOWN key.\n\nChange-Id: I70687d308899537e457192458176b1553c350f14\n"
    },
    {
      "commit": "b46466fbad69a0c15f160f23923bcb36dd04a0eb",
      "tree": "dc87af82f15f780c0dffedfdd7e14c627e0a1cc5",
      "parents": [
        "fbf33a766724a5645517f479abf7a0d27f6e659f",
        "6d73f83c0a0ba15a7488916a435d0b2985d4f2a0"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Mar 29 03:59:51 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 29 03:59:51 2023 +0000"
      },
      "message": "Merge \"Convert tool type to enum class\" into udc-dev"
    },
    {
      "commit": "a2e66c94dba2c8dad4c30b5896881c2cec25582e",
      "tree": "dac2aefd44206e5ec29d4597558d11a1f537fe49",
      "parents": [
        "fedaf918d50517fdff7ff7945ce032683c8e2b93",
        "57680eb7c8a21ed28f359f9504eb000709a74d84"
      ],
      "author": {
        "name": "Max Zhang",
        "email": "zhangmax@google.com",
        "time": "Tue Mar 28 20:11:03 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 28 20:11:03 2023 +0000"
      },
      "message": "Merge \"[1/4] Add user customizable MACRO_x keys in frameworks\" into udc-dev"
    },
    {
      "commit": "6d73f83c0a0ba15a7488916a435d0b2985d4f2a0",
      "tree": "3af68b4ac5e85de49c765c334a3f9edc395182b7",
      "parents": [
        "fedaf918d50517fdff7ff7945ce032683c8e2b93"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Jul 21 17:27:03 2022 -0700"
      },
      "committer": {
        "name": "Cherrypicker Worker",
        "email": "android-build-cherrypicker-worker@google.com",
        "time": "Tue Mar 28 13:25:59 2023 +0000"
      },
      "message": "Convert tool type to enum class\n\nFor better type safety, use enum class when sending tool type.\n\nBug: 198472780\nTest: atest libinput_tests inputflinger_tests\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:09a8fe42ba1d218c2f445e4fd5bc387e260ae067)\nMerged-In: I371f08087b9513b6f75966c124de77bc12f8324e\nChange-Id: I371f08087b9513b6f75966c124de77bc12f8324e\n"
    },
    {
      "commit": "8a5e2f9467bfe319efd974dc78670a79d8e8d70d",
      "tree": "0621a5f73f192f08055be37e6724a0408efd1bf4",
      "parents": [
        "2e33fcee18a7a49750e16fb3799f8c63dc4707da"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 16 14:27:48 2023 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 16 14:27:48 2023 -0400"
      },
      "message": "Add available since doc\n\nBug: 272103317\nTest: n/a doc only change\nChange-Id: I8bebb31f0bd38e36139026a539030e5b61b75b4c\n"
    },
    {
      "commit": "57680eb7c8a21ed28f359f9504eb000709a74d84",
      "tree": "9834a219141443e3259f4cf3d62a76100ec6a8dd",
      "parents": [
        "b82218d25e0c22a9f80ddefaa458d51bda2d3b53"
      ],
      "author": {
        "name": "Max Zhang",
        "email": "zhangmax@google.com",
        "time": "Thu Dec 15 18:15:39 2022 +0000"
      },
      "committer": {
        "name": "Max Zhang",
        "email": "zhangmax@google.com",
        "time": "Thu Mar 16 17:36:52 2023 +0000"
      },
      "message": "[1/4] Add user customizable MACRO_x keys in frameworks\n\nDefine keycode in frameworks/native as input labels\nProject details can be found at\ngo/dipper-custom-button\n\nBug: 269742724\nTest: local build\n\nChange-Id: I9af8e14892f65e14319f34421063ef330a02078e\n(cherry picked from commit fcf20b80e15ad23e31bb33e422495eaed2fc7448)\n"
    },
    {
      "commit": "f13161a18414986a44354485126473bd8d5c36e6",
      "tree": "adb8bea74347b9efcfd9f8cd1ecd86872a346d28",
      "parents": [
        "68782cf40caa44734ed29a63dc35a48014536bf1"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Mar 08 14:15:49 2023 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Tue Mar 14 16:19:46 2023 +0000"
      },
      "message": "input: use optionals for PropertyMap getters\n\nUsing optionals rather than returning a boolean forces the caller to\ncheck whether the property is present, enforced by the compiler, and\nalso allows a more succinct syntax in some cases.\n\nBug: 245989146\nTest: atest inputflinger_test\nTest: connect Apple Magic Trackpad 2, check that gesture properties are\n      set correctly in dumpsys input\nChange-Id: Ia0fde1f67269e6e7149f297def626e572fd7790f\n"
    },
    {
      "commit": "2be30b5a1ec76744fa551c9bd3bd6e573e5677e9",
      "tree": "f395ec722c3e88ae9ded0e1aa45e3ca7c89b0f17",
      "parents": [
        "5c82ee164bcc8b25e5d5f610ad87c2cd1d602f3c",
        "2b67ff1bda2323353b52c2762f0f0296b68c04bf"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Mar 13 18:00:36 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 18:00:36 2023 +0000"
      },
      "message": "Merge \"Revert^2 \"Support touchpad gesture properties in IDC files\"\" into udc-dev"
    },
    {
      "commit": "2b67ff1bda2323353b52c2762f0f0296b68c04bf",
      "tree": "639f89ca49253a63fb01a227e1a48129ff7c6d4a",
      "parents": [
        "a53cb97af2b4cbb247094d6be93583712dbee3c4"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Mar 13 11:32:06 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 11:32:29 2023 +0000"
      },
      "message": "Revert^2 \"Support touchpad gesture properties in IDC files\"\n\na53cb97af2b4cbb247094d6be93583712dbee3c4\n\nChange-Id: I5463f938665212362b8780e1c646a4b2bf8ad10a\n"
    },
    {
      "commit": "f24a0c6b22855d4dc437a11f8513708d6863c2a2",
      "tree": "eaa550119aee163a1b0d492d5e06793d46c75d55",
      "parents": [
        "36e64fa1cfc4c1ef36fb858adcaa02abd92087a0",
        "7262ab6b9e55027bb5fb9ca67ac4eb6bd0ea43d7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 11 03:19:59 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 11 03:19:59 2023 +0000"
      },
      "message": "Merge \"MotionEvent: Round coordinates to a precision of 0.001\" am: 7262ab6b9e\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2480581\n\nChange-Id: Ide748f30d5706b26d464d2dac261a6145602c661\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "7262ab6b9e55027bb5fb9ca67ac4eb6bd0ea43d7",
      "tree": "4cd4fa209781298108fe1c60809b2cc3ecc986ed",
      "parents": [
        "771ba1e0c84c031905d96b5266417daebde7ad4a",
        "0909dc1c34c40aafbd6d633241e5622dc1cede0b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 11 02:39:32 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 11 02:39:32 2023 +0000"
      },
      "message": "Merge \"MotionEvent: Round coordinates to a precision of 0.001\""
    },
    {
      "commit": "0909dc1c34c40aafbd6d633241e5622dc1cede0b",
      "tree": "64e246cd7966ada31284fca3006466e75dd33790",
      "parents": [
        "51b7ac6e128050f7966c130e4d5b3cb6f73905d0"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 09 20:11:09 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Mar 10 23:01:21 2023 +0000"
      },
      "message": "MotionEvent: Round coordinates to a precision of 0.001\n\nWhen tests inject input events at a location on the screen, the\ndispatched event is expected to have the same coordinates. However, on\nscaled devices, this may not always be the case due to precision losses\nincurred through floating point arithmetics. For example, it was\npossible for an injected event with a coordinate of 1.0 to end up with\na value of 0.9997.\n\nTo combat this issue, we will round transformed axis values that are\nleaving a MotionEvent to a precision of 0.001. After this CL, even if\nthe injection process results in precision losses, they should be\novercome by rounding, assuming injection does not require greater\nprecision.\n\nThis will solve the issue where input injected to an inclusive edge of\nthe View bounds was not getting dispatched to the View due to precision\nlosses.\n\nBug: 264978231\nBug: 260965930\nTest: atest libinput_tests\nTest: atest inputflinger_tests\nTest: atest HoverTest (with screen size override)\nChange-Id: I81062597058361a1218e6873d34b9b0d2fbfad96\nMerged-In: I81062597058361a1218e6873d34b9b0d2fbfad96\n"
    },
    {
      "commit": "f2075052403328036f7679c0307a73e69aa20975",
      "tree": "8bd716d729aaae136e592b3a3b991be8962118ba",
      "parents": [
        "c940012f55c546561c880cd4f0adba938c25b909",
        "00e029d8cfd1e5487d8c8997ec852ffd54252a57"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Mar 10 22:53:28 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 22:53:28 2023 +0000"
      },
      "message": "Merge \"MotionEvent: Round coordinates to a precision of 0.001\" into udc-dev"
    },
    {
      "commit": "00e029d8cfd1e5487d8c8997ec852ffd54252a57",
      "tree": "e8b10f40dd1400a8e166c00dc65d436f890bbae4",
      "parents": [
        "2c1f96e0d825463dc1e420982d31d77bd442d9e7"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 09 20:11:09 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Mar 10 20:53:39 2023 +0000"
      },
      "message": "MotionEvent: Round coordinates to a precision of 0.001\n\nWhen tests inject input events at a location on the screen, the\ndispatched event is expected to have the same coordinates. However, on\nscaled devices, this may not always be the case due to precision losses\nincurred through floating point arithmetics. For example, it was\npossible for an injected event with a coordinate of 1.0 to end up with\na value of 0.9997.\n\nTo combat this issue, we will round transformed axis values that are\nleaving a MotionEvent to a precision of 0.001. After this CL, even if\nthe injection process results in precision losses, they should be\novercome by rounding, assuming injection does not require greater\nprecision.\n\nThis will solve the issue where input injected to an inclusive edge of\nthe View bounds was not getting dispatched to the View due to precision\nlosses.\n\nBug: 264978231\nBug: 260965930\nTest: atest libinput_tests\nTest: atest inputflinger_tests\nTest: atest HoverTest (with screen size override)\nChange-Id: I81062597058361a1218e6873d34b9b0d2fbfad96\n"
    },
    {
      "commit": "2993cebe73345fc9645aeb9c673a02248dd734f0",
      "tree": "7e0579ee8f8d7e7dec4cc90f3e14248894195615",
      "parents": [
        "6e6c2589d11e319b9b09efaf1f8f7dc8145b5d64",
        "a53cb97af2b4cbb247094d6be93583712dbee3c4"
      ],
      "author": {
        "name": "Sebastian Pickl",
        "email": "spickl@google.com",
        "time": "Fri Mar 10 14:24:00 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 14:24:00 2023 +0000"
      },
      "message": "Merge \"Revert \"Support touchpad gesture properties in IDC files\"\" into udc-dev"
    },
    {
      "commit": "a53cb97af2b4cbb247094d6be93583712dbee3c4",
      "tree": "934ddd593ba832f0f21ca3324fef4a58117af0c1",
      "parents": [
        "3ca39d03b022d2b0ca5a35ac249de1876749d79b"
      ],
      "author": {
        "name": "Sebastian Pickl",
        "email": "spickl@google.com",
        "time": "Fri Mar 10 09:51:56 2023 +0000"
      },
      "committer": {
        "name": "Sebastian Pickl",
        "email": "spickl@google.com",
        "time": "Fri Mar 10 13:07:33 2023 +0000"
      },
      "message": "Revert \"Support touchpad gesture properties in IDC files\"\n\nRevert submission 21750284-touchpad-specific-tuning\n\nReason for revert: resolves flake b/272308130 according to culprit assistant https://android-build.googleplex.com/builds/culprit-assistant/run/6257e5da-1bb0-437a-8fab-f04c27d462b3 verified by 6 runs in abtd https://android-build.googleplex.com/builds/abtd/run/L75900000959044402\n\nReverted changes: /q/submissionid:21750284-touchpad-specific-tuning\n\nChange-Id: I62078104a96d588bd321459e5a069dd0de5933bd\n"
    },
    {
      "commit": "44c11c9f93de5970dd99ed413c1ae28a3cc0f455",
      "tree": "e2a4745c11f4d716d3759d7cfa1b13d7428c13a8",
      "parents": [
        "54942141778e33ae6eddbcd90f7133a74d0af957",
        "07a71cdbe9c2a790e53c3c73dd0156a9c91727d2"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Mar 09 21:56:25 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 09 21:56:25 2023 +0000"
      },
      "message": "Merge \"FTL: Add Optional\u003cT\u003e::or_else\" into udc-dev"
    },
    {
      "commit": "c8a427941070b4d4b706195e7f7c86ccd1e7a831",
      "tree": "ead2bc13486d48bcb9cc9ba9f6bb77bcbe245e02",
      "parents": [
        "31769c20af6a0e012a80798406898c67c45979ec",
        "3ca39d03b022d2b0ca5a35ac249de1876749d79b"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Mar 08 11:37:07 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 08 11:37:07 2023 +0000"
      },
      "message": "Merge \"Support touchpad gesture properties in IDC files\" into udc-dev"
    },
    {
      "commit": "07a71cdbe9c2a790e53c3c73dd0156a9c91727d2",
      "tree": "56b9615b6ae3fd80a4f6d45f41849f2e197fe96c",
      "parents": [
        "85795340f3b9deb44eb03e4aa498e7e14ae1522e"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Sep 28 10:38:46 2022 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Mar 07 13:14:02 2023 -0500"
      },
      "message": "FTL: Add Optional\u003cT\u003e::or_else\n\nBug: 185536303\nTest: ftl_test\nChange-Id: Idf0bac4711111c8cb28e8624bb146a76ec1ff38b\n"
    },
    {
      "commit": "3ca39d03b022d2b0ca5a35ac249de1876749d79b",
      "tree": "639f89ca49253a63fb01a227e1a48129ff7c6d4a",
      "parents": [
        "186fb6f20c86dd771d17a43b5cb2dc0744aae36c"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Thu Mar 02 15:26:39 2023 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Tue Mar 07 15:42:35 2023 +0000"
      },
      "message": "Support touchpad gesture properties in IDC files\n\nSpecific touchpads often require small tweaks to the Gestures library\u0027s\ngesture properties to work well. Examples of such tweaks include palm\nthresholds, or the parameters to the stationary wiggle filter. To\nsupport this, allow properties to be set using the \u0027gestureProp.\u0027 prefix\nin IDC files, with the spaces in property names replaced by underscores.\nFor example, to set the \"Pressure Calibration Offset\" property to 30,\nadd this line to the relevant IDC file:\n\n    gestureProp.Pressure_Calibration_Offset \u003d 30\n\nOnly single-valued boolean, integer, or real properties can be set this\nway. There\u0027s currently no use case for strings. The only use case for\narrays is for acceleration curves, which wouldn\u0027t work well with this\nsystem anyway since they\u0027d be overridden by the pointer speed settings.\n\nBug: 271251605\nTest: atest inputflinger_tests\nTest: connect Apple Magic Trackpad 2, check properties are set correctly\n      in dumpsys input\nChange-Id: I1bf97c9753e48c00d3dc3098cb676f7baebc84ce\n"
    },
    {
      "commit": "fd0a68e34b72b7a1daa07f0e5ed0a167d596a343",
      "tree": "96160d4a5d04fc1ca850f0244cec681e3defdd8f",
      "parents": [
        "d3fbc898a508441a7fe2796a260ada810da5d415"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Feb 28 13:25:36 2023 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Mar 04 21:51:07 2023 +0000"
      },
      "message": "Use current directory to load prediction model\n\nBefore this CL, the testing binary could not execute properly when\ninvoked directly. This is because the current working directory does not\nget set.\n\nTo fix this, use the model file from /system/etc when __ANDROID__ is\ndefined, and refer to the current directory for all other cases.\n\nTest: m libinput_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/libinput_tests/libinput_tests\nTest: atest libinput_tests\nTest: atest --host libinput_tests\nBug: 271134652\nChange-Id: I0547ca9666eab153208a581fb60f6bef656b946a\n"
    },
    {
      "commit": "19c659269554a9e427e8c1a146d273f2d5466292",
      "tree": "5841d7b4883410adc0cf83df66c3ac4adb6c9be9",
      "parents": [
        "231727e1290f055683eaa0da795b41e39fca267b",
        "ee42291a3c714348dc5e3c92eb1354fd473b6fb5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 04 07:55:22 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 04 07:55:22 2023 +0000"
      },
      "message": "Merge \"Add INPUT_OWNERS to specific files in /f/n/include/android\" am: aa8ea3f934 am: b860c828a0 am: ee42291a3c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2470543\n\nChange-Id: I3e26f44847f978e2641e444fb4637a9ed79e4ffc\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b860c828a0b9eb4430d3a98dcba44f65c5568152",
      "tree": "db09eed24e04b5449699a5489d21988847743577",
      "parents": [
        "d9c476c9be1703e5a5aa5ff5f093a375df7918d2",
        "aa8ea3f934f99faa35ecc2106c3b11b49bf9e218"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 04 07:14:04 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 04 07:14:04 2023 +0000"
      },
      "message": "Merge \"Add INPUT_OWNERS to specific files in /f/n/include/android\" am: aa8ea3f934\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2470543\n\nChange-Id: Ib1bb431538a4b347f39f86cc1b7f3167fcfaf8db\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "aa8ea3f934f99faa35ecc2106c3b11b49bf9e218",
      "tree": "4a0fb5d987d9d2fa7895bee1feaee906a9660833",
      "parents": [
        "ee04fa7ac6bfe4e0b30311e87c5fe64a25c53a8b",
        "fae8f735ecf8de2e3fba20f8006993a4bfe3bf40"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 21:59:20 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 21:59:20 2023 +0000"
      },
      "message": "Merge \"Add INPUT_OWNERS to specific files in /f/n/include/android\""
    },
    {
      "commit": "33cb38b146be24b0290b04ddaab57d6c3578247e",
      "tree": "f1ac2605c967ac97b59d312056ea8e7b317bad72",
      "parents": [
        "b2fd17a7bafd9f6540ee078434396a4e8afab6fe"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Feb 23 18:52:34 2023 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 03 21:39:32 2023 +0000"
      },
      "message": "Single-device prediction only\n\nAfter further discussion about the potential usage of the\nMotionPredictor API, we decided that returning a List\u003cMotionEvent\u003e is\ninconvenient for the application.\n\nUpdate the native MotionPredictor to return a nullable MotionEvent\ninstead.\n\nBug: 167946763\nTest: native\nChange-Id: Ib1382431d894b9561d9a9e2e96c360e2b7a19b5c\n"
    },
    {
      "commit": "fae8f735ecf8de2e3fba20f8006993a4bfe3bf40",
      "tree": "9eedc21c8e4250bdea1c509e7027ea67f0f255e0",
      "parents": [
        "51b7ac6e128050f7966c130e4d5b3cb6f73905d0"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Mar 03 20:50:33 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Mar 03 20:50:33 2023 +0000"
      },
      "message": "Add INPUT_OWNERS to specific files in /f/n/include/android\n\nBug: None\nTest: Upload\nChange-Id: I1500315dce96953763a67a942204b9c4f028e9ba\n"
    },
    {
      "commit": "1e5ec0a0542e150cff46ba117022d3d8fb9794da",
      "tree": "fbbfa32009cb8ddbdb9a6a4139885cf09759ea41",
      "parents": [
        "ef19b194c8a1723c63cda9bf5f6d3ac416dc8809"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 01 17:21:51 2023 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 02 01:28:14 2023 +0000"
      },
      "message": "Initialize mLayoutOverlayApplied\n\nThis variable is left uninitialized. On some platforms, this causes the\nlibinput_tests to fail when sanitizers are enabled.\n\nBug: 251249010\nTest: m libinput_tests \u0026\u0026 adb sync data \u0026\u0026 adb shell -t /data/nativetest64/libinput_tests/libinput_tests --gtest_filter\u003d\"*keyCharacterMapParcelingTest*\"\nChange-Id: I05063efdde9a826f7001dca828b84bbec5beb0df\n"
    },
    {
      "commit": "5b6ca88e1444ebba97db26a226c9b3a8f169062b",
      "tree": "99907726688984fbbf49a2d8f8c42f0dc44c4e96",
      "parents": [
        "cc56057a27809ac865f7112088502c2a919b0606",
        "5a100fac33c8a398b278eb2689b9d63950ee972e"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 24 18:23:14 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 18:23:14 2023 +0000"
      },
      "message": "Merge \"Add missing \"Introduced in\" docs from NDK\" into udc-dev"
    },
    {
      "commit": "5a100fac33c8a398b278eb2689b9d63950ee972e",
      "tree": "124ba3ded1335ff9bd43e5a45e4e0f2ad16829ae",
      "parents": [
        "0311fdd6d2d5eca00e84bd95b1d1a296171ca038"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 24 00:45:29 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 24 00:45:29 2023 +0000"
      },
      "message": "Add missing \"Introduced in\" docs from NDK\n\nDevs should be able to determine if they can use an api just from\nreading the api docs.\n\nBug: 270405876\nTest: none\nChange-Id: I62df5447bc547be52f6b00fedf1006c8d66a5faf\n"
    },
    {
      "commit": "1e63fc2fcb3d965d1df95e20b192565915d32fe8",
      "tree": "a610b04422579ad7f127d7bacef9c2b15c10c636",
      "parents": [
        "b2bd83cb33bb9dce0a441c5f0ff178d9a0c7f6e9"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Feb 23 19:03:03 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Feb 23 19:06:39 2023 +0000"
      },
      "message": "Improve logging of evdev events by using labels for recognized values\n\nWhen logging evdev events, use the human-readable labels for recognized\nvalues for the event type, the event code, and event value.\n\nBug: 193231132\nTest: Manual, by enabling raw events logging:\n    setprop log.tag.InputReaderRawEvents DEBUG\nChange-Id: I8ed700a1e2d8659031514d2d8f9aef420b129dbc\n"
    },
    {
      "commit": "92c8fd5ad1b044f9a4dc0e1462b1b48dd9c1b5d6",
      "tree": "91681a33a945089c89b91917f187dba46a86a74c",
      "parents": [
        "e38446b90e6c2967b23a52c4e5b53dcf2749731f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sun Jan 29 14:57:43 2023 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Feb 22 15:54:24 2023 +0000"
      },
      "message": "Ensure channel receives a consistent touch stream\n\nAdd an event verifier to check the touch streams that are being sent to\nthe input channel.\n\nIf a stream is inconsistent, crash.\n\nFor now, only touch streams are being verified. Disable the feature\nwhile the bugs are being fixed.\n\nBug: 267082966\nTest: m inputflinger_tests \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/inputflinger_tests/inputflinger_tests\nMerged-In: Ibb8ab70b0019789c1a17dae0077be6b23d3d9139\nChange-Id: Ibb8ab70b0019789c1a17dae0077be6b23d3d9139\n(cherry picked from commit f06b672b3e433121037398c7255098ed0130c649)\n"
    },
    {
      "commit": "dd0635d5169003c1119f78853289135cbfc71121",
      "tree": "71d9569f03949dcaf612a22978eddd6753710c52",
      "parents": [
        "5fc135bf77a1d4379aca32d2b400cd3ff864d6fc"
      ],
      "author": {
        "name": "Zixuan Qu",
        "email": "zixuanqu@google.com",
        "time": "Mon Feb 06 04:52:38 2023 +0000"
      },
      "committer": {
        "name": "Zixuan Qu",
        "email": "zixuanqu@google.com",
        "time": "Tue Feb 21 17:05:30 2023 +0000"
      },
      "message": "Add virtual input device native classes.\n\nAdd VirtualInputDevice base class and a set of subclasses for each\ndevice type. Each virtual input device wraps a fd representing the\nuinput device and a set of write...event() methods.\n\nMost logic are moved from InputController JNI code: see ag/21294055 for\nreference.\n\nTest: atest VirtualInputTest VirtualMouseTest VirtualKeyboardTest\nVirtualTouchscreenTest VirtualDpadTest\n\nBug: 267515782\n\nChange-Id: Ie3a580acc890ac5af7461f012e05eb9ed3709a5f\nMerged-In: Ie3a580acc890ac5af7461f012e05eb9ed3709a5f\n"
    },
    {
      "commit": "a0b010330ef96850ee0e8544699648db5f4d5919",
      "tree": "358f6daea036eb642c42d9f96c4a85d50ea6400b",
      "parents": [
        "bd0b40589bc30305ea5812f33cb30e2cd4602bdb",
        "feec2c60b201ea4ff65244c6d65f08acc9796a9f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 14 19:54:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 19:54:59 2023 +0000"
      },
      "message": "Merge \"Add ASurfaceTransaction_setExtendedRangeBrightness\""
    },
    {
      "commit": "6964e11cbb12db54763b9ab55127210d59a9ea46",
      "tree": "e17be8e68e7d2c627f9d3358f35e484dbaeb00e4",
      "parents": [
        "30bf0cde21045e6244bd65b92ce7aadd8bab1341",
        "bd66e62069a5495ee8ba8b9ff8c35d3a2075a06d"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Tue Feb 14 02:03:54 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 02:03:54 2023 +0000"
      },
      "message": "Merge \"Postpone loading the TFLite model until a supported event is recorded.\""
    },
    {
      "commit": "feec2c60b201ea4ff65244c6d65f08acc9796a9f",
      "tree": "633021784893379e73cf1196e3c1cb2e00a72283",
      "parents": [
        "8a878356682afb9801816785ab7ade6f68384108"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Feb 13 10:19:08 2023 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Feb 13 20:32:36 2023 -0500"
      },
      "message": "Add ASurfaceTransaction_setExtendedRangeBrightness\n\nBug: 241001465\nTest: make / silkfx demo\nChange-Id: I043474aeda46a65ac93c124d854d71e1a8c082c9\n"
    },
    {
      "commit": "92378eb71bac8d1df37174436bc8498e2f73a8ce",
      "tree": "7f03f2824cf6e94068a56895fad640e6bdf49f64",
      "parents": [
        "82a999b81bdbe9650901777523ae4b34fd88b7d1",
        "cb3229aaf2233ebb917d967a6e73d48cce1a1480"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Mon Feb 13 18:07:31 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 18:07:31 2023 +0000"
      },
      "message": "Merge changes from topic \"stylus-prediction\"\n\n* changes:\n  Use mmap to read TFLite model.\n  Replace shared libtflite dependency with static library.\n"
    },
    {
      "commit": "bd66e62069a5495ee8ba8b9ff8c35d3a2075a06d",
      "tree": "5762c35299ccce6890fae8a8c6f29075ded84d92",
      "parents": [
        "cb3229aaf2233ebb917d967a6e73d48cce1a1480"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Fri Feb 10 11:45:01 2023 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Fri Feb 10 11:46:38 2023 -0800"
      },
      "message": "Postpone loading the TFLite model until a supported event is recorded.\n\nBug: 267050081\nTest: atest libinput_tests\nChange-Id: I09666da123a58786e8a6d47d4c29a475e92f2bbf\n"
    },
    {
      "commit": "cb3229aaf2233ebb917d967a6e73d48cce1a1480",
      "tree": "ff19ed484f5f0e967f8182d972b8bdea6a4f3802",
      "parents": [
        "da6a448e2dfbfa7f13ce243e9273ceb9bcda4388"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Wed Feb 08 22:50:59 2023 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Thu Feb 09 22:33:05 2023 -0800"
      },
      "message": "Use mmap to read TFLite model.\n\nThe buffers in the model file are used directly by TFLite, and so a\nsmall memory saving can be achieved by backing those memory pages with\nthe file itself.\n\nBug: 267050081\nTest: atest libinput_tests\nChange-Id: I743a3c94477d4bb778b6e0c4b4890a44f4e19aa4\n"
    },
    {
      "commit": "da6a448e2dfbfa7f13ce243e9273ceb9bcda4388",
      "tree": "f7ca67497673677a37a8d7b7d944c4c730084842",
      "parents": [
        "b7f27919553dc4e8f47d5d3c79a5871df3824460"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Tue Feb 07 10:09:57 2023 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Thu Feb 09 22:32:58 2023 -0800"
      },
      "message": "Replace shared libtflite dependency with static library.\n\nThis allows us to only include the ops required to run the model and\nhave the linker strip the rest out, reducing memory overhead.\n\nBug: 267050081\nTest: atest libinput_tests\nChange-Id: I4055a0c8971ed4308ccfa425ab5e5ba560deb58c\n"
    },
    {
      "commit": "29584dd6c786d59a0df6b8e0bebbc3655db8ec69",
      "tree": "4f741778f377675cc4a8df6dcd3bec21a79887c2",
      "parents": [
        "4edc90c9eaaae7c02cb1837a805cddc435830256",
        "c0d38fcbffee52ea08bc5e6c38e1fb1d5bbaee2c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 10 02:17:44 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 02:17:44 2023 +0000"
      },
      "message": "Merge \"Attached Choreographer API from SurfaceControl.\""
    },
    {
      "commit": "0f48af6d698270972558e4c55744a0a74046615d",
      "tree": "00edf132e8729c2a85c9ce05e44190d9973c9084",
      "parents": [
        "b7f27919553dc4e8f47d5d3c79a5871df3824460",
        "63a0fd1944c0fe541e6cc3af16cc1119ac7d1065"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 07 18:22:21 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 18:22:21 2023 +0000"
      },
      "message": "Merge \"Revert \"Use \"SessionHint\" enum in ndk API\"\""
    },
    {
      "commit": "63a0fd1944c0fe541e6cc3af16cc1119ac7d1065",
      "tree": "2b029021c64a74319ffcd9bdbaa9e127c6293f79",
      "parents": [
        "f7b491388ec27d4490df3478a1ae17c5a9bf6f62"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Feb 07 02:10:58 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 02:11:08 2023 +0000"
      },
      "message": "Revert \"Use \"SessionHint\" enum in ndk API\"\n\nRevert submission 21161765-sessionhint_api\n\nReason for revert: this broke the main-finalization-1 build... somehow. see b/268111957\n\nReverted changes: /q/submissionid:21161765-sessionhint_api\n\nChange-Id: I2a8b6609729bba06fc9409f4583886915c82577c\n"
    },
    {
      "commit": "6c94ce4393a530159863324832aad5b482937a5a",
      "tree": "ecb40508b08e5b8f0c5a2d86ba40c10fb5d699f7",
      "parents": [
        "216b1543d738ee64f731e657eb8ec711df96a797",
        "9b8926eda5f03ab378fffb49d3c757ecd882c613"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Mon Feb 06 22:28:29 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 06 22:28:29 2023 +0000"
      },
      "message": "Merge \"Add a simple ring buffer and use it for holding TFLite model inputs.\""
    },
    {
      "commit": "9b8926eda5f03ab378fffb49d3c757ecd882c613",
      "tree": "fe59ee99fbe594e1298c62c6d8207ace80b53a7e",
      "parents": [
        "ba75fbf758e90610799975c7c11e15a85c8e614e"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Tue Jan 31 14:50:02 2023 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Mon Feb 06 12:16:34 2023 -0800"
      },
      "message": "Add a simple ring buffer and use it for holding TFLite model inputs.\n\nBug: 167946763\nTest: atest libinput_tests\nChange-Id: I7e50d38ed0c593aebc5fdc6af4b25868505d48bc\n"
    },
    {
      "commit": "75789cd72bc516f3f9680a3f3c31a1e0015c1c98",
      "tree": "1fcc0912f928b24216196c37195a38027008234c",
      "parents": [
        "032c7dcf744f4c2c16755b4c34e0cc24abe54a7d"
      ],
      "author": {
        "name": "Seunghwan Choi",
        "email": "sbee.choi@samsung.corp-partner.google.com",
        "time": "Fri Jan 13 20:31:59 2023 +0900"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Feb 02 08:33:29 2023 +0000"
      },
      "message": "Separate default pointer for mouse and stylus (native part)\n\nLet PointerController (MouseCursorController) know the source of\nthe current event, either mouse or stylus.\nMouseCursorController will show the proper default pointer for\nthe active source, if the requested pointer type is TYPE_NOT_SPECIFIED.\n\nTest: Manual Test\nBug: b/215436642\nChange-Id: I91f702db661846fc7ad857f71656903c8aa4334a\n"
    },
    {
      "commit": "4c5a6e35bee3998f96da5343b2175a9802f736f8",
      "tree": "2215574e0d0e87be71a30a2e908432bbda80a64a",
      "parents": [
        "f69fcd3545acf46e48dd46b5dcb8e0b2e4425790",
        "f7b491388ec27d4490df3478a1ae17c5a9bf6f62"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Feb 02 01:09:56 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 01:09:56 2023 +0000"
      },
      "message": "Merge \"Use \"SessionHint\" enum in ndk API\""
    },
    {
      "commit": "c0d38fcbffee52ea08bc5e6c38e1fb1d5bbaee2c",
      "tree": "40866ce1f4b27efe29bd3545ff2081a389fe6017",
      "parents": [
        "2248f52cd8102e5bc71c5c1dca7a85e90fea1276"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Fri Jan 06 14:46:10 2023 -0800"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed Feb 01 15:12:47 2023 -0800"
      },
      "message": "Attached Choreographer API from SurfaceControl.\n\nThe API to get a native attached choreographer from\nASurfaceControl.\n\nBug: 255838011\nTest: atest GraphicsTest\nTest: atest ChoreographerNativeTest (test no regression)\nChange-Id: I5db99d8888fd2adbc4a8fc2ce9a7c07f4de146ee\n"
    },
    {
      "commit": "f7b491388ec27d4490df3478a1ae17c5a9bf6f62",
      "tree": "1d42f19c4fe088fc1c475f3b63ac2e2c9078a00f",
      "parents": [
        "68773e6b6071e43401fb4f8fa3ca74af3dfa399c"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Jan 31 21:21:12 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Jan 31 21:21:12 2023 +0000"
      },
      "message": "Use \"SessionHint\" enum in ndk API\n\nChange NDK to use \"SessionHint\" enum consistently across definitions.\n\nBug: 266596626\nTest: manual\nChange-Id: I6ad095655b2dc05daf95cb5e7f506b3725915596\n"
    },
    {
      "commit": "dff1554cc8c39f4a64e74a50c0371bd0b794239f",
      "tree": "73fa435facdb02f609cf0db763b79515b6497934",
      "parents": [
        "400a20aa77ec1167b781580f5914de0023deee3b",
        "8f953ab5a1deea03a6abb4019008bac8c3ea2561"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Sat Jan 28 21:45:46 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 28 21:45:46 2023 +0000"
      },
      "message": "Merge \"Add TFLite model for motion prediction.\""
    },
    {
      "commit": "8f953ab5a1deea03a6abb4019008bac8c3ea2561",
      "tree": "734c9d8623546798ea2aabf4c81438079ce43abc",
      "parents": [
        "492cf57ab68bdcedb6f3985433183cb5ed15e697"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Tue Dec 06 15:37:07 2022 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Thu Jan 26 15:30:38 2023 -0800"
      },
      "message": "Add TFLite model for motion prediction.\n\nThis model generates probabilistic motion predictions based on a\nsequence of relative input movements. The input movements are converted\ninto polar coordinates (distance and angle) based on an axis that\nfollows the current path. This ensures that the orientation of the\ndevice and of the inputs do not affect the predictions. The orientation\nof the input device is also transformed to be relative to the path axis.\n\nThe test cases verifying model efficacy are consolidated into CTS.\n\nBug: 167946763\nTest: atest libinput_tests\nPiperOrigin-RevId: 492068340\nChange-Id: Icd8d90bd5a7ce79c699bfdb6367a4cbd8130441a\n"
    },
    {
      "commit": "c1041d4f1476a5663702f4a8b9312cfd224a8c10",
      "tree": "df396b30b2e64c89de74e5d6cf6b2e3cea52564e",
      "parents": [
        "e264034b8a97eec4706e0111d4abe4ccb8797aa3"
      ],
      "author": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Thu Jan 26 00:51:33 2023 +0000"
      },
      "committer": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Thu Jan 26 00:51:33 2023 +0000"
      },
      "message": "Use pid_t instead of not int32_t.\n\nBug: b/266595015\nTest: atest PerformanceHintManagerTest\nChange-Id: I33755bb30cceb9953db293092e417a1a14288226\n"
    },
    {
      "commit": "5df3493d3cf633f8ac7447bc5474a0dfbc1a8359",
      "tree": "f7831ace6032ff030e3e83df5e17a8c503f454e0",
      "parents": [
        "0026b4cfc864e6cbd32ef911235e39b31de54aba"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Jan 23 12:41:01 2023 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jan 24 04:52:17 2023 -0800"
      },
      "message": "Validate axes and led labels correctly\n\nBefore this CL, a number of checks for kl file validity were incorrect.\nSome of the APIs were supposed to return an invalid value, but instead\nwere always returning a valid value, no matter what the input was.\n\nCorrect these values by switching to std::optional.\n\nBug: 266400536\nTest: m libinput_tests \u0026\u0026 adb sync data \u0026\u0026 adb shell -t /data/nativetest64/libinput_tests/libinput_tests\nChange-Id: I4ef45f3249dca4f4f033fb85e9fecbc2ad1f1395\n"
    },
    {
      "commit": "d010b014dc42f55b5973c8329ab10dd69da92c77",
      "tree": "676cbbe4ba5593664d62183d80a9f765c990734c",
      "parents": [
        "d5095e769c6c4eaf2a5888a5828f272669a6e0a4"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jan 18 15:00:53 2023 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Jan 23 03:47:29 2023 -0800"
      },
      "message": "Improve debug prints in InputDispatcher\n\nIt\u0027s useful sometimes to print out the events produced by the\ndispatcher. In this CL:\n- Switch (partially) to the C++-style prints from android-base\n- Add a way to print keyevents, motionevent into a stream\n- Add InputEventInjectionResult print\n\nAlso, improve the debug prints for outgoing events. When an entry is\ngetting dispatched, the dispatcher may modify its action, among other\nvariables. With this CL, this will be observable in the logs.\n\nBug: 211379801\nTest: atest AccessibilityEndToEndTest\nChange-Id: I221161af7903ae4da77733265c67a426a3e5b557\n"
    },
    {
      "commit": "53e1dac44c8267ffb454ce969d39d2f88c7f366d",
      "tree": "a971560f70d06e9f377e9970d68e69dde24eafce",
      "parents": [
        "6d1c002eb5764dbb716073bf2f2ff5905558bfe1",
        "ea73eaa7cb640654d6cd5b423196a7beeb781416"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Fri Jan 20 14:13:16 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 14:13:16 2023 +0000"
      },
      "message": "Merge changes I036d0251,I7723dcba\n\n* changes:\n  TouchpadInputMapper: add dump method\n  TouchpadInputMapper: Add gesture property provider\n"
    },
    {
      "commit": "ea73eaa7cb640654d6cd5b423196a7beeb781416",
      "tree": "6311c08d1330e1664b2b0ddef5e03781ddfd1248",
      "parents": [
        "1b217913fbc80d3b8042a628d1a3eb7a3842e7ff"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Jan 16 17:55:46 2023 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Fri Jan 20 11:44:48 2023 +0000"
      },
      "message": "TouchpadInputMapper: add dump method\n\nThis dumps the state from the gesture converter, and a list of gesture\nproperties, which is useful for debugging settings.\n\nBug: 251196347\nTest: run dumpsys input with touchpad connected, check output\nChange-Id: I036d0251b06489b645b883a239ff345a98448497\n"
    },
    {
      "commit": "b096ea0dc94f2570207744dce7bac5579f77cae7",
      "tree": "480553e690a35980768b0642773ae49bbe8f32f3",
      "parents": [
        "e3f93479c020fc243bbbcf8c7c081103a58aa977",
        "b581f7f0d2aa1f385de2be47c1f3773795d2c131"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 20 08:08:30 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 08:08:30 2023 +0000"
      },
      "message": "Merge \"Track hovering pointers explicitly -- try 2\""
    },
    {
      "commit": "b581f7f0d2aa1f385de2be47c1f3773795d2c131",
      "tree": "67cf3ff4e962b5e6816a7f011bc9c7c64ebc8f1e",
      "parents": [
        "ae0b8d1d9bbada6795d81ab20f7470cb4f3cdc60"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Dec 07 20:23:06 2022 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Jan 19 07:44:13 2023 -0800"
      },
      "message": "Track hovering pointers explicitly -- try 2\n\nUpdate:\nCompared to the first version of this CL that got reverted, this version\nalso adds Flags::FOREGROUND to the windows whenever appropriate.\n\nBefore this CL, hovering window was tracked separately inside\nInputDispatcher. This window was getting updated in various places.\nInconsistent motion streams, like HOVER_ENTER-\u003eDOWN-\u003eUP-\u003eHOVER_EXIT were\npossible.\n\nIn this CL, we track hovering pointers inside TouchedWindow. At all\ntimes, the currently tracked pointer must always be in the touch state.\nThe hovering pointer is removed when HOVER_EXIT is received.\n\nThis CL also establishes the foundation for multi-device, multi-pointer\nstreams, by storing hovering pointers inside TouchedWindow per-device.\n\nEventually, we can look into separately creating touched targets from\nupdating the touch state. This approach is partially used in this CL.\n\nTouchState is used to keep track of where the hovering pointer is\ncurrently. The \u0027addHoveringWindowsLocked\u0027 function returns the\nequivalent of InputTargets. Eventually, we can change this to return\nInputTargets.\n\n39d37cfb471c69f924e90f8e35afcff4ad4e6042\n\nBug: 211379801\nTest: atest android.accessibilityservice.cts.AccessibilityEndToEndTest\nTest: atest VirtualMouseTest\nTest: m inputflinger_tests \u0026\u0026 adb sync data \u0026\u0026 adb shell -t /data/nativetest64/inputflinger_tests/inputflinger_tests\n\nChange-Id: I0aa77bc9f680786b154312c4c936da2cf6efffa1\n"
    },
    {
      "commit": "961656ae5864744ae22d66904e6b04b773c04a00",
      "tree": "a1b3895b9e584ac2e0bd52ffc1f5fc5615c9afd3",
      "parents": [
        "e2823f4d47324188167522010152eb7021c10f75",
        "92d7fd07adcc59291152e6e9212a416b5ff5c36a"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Jan 19 06:06:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 06:06:59 2023 +0000"
      },
      "message": "Merge \"[scribe] Add index of handwriting icon on native\""
    },
    {
      "commit": "d3cf4c284e5cea24b665b6489a7750eb222ad9b2",
      "tree": "fe28c4f0178682e4dbc7c4fa5436b32515f446b4",
      "parents": [
        "5568dbecd6f433f668d5eae3a00a12128480db64",
        "e04ffaaaa0ded909d69b8641ca30cc8a639fc1d1"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Jan 19 02:52:57 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 02:52:57 2023 +0000"
      },
      "message": "Merge \"Add an API to get the supported USI version for a display\""
    },
    {
      "commit": "243f1f8fe2241b7bf0edaf3e6f162620f68015e2",
      "tree": "69c8d023cc2f71c9835cb7b156312b82e0c51493",
      "parents": [
        "70ac5c317c15ed6b623d2bb7c143fb891c5c36c0",
        "0e4f17706f49dae3d325e70b05c1c8d96a4b54a0"
      ],
      "author": {
        "name": "Yurii Zubrytskyi",
        "email": "zyy@google.com",
        "time": "Wed Jan 18 00:11:46 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 00:11:46 2023 +0000"
      },
      "message": "Merge \"[res] Add the NDK api for grammatical gender qualifier\""
    }
  ],
  "next": "e04ffaaaa0ded909d69b8641ca30cc8a639fc1d1"
}
