)]}'
{
  "log": [
    {
      "commit": "0c25e864701a6c408b90709493dd30de9b929e2e",
      "tree": "582006e74a1285edd88ce9d41207ea6b1d008088",
      "parents": [
        "9c879e83fd29494822cc8bc4e7a4692145512556"
      ],
      "author": {
        "name": "Paul Ramirez",
        "email": "peramirez@google.com",
        "time": "Tue Jun 18 21:33:33 2024 +0000"
      },
      "committer": {
        "name": "Paul Ramirez",
        "email": "peramirez@google.com",
        "time": "Wed Jun 26 20:53:33 2024 +0000"
      },
      "message": "Return message wrapped in Result from receiveMessage\n\nChanged receivedMessaged return type from status_t to\nandroid::base::Result\u003c\u003e. Enforces checking valid state\nbefore using the object.\n\nFlag: EXEMPT refactor\nBug: 297226446\nTest: TEST\u003dlibinput_tests; m $TEST \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST\nChange-Id: Ic2285d38a2d0d2227c1fae92379270a5f52586c7\n"
    },
    {
      "commit": "13bf76a87d9113d60f39e645c5453bf18d0a158d",
      "tree": "ad1bacb67e07c0040a8a983280ff8e74dd19da2c",
      "parents": [
        "5c636e3b4543a48cf64427cbf915af17cc7ded30"
      ],
      "author": {
        "name": "Linnan Li",
        "email": "lilinnan@xiaomi.corp-partner.google.com",
        "time": "Sun May 05 19:18:02 2024 +0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu May 09 11:00:42 2024 -0700"
      },
      "message": "Use a strongly typed LogicalDisplayId for displayId(2/n)\n\nCurrently, we use int32_t for displayId, which is not a safe type, and\nit may also lead to misdefinition of types. Here, we introduce\nLogicalDisplayId as a strong type for displayId and move all contents\nof constants.h into LogicalDisplayId.h.\n\nBug: 339106983\nTest: atest inputflinger_tests\nTest: atest InputTests\nTest: m checkinput\nTest: m libsurfaceflinger_unittest\nTest: presubmit\n\nChange-Id: If44e56f69553d095af5adb59b595e4a852ab32ce\nSigned-off-by: Linnan Li \u003clilinnan@xiaomi.corp-partner.google.com\u003e\n"
    },
    {
      "commit": "11d223bacb37a77abe09b2841bf3a0bcf4c212d3",
      "tree": "c3375423123685cd55fce93a65fa6ab536c91fce",
      "parents": [
        "232f2712d9abc50a421041e5a090d1f1d5c6b601"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 26 21:52:38 2024 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 27 15:52:52 2024 +0000"
      },
      "message": "Add the name of channel receiving bad data\n\nWhen the InputReceiver gets bad data from the other end of the channel, we currently don\u0027t print the channel information. As a result, when this crash happens, we only learn about the process name. Add the channel info to this crash so that it\u0027s more useful going forward.\n\nBug: 329059530\nChange-Id: Iad4c892dee37a9bf35e790781a2c39431d5a146a\nTest: presubmit\n"
    },
    {
      "commit": "3891ec978149a896a453b4a675c4134639b9a152",
      "tree": "4eac466df97b9f5d79997037ea898e9ac4d65e0f",
      "parents": [
        "acb53f928fc2d1838873114cbff66fdbdb97d28a"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 15 13:29:57 2024 -0700"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Mar 15 20:57:50 2024 +0000"
      },
      "message": "Send events wrapped in unique_ptr to InputConsumerCallbacks\n\nThis will allow the upper layers to release the ownership and hand the\nobject over to the ndk client. The client will then assume the\nownership. This is not possible with the current implementation of\nrvalue, because the ndk interface is only using pointers.\n\nUnfortunately, this makes things more clunky for tests (unless we modify\nBlockingQueue).\n\nBug: 324271765\nTest: TEST\u003dlibinput_tests; m $TEST \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST --gtest_repeat\u003d100 --gtest_break_on_failure\nChange-Id: I0cf326a22f840be6f8aa00d1e69f818815788487\n"
    },
    {
      "commit": "2b920275d0b1cbce0d83aa8a87ad82db121ffbc0",
      "tree": "e519d4ede838aa1b10e971eb3c31129e46668d55",
      "parents": [
        "22a71fb4b47cde3289b46e337504e2f9b00aa844"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Feb 27 19:49:51 2024 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 15 01:21:51 2024 -0700"
      },
      "message": "Add InputConsumerNoResampling, which is a rewrite of InputConsumer\n\nIn this CL, an InputConsumer with built-in looper handling is being\nadded. This will be useful for native code that needs batching, and that\nprovides choreographer callbacks directly into native code.\n\nBefore this CL (and with this CL, temporarily) the InputConsumer logic\nwas split between native and jni layers. In general, we shouldn\u0027t have\nlogic inside jni. But in this case, the situation was also making the\ncode difficult to reason and debug.\n\nIn this new InputConsumerNoResampling class, all of the features of\nInputConsumer and NativeInputReceiver are combined, except for\nresampling. That will be done separately, at a later time.\n\nAs a result, we will not be switching to the new\nInputConsumerNoResampling class right away.\n\nOnce resampling is added, we can switch to the new\nInputConsumerNoResampling (and rename it to InputConsumer), and delete\nthe old InputConsumer.\n\nIn the meantime, the new InputConsumerNoResampling will be useful in the\nnew NDK APIs. There, having resampling is not critical.\n\nBug: 311142655\nTest: TEST\u003dlibinput_tests; m $TEST \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST --gtest_repeat\u003d100 --gtest_break_on_failure\nChange-Id: I468ddbd8406c4bf9f5e022f79fd1a582ba680633\n"
    }
  ]
}
