)]}'
{
  "log": [
    {
      "commit": "b0b5b6c5727dff214964963b57a4338d799529c1",
      "tree": "f99d958544b4d2706af499d18b5734c1a4b338ca",
      "parents": [
        "7702951b90f94bc8a4a1809c1b07133bff3efb10"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Thu May 09 18:31:12 2024 -0700"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Fri May 10 17:40:00 2024 -0700"
      },
      "message": "Use libstatssocket_lazy to report stylus metrics\n\nReport stylus prediction metrics using libstatssocket_lazy\nas an interim solution while I working on untangling the\nbuild dependency issues (b/338106546) that prevent us from using\nlibstatslog within libinput.\n\nTest: `adb reboot`, then `adb logcat | egrep -i \"statssocket|MotionPredictor\"`\n  → Shows no bootanimation linker error, and no other errors\n\nTest: `statsd_testdrive -d 3000 718`, then draw with stylus\n  → Shows reasonable metrics logged\n\nBug: 338106546\nBug: 311066949\n\nChange-Id: I05ae5ffdd774d0b25cb7b2435015245d5f712c01\n"
    },
    {
      "commit": "80dadc680b269063e2467d3aa915ebc00b547647",
      "tree": "e9a18010b155095d808ef06bda286a5927c3ed85",
      "parents": [
        "fe156ba74d17350c36ae352acf3c029f39b4de70"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Wed May 01 01:10:35 2024 +0000"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Wed May 01 01:10:35 2024 +0000"
      },
      "message": "Remove libstatslog dependency from libinput\n\nThis removes the stats_write call for stylus prediction metrics, along with the libstatslog dependency, as a temporary fix for the bootanimation linker error (b/336188973).\n\nTest: bootanimation linker error is no longer present.\n\nBug: 338106546\nBug: 336188973\n\nChange-Id: Icfa8b477609ed4c160d9af2d1bdb31536c7bf082\n"
    },
    {
      "commit": "e17cb30300714e091dfe2270d822ab5cd056e933",
      "tree": "943116ef4c20f8a31770e8e38c42cf6c3e427724",
      "parents": [
        "aefd4a49d88b3aaf5637e9e2d84feb64115bdb1d"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Wed Apr 17 01:26:37 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 01:26:37 2024 +0000"
      },
      "message": "Revert^2 \"Stylus Metrics: Switch to non-bootstrap statslog library\"\n\nThis reverts commit aefd4a49d88b3aaf5637e9e2d84feb64115bdb1d.\n\nReason for revert: ARC dependency on libinput removed: b/330657077\n\nChange-Id: I1c2246a469a9b30bca9c468d61c15f4564b28e9a\n"
    },
    {
      "commit": "aefd4a49d88b3aaf5637e9e2d84feb64115bdb1d",
      "tree": "51d209b7925a3d4306a36144a50e46826042773c",
      "parents": [
        "f49bc7438d79a10e5a1800b1e147ecffb22935e1"
      ],
      "author": {
        "name": "Saho Kobayashi",
        "email": "sahok@google.com",
        "time": "Thu Mar 21 04:54:39 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 04:54:39 2024 +0000"
      },
      "message": "Revert \"Stylus Metrics: Switch to non-bootstrap statslog library\"\n\nThis reverts commit f49bc7438d79a10e5a1800b1e147ecffb22935e1.\n\nReason for revert: ARC boot is failing after this CL http://b/330281690\n\nChange-Id: Ib508544df1d4ab4b7587c3f04804cec2d2310d77\n"
    },
    {
      "commit": "f49bc7438d79a10e5a1800b1e147ecffb22935e1",
      "tree": "943116ef4c20f8a31770e8e38c42cf6c3e427724",
      "parents": [
        "a080e37010de88182839a4d9a66a15aa46bb38f0"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Mon Mar 11 17:47:19 2024 -0700"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Mon Mar 18 22:07:29 2024 +0000"
      },
      "message": "Stylus Metrics: Switch to non-bootstrap statslog library\n\nNow that libinput is no longer run in a bootstrap process,\nwe can switch the stats logging library to the standard\nversion. This version is host supported, so we now also\nremove the `#ifdef __ANDROID__` include guards.\n\nTest: m checkinput\nTest: flash to device, run `statsd_testdrive 718`, then\n  trigger stylus prediction → reported metrics are present\n  and reasonable\n\nBug: 311066949\n\nChange-Id: I04e6f6906e556f4f5a71b711c6ef29d8aa6f3501\n"
    },
    {
      "commit": "50582ba78ac8843a6163a4d256691c500932f4d9",
      "tree": "1503c46b7c737d74090c9f9afc3a86f590eea9e8",
      "parents": [
        "e0bd3251e515c963a3e1cfa8e4e31fcf0d3406e4"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Tue Feb 20 17:47:37 2024 -0800"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Thu Feb 29 17:04:33 2024 -0800"
      },
      "message": "Fix possible crash in scale-invariant error calculation\n\nThe logic for the scale-invariant calculation was quite complex\nin the existing code, and depended on some tricky chains of logical\ndependence between scale-invariant errors and general errors.\n\nThis change firstly eliminates unnecessary nesting by pulling the\nscale-invariant error calculation out of the loop – the full calculation\nonly occurs once per computeAtomFields call, within its own loop.\n\nSecondly, instead of crashing under certain conditions when the\nscale-invariant error count is zero, this changes the code to simply not\ncompute the error in this case. (The complex chain of logic I had\nfollowed to initially add the fatal crash turned out to be fallacious.)\n\nFinally, this adds a testcase that fails without the changes to the\nMetricsManager implementation (see ag/26418604). This added testcase\nrepresents skipped/dropped input events, or an input interval greater\nthan the prediction interval.\n\nTest: atest frameworks/native/libs/input/tests/MotionPredictorMetricsManager_test.cpp\nTest: the above test fails without the changes to MotionPredictionMetricsManager.cpp\nTest: `statsd_testdrive 718`, then draw with stylus → reported metrics are reasonable\n\nBug: 325711945\n\nChange-Id: Ic56c0f0c810ec1b85b1906e16a8640824187d1fb\n"
    },
    {
      "commit": "7b26dbea1d677b8d783f64ac1be23274898547ec",
      "tree": "277cc4d130d720b752978f404f40d4d0535a0515",
      "parents": [
        "192968f908e22a8c086481805382c438703c5f68"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Tue Nov 14 14:47:10 2023 -0800"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Thu Dec 07 17:59:27 2023 -0800"
      },
      "message": "Pass all input events to MetricsManager\n\nThe MetricsManager needs to receive UP/CANCEL events to trigger\natom reporting. I must have moved these lines around during the\nrefactor and overlooked this mistake.\n\nThis change also modifies MotionPredictor and MetricsManager to\nhold a \"ReportAtomFunction\" to facilitate testing.\n\nTest: `statsd_testdrive 718` shows atoms reported with `adb shell setenforce 0`.\nTest: `atest frameworks/native/libs/input/tests/MotionPredictor_test.cpp -c` passes.\nTest: `atest frameworks/native/libs/input/tests/MotionPredictorMetricsManager_test.cpp -c` passes.\n\nBug: 311066949\n\nChange-Id: Icbb709bbb7cf548512e0d9aa062783d554b857e3\n"
    },
    {
      "commit": "52db47413680d078a678e0985bbb83edda6a915d",
      "tree": "f91d54b971f5d08b4c7b7716728c846e537038fa",
      "parents": [
        "55637826b9ac7931590396c8822eb3ff108c9ff2"
      ],
      "author": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Thu Jun 29 13:19:01 2023 -0700"
      },
      "committer": {
        "name": "Cody Heiner",
        "email": "codyheiner@google.com",
        "time": "Mon Aug 21 12:51:55 2023 -0700"
      },
      "message": "Implement Stylus Prediction Metrics\n\nFills out the implementation and tests for MotionPredictorMetricsManager.\n\n(Cherry pick of ag/23861881 from udc-qpr-dev)\n\nTest: atest frameworks/native/libs/input/tests/MotionPredictorMetricsManager_test.cpp\nTest: Manual testing on-device, computed metric values seem reasonable.\n\nBug: 268245099\nChange-Id: Iec18415de9c3070f2b285c5c82f5a5e0ceaaf471\n"
    }
  ]
}
