)]}'
{
  "log": [
    {
      "commit": "2935db7177bf6ddee879883da5b0a07846f44391",
      "tree": "32fc1914c85723666e03fc88f1d59f7c4ed01b69",
      "parents": [
        "6b9a04ce47e24ed0012259e0390eb4ea5a439373"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 22 13:35:22 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Oct 05 11:33:59 2022 -0700"
      },
      "message": "Return events from mappers and InputDevice\n\nWe are changing the way android input events are reported from the\nInputReader. Previously, the process was opaque - anywhere in the code\nyou were allowed to grab the listener and send events to it. Now, the\nflow changes - you will have to explicitly return the events back to the\ncaller.\n\nWith the new approach, InputReader will ultimately be the one\ndispatching the events to the listener.\n\nBug: 211379801\nTest: atest inputflinger_tests\nChange-Id: I2318ad1220fa66b197ca2a49b8625afcfb45103f\n"
    },
    {
      "commit": "781002d516618d2a236cbc6ede1eb5aece01fa93",
      "tree": "3954b6973701fae68108b4588cb716f64d3cafe9",
      "parents": [
        "e4b61e15d4e881ebe5ceb3186ffa28477cefd66f",
        "afabcde5a9ac2b77586d61ad4a226718130663c3"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 03 21:58:33 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 03 21:58:33 2022 +0000"
      },
      "message": "Merge \"Preserve multi-touch slot state when resetting input mappers\""
    },
    {
      "commit": "afabcde5a9ac2b77586d61ad4a226718130663c3",
      "tree": "388794d073c42b50ab650d0a5798b2cf79cde40d",
      "parents": [
        "6f8b77e330b1325cdc299a42a1ef19b1ef621597"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Sep 27 19:32:43 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 03 17:45:30 2022 +0000"
      },
      "message": "Preserve multi-touch slot state when resetting input mappers\n\nThe existing pattern in InputReader is that when a mapper is reset, all\nof its state is cleared and state of the buttons/axes is\nqueried through EventHub to rebuild the current state of the mapper.\n\nThis approach does not work for multi-touch devices, since there is no\nway to query the current state of the contacts through the evdev\nmulti-touch protocol.\n\nSince we cannot fully rebuild the current state of a multi-touch device,\nwe work around this limitation by never clearing the multi-touch state.\n\nBug: 248506674\nTest: atest inputflinger_tests\nChange-Id: Ic59d9fcb4e13fe262c422825c2485185004b719b\n"
    },
    {
      "commit": "9306c38759b6f41a7562b6c5cb9492830088fe75",
      "tree": "c6b87664a776d1604bd0cc0318ddfae458268701",
      "parents": [
        "275b30fe6c045a2b9f0bfc860dd3c70bb8b91eae"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Sep 30 15:30:31 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Sep 30 23:06:21 2022 +0000"
      },
      "message": "Use consistent coordinate extraction code in dispatcher\n\nConsolidate the code for extraction of the coordinates from MotionEntry.\nThis allows us to more easily change the behaviour in the future.\n\nIn this CL, there will be a behaviour change that we will now use mouse\ncursor position for some of the location resolution instead of pointer.\nThis should be OK to do.\n\nBug: 250029068\nTest: atest inputflinger_tests\nChange-Id: I137c26f881ad993f7a7463c2c05674e48cf864f4\n"
    },
    {
      "commit": "d4e3f3af9d74ab4de578143325e676dd30776ac3",
      "tree": "765e96a309ac944865b1562874bbd49ec8d70a56",
      "parents": [
        "c1996a0a27b3f3231c0b64ffb09f42b5832314e2"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 27 14:31:05 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Sep 30 12:09:54 2022 -0700"
      },
      "message": "Improve logs for windows with NO_INPUT_CHANNEL\n\nWhen touched, these windows today generate a misleading log. The log\nstates that the window is not responsive. In reality, these windows\nsimply don\u0027t have an input channel.\n\nTouches should continue to be dropped for such windows, but the logs\nshould be improved.\n\nIn this CL, the logic is flattened. We explicitly check for whether the\nwindow has NO_INPUT_CHANNEL flag and generate the appropriate log.\n\nBug: 249163063\nTest: atest inputflinger_tests\nChange-Id: I1858c5f10d9a9c6a6916691a72d9e73486480311\n"
    },
    {
      "commit": "8bbcd2d4ac159a95c88bfdcee46597c7ead8e82e",
      "tree": "ead941652706ab0b2dcda0d78bc6bb636f627ae7",
      "parents": [
        "dc9b224a9dd3ba2884e30d2dffc37934043012b2",
        "15beb5171f87731367fb972630f7f3c5cbc2207a"
      ],
      "author": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Thu Sep 29 23:05:59 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 29 23:05:59 2022 +0000"
      },
      "message": "Merge \"(touch-mode-md 2/n) Add md touch mode support in InputDispatcher\""
    },
    {
      "commit": "a0265c6d07e3088eb86a7cab0ec6192171438af7",
      "tree": "aa369c4f22efd938310feb0c8d8363034016f5e9",
      "parents": [
        "e2f32dc0fe9d32ed000a1c14e50985b790438713",
        "7851303579fe07d1fde766b4511b871840aefe61"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 29 18:54:34 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 29 18:54:34 2022 +0000"
      },
      "message": "Merge \"Split NotifyArgs into a separate file\""
    },
    {
      "commit": "7a122b635ec9a6d6b16482eeb78e3b71c931e786",
      "tree": "d6973c6d1302db37d34c7e8fd52e78a257b1771e",
      "parents": [
        "9e914af740cbe9c5bf294ec502ad16314cf8588f",
        "862ae2109cfa6f91922ced5d88882a4e756bdb21"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 29 16:41:17 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 29 16:41:17 2022 +0000"
      },
      "message": "Merge \"Remove libui dependencies from input code\""
    },
    {
      "commit": "3d1b465421d5bc12f1e5ba065220b69dea0ffe67",
      "tree": "f3c0e0b2261ef99be0f2186f10c3230af981ec9c",
      "parents": [
        "e02d711958ab8314cce68fd68456aac5a8bdd29e",
        "edeec3ba65694b4c4bc1d83b2af3a4301424296f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 29 15:45:49 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 29 15:45:49 2022 +0000"
      },
      "message": "Merge \"Revert behavior of loading the AssociatedDevice\""
    },
    {
      "commit": "862ae2109cfa6f91922ced5d88882a4e756bdb21",
      "tree": "970fe316b9f676fb65f7a10db74d6f57dad4bbf3",
      "parents": [
        "e02d711958ab8314cce68fd68456aac5a8bdd29e"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 28 15:17:28 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 29 13:44:36 2022 +0000"
      },
      "message": "Remove libui dependencies from input code\n\nWe would like to eventually compile some or all of the input code\nfor host. Currently, libui-types is a small library that provides types\nlike Transform, Region, Rect. That build target is host-supported.\n\nSwitch input dependencies to use libui-types only.\n\nBug: 249591924\nTest: m checkinput\nChange-Id: I406a4c3b5ffe190271486213240d67a2e7d4bd25\n"
    },
    {
      "commit": "7851303579fe07d1fde766b4511b871840aefe61",
      "tree": "4b2e7f04a240c7dd49b974cffe4b2e6ce538d063",
      "parents": [
        "7b3b609539e842a6f8e3f8a399a6e76ca56143eb"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 15 18:42:05 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 28 22:23:46 2022 -0700"
      },
      "message": "Split NotifyArgs into a separate file\n\nThis way, we can pass NotifyArgs without having to learn about\nInputListener.\n\nInputListener, however, knows how to route the args.\n\nBug: 211379801\nTest: m libinputreader_arc\nChange-Id: Idf653facd26348fb1ebdf48fb53cf004603587a1\n"
    },
    {
      "commit": "7b3b609539e842a6f8e3f8a399a6e76ca56143eb",
      "tree": "fdf6c9e79daaf8332f722863fc3a1d10756fc40f",
      "parents": [
        "45fd904efb5af52fbdd130ef97ef3948046d8f54",
        "30feb8c162aa2e5348bba20e99e8db2a61bac6e7"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 29 04:26:26 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 29 04:26:26 2022 +0000"
      },
      "message": "Merge \"Delete mController when eventHub device is going away\""
    },
    {
      "commit": "30feb8c162aa2e5348bba20e99e8db2a61bac6e7",
      "tree": "8e3a284b77bb11cc68b1c23bc246aa404075598d",
      "parents": [
        "df1bc0560cbdc76837b308652b45a32c2d064cd9"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 28 10:48:29 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 28 22:41:23 2022 +0000"
      },
      "message": "Delete mController when eventHub device is going away\n\nWhen an event hub device is going away, the controller associated with\nit should be deleted.\n\nBefore this CL, mController would remain, and its use would result in an\nillegal memory access, because it was storing a reference to a deleted\ncontext.\n\nBug: 245770596\nTest: atest inputflinger_tests:InputDeviceTest#DumpDoesNotCrash\nChange-Id: I298f43172472f74fa4d5d8e0b7f52bd5c13d14f7\n"
    },
    {
      "commit": "45fd904efb5af52fbdd130ef97ef3948046d8f54",
      "tree": "eb36df1e9e69830e11753db96a5d62ae32ce5ef0",
      "parents": [
        "df1bc0560cbdc76837b308652b45a32c2d064cd9"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 27 13:26:20 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 28 22:40:56 2022 +0000"
      },
      "message": "Remove redundant EventHub variables\n\nSome of the variables are just copies of the same constant. Consolidate\nto simply use \u0027capacity\u0027.\n\nBug: 211379801\nTest: atest inputflinger_tests\nChange-Id: I6e51ba5671a31c6dc89c4511a37f0448934a1a3e\n"
    },
    {
      "commit": "edeec3ba65694b4c4bc1d83b2af3a4301424296f",
      "tree": "efa3272fd403d48c9e6a86c89ff1b276a278c5d5",
      "parents": [
        "6f8b77e330b1325cdc299a42a1ef19b1ef621597"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Aug 26 22:33:55 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Sep 28 21:14:59 2022 +0000"
      },
      "message": "Revert behavior of loading the AssociatedDevice\n\nag/19714571 changed the behavior of loading AssociatedDevices so that it\nwas only read once for each sysfsPath, even if multiple event hub\ndevices had the same sysfs path.\n\nHowever, that caused CTS hardware tests that read battery info to be\nflaky. To mitigate this, we revert to the previous behavior of\nre-loading the AssociatedDevice for each event hub device for now, until\nwe can debug the source of this issue.\n\nBug: 243979881\nTest: atest SonyDualshock4BluetoothTest#testBattery --iterations 100\nChange-Id: If7ab1076f0528945cf75073986ad0397471533ca\n"
    },
    {
      "commit": "7b3ea0be365356d3c9554960f85cd0c68df03ee3",
      "tree": "60c63f93200b2821afb7b77ca172adcfb39542a1",
      "parents": [
        "6f8b77e330b1325cdc299a42a1ef19b1ef621597"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Sep 16 14:23:20 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 28 14:21:20 2022 +0000"
      },
      "message": "Return events from EventHub\n\nRather than filling some buffer, EventHub will now return events\nexplicitly. This will simplify the interface and avoid storing the\nbuffer when no events are being actively produced.\n\nBug: 211379801\nTest: atest libinput_tests inputflinger_tests\nChange-Id: Ic4ba7789f899b2de9fbe5a0abe54475b74eb5f82\n"
    },
    {
      "commit": "6f8b77e330b1325cdc299a42a1ef19b1ef621597",
      "tree": "9af5a781ab6a75b5d76201698efffa6aac6dd37d",
      "parents": [
        "77d208672d6abb82eef8c8c0cf41f4df923aba07",
        "82b37d6e0bc12bd7218d2986df061320069f962a"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Wed Sep 28 09:39:41 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 28 09:39:41 2022 +0000"
      },
      "message": "Merge \"Add support for detecting Keyboard backlight using sysfs node\""
    },
    {
      "commit": "137a05255602bfa1ece8a71a83b0418c2efdfbb2",
      "tree": "5abf294743ff28a1dcf57feeaeecf7133a62f331",
      "parents": [
        "c71a81cd1b63decc0e27467c8376b7d77273544a",
        "51b46e2abaab95a07cc66116ffd4479ac1036a7a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 27 23:59:26 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 27 23:59:26 2022 +0000"
      },
      "message": "Merge changes from topic \"variant notifyargs\"\n\n* changes:\n  Add a generic \u0027notify\u0027 function\n  Use std::variant for NotifyArgs\n"
    },
    {
      "commit": "51b46e2abaab95a07cc66116ffd4479ac1036a7a",
      "tree": "fd4e016e9a868e20163e9bd1cea96e6e2ac92efc",
      "parents": [
        "096257cc2054ac53864908ede08bdd06879d8370"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 15 18:44:37 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 27 12:00:46 2022 -0700"
      },
      "message": "Add a generic \u0027notify\u0027 function\n\nThis new function will know how to route NotifyArgs. The caller doesn\u0027t\nhave to figure out the right invocation based on the args type.\n\nBug: 211379801\nTest: m checkinput\nChange-Id: I24cfc4aa0315eb20d008806b08eaf158ae09e719\n"
    },
    {
      "commit": "096257cc2054ac53864908ede08bdd06879d8370",
      "tree": "84be78d9b2f1eaeaaeb4b199fd5248ee1fc3d8a4",
      "parents": [
        "007713dd5cd5f005f3e332053431366f8fea9caa"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 15 17:02:20 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 27 11:58:46 2022 -0700"
      },
      "message": "Use std::variant for NotifyArgs\n\nPreviously, NotifyArgs was a base class and we relied on inheritance in\norder to refer to these args in a generic manner.\n\nUnfortunately, this prevents us from being able to cast into a\ndescendant. If you got NotifyArgs, there was no way to figure out its\ntype.\n\nIn this CL, we switch to std::variant. Doing this allows us to remove\nthe inheritance, and several other functions. The classes are now mostly\nabout data.\n\nThis allows us to receive a generic NotifyArgs object and cast it into\nNotifyMotionArgs (for example). This also allows us to separate\nNotifyArgs from the InputListener interface (not done in this CL).\n\nFurthermore, we don\u0027t need to store the args as unique_ptr anymore.\n\nBug: 211379801\nTest: m checkinput\nChange-Id: I5b10d485a9eb27b4ffb6a3a6e21227f52ac3dede\n"
    },
    {
      "commit": "9b9732cf5ce671c185e1fe671dba68c759aa507c",
      "tree": "eb7bbc0128f6e3b142ce676fd38c7845fb3ab0c7",
      "parents": [
        "d9858770607f5fd43820cb69f4b1382275a691e4",
        "2800fb0c6b56711c6daf70491270dbea89fbf660"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Sep 26 14:19:40 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 26 14:19:40 2022 +0000"
      },
      "message": "Merge \"Use TWO_FINGER_SWIPE classification for touchpad scroll events\""
    },
    {
      "commit": "2800fb0c6b56711c6daf70491270dbea89fbf660",
      "tree": "4005bd4ceb50ddc62585e94e87df907ff56f48e1",
      "parents": [
        "9425077b65c67bea06e87ea06d6f16d7eb8ff845"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Thu Sep 15 13:49:23 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Fri Sep 23 13:38:02 2022 +0000"
      },
      "message": "Use TWO_FINGER_SWIPE classification for touchpad scroll events\n\nThis allows apps to distinguish the fake finger created for touchpad\nscrolling from an actual finger.\n\nBug: 246758376\nTest: add classification to InputDispatcher\u0027s outbound event logs and\n      check the new value is used when scrolling\nChange-Id: Ia90f9984e75ad6fde2d0e42628ab42eab371b7a5\n"
    },
    {
      "commit": "82b37d6e0bc12bd7218d2986df061320069f962a",
      "tree": "a663b227765f9984a678a773311976b411755e22",
      "parents": [
        "52b3c475ed1c6cab0c5e232a3aeb68706c5b22bf"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Mon Sep 12 13:36:48 2022 +0000"
      },
      "committer": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Thu Sep 22 21:57:25 2022 +0000"
      },
      "message": "Add support for detecting Keyboard backlight using sysfs node\n\nAdd new light type for Keyboard backlight and corresponding\ndetection logic. Also, refactor PeripheralController logic to\nsupport Light type and light capabilities similar to how it is\nhandled on Java side of code.\n\nTest: atest inputflinger_tests\nBug: 245506418\nChange-Id: Ic69e42555bf57a66683fcf359169869ee2a00749\n"
    },
    {
      "commit": "007713dd5cd5f005f3e332053431366f8fea9caa",
      "tree": "e8aeaab046bcf90c29fbcfa6186e7d9293381cc1",
      "parents": [
        "52b3c475ed1c6cab0c5e232a3aeb68706c5b22bf"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Sep 16 14:40:11 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 22 21:33:39 2022 +0000"
      },
      "message": "Add fuzzers to checkinput\n\nNow that we have more code that breaks during refactorings, let\u0027s make\nsure checkinput catches these breakages.\n\nBug: 211379801\nTest: m checkinput\nChange-Id: I1731b91d9dac770625a9e85d98c4b580b1e300b4\n"
    },
    {
      "commit": "15beb5171f87731367fb972630f7f3c5cbc2207a",
      "tree": "dbddc89ee2e8607c691e97c098c0422d8d6a2fe9",
      "parents": [
        "cc8be8c3a1c938cd8a1226608e4b830b470f25ff"
      ],
      "author": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Mon Jun 13 22:35:41 2022 +0000"
      },
      "committer": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Fri Sep 16 18:11:27 2022 +0000"
      },
      "message": "(touch-mode-md 2/n) Add md touch mode support in InputDispatcher\n\nMajor changes in this CL:\n* Drop kPerDisplayTouchModeEnabled (keep the native layer simple);\n* Include display id in TouchModeEntry;\n* Cache touch mode state per display id.\n\nBug: 198499018\nTest: atest inputflinger_tests\nChange-Id: Idc800e08bfca1c19342ad34865bd6c9e5dc6a7d3\n"
    },
    {
      "commit": "c58ebaa059986e549794313e826023f10a5becb4",
      "tree": "7cc62b8c8cdc3c71092224e31b97fe0828183ebb",
      "parents": [
        "9425077b65c67bea06e87ea06d6f16d7eb8ff845"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Sep 14 18:23:11 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Sep 14 18:23:13 2022 +0000"
      },
      "message": "Include all input tests from CtsViewTestCases in input presubmit\n\nBug: 246392485\nChange-Id: I117f48c6401c30f1f4bd256b17f97df08eeb419e\nTest: Presubmit\n"
    },
    {
      "commit": "b5343728902f65b029c4e3d4b591447e0c84b50e",
      "tree": "4c464ae42c4089b5a3bee97b2b346f8f71f340d3",
      "parents": [
        "e8cf076ae624013929108149669eb00d681e5b17",
        "95785e28b472603a527a37705c393d3c97aea21d"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 13 21:24:37 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 21:24:37 2022 +0000"
      },
      "message": "Merge \"[Optimization] It\u0027s no need to start the dispatch cycle going if the outbound queue was not previously empty.\""
    },
    {
      "commit": "c2af7c0e001854fc24f6f3e6759e8f446d4a4a83",
      "tree": "c5b1e086982bb611df7e4d7d438537db8791f898",
      "parents": [
        "32754222c0eecc3165e7ee22af75116a36bd4c24",
        "e4df875a3b8079bf7fee90ccf80e4cd3a49c1082"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Sep 13 20:56:23 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 20:56:23 2022 +0000"
      },
      "message": "Merge \"Revert \"InputDispatcher: Blame the window from the focus request for ANR\"\""
    },
    {
      "commit": "95785e28b472603a527a37705c393d3c97aea21d",
      "tree": "5fdb2e5b6a9fed7c1c74ad843877f5969b71eace",
      "parents": [
        "cc7f1ece12e6b982ccb0d46a07a04af43dee6144"
      ],
      "author": {
        "name": "hongzuo liu",
        "email": "liuhongzuo@xiaomi.com",
        "time": "Tue Sep 06 02:51:35 2022 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 13 12:11:46 2022 -0700"
      },
      "message": "[Optimization] It\u0027s no need to start the dispatch cycle going if the outbound queue was not previously empty.\n\nIf the outbound queue was not previpusly empty, it indicates that the connection\u0027s pipe is full.We will try start the next dispatch cycle for this connection in \"doDispatchCycleFinishedCommand\".\nThis follows \"enqueueDispatchEntriesLocked\".\n\nTest: none\nChange-Id: I7736c2bfdb13c35a51b74c46ada7b0f562fecfd9\n"
    },
    {
      "commit": "a1f67db48214079c5b92614aba8c184be1632a67",
      "tree": "37a7947c695ad4bb07f2cb21a8b9f6e3bcb535be",
      "parents": [
        "d229aa4362cfb284dcf9765ff848958109d57ef7",
        "6195dbca2db7171cf97e966b05b311f32f8fe167"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 13 11:28:43 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 13 11:28:43 2022 +0000"
      },
      "message": "Merge \"Enable touch occlusion logs\" into tm-qpr-dev am: ef353206fd am: 6195dbca2d\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19929468\n\nChange-Id: I72a663171a9b990b10ab55fcd7ba88439ca652fe\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6195dbca2db7171cf97e966b05b311f32f8fe167",
      "tree": "5bf7c14d13e1bd909744100b6e3ab2b073927d3a",
      "parents": [
        "4addabaee950baec7dc1d9e5d5bd3a8bc45a1339",
        "ef353206fda53d646a90dfa18b4da984d428ae01"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 13 10:46:13 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 13 10:46:13 2022 +0000"
      },
      "message": "Merge \"Enable touch occlusion logs\" into tm-qpr-dev am: ef353206fd\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19929468\n\nChange-Id: I750f7650dc2e44eb55ab93125851fbcfaa5a4b9a\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ef353206fda53d646a90dfa18b4da984d428ae01",
      "tree": "e2b6c42636510816ebc85c8cbba5ab8150d17fec",
      "parents": [
        "1d12a05159451356d6688e426e04913d10299fe6",
        "076dc75aaea9e68838eabb90722b88954bb634d5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 13 10:23:10 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 10:23:10 2022 +0000"
      },
      "message": "Merge \"Enable touch occlusion logs\" into tm-qpr-dev"
    },
    {
      "commit": "076dc75aaea9e68838eabb90722b88954bb634d5",
      "tree": "b92aba883da8a0282360f847cd6283bd042c83ba",
      "parents": [
        "7fa3483dfb0b6eefdb8eeb990172d673bbed2665"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Sep 12 15:07:16 2022 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Sep 12 21:23:31 2022 +0000"
      },
      "message": "Enable touch occlusion logs\n\nThese logs were made optional in ag/17073502, but that was not\nintentional. These are useful for debugging obstructed touch issues, so\nlet\u0027s bring them back.\n\nBug: 246404700\nTest: adb logcat\nChange-Id: Ieca99d790d2a1c9680de9a89e0113e177488dc7b\n"
    },
    {
      "commit": "39f27692ca1fd8d6e73d1bd478719156f20253f4",
      "tree": "93b2807336398417e820c2c90c41a04fd494c81f",
      "parents": [
        "3ead795ebe000015d6982ea2aac1a79521a73cca",
        "ff41b63eb28a991a80669b4a466f9b29a8cbfe78"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Sep 12 21:10:17 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Sep 12 21:10:17 2022 +0000"
      },
      "message": "Merge \"Resolve associated display and pointer display in CursorInputMapper\" into tm-qpr-dev am: ff41b63eb2\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19916051\n\nChange-Id: I4ab78a906ae7d7ad86dbfb623778e4ce418ed3cc\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c3c475ee6aacdfd7dd9aebe81fa8f14a17f2ffe6",
      "tree": "7c59f2af4d7a1f4a5cbe09434cf90ae42db4ba70",
      "parents": [
        "8e36439d3c16216a21de9eec6781c2917a11758f",
        "e287ecd5ff7aa2212e9ab28e3176bea5f4aab5b9"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Sep 12 20:33:30 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 12 20:33:30 2022 +0000"
      },
      "message": "Merge \"Add pipeline to get the sysfs path for an InputDevice\u0027s battery\""
    },
    {
      "commit": "c04d04de31c346c1ccfa9f94fed715c07ac42986",
      "tree": "5344d27e76b931f0f609f3a0c10aaf2cdecdb3e2",
      "parents": [
        "7fa3483dfb0b6eefdb8eeb990172d673bbed2665"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Sep 08 22:03:30 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Sep 12 15:53:50 2022 +0000"
      },
      "message": "Resolve associated display and pointer display in CursorInputMapper\n\nAn InputDevice can be associated with a display, in which case it should\nonly generate events for that display. A mouse generally generates\nevents for whichever display is currently showing the mouse cursor.\n\nIn the case where a mouse InputDevice is associated with a display, we\nneed to make sure that it only generates events when the mouse cursor is\non the associated display.\n\nAdditionally, any display-dependent configuration, such as orientation,\nshould depend on whichever display the device is configured for.\n\nBug: 236075874\nTest: atest inputflinger_tests\nChange-Id: I1021c121c1eae768585124d312f5187be90da666\nMerged-In: I1021c121c1eae768585124d312f5187be90da666\n(cherry picked from commit c13ff081db31e93ee3b0a96bb007704c61d10a02)\n"
    },
    {
      "commit": "0d169d903b2ad1892a06df4c232e006689d5e05d",
      "tree": "549c402cec06793d7e98acaef3ad432b145fc9eb",
      "parents": [
        "b6231c90507c01e79d0c011384ec55da7bbb0122",
        "384ab0fa6432f8b61ae4cd990480fe6a16228dd0"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Sat Sep 10 04:24:20 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 10 04:24:20 2022 +0000"
      },
      "message": "Merge \"Reland \"Make VelocityTracker 1D\" (--try 2)\""
    },
    {
      "commit": "b6231c90507c01e79d0c011384ec55da7bbb0122",
      "tree": "4b8b26ce17a2a8770ea14b8fe8e3e3a02021d32b",
      "parents": [
        "7076bebd4c12e6e4d56b777421c5d1cbd41b1398",
        "4810866ed0a355fe7997857a5bac93099e8565c6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 10 00:03:23 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 10 00:03:23 2022 +0000"
      },
      "message": "Merge \"inputflinger: Use #pragma once instead of explicit define guards\""
    },
    {
      "commit": "7076bebd4c12e6e4d56b777421c5d1cbd41b1398",
      "tree": "ef4b9de27e009060209e71b66cf252d465623800",
      "parents": [
        "b6f57a0588d8cd1cdd06b7a533e8552c87a83703",
        "739dca4e62cad456993c1f20ca29a6f05b2470ad"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 09 23:54:39 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 23:54:39 2022 +0000"
      },
      "message": "Merge \"Add header for Matchers used with TestInputListener\""
    },
    {
      "commit": "ce8d4855c3c91b627cd6c9ea3a82fd8ca7af1ae9",
      "tree": "13a35c885fa04eb051baeac64d7c45c445956682",
      "parents": [
        "d8649e7ed95fd88463c4153833ca77abc706de06",
        "c13ff081db31e93ee3b0a96bb007704c61d10a02"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 09 22:30:36 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 22:30:36 2022 +0000"
      },
      "message": "Merge \"Resolve associated display and pointer display in CursorInputMapper\""
    },
    {
      "commit": "e287ecd5ff7aa2212e9ab28e3176bea5f4aab5b9",
      "tree": "a811029239f868796eb90d15f5947fae3ea08968",
      "parents": [
        "5404600a170f7d095ee51a7469aaab900e9491b7"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Sep 07 21:18:05 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Sep 09 21:31:38 2022 +0000"
      },
      "message": "Add pipeline to get the sysfs path for an InputDevice\u0027s battery\n\nThis will be used to listen to UEvent notifications coming from the\nbattery\u0027s device path that notify userspace about battery state changes.\n\nBug: 243005009\nTest: atest inputflinger_tests\nTest: manual with logs\nChange-Id: I464c6212cdb33242cb319176d502b6e8431125fb\n"
    },
    {
      "commit": "4810866ed0a355fe7997857a5bac93099e8565c6",
      "tree": "4397f643cf6609318c92b35910789a705daf9a4d",
      "parents": [
        "739dca4e62cad456993c1f20ca29a6f05b2470ad"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Sep 09 21:22:04 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Sep 09 21:31:19 2022 +0000"
      },
      "message": "inputflinger: Use #pragma once instead of explicit define guards\n\nThe #pragma once directive is commonly used by modern cpp code, and\nsupport for its use in Andorid is proposed in go/droidcppstyle.\n\nBug: 245989146\nTest: Build, Presubmit\nChange-Id: Id257f056972b753f505afe1d253d306bb1824098\n"
    },
    {
      "commit": "739dca4e62cad456993c1f20ca29a6f05b2470ad",
      "tree": "253a02e917b96cfeba68ee7517239722176b3ba9",
      "parents": [
        "c13ff081db31e93ee3b0a96bb007704c61d10a02"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Sep 09 20:12:01 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Sep 09 21:31:19 2022 +0000"
      },
      "message": "Add header for Matchers used with TestInputListener\n\nMove all the matcher definitions to a common header.\n\nBug: 245989146\nTest: atest inputflinger_tests\nChange-Id: I1dfd4342b5e291760df5b2078b02fd374b6546ac\n"
    },
    {
      "commit": "c13ff081db31e93ee3b0a96bb007704c61d10a02",
      "tree": "c9b0d3ea2930da7e0c4935a32fd54b5977a6ab30",
      "parents": [
        "5404600a170f7d095ee51a7469aaab900e9491b7"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Sep 08 22:03:30 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Sep 09 20:19:39 2022 +0000"
      },
      "message": "Resolve associated display and pointer display in CursorInputMapper\n\nAn InputDevice can be associated with a display, in which case it should\nonly generate events for that display. A mouse generally generates\nevents for whichever display is currently showing the mouse cursor.\n\nIn the case where a mouse InputDevice is associated with a display, we\nneed to make sure that it only generates events when the mouse cursor is\non the associated display.\n\nAdditionally, any display-dependent configuration, such as orientation,\nshould depend on whichever display the device is configured for.\n\nBug: 236075874\nTest: atest inputflinger_tests\nChange-Id: I1021c121c1eae768585124d312f5187be90da666\n"
    },
    {
      "commit": "384ab0fa6432f8b61ae4cd990480fe6a16228dd0",
      "tree": "c8678a3a9d9643ddb36cdf85031f43e9bbb04ca2",
      "parents": [
        "2f9677126ef0d8bc17d82bedb31990f6f154e00f"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Fri Sep 09 16:39:18 2022 +0000"
      },
      "committer": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Fri Sep 09 17:56:39 2022 +0000"
      },
      "message": "Reland \"Make VelocityTracker 1D\" (--try 2)\n\nThis fixes a bug where stale velocities were not cleaned up during calls\nto get updated velocities.\n86f72a3882ab4994dfbb410ebebc9ab3a75b8b16\n\nTopic for the revert which is being rolled-forward: https://googleplex-android-review.git.corp.google.com/q/topic:revert-19762050-generic_vt-XWGGUQUHYR\n\nBug: 32830165\nTest: VelocityTracker_test unaffected (atest libinput_tests)\n\nChange-Id: Ib706e76b9502e262eabfd221bd741e5faaee1ed5\n"
    },
    {
      "commit": "2f9677126ef0d8bc17d82bedb31990f6f154e00f",
      "tree": "5f80cfd56b0b3cd2200d3a7d6f90c97402b3422d",
      "parents": [
        "5404600a170f7d095ee51a7469aaab900e9491b7",
        "86f72a3882ab4994dfbb410ebebc9ab3a75b8b16"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Fri Sep 09 16:30:15 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 16:30:15 2022 +0000"
      },
      "message": "Merge \"Revert \"Make VelocityTracker 1D\"\""
    },
    {
      "commit": "86f72a3882ab4994dfbb410ebebc9ab3a75b8b16",
      "tree": "05c5c6a2f9ddb7db510ecde9e43c383810f8e912",
      "parents": [
        "37acf6e3b7ff4b30567eb3210560db3d73c20a58"
      ],
      "author": {
        "name": "Sam Dubey",
        "email": "dubeyshubham@google.com",
        "time": "Fri Sep 09 05:09:34 2022 +0000"
      },
      "committer": {
        "name": "Sam Dubey",
        "email": "dubeyshubham@google.com",
        "time": "Fri Sep 09 05:09:34 2022 +0000"
      },
      "message": "Revert \"Make VelocityTracker 1D\"\n\nRevert \"Conform to 1D VelocityTracker\"\n\nRevert submission 19762050-generic_vt\n\nReason for revert: b/245842062\nReverted Changes:\nI181af7a03:Make VelocityTracker 1D\nIb0be0fc38:Conform to 1D VelocityTracker\n\nChange-Id: Ife5675e4abdf154eb6466f687e52b6a427860d26\n"
    },
    {
      "commit": "e4df875a3b8079bf7fee90ccf80e4cd3a49c1082",
      "tree": "5ddee612728b7c669b3a001c4951fce022e5af67",
      "parents": [
        "40a3eea9ca593a85bd4f310b55455872945c4fce"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Sep 08 09:17:55 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Sep 08 16:48:08 2022 -0700"
      },
      "message": "Revert \"InputDispatcher: Blame the window from the focus request for ANR\"\n\nThis reverts commit 2f5bc8b8cfda7762213268842c13e2280ac02466.\n\nBreaks android.server.wm.AnrTests#slowUiThreadWithKeyEventTriggersAnr\n\nTest: atest android.server.wm.AnrTests#slowUiThreadWithKeyEventTriggersAnr\nBug: 239907039\nChange-Id: I45fcaf7d92fdedfa965d563cdb62ad2da3c8f5d4\n"
    },
    {
      "commit": "5404600a170f7d095ee51a7469aaab900e9491b7",
      "tree": "b136463d4b36c4386a1748ce14e2f7402bbaf86e",
      "parents": [
        "07f9606bc39c09c235c4f7b8590aa094466d71a7",
        "37acf6e3b7ff4b30567eb3210560db3d73c20a58"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Thu Sep 08 23:35:04 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 23:35:04 2022 +0000"
      },
      "message": "Merge \"Make VelocityTracker 1D\""
    },
    {
      "commit": "93b5420d8c5d18a631f5bfeba4a74bef0ee919de",
      "tree": "5c992b613b25fb27442f8e25ac769763b9a9e025",
      "parents": [
        "f1d670fb9ee5281060a7d7d56d09dd53114bc72f",
        "0f0ca6e181cdacc57d1ba7b14fb205e2604fc76b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 08 07:45:28 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 07:45:28 2022 +0000"
      },
      "message": "Merge changes I8e9c5f78,If48e5ddb\n\n* changes:\n  Add inputflinger InputReader fuzzer\n  Add inputflinger blockingQueue/classifier fuzzers\n"
    },
    {
      "commit": "868e1c0b1bf79fdde092a0ef4b40f97a85b3f5ee",
      "tree": "53d55a1340897539618fd68225a0455bbfad827c",
      "parents": [
        "da5d6329907ef027d3abe247a1c5d90f941b02aa",
        "b8d9326f7586f47d7771c7d1e7bafd35d1b6c82e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 08 03:28:43 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 03:28:43 2022 +0000"
      },
      "message": "Merge \"Add initial batch of inputFlinger fuzzers\""
    },
    {
      "commit": "37acf6e3b7ff4b30567eb3210560db3d73c20a58",
      "tree": "dc84a2ffd7f3ae5f1c9540c9499f5d8f20d6b11c",
      "parents": [
        "89eca3248127fbe97a8669725bd2649163dd7831"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Sat Aug 27 05:48:51 2022 +0000"
      },
      "committer": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Wed Sep 07 16:25:32 2022 -0700"
      },
      "message": "Make VelocityTracker 1D\n\nCurrently, VelocityTracker is strictly tied to X and Y axes. It\u0027s APIs\nact on both axes, and its component structs (e.g. Position, Estimator)\nare tied to both X and Y axes. As a step towards supporting more axes\nfor velocity tracking, this change:\n- removes the Position struct: stores/processes data as pure floats, one\n  axis at a time\n- makes Estimator and Strategy specific to a single axis, instead of\n  dealing with both/only X and Y at the same time\nFurthermore, we have pulled into VelocityTracker the logic to compute\nall velocity. This helps making the immediate JNI layer light-weight in\naddition to allowing us to test the logic (which is non-trivial and\nbenefits from tests).\n\nBug: 32830165\nTest: VelocityTracker_test unaffected (atest libinput_tests)\n\nChange-Id: I181af7a033eb647e9cb97db9b86a36ae972290a5\n"
    },
    {
      "commit": "2bdd091b6fde541cb31b15bae52f2c3e6d24a5fc",
      "tree": "018dfcc29efa6790908ba65a056160d3dffc93a3",
      "parents": [
        "7ddd491721d4de8bd938f61b3ebc0cb59865745f",
        "5d22b76f8b727d08eba49ec553f25a7417fb2d3e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 07 01:10:09 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 07 01:10:09 2022 +0000"
      },
      "message": "Merge \"Avoid UI freezing when reading battery capacity/status\" am: aaa9f80247 am: 83193e691d am: bc075eb167 am: 5d22b76f8b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2198903\n\nChange-Id: Ia87c45f9bb7502ee6c21174a65d47e9a664f67b0\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "aaa9f80247c76eaec48008c2718ba2c60e241b92",
      "tree": "00a0eb83897d89b4ec3603fbb99a90e2c19980f0",
      "parents": [
        "61ba79e876e448896b2f8a95d4cc1ebf79c78df3",
        "22c330ce3b5ae4763f5dee9821662e743bb02e6a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 06 22:39:11 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 06 22:39:11 2022 +0000"
      },
      "message": "Merge \"Avoid UI freezing when reading battery capacity/status\""
    },
    {
      "commit": "22c330ce3b5ae4763f5dee9821662e743bb02e6a",
      "tree": "fc9cc15fb33ad06c010798604be277f4f3054b40",
      "parents": [
        "cb05b913b656e3d16a6ea362afa7e1e403297847"
      ],
      "author": {
        "name": "Andy Chen",
        "email": "achen73@ford.com",
        "time": "Mon Aug 29 20:07:10 2022 -0400"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Sep 06 19:29:54 2022 +0000"
      },
      "message": "Avoid UI freezing when reading battery capacity/status\n\nReading battery capacity and status could fail and end up\nwith timeout after 5s for some input devices, for example:\n8BitDo SN30 Pro+ gamepad.\n\nBefore reading those items, it would be better to release\n`mLock` so that other threads could run.\n\nBug: 244088945\nTest: Manually verified no UI freezing when calling\n  `inputDevice.batteryState.capacity` or\n  `inputDevice.batteryState.status`\n\nChange-Id: Ibb6b8c999b7fd4fe7fbcc57264a1fe6ad74903dc\nMerged-In: Ibb6b8c999b7fd4fe7fbcc57264a1fe6ad74903dc\n"
    },
    {
      "commit": "7e2afbb8edeed8a2caa57667e7ed9e1987c2b659",
      "tree": "37c48cee49e85b76952aacb06828bbd945d21bc4",
      "parents": [
        "d9dd2418f8a4e167e26897a29a9c7560ba3a187c",
        "f9f1a0247a54d6ae55ac1dcdc0a4e96aad9ac9f2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 06 17:16:14 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 17:16:14 2022 +0000"
      },
      "message": "Merge \"Avoid UI freezing when reading battery capacity/status\""
    },
    {
      "commit": "f9f1a0247a54d6ae55ac1dcdc0a4e96aad9ac9f2",
      "tree": "1c6861d02b8d6bc35194e536520fa5ce3263fa3d",
      "parents": [
        "0b2413f6f1687bee287dcf2e48c8092640d311f7"
      ],
      "author": {
        "name": "Andy Chen",
        "email": "achen73@ford.com",
        "time": "Mon Aug 29 20:07:10 2022 -0400"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Sep 06 15:39:52 2022 +0000"
      },
      "message": "Avoid UI freezing when reading battery capacity/status\n\nReading battery capacity and status could fail and end up\nwith timeout after 5s for some input devices, for example:\n8BitDo SN30 Pro+ gamepad.\n\nBefore reading those items, it would be better to release\n`mLock` so that other threads could run.\n\nBug: 244088945\nTest: Manually verified no UI freezing when calling\n  `inputDevice.batteryState.capacity` or\n  `inputDevice.batteryState.status`\n\nChange-Id: Ibb6b8c999b7fd4fe7fbcc57264a1fe6ad74903dc\n"
    },
    {
      "commit": "55c0e4f583feaa7b7dbe3b401dfde12007b783df",
      "tree": "48474ab1f638c4de8f8a381804eb37ddfcfe48f4",
      "parents": [
        "12531a36fc7fe27ca14cca0474fda5697a6f6904",
        "c6144abeb9a81c790363aa5345e06c98d4b5bf8c"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Fri Sep 02 09:55:23 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 02 09:55:23 2022 +0000"
      },
      "message": "Merge \"Trampoline atrace definitions through libbinder to libcutils\" am: e812abddc0 am: 039cd688c1 am: c60e32d52c am: 5f49ce9ca2 am: c6144abeb9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2189867\n\nChange-Id: I7a8b7c5ff230d3c8b3f24561f734ed9e4ec01ad6\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c6144abeb9a81c790363aa5345e06c98d4b5bf8c",
      "tree": "527f882d891676db7d294e60264571c2c54521fd",
      "parents": [
        "f3592f5be36766fbb24a69146b97b19e11068647",
        "5f49ce9ca244ba9d26f5e4844f7d48df7b6432ec"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Fri Sep 02 09:25:12 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 02 09:25:12 2022 +0000"
      },
      "message": "Merge \"Trampoline atrace definitions through libbinder to libcutils\" am: e812abddc0 am: 039cd688c1 am: c60e32d52c am: 5f49ce9ca2\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2189867\n\nChange-Id: I33fdb40c22d3f972cfb7aaba42d7361ffaac4fbe\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f30d3c1fa4d020b461e9362bcd098a1ea62e4c16",
      "tree": "089aa2398756a0c313602ae33c5982d5b9853477",
      "parents": [
        "b22d75f6d5a60ea903046266296237b2d2c63aed",
        "7fa3483dfb0b6eefdb8eeb990172d673bbed2665"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Sep 01 20:10:18 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 01 20:10:18 2022 +0000"
      },
      "message": "Merge changes I111361f7,Ic4979b91,Ic289d772 into tm-qpr-dev am: 7fa3483dfb\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19758680\n\nChange-Id: I09e6632b8589ad155e1d3678be39a055e148c807\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b22d75f6d5a60ea903046266296237b2d2c63aed",
      "tree": "71c9406cb1b71ba65e9bdcc3c758734a5f330b53",
      "parents": [
        "c2dfa0d95a321f288816664e37d31dbe54090fb1",
        "366904197bc619c00e36403faf2b17ffc1b5c204"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Sep 01 20:10:16 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 01 20:10:16 2022 +0000"
      },
      "message": "Fix issues with InputMapper tests am: 366904197b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19725469\n\nChange-Id: I481957a21ac6e98422ae02928256b7975395b7a7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f670dad1449dcce43494394789c55821a995d79a",
      "tree": "eb0d32b625522c4f084924db9d2ad26905b60b8e",
      "parents": [
        "366904197bc619c00e36403faf2b17ffc1b5c204"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Aug 05 22:32:11 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Sep 01 16:40:12 2022 +0000"
      },
      "message": "Reset the touch state when the active viewport is disabled\n\nWhen an active viewport becomes inactive, cancel any ongoing gestures\nimmediately. When the viewport becomes active again, make sure state is\nreset again so that we eliminate any race conditions between the\nviewport becoming active and first touches coming in from the device.\n\nThis is a preventative measure to defend against unexpected touch\nbehavior around viewports being activated and deactivated.\n\nBug: 234662773\nTest: atest inputflinger_tests\nChange-Id: I111361f7470fdad39b493b516e8a8f167e0c681c\nMerged-In: I111361f7470fdad39b493b516e8a8f167e0c681c\n(cherry picked from commit c0bdeefdcb2f8d880389cf3aa0a0d8899f46f2e4)\n"
    },
    {
      "commit": "366904197bc619c00e36403faf2b17ffc1b5c204",
      "tree": "d5e641b57f9848a7430f6d1f66a2824d2461adde",
      "parents": [
        "e74b35ffd574e4ddccb2112efcb9e337653cd9a6"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Aug 05 22:26:56 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Sep 01 16:40:04 2022 +0000"
      },
      "message": "Fix issues with InputMapper tests\n\n- When an input device is added, a device reset notification is sent.\n  This should be consumed when the device is added so that it does\n  not need to be consumed in every test case.\n- The above change exposed an issue with a CursorInputMapper test case,\n  where it was consuming the wrong device reset notification.\n- When a device is configured, it may produce device reset\n  notifications. After configuring, we should loop the input reader so\n  that the queued input listener is flushed so that these args can be\n  sent out.\n\nBug: 234662773\nTest: atest inputflinger_tests\nChange-Id: Ic4979b91207a6abf4c4ac65fd3db30307cb53729\nMerged-In: Ic4979b91207a6abf4c4ac65fd3db30307cb53729\n(cherry picked from commit b5174de1a9ede697dfd2bf65e65b294321f9444d)\n"
    },
    {
      "commit": "23457d0f835624f4b4985c8169f0ccedcab68287",
      "tree": "bf68e4ecb77abbcab018d660c239e6062bf703e6",
      "parents": [
        "ec6c073aed281ce50cdd0f38b0f9f4e247109700"
      ],
      "author": {
        "name": "Zim",
        "email": "zezeozue@google.com",
        "time": "Wed Aug 17 12:57:41 2022 +0100"
      },
      "committer": {
        "name": "Zim",
        "email": "zezeozue@google.com",
        "time": "Thu Sep 01 16:22:10 2022 +0100"
      },
      "message": "Trampoline atrace definitions through libbinder to libcutils\n\nThis avoids adding libcutils (additional) deps to aidls that\ngenerate binder trace tags (the default for cpp backends now).\n\nOthers:\n1. Added libbinder to libinputflinger_base_defaults to fix the\nbuild\n2. Fixed redefinition of ATRACE_TAG by redefining package manager\nspecific trace functions in a separate source\n\nTest: Manual\nBug: 161393989\nChange-Id: I7b83c0d11c3fa98bf31c29a880853566ad0909c3\n"
    },
    {
      "commit": "e74b35ffd574e4ddccb2112efcb9e337653cd9a6",
      "tree": "11cd3505fdf42b592e5ffe056e08b9c38ae07946",
      "parents": [
        "2c23a2ee8f19f3a73ddbaddfb91566488e55e73c"
      ],
      "author": {
        "name": "lilinnan",
        "email": "lilinnan@xiaomi.corp-partner.google.com",
        "time": "Tue Jul 19 16:00:50 2022 +0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Aug 31 21:12:51 2022 +0000"
      },
      "message": "Fix spot not disappear when display id changed\n\nTurn on show touches in settings, and finger press on screen, let the\nspot show, at now, display id changed, the spot will stay on screen.\n\nwhen display id changed, we should cancel touch event and update\nspot state.\n\nBug: 239378650\nBug: 234662773\nTest: atest inputflinger_tests\n\nSigned-off-by: lilinnan \u003clilinnan@xiaomi.corp-partner.google.com\u003e\nChange-Id: Ic289d772087e53716b4d63c431d9f41af721150e\nMerged-In: Ic289d772087e53716b4d63c431d9f41af721150e\n(cherry picked from commit 687e58faa44d7f5b4a5f21ca59442252716839ea)\n"
    },
    {
      "commit": "0f0ca6e181cdacc57d1ba7b14fb205e2604fc76b",
      "tree": "e58a80b12cedd1e8077cbbd4c312547316245d4a",
      "parents": [
        "910968de36b314ccd702aaf0e8f92f403cd4c352"
      ],
      "author": {
        "name": "Michael Ensing",
        "email": "michael.ensing@leviathansecurity.com",
        "time": "Tue Jan 12 16:13:20 2021 -0800"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "akhopkar@google.com",
        "time": "Tue Aug 30 10:29:49 2022 +0000"
      },
      "message": "Add inputflinger InputReader fuzzer\n\nThis CL aims to add a fuzzer to test inputflinger\u0027s InputReader\nfunctionality.\n\nTest: Fuzzers tested on a Pixel 3a, and run for approximately 1M\n      iterations each to test stability. Executions/sec vary from\n      ~400-900, depending on the fuzzer.\n\nSummary of updates:\n\nCoverage improvements: 36.75% to 82.29%\n\nDesign changes:\n[1] Provided a mock Implementation for InputReaderInterface and\n    added support for newer APIs.\n[2] Enabled support for few more Events that helped in discovering\n    new code paths.\n[3] Added missing APIs and resolved OOB Access crashes.\n[4] Refactored InputReaderFuzzer to resolve build errors.\n\nSigned-off-by: Michael Ensing \u003cmichael.ensing@leviathansecurity.com\u003e\nChange-Id: I8e9c5f78960dba6d84a46ad7ee46963b3be79fec\n"
    },
    {
      "commit": "910968de36b314ccd702aaf0e8f92f403cd4c352",
      "tree": "1749082266a03f04059f640c1afb25a1006cb142",
      "parents": [
        "b8d9326f7586f47d7771c7d1e7bafd35d1b6c82e"
      ],
      "author": {
        "name": "Michael Ensing",
        "email": "michael.ensing@leviathansecurity.com",
        "time": "Sun Jul 19 17:19:31 2020 -0700"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "akhopkar@google.com",
        "time": "Tue Aug 30 10:29:45 2022 +0000"
      },
      "message": "Add inputflinger blockingQueue/classifier fuzzers\n\nThis CL aims to add libfuzzer fuzzers to inputflinger, to test the\nBlockingQueue and InputClassifier objects.\n\nTest: Each fuzzer was tested on a Pixel 3a for a few million\n      iterations to ensure stability. Executions/sec average about\n      500 for the BlockingQueue fuzzer, and ~2000-2500 for the\n      InputClassifier fuzzers.\nSigned-off-by: Michael Ensing \u003cmichael.ensing@leviathansecurity.com\u003e\nChange-Id: If48e5ddbe3066800da88216882ffbbf417dc0d2c\n"
    },
    {
      "commit": "b8d9326f7586f47d7771c7d1e7bafd35d1b6c82e",
      "tree": "889a812656fab6bff7217fcc1484a65f9f19b815",
      "parents": [
        "26d49f7f39a05fe1773354ae1d49cad6454c82cb"
      ],
      "author": {
        "name": "Michael Ensing",
        "email": "michael.ensing@leviathansecurity.com",
        "time": "Tue May 12 00:41:30 2020 -0700"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "akhopkar@google.com",
        "time": "Tue Aug 30 10:29:18 2022 +0000"
      },
      "message": "Add initial batch of inputFlinger fuzzers\n\nThis batch of fuzzers is focused on the input Mappers. These fuzzers are\nnot host_supported, and must be run on-device. Followup CLs containing\nadditional inputflinger fuzzers will rely on the FuzzContainer.h and\nMapperHelpers.h header files.\n\nFuzzers included:\n - CursorInputFuzzer\n - KeyboardInputFuzzer\n - MultiTouchInputFuzzer\n - SwitchInputFuzzer\n\nTest: Tested on a pixel 3a with HWASAN. Accurate % coverage information is\n      not available due to the large number of shared libraries included\n      in runs built with hwasan interfering with PC Count information\n      (increasing the total PC count to ~682,000).\n\nSummary of updates:\n\nCoverage improvements: 75% to 82%\n\nDesign changes:\n[1] Refactored\n - CursorInputFuzzer\n - KeyboardInputFuzzer\n - MultiTouchInputFuzzer\n - SwitchInputFuzzer\nin order to generate event as a combination of valid and invalid input.\n\n[2] Used FuzzedDataProvider to generate values for events.\n\nSigned-off-by: Michael Ensing \u003cmichael.ensing@leviathansecurity.com\u003e\nChange-Id: Id39205c691f54c516f8a452293cb098382019335\n"
    },
    {
      "commit": "a40c0b22c174a50f921e48140760a8707d54fd35",
      "tree": "dc617a504d1d1627be6512038e12866de400c9a3",
      "parents": [
        "9201d5ad82a875ca95b8a064193a37db655acbf0",
        "714d1ad62c21b8f839dc0475ba8b2d4632c2ab22"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Fri Aug 26 13:00:47 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 13:00:47 2022 +0000"
      },
      "message": "Merge \"TouchInputMapper: Extract method for moving the cursor\""
    },
    {
      "commit": "9201d5ad82a875ca95b8a064193a37db655acbf0",
      "tree": "b7c470684dd3cde665cb1e6964ac7a64f9b05065",
      "parents": [
        "5e8ae0d5d28c285ccb69ee3b40a7d319d499f31e",
        "dd82b8ebbd271b5f48f8bbc620a9f5b549b0905e"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Fri Aug 26 09:27:39 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 09:27:39 2022 +0000"
      },
      "message": "Merge \"Fetch country code information from Device sysfs path\""
    },
    {
      "commit": "5e8ae0d5d28c285ccb69ee3b40a7d319d499f31e",
      "tree": "08bd3d5f4ecff8f9562b5cbe3b8e1b42c885fa00",
      "parents": [
        "c1489084c3a4d5fcf99fe2745f272f2ef8fcc567",
        "2141d54f509cc8b2ec5ee5ea30ba0d170d252b7a"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Aug 26 08:22:42 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 08:22:42 2022 +0000"
      },
      "message": "Merge \"Synthesize cancellation events when device is disabled\""
    },
    {
      "commit": "2141d54f509cc8b2ec5ee5ea30ba0d170d252b7a",
      "tree": "b3f7a81b34da3d661247f8977c425cd1388e482f",
      "parents": [
        "5b9a27166abeff5b9d8b297b2acf99d3a914e832"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Tue Aug 23 07:45:21 2022 +0000"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Aug 26 03:24:03 2022 +0000"
      },
      "message": "Synthesize cancellation events when device is disabled\n\nWhen disable a keyboard device, if some keys still stay in down, we\nshould synthesize the cancellation events for these keys to prevent the\nstates can\u0027t be reset when they\u0027re handled by policy or client side.\n\nBug: 239888702\nTest: atest inputflinger_tests\nChange-Id: I8d73d5b2b3df81d047799cb7e9403f170a094f97\n"
    },
    {
      "commit": "dd82b8ebbd271b5f48f8bbc620a9f5b549b0905e",
      "tree": "20919ba093a93101ca41825d8c11dfe8dc97beed",
      "parents": [
        "501a72a312b06d5a3438ca4a55f73749d1278162"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Tue Aug 16 15:34:01 2022 +0000"
      },
      "committer": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Thu Aug 25 15:32:33 2022 +0000"
      },
      "message": "Fetch country code information from Device sysfs path\n\nHID devices report the country code via sysfs. Need to read it\nand pass it and save it as a member variable to InputDevice\n\nIn subsequent CLs will use it to auto-detect a layout for PK.\nMore information in DD: go/pk_auto_layout_detection\n\nTest: atest inputflinger_tests:InputReaderTest\nBug: 242715614\nChange-Id: I73ca7518dbee3e563c41024bb3ed41261c8d7846\n"
    },
    {
      "commit": "714d1ad62c21b8f839dc0475ba8b2d4632c2ab22",
      "tree": "90ded6923a4fde1c44e16c7ae809cdfcff1f0a61",
      "parents": [
        "d3f9584d49be0112f01547eab82990b65954d5e8"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Aug 24 16:36:43 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Thu Aug 25 13:55:55 2022 +0000"
      },
      "message": "TouchInputMapper: Extract method for moving the cursor\n\nBug: none\nTest: check cursor movement on Lenovo P12 Pro trackpad\nTest: atest inputflinger_tests\n\nChange-Id: I7b6accf91485608d1c8cfbe9887bf1cc4b733efc\n"
    },
    {
      "commit": "d3f9584d49be0112f01547eab82990b65954d5e8",
      "tree": "2106784d97b45fc9fca73b631447afad1717e0c9",
      "parents": [
        "4e6f0de7bb4abfe34d254a95f5707e05c7bb93a7"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Aug 24 15:49:36 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Thu Aug 25 13:55:39 2022 +0000"
      },
      "message": "TouchInputMapper: Fix pointer ID in dispatchPointerMouse\n\nI encountered this apparent error while refactoring. I tested cursor\nmovement with both a mouse and a touchpad with this \"fix\" in place, and\ncannot see a difference in behaviour. I also can\u0027t imagine how it\ncouldn\u0027t be an error, given that (if I understand correctly) the pointer\nindex for a the same pointer ID can change between events.\n\nHowever, given that I can\u0027t work out the circumstances in which this\ncode is executed, or locate the commit that originally introduced the\nerror, I\u0027ve separated this change into its own commit to call attention\nto it.\n\nBug: none\nTest: check pointer movement; atest inputflinger_tests\nChange-Id: I89d8e10577f99fb8699abbea652a694ff3b7ca20\n"
    },
    {
      "commit": "4e6f0de7bb4abfe34d254a95f5707e05c7bb93a7",
      "tree": "48b0c1c202a065368d5241251ad19b4e97598b08",
      "parents": [
        "2c8aee90291817f451a5932f8780bcf1afcbf4ab",
        "4548360368b3c9b47ddc0b478fa15715822ba6f0"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Aug 24 16:35:25 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 16:35:25 2022 +0000"
      },
      "message": "Merge \"Use ALOGD_IF in TouchInputMapper\""
    },
    {
      "commit": "4548360368b3c9b47ddc0b478fa15715822ba6f0",
      "tree": "40fc53eab73952223957f5eb2fb35a6ea4ba7078",
      "parents": [
        "a39f5a7fd147de4d0e1ec361e3789e1abb0ceab5"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Aug 24 14:36:48 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Aug 24 14:40:49 2022 +0000"
      },
      "message": "Use ALOGD_IF in TouchInputMapper\n\nThis makes the code a little easier to read.\n\nBug: none\nTest: enable the DEBUG_ parameters, check the logs appear\nChange-Id: I6f307a7572ff512e8b5d02cbf90889e22544a4e7\n"
    },
    {
      "commit": "fc6c7f799acfdfa4ed52bc160351ac393d36a476",
      "tree": "8d008b1244886d152c4fce4f17b4b73985b2594e",
      "parents": [
        "0435883aa8a75daab9c1e5ec7ca2f5e04b5d229b",
        "ae4ff289d1ac2ac4f5a5b5bac9c4eb3b837a464b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 23 21:56:43 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 23 21:56:43 2022 +0000"
      },
      "message": "Merge changes I086b5045,I753fb07a,Iea2bb7fd\n\n* changes:\n  Improve EventHub const-correctness\n  Refactor AssociatedDevice initialization in EventHub\n  EventHub: Associate AsociatedDevice using sysfs path, not descriptor\n"
    },
    {
      "commit": "ae4ff289d1ac2ac4f5a5b5bac9c4eb3b837a464b",
      "tree": "d00732b7e955a441dc3590f05143b0929b1450ef",
      "parents": [
        "cb42b4719fc24da4bc0b5a008e87ff1a350ff9b7"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 23 16:21:39 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 23 20:15:07 2022 +0000"
      },
      "message": "Improve EventHub const-correctness\n\nEnsure that all methods that \"get\" state from event hub are\nconst-correct. While some \"set\" methods can also be const in event hub\nbecause they write to the system (side effect) instead of changing\nstate, we leave these as non-const to make it easier for testing.\n\nBug: None\nTest: atest inputflinger_tests\nChange-Id: I086b50458203a2395b1960e2bc1102610a3c0801\n"
    },
    {
      "commit": "cb42b4719fc24da4bc0b5a008e87ff1a350ff9b7",
      "tree": "380760c872c3293218a800ecac122add64f94d99",
      "parents": [
        "5189478291e79cfe9bb5aba30cbb7de856b6bfcc"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 23 16:01:19 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 23 20:15:03 2022 +0000"
      },
      "message": "Refactor AssociatedDevice initialization in EventHub\n\nSince AssociatedDevice contains information from the sysfs classes of a\ndevice that are loaded once when the device is connected, we change the\nAssociatedDevice initialization logic to be more functional and easier\nto read.\n\nThere should be no behaivor change in this CL.\n\nBug: 243005009\nTest: atest inputflinger_tests\nChange-Id: I753fb07af9558c844e0c4eb7b8558b4f78b58004\n"
    },
    {
      "commit": "5189478291e79cfe9bb5aba30cbb7de856b6bfcc",
      "tree": "3d816c3750af2c4ea230bcfb89c06a5c6e938843",
      "parents": [
        "b4ef6ab1e7c0f6c5b924a5812eaa40c8eeaab617"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 23 16:29:10 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 23 16:35:00 2022 +0000"
      },
      "message": "EventHub: Associate AsociatedDevice using sysfs path, not descriptor\n\nEventHub previously attempted to link an EventHub device to an\nAssociatedDevice - which contains info about the EventHub device\nobtained through sysfs - through the descriptor. Since each EventHub\ndevice has a unique descriptor whose uniqueness is guaranteed by the\nuse of the nonce value, using the descriptor to link the\nAssociatedDevice to device means that no two devices will share the same\nAssociatedDevice even if they have the same sysfs paths. This is clearly\nnot working as intended.\n\nWe now link the AssociatedDevice to the EventHub device by the sysfs\npath so that separate EventHub devices that share the same sysfs path\nalso share the same AssociatedDevice.\n\nUnfortunately, we don\u0027t have good code coverage for reading from sysfs,\nand there are no existing test cases.\n\nBug: 243005009\nTest: Manual, check input dump\nChange-Id: Iea2bb7fd0493baa6e03df15f876c5d895c997b14\n"
    },
    {
      "commit": "2d347fdf19c201384947ebec5f1c5aa834e34425",
      "tree": "2fd93bed835bd2da7aaacdb581d765be11473c30",
      "parents": [
        "868608721077b9e948e5ab02d0899debbec125ee"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Aug 22 14:34:28 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Aug 22 14:34:28 2022 +0000"
      },
      "message": "Delete TouchInputMapper DeviceType::TOUCH_PAD\n\nThis doesn\u0027t appear to do anything — it is set in a couple of cases\n(notably not ones that actually match with any known \"touchpad\" devices,\nwhich don\u0027t have REL_X or REL_Y), but no other code refers to it. Maybe\nit\u0027s related to \"touch navigation\" devices, but they already have a\nseparate TOUCH_NAVIGATION device type.\n\nBug: none\nTest: atest inputflinger_tests\nChange-Id: I786a3d29fa893cb982873aea7695d754b2c096c6\n"
    },
    {
      "commit": "c6a78c7e088c0d3c84ed3cf7e2005bc00eea1c69",
      "tree": "8fef26ab7491ce04307ae0ac951dd96fe3d7ef4e",
      "parents": [
        "576c37fed8b0b2656bfb3e91a2be491bcfe2cff7",
        "5b1fd2dfd9392ea4d28c0936fff2bc31dce2e478"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 14:39:53 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 17 14:39:53 2022 +0000"
      },
      "message": "Merge \"Allow stylus events in PalmRejector\" into tm-qpr-dev am: 820db998c8 am: 5b1fd2dfd9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19569858\n\nChange-Id: If720abad15bdfc1163bb62b5f6212c3cbf019b73\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "854182702cbfad513b984274d13badd9540de17f",
      "tree": "13e5f08eff495ed5e22a44534b81c73c3813bcec",
      "parents": [
        "58bc0f539a1ba603446f238d655467d246b9bb56",
        "0de065d02b6b560ebd70b0b4beeb4ecc93e937b9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 14:39:36 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 17 14:39:36 2022 +0000"
      },
      "message": "Merge \"Call Filter from a separate function\" into tm-qpr-dev am: 616df5cba9 am: 0de065d02b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19589315\n\nChange-Id: I0e3b98f5d9769fb752380c3bdd383fc99ca9165e\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "58bc0f539a1ba603446f238d655467d246b9bb56",
      "tree": "5aadd93c3bccd8e28adfea2020b9c750cc4d5fad",
      "parents": [
        "bcf32cae713c2d4be4abbff5a4d3130ec9fc2674",
        "2f110fe53ae021196d69ec14d35339163818719d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 14:39:28 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 17 14:39:28 2022 +0000"
      },
      "message": "Merge \"Add test for heuristic palm rejection\" into tm-qpr-dev am: 1d1009201f am: 2f110fe53a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19587279\n\nChange-Id: Ib33b69eaeb56cce49dfea983a81457b340086571\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5b1fd2dfd9392ea4d28c0936fff2bc31dce2e478",
      "tree": "72aebfd89d2b9f40ce8fd05e4244beb596e039f1",
      "parents": [
        "1d1b6a4ba89e1870984919decea84b2815ac32a5",
        "820db998c871017e2715e3ed21b8be90ae0ad271"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 16 01:29:31 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 16 01:29:31 2022 +0000"
      },
      "message": "Merge \"Allow stylus events in PalmRejector\" into tm-qpr-dev am: 820db998c8\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19569858\n\nChange-Id: I3d7f071d8ae35c2c9f0cada0852b56de40af58bf\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "0de065d02b6b560ebd70b0b4beeb4ecc93e937b9",
      "tree": "0f9e5aa5f38311c6a65e1e4d0a29f33109c337dd",
      "parents": [
        "2f110fe53ae021196d69ec14d35339163818719d",
        "616df5cba90c9aa1602511e19ec0ca0027676419"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 22:51:23 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 15 22:51:23 2022 +0000"
      },
      "message": "Merge \"Call Filter from a separate function\" into tm-qpr-dev am: 616df5cba9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19589315\n\nChange-Id: I000522d9b6dde54a7a1fc7286af432fd98a18752\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2f110fe53ae021196d69ec14d35339163818719d",
      "tree": "8822ebe7a1f59360a2e01c6c14b9a6c24deaaac6",
      "parents": [
        "985fe6f1b068c83db124846bd87cf379581c51e8",
        "1d1009201f3ee20dd2052b9334accf06398dbf8b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 21:30:16 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 15 21:30:16 2022 +0000"
      },
      "message": "Merge \"Add test for heuristic palm rejection\" into tm-qpr-dev am: 1d1009201f\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/19587279\n\nChange-Id: Iab049ea1f265589ebb6f01a05b03b3698c0dd776\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6573583a3b304dce8ff334df8d48d01b58ab2c84",
      "tree": "b1cac2ea0506244effdb725a6e04e0b073ae0aa4",
      "parents": [
        "e491fb5ae1c602bc09271b8fa3456ee9af8a5a64"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Aug 09 19:18:37 2022 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Aug 13 01:35:02 2022 +0000"
      },
      "message": "Allow stylus events in PalmRejector\n\nAfter some recent changes, the touchscreen input device has source that\nis a combination of SOURCE_TOUCHSCREEN and SOURCE_STYLUS.\n\nBefore this CL, this source is rejected, and therefore palm rejection\nfeature is not enabled.\n\nWith this CL, any source that has SOURCE_TOUCHSCREEN is allowed. That\nalso means that we potentially would invoke the model for stylus events,\nespecially if simultaneous touch and stylus are enabled.\n\nThe model, however, was never trained on stylus, and is not designed to\nwork with it. In preparation to upcoming simultaneous touch+stylus\nfeature, in this CL we also remove the stylus pointers before sending\nthe data to the model.\n\nThe only case where we need to be careful is pointer-down and pointer-up\nevents with stylus. In this CL, we drop these events, which should be a\nno-op from the palm rejection model\u0027s perpective.\n\nBug: 241935838\nTest: atest libpalmrejection_test inputflinger_tests\nChange-Id: I760207a82807e03802e72a318fca8b97a4fd7a24\n"
    },
    {
      "commit": "e491fb5ae1c602bc09271b8fa3456ee9af8a5a64",
      "tree": "53d5a89d6bd8e8e992365999cf9af0c4971efaff",
      "parents": [
        "88151b8fde4bb81f386644fc2671bd1d9563d5f2"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Aug 11 01:51:24 2022 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Aug 13 01:34:16 2022 +0000"
      },
      "message": "Call Filter from a separate function\n\nThe function \u0027processMotion\u0027 has gotten too long. To make it easier to\nreason about, separate some code from the center of the function into a\nnew function.\n\nUnfortunately, this new function will have side-effects, but it\u0027s still\neasier to understand and reduces the number of local vars.\n\nThere\u0027s no functional change in this CL.\n\nBug: 241935838\nTest: atest inputflinger_tests\nChange-Id: I2157798b70299659791ae6ef85b2394e9130b4b3\n"
    },
    {
      "commit": "88151b8fde4bb81f386644fc2671bd1d9563d5f2",
      "tree": "624fedfaf66ea2254e7a554b4f7e93bf08929b62",
      "parents": [
        "1cf6d7f4cacfed91900c1af5d1a2872ae04dc8ff"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Aug 11 00:53:38 2022 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Aug 13 01:33:57 2022 +0000"
      },
      "message": "Add test for heuristic palm rejection\n\nFor short strokes, the palm rejection code has a heuristic - large\ntouches are canceled.\nSince the behaviour is currently present, let\u0027s add an integration test\nfor it.\n\nSeparately, we will also remove \u0027getLinuxToolType\u0027 here because\ntool_type is not used in the palm rejection code.\n\nHowever, tool_code is used in that code. So let\u0027s add getLinuxToolCode\ninstead. This piece does not affect the behaviour of the palm rejection\nmodel, but it makes our inputs more correct.\n\nBug: 241935838\nTest: atest inputflinger_tests\nChange-Id: Ied9e185bdfc6e892cf3a1069b98101ca8ae9c74b\n"
    },
    {
      "commit": "d2cd45d61cd51940ae417f63327c5ec0059ba385",
      "tree": "14fc8d8350872680088cd0e54154879c6c763457",
      "parents": [
        "70e6bdbfd4e6a0e01ca3456c0a709710cc58d709",
        "2f5bc8b8cfda7762213268842c13e2280ac02466"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Aug 12 15:54:10 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 15:54:10 2022 +0000"
      },
      "message": "Merge \"InputDispatcher: Blame the window from the focus request for ANR\""
    },
    {
      "commit": "2f5bc8b8cfda7762213268842c13e2280ac02466",
      "tree": "aeeab0e83adc28d4c4ba510ed321895f86a21cd3",
      "parents": [
        "05c7f9841664bac18fdaad097efced3361de68dc"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Aug 09 00:03:11 2022 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Aug 12 00:28:25 2022 +0000"
      },
      "message": "InputDispatcher: Blame the window from the focus request for ANR\n\nIf there are no focusable windows, then try to blame the window that\nwas requested to become focused. This will avoid blaming the wrong\nprocess when WM requests focus on a window that is placed on top\nof the focused app and the window fails to become focusable.\n\nTest: atest inputflinger_tests\nFixes: b/239907039\n\nChange-Id: Ie2bc3dc66516b51784159a875c7cf865b4cb5b35\n"
    },
    {
      "commit": "c0bdeefdcb2f8d880389cf3aa0a0d8899f46f2e4",
      "tree": "032fa63973b5e0d762bee68613c9e9879f35f2bf",
      "parents": [
        "b5174de1a9ede697dfd2bf65e65b294321f9444d"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Aug 05 22:32:11 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Aug 09 19:42:15 2022 +0000"
      },
      "message": "Reset the touch state when the active viewport is disabled\n\nWhen an active viewport becomes inactive, cancel any ongoing gestures\nimmediately. When the viewport becomes active again, make sure state is\nreset again so that we eliminate any race conditions between the\nviewport becoming active and first touches coming in from the device.\n\nThis is a preventative measure to defend against unexpected touch\nbehavior around viewports being activated and deactivated.\n\nBug: 234662773\nTest: atest inputflinger_tests\nChange-Id: I111361f7470fdad39b493b516e8a8f167e0c681c\n"
    },
    {
      "commit": "b5174de1a9ede697dfd2bf65e65b294321f9444d",
      "tree": "87bb44d303b92f79a9cb1c0bbfbffdbfce5ab03b",
      "parents": [
        "b4ef6ab1e7c0f6c5b924a5812eaa40c8eeaab617"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Aug 05 22:26:56 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Aug 08 18:32:15 2022 +0000"
      },
      "message": "Fix issues with InputMapper tests\n\n- When an input device is added, a device reset notification is sent.\n  This should be consumed when the device is added so that it does\n  not need to be consumed in every test case.\n- The above change exposed an issue with a CursorInputMapper test case,\n  where it was consuming the wrong device reset notification.\n- When a device is configured, it may produce device reset\n  notifications. After configuring, we should loop the input reader so\n  that the queued input listener is flushed so that these args can be\n  sent out.\n\nBug: None\nTest: atest inputflinger_tests\nChange-Id: Ic4979b91207a6abf4c4ac65fd3db30307cb53729\n"
    },
    {
      "commit": "ff6c4cf17afafa61129b312b776363a7ce998420",
      "tree": "1fb9964dc2cf39ad5042a671eab0cac396dcfe19",
      "parents": [
        "f29711cf60a1561306a23622a6f16b2cee414376",
        "cb9d9f1881b4d0dd81a79f8e03b1ac188d635970"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 08 16:57:45 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 08 16:57:45 2022 +0000"
      },
      "message": "Merge \"EventHub: Prevent duplicate descriptors\" am: 27883159d3 am: 9ea35a9163 am: 0c0639f181 am: 2194db7fc9 am: cb9d9f1881\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2160836\n\nChange-Id: I52acce6cb00b5f91d5ba05e2119645b84e501226\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "cb9d9f1881b4d0dd81a79f8e03b1ac188d635970",
      "tree": "cc70e546cc31316bb038f7bd8c366c1e607a2411",
      "parents": [
        "71ad723d0bd1a9451deea29f45602027f12a213c",
        "2194db7fc96f04c068b7bfd65854a9431d0bbd6a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 08 16:39:25 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 08 16:39:25 2022 +0000"
      },
      "message": "Merge \"EventHub: Prevent duplicate descriptors\" am: 27883159d3 am: 9ea35a9163 am: 0c0639f181 am: 2194db7fc9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2160836\n\nChange-Id: Id1ea2d105dac8740624be322ea1627b243bae4f3\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9ea35a9163f4239d63a572e0311e66cc96772567",
      "tree": "41fb5ed586ec54ac793be475ba7f250d726a63a8",
      "parents": [
        "9c107f157f08b24f454d8def11d0e2f4aa979d50",
        "27883159d3d377653563d41b019399a5e97d8b9d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 08 15:22:41 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 08 15:22:41 2022 +0000"
      },
      "message": "Merge \"EventHub: Prevent duplicate descriptors\" am: 27883159d3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2160836\n\nChange-Id: I5a8a3ff396875484f36de0b146b46c7ae8884077\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "400294a8b01c2f432e7a6e8a578b268afb52e68c",
      "tree": "788281ac5b92c05d04167919b91981523dc5a12c",
      "parents": [
        "063f82e8f95ad6f1f4e0bbc07ce3fd22c9e1eb15"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Aug 03 17:58:57 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Aug 05 20:55:15 2022 +0000"
      },
      "message": "Add inputflinger_latencytracker_fuzzer to checkinput\n\nCurrently, this target is missing from the list of input-related\ntargets.\n\nBug: 241125940\nTest: m checkinput\nChange-Id: I4bf50ffe0c67cb984a1a1ed2ec24bbfb810a755f\n"
    },
    {
      "commit": "938632f497427d2fe0e4fa90c04321bbc79e934f",
      "tree": "1dd62fb2b336a9272943607efcfd57718a67e07d",
      "parents": [
        "10661889c47d30fff88c8ba13a5d01a6357a2609"
      ],
      "author": {
        "name": "Josh Bartel",
        "email": "josh.bartel@garmin.com",
        "time": "Tue Jul 19 15:34:22 2022 -0500"
      },
      "committer": {
        "name": "Josh Bartel",
        "email": "josh.bartel@garmin.com",
        "time": "Thu Aug 04 16:49:40 2022 -0500"
      },
      "message": "EventHub: Prevent duplicate descriptors\n\nThis updates EventHub to handle some cases that were causing\nmultiple physical devices to be assigned the same descriptor:\n\n* If multiple input devices had the same vendor, product, and version\n  it was assumed that the unique_id between the devices could be used\n  to differentiate them if a unique_id was reported. However some\n  input devices (in particular TSTP MTouch devices) are reporting the\n  same unique_id across devices. Physical devices that report multiple\n  inputs (for example a keyboard with a touchpad) were expected to\n  use the same descriptor and the unique id field check is what was\n  being used to detect a single physical device with multiple inputs.\n  This updates EventHub to ensure that a unique descriptor is created\n  for all devices and moves the logic for determining whether a\n  separate InputDevice should be created for the EventHub device into\n  InputDeviceReader. InputReader will update an existing InputDevice\n  if one the InputDeviceIdentifiers has the same product, vendor,\n  revision, bus, uniqueId, and location of an existing InputDevice.\n  Otherwise, InputReader will create a new InputDevice for the\n  InputDescriptor.\n* When checking for duplicate descriptors it was only checking mDevices\n  for duplicates. However at startup mOpeningDevices is populated\n  on the initial read of input devices and later mDevices is populated\n  when getEvents processes the devices in mOpeningDevices. This adds\n  a new method hasDeviceByDescriptorLocked which can check for an\n  existing device with the descriptor passed in either mDevice or\n  mOpeningDevices. It then updates the check in assignDescriptorLocked\n  to check both mDevices and mOpeningDevices for duplicate descriptors.\n\nThis also adds a new test:\nEventHubTest.DevicesWithMatchingUniqueIdsAreUnique\nThis test validates that 2 devices which contain the same vendor,\nproduct, and unique id get unique descriptors generated for them\nby EventHub.\n\nThis is an example of some touchpanels that enumerate with the same\nvendor, product, version and unique_id:\n\ncat /proc/bus/input/devices\nI: Bus\u003d0003 Vendor\u003deeef Product\u003d2828 Version\u003d0111\nN: Name\u003d\"TSTP MTouch\"\nP: Phys\u003dusb-xhci-hcd.1.auto-1.2/input0\nS: Sysfs\u003d/devices/platform/soc/a400000.ssusb/a400000.dwc3/\n   xhci-hcd.1.auto/usb4/4-1/4-1.2/4-1.2:1.0/\n   0003:EEEF:2828.0001/input/input2\nU: Uniq\u003dCMTP_1.0\nH: Handlers\u003devent2 cpufreq\nB: PROP\u003d2\nB: EV\u003d1b\nB: KEY\u003d400 0 0 0 0 0\nB: ABS\u003d260800000000003\nB: MSC\u003d20\n\nI: Bus\u003d0003 Vendor\u003deeef Product\u003d2828 Version\u003d0111\nN: Name\u003d\"TSTP MTouch\"\nP: Phys\u003dusb-xhci-hcd.1.auto-1.3/input0\nS: Sysfs\u003d/devices/platform/soc/a400000.ssusb/a400000.dwc3/\n   xhci-hcd.1.auto/usb4/4-1/4-1.3/4-1.3:1.0/0003:EEEF:2828.0003/\n   input/input7\nU: Uniq\u003dCMTP_1.0\nH: Handlers\u003devent6 cpufreq\nB: PROP\u003d2\nB: EV\u003d1b\nB: KEY\u003d400 0 0 0 0 0\nB: ABS\u003d260800000000003\nB: MSC\u003d20\n\nI: Bus\u003d0003 Vendor\u003d0eef Product\u003dc000 Version\u003d0111\nN: Name\u003d\"eGalax Inc. eGalaxTouch EXC3147-2457-08.00.00\"\nP: Phys\u003dusb-xhci-hcd.1.auto-1.1.3/input0\nS: Sysfs\u003d/devices/platform/soc/a400000.ssusb/a400000.dwc3/\n   xhci-hcd.1.auto/usb4/4-1/4-1.1/4-1.1.3/4-1.1.3:1.0/\n   0003:0EEF:C000.0004/input/input9\nU: Uniq\u003d\nH: Handlers\u003devent8 cpufreq\nB: PROP\u003d2\nB: EV\u003d1b\nB: KEY\u003d400 0 0 0 0 0\nB: ABS\u003d260800000000003\nB: MSC\u003d20\n\nI: Bus\u003d0003 Vendor\u003d0eef Product\u003dc000 Version\u003d0111\nN: Name\u003d\"eGalax Inc. eGalaxTouch EXC3147-2457-08.00.00 UNKNOWN\"\nP: Phys\u003dusb-xhci-hcd.1.auto-1.1.3/input0\nS: Sysfs\u003d/devices/platform/soc/a400000.ssusb/a400000.dwc3/\n   xhci-hcd.1.auto/usb4/4-1/4-1.1/4-1.1.3/4-1.1.3:1.0/\n   0003:0EEF:C000.0004/input/input11\nU: Uniq\u003d\nH: Handlers\u003devent9 cpufreq\nB: PROP\u003d0\nB: EV\u003d1b\nB: KEY\u003d30000 0 0 0 0\nB: ABS\u003d3\nB: MSC\u003d10\n\nPrior to this patch these device will get assigned the same descriptor\nwhen looking at dumpsys input:\nEvent Hub State:\nBuiltInKeyboardId: -2\nDevices:\n2: eGalax Inc. eGalaxTouch EXC3147-2457-08.00.00\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event8\n  Enabled: true\n  Descriptor: 6454aac13d04c4bd9de46924db31b8fa756c858e\n  Location: usb-xhci-hcd.1.auto-1.1.3/input0\n  ControllerNumber: 0\n  UniqueId:\n  Identifier: bus\u003d0x0003, vendor\u003d0x0eef, product\u003d0xc000, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile:\n      /vendor/usr/idc/usb-xhci-hcd_1_auto-1_1_3_input0.idc\n  VideoDevice: \u003cnone\u003e\n4: eGalax Inc. eGalaxTouch EXC3147-2457-08.00.00\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event6\n  Enabled: true\n  Descriptor: 6454aac13d04c4bd9de46924db31b8fa756c858e\n  Location: usb-xhci-hcd.1.auto-1.1.2/input0\n  ControllerNumber: 0\n  UniqueId:\n  Identifier: bus\u003d0x0003, vendor\u003d0x0eef, product\u003d0xc000, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile:\n      /vendor/usr/idc/usb-xhci-hcd_1_auto-1_1_2_input0.idc\n  VideoDevice: \u003cnone\u003e\n6: TSTP MTouch\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event4\n  Enabled: true\n  Descriptor: 25cf0d1204ceeb06804068d960e10f80d22f0edd\n  Location: usb-xhci-hcd.1.auto-1.3/input0\n  ControllerNumber: 0\n  UniqueId: CMTP_1.0\n  Identifier: bus\u003d0x0003, vendor\u003d0xeeef, product\u003d0x2828, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile: /vendor/usr/idc/usb-xhci-hcd_1_auto-1_3_input0.idc\n  VideoDevice: \u003cnone\u003e\n8: TSTP MTouch\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event2\n  Enabled: true\n  Descriptor: 25cf0d1204ceeb06804068d960e10f80d22f0edd\n  Location: usb-xhci-hcd.1.auto-1.2/input0\n  ControllerNumber: 0\n  UniqueId: CMTP_1.0\n  Identifier: bus\u003d0x0003, vendor\u003d0xeeef, product\u003d0x2828, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile: /vendor/usr/idc/usb-xhci-hcd_1_auto-1_2_input0.idc\n  VideoDevice: \u003cnone\u003e\n\nAfter this patch all devices get assigned unique descriptors when\nlooking at dumpsys input:\nEvent Hub State:\nBuiltInKeyboardId: -2\nDevices:\n2: eGalax Inc. eGalaxTouch EXC3147-2457-08.00.00\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event8\n  Enabled: true\n  Descriptor: 6454aac13d04c4bd9de46924db31b8fa756c858e\n  Location: usb-xhci-hcd.1.auto-1.1.3/input0\n  ControllerNumber: 0\n  UniqueId:\n  Identifier: bus\u003d0x0003, vendor\u003d0x0eef, product\u003d0xc000, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile:\n      /vendor/usr/idc/usb-xhci-hcd_1_auto-1_1_3_input0.idc\n  VideoDevice: \u003cnone\u003e\n4: TSTP MTouch\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event6\n  Enabled: true\n  Descriptor: 25cf0d1204ceeb06804068d960e10f80d22f0edd\n  Location: usb-xhci-hcd.1.auto-1.3/input0\n  ControllerNumber: 0\n  UniqueId: CMTP_1.0\n  Identifier: bus\u003d0x0003, vendor\u003d0xeeef, product\u003d0x2828, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile: /vendor/usr/idc/usb-xhci-hcd_1_auto-1_3_input0.idc\n  VideoDevice: \u003cnone\u003e\n6: eGalax Inc. eGalaxTouch EXC3147-2457-08.00.00\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event4\n  Enabled: true\n  Descriptor: 14d833ecd51ba30d9446febf10673051405230f2\n  Location: usb-xhci-hcd.1.auto-1.1.2/input0\n  ControllerNumber: 0\n  UniqueId:\n  Identifier: bus\u003d0x0003, vendor\u003d0x0eef, product\u003d0xc000, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile:\n      /vendor/usr/idc/usb-xhci-hcd_1_auto-1_1_2_input0.idc\n  VideoDevice: \u003cnone\u003e\n8: TSTP MTouch\n  Classes: TOUCH | TOUCH_MT | EXTERNAL\n  Path: /dev/input/event2\n  Enabled: true\n  Descriptor: 276553dce9a3e55b90fccfcffd56b233cd3741ab\n  Location: usb-xhci-hcd.1.auto-1.2/input0\n  ControllerNumber: 0\n  UniqueId: CMTP_1.0\n  Identifier: bus\u003d0x0003, vendor\u003d0xeeef, product\u003d0x2828, version\u003d0x0111\n  KeyLayoutFile:\n  KeyCharacterMapFile:\n  ConfigurationFile: /vendor/usr/idc/usb-xhci-hcd_1_auto-1_2_input0.idc\n  VideoDevice: \u003cnone\u003e\n\nTest: atest inputflinger_tests\nType: Bug Fix\nChange-Id: Ic4ad37b2629b4553f7a45fd596ffc343fab26f4a\n"
    }
  ],
  "next": "063f82e8f95ad6f1f4e0bbc07ce3fd22c9e1eb15"
}
