)]}'
{
  "log": [
    {
      "commit": "1f39c3d3ceaa140c480acbb23504490c2f49450e",
      "tree": "e96ffeebdcba5ea1c5fdfa94514ca45eccd043ad",
      "parents": [
        "677ba5a2beda0734633d2dc548338bed0d467258"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu May 30 21:01:26 2024 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Jun 11 11:16:24 2024 -0400"
      },
      "message": "FTL: Add FTL_EXPECT\n\nLike FTL_TRY, FTL_EXPECT unwraps T for Expected\u003cT, E\u003e or does an early\nout on error, but it bails out with E instead of Expected\u003cT, E\u003e.\n\nFix a line in the Expected.Try test to call the intended helper.\n\nBug: 185536303\nTest: ftl_test\nChange-Id: I238ae2978ff606c5c035e9791496c2b20729ca7f\n"
    },
    {
      "commit": "4e9c7f9ab4195d8515e6cc04b17b9322ca5a2c88",
      "tree": "19d5bbd3f3d646127491759865ebbf9e36931220",
      "parents": [
        "b365e31f121701df79811ded19e7ac046303676f",
        "abedfbd0d44affb21ea237f9de130feb4630f144"
      ],
      "author": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed May 29 22:54:13 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 29 22:54:13 2024 +0000"
      },
      "message": "Merge \"libbinder: support exporting fewer symbols\" into main am: e17cca3ff7 am: abedfbd0d4\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3087749\n\nChange-Id: I1dc0acb1e246e182d9bc42e6bd817608f155e606\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "abedfbd0d44affb21ea237f9de130feb4630f144",
      "tree": "7aed32c4e9c2d7f2a6433679b18831e286e916e4",
      "parents": [
        "cbf51bb44fd095e57d467ec64c16ae8cc279e881",
        "e17cca3ff735691414448fca99f60a4e876f253a"
      ],
      "author": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed May 29 22:46:20 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 29 22:46:20 2024 +0000"
      },
      "message": "Merge \"libbinder: support exporting fewer symbols\" into main am: e17cca3ff7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3087749\n\nChange-Id: I8d24fb085c572c8fe858296896921e6b0d46ac53\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5968781840bb5bead4758c9adb1e41bbea1c24c7",
      "tree": "d0c6e21063ef3a2265bd3071e363ddfe9ccf618b",
      "parents": [
        "a99e1cd67b5d2237200bf23b44a03e0eb31e9326",
        "8bf4487ae52ce8d1797ea58dd0b1109255518ceb"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri May 24 08:27:45 2024 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri May 24 08:27:45 2024 -0700"
      },
      "message": "Merge Android 24Q2 Release (ab/11526283) to aosp-main-future\n\nBug: 337098550\nMerged-In: I8d975b81afd2cde1d543e8bc7e730a6e42393bec\nChange-Id: I714982d2b0df34afc9f9729deb2636de5d0c7b64\n"
    },
    {
      "commit": "f7b65d1f9c20c1fe31b3c6354b26046fd9d33496",
      "tree": "909cb7a24ad744d497e31c551b14a06bb7eed771",
      "parents": [
        "91f0294c09279c59deb5d6f7a2d728e19238d9da"
      ],
      "author": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Tue May 14 16:55:14 2024 -0700"
      },
      "committer": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Thu May 23 22:28:22 2024 +0000"
      },
      "message": "libbinder: support exporting fewer symbols\n\nThis commit explicitly marks symbols in the code with default visibility\nif they should be part of the libbinder ABI. Later, we\u0027ll set the\ndefault symbol visibility to hidden and so any symbols not explicitly\nmarked as exported will be hidden.\n\nWe are still overexporting symbols a bit. When `LIBBINDER_EXPORTED` is\napplied to a class, it exports all of that class\u0027s symbols. I\u0027ve tried\nto only export class members, but in a few cases it didn\u0027t seem worth\nthe trouble, e.g. where all the members need to be exported.\n\nAdditionally, we are exporting some symbols only needed by binder test\nbinaries. Since those tests run against the standard libbinder.so, we\nneed to include the symbols as part of the ABI.\n\nOn aarch64, this reduces the size of libbinder_on_trusty_mock.so by\n10.7% and libbinder.so by 7.5%, primarily in the .text, .dynstr, and\n.dynsym sections (but none of this takes effect until we actually\nenabled it in a later commit).\n\nBug: 338458975\nTest: TH\nChange-Id: Idc348c2b12124a8bbcebeea49920267a995367b6\n"
    },
    {
      "commit": "189d18256ddd9e38987b0a52363eca3d110aae29",
      "tree": "a862feb0278b95a1ef0c54652e9cf8d3699fc4c1",
      "parents": [
        "a7873cc66b57db38e688d9d4e95883683110846f"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri May 03 17:30:26 2024 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue May 14 16:48:11 2024 -0400"
      },
      "message": "FTL: Add Optional\u003cT\u003e::ok_or and FTL_TRY\n\nOptional\u003cT\u003e::ok_or maps to Expected\u003cT, E\u003e where nullopt becomes E.\n\nFTL_TRY unwraps T for Expected\u003cT, E\u003e or does an early out on error.\n\nBug: 185536303\nTest: ftl_test\nChange-Id: Ia03f7e3d8773878db1c493b62772ab2c2b7a4fed\n"
    },
    {
      "commit": "a7873cc66b57db38e688d9d4e95883683110846f",
      "tree": "d5cbd74b48b6c17d47db11b0eb2be689d38717df",
      "parents": [
        "08f13b72a0eb164fe87a8d6dc2f706e3dfa0768e"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 11 16:33:28 2024 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue May 14 16:38:12 2024 -0400"
      },
      "message": "FTL: Touch up Concat\n\n- Silence warning about signedness change.\n- Disable copying to prevent stray end_ pointer.\n\nBug: 185536303\nTest: Build\nChange-Id: Ief31910bd51e9582a576ace554a5f7bafe46bf02\n"
    },
    {
      "commit": "cfbee5304f8fa7210e6f0816ca2ef2b6ab22c689",
      "tree": "95e36c55a539de10ccef28a5d5c66357990c7ab9",
      "parents": [
        "278e699ba51bb8c2bcde28f9d83565d7bf85d6a5"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 10 13:41:35 2024 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue May 14 08:31:17 2024 -0700"
      },
      "message": "Move ADISPLAY_ID_ definitions into LogicalDisplayId\n\nThese will eventually replace the existing definitions as follows:\n     ADISPLAY_ID_NONE --\u003e\u003e LogicalDisplayId::INVALID\n     ADISPLAY_ID_DEFAULT --\u003e\u003e LogicalDisplayId::DEFAULT\n\nWe are keeping the old definitions for now, to reduce the merge\nconflicts. These will be removed in subsequent CLs, after the\nframeworks/base and other repository patches go in.\n\nThe constant \"NONE\" was renamed to \"INVALID\" to make it consistent with\nthe Java definitions.\n\nBug: 339106983\nTest: m checkinput\nChange-Id: I0274be345159c85cb51fcea743d8acd3d298cd07\n"
    },
    {
      "commit": "b58c0c31025bc458204f35ae11f8b343535d27c6",
      "tree": "aea9c90a901773be84592ae29db414f343f2fbf7",
      "parents": [
        "870f4e7e579658f03b5c09a9928d35830bb7986f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 10 17:24:06 2024 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 10 18:07:38 2024 -0700"
      },
      "message": "Remove __linux__ ifdefs where not needed\n\nThe downstream branches now know about Parcel and binder, so in some\nplaces, these #ifdef statements are not needed.\n\nThis CL should help reduce the divergence with downstream efforts. See\nthe merge conflict resolution CL as an example:\nhttps://googleplex-android-review.git.corp.google.com/c/platform/frameworks/native/+/27201796/-2..3\n\nBug: 309829647\nTest: presubmit\nChange-Id: Iec17cface5069ca79a565c205546db8ada8a07ee\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": "5c636e3b4543a48cf64427cbf915af17cc7ded30",
      "tree": "22bdeb1213f7ca4dbbdc414579c9edd75ac0af96",
      "parents": [
        "ada82ac3773142277c6d20bba3b823409fbfa8ff",
        "77527b9787e25d3f07896aba50d74008b43b1bcf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu May 09 15:43:17 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 15:43:17 2024 +0000"
      },
      "message": "Merge \"Turn off integer overflow UBSAN checks for hash functions\" into main"
    },
    {
      "commit": "e3f60f7b7c92e54b1c92cbff158a9c045757f899",
      "tree": "a5e37200488ef7538ad9477771c57b887d781a21",
      "parents": [
        "abd6d329bee0d9ef11b48fa48d763b8854a26933",
        "8e3a0e78e8457ee1e46267ec15da13d0a2a498b1"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 08 23:44:51 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 08 23:44:51 2024 +0000"
      },
      "message": "Merge \"Define the error conditions for ALooper_pollOnce.\" into main am: ec4fb37b08 am: 8e3a0e78e8\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3073883\n\nChange-Id: I65102fd868c340b9156e4c0fc2da411901d06e36\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "24b52741fb50b2cb66aabe097472aaae2628b16a",
      "tree": "01d8aa3d7c76e4eb865a7bf16ada07b91fd928ff",
      "parents": [
        "5a8a9cbe7bfdc6b375d44ca90886bd7bd9bc7624",
        "f971721ed7416e251d085b5f24fb70bc06057b81"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 08 23:11:11 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 08 23:11:11 2024 +0000"
      },
      "message": "Merge changes I48490112,I4227ce3f,I020a2803 into main am: abb750fe27 am: f971721ed7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3073743\n\nChange-Id: If9de092cd068e09b6872125209009d304288e782\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ec4fb37b08f5d653dd0fdcaa6dbbbc86e3095813",
      "tree": "e4ac261957a0f9039a4a497e552cae54fdd1238c",
      "parents": [
        "abb750fe27022b09cd5c40ce39a110b02d22bdd8",
        "26620a62ebf3dd901f5d33e65c57c98414a11df9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 08 23:04:55 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 08 23:04:55 2024 +0000"
      },
      "message": "Merge \"Define the error conditions for ALooper_pollOnce.\" into main"
    },
    {
      "commit": "abb750fe27022b09cd5c40ce39a110b02d22bdd8",
      "tree": "4506de42b7b882bbb05aa96bf9c687fa9d41194f",
      "parents": [
        "17af17462772b1cde025ae8c99d4d80fd6d9f3d0",
        "dc9c4118732034f71aa275843d4c09ee78536829"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 08 22:03:34 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 08 22:03:34 2024 +0000"
      },
      "message": "Merge changes I48490112,I4227ce3f,I020a2803 into main\n\n* changes:\n  Expand Choreographer docs.\n  Restore docs for deprecated Choreographer APIs.\n  Improve ALooper_pollAll/ALooper_pollOnce docs.\n"
    },
    {
      "commit": "77527b9787e25d3f07896aba50d74008b43b1bcf",
      "tree": "e96eb705616fb2f821d0dce3ff6c3b36ed052379",
      "parents": [
        "aabfce6962d30fa96cd612ec880e2c8ceca5e9b0"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed May 08 13:27:09 2024 +0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed May 08 13:45:12 2024 +0800"
      },
      "message": "Turn off integer overflow UBSAN checks for hash functions\n\nThese functions intentionally overflows integers. The upcoming compiler\nupdate, clang-r522817, will start complaining about these overflows.\n\nTest: boot with new compiler\nBug: 325934863\nChange-Id: Idb3730c652ae739b73c09517665b518a79b60345\n"
    },
    {
      "commit": "71566b29e76c66bc6648fa39c62ea4a97e7c6186",
      "tree": "fc736377a2626f3b7df3b244861c34a03efeaa11",
      "parents": [
        "cf2f81a874c0936222e3d570efc06e77ed4f3a01",
        "b54710f9e35f66c217d16bdc0ca8564fb78a86bf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue May 07 23:55:23 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 23:55:23 2024 +0000"
      },
      "message": "Merge \"surface_control: Add missing nullability annotations\" into main"
    },
    {
      "commit": "b54710f9e35f66c217d16bdc0ca8564fb78a86bf",
      "tree": "9bcec013242b395089aff10086f6b0a582ae44b5",
      "parents": [
        "39fb2e6fdaf52da4c8dc29db59b33d7ea64969c3"
      ],
      "author": {
        "name": "Marijn Suijten",
        "email": "marijns95@gmail.com",
        "time": "Fri Jan 19 00:44:53 2024 +0100"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 06 22:49:40 2024 +0000"
      },
      "message": "surface_control: Add missing nullability annotations\n\nThe surface control and transaction are barely every null in most calls,\nbut some informational structures like HDR metadata, and the surface\ncontrol when reparenting are allowed to be null.\n\nChange-Id: Ia1a456041daf8136d856a1901881b74f97b3593a\nMerged-In: Ia1a456041daf8136d856a1901881b74f97b3593a\nTest: make aosp_cf_x86_64_phone\nSigned-off-by: Marijn Suijten \u003cmarijns95@gmail.com\u003e\n"
    },
    {
      "commit": "90d0434319a0af69d8273885d62a44db5ba6d5d1",
      "tree": "e52d95f931064e09c20872ca326d8088633c7dbe",
      "parents": [
        "27dd43beccf38d6fb724f36f013f3ace828dcf9a",
        "c3ccff19603c0778781fd18e0e38e55950420780"
      ],
      "author": {
        "name": "Alan Ding",
        "email": "alanding@google.com",
        "time": "Mon May 06 21:06:53 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 06 21:06:53 2024 +0000"
      },
      "message": "Merge changes I90056145,Ib123d069 into main\n\n* changes:\n  ui: Refactor DisplayIdentification to use ftl::stable_hash\n  FTL: Support ftl::stable_hash based on CityHash64\n"
    },
    {
      "commit": "4994e61d4378f7bba1e60a680aae872a6b651ce1",
      "tree": "a1f91157b50a9840f0ecda63fa918ddd650a59e7",
      "parents": [
        "764882004f446826c25e83f3dcd88de2c9c841f8",
        "7869c7335188f885c72f333ff9729b68eae8f727"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat May 04 00:39:03 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat May 04 00:39:03 2024 +0000"
      },
      "message": "Merge \"Add deprecation message.\" into main am: cf2f81a874 am: 7869c73351\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3073284\n\nChange-Id: I724c2b28e3306f57170a208944abfdfc5156e3d5\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "cf2f81a874c0936222e3d570efc06e77ed4f3a01",
      "tree": "6bba50383139e1e233d2f01ed020fff83a4e4687",
      "parents": [
        "c2b543c1362ebb792240d3dddc0bd421abe6a6b2",
        "c47ac844d5e887f86a9a9b7a8d10aa2c26b79447"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 03 23:58:38 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 03 23:58:38 2024 +0000"
      },
      "message": "Merge \"Add deprecation message.\" into main"
    },
    {
      "commit": "22242fb811ef4ff2dd95f1107f07aa18ef1e098f",
      "tree": "a196aeeb28b9f5aa26bc808350b601d07b06d3e8",
      "parents": [
        "4ccb32acfb26ce4c685b6ff886c6cb78c192fcba"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri May 03 19:58:22 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri May 03 19:58:22 2024 +0000"
      },
      "message": "Allow a message argument for __DEPRECATED_IN.\n\nThe messages come from a different CL in AOSP, but that CL breaks\ninternally because this code doesn\u0027t exist in AOSP. Merging the\ncompatibility thing first so I can land the rest in AOSP.\n\nBug: None\nTest: None\nChange-Id: I906c6ea7bd6d891aba9e185756131ac5b34f3c3d\n"
    },
    {
      "commit": "4ccb32acfb26ce4c685b6ff886c6cb78c192fcba",
      "tree": "a1f46de37d6596263b1d32a3f7aee199e8d9e9f3",
      "parents": [
        "69c245d9c49a565afefa41fb2edb98491e24b494",
        "99f2c3c0fe535cfabe9d91a86261caa3eb3d46ff"
      ],
      "author": {
        "name": "Josep del Río",
        "email": "joseprio@google.com",
        "time": "Fri May 03 18:48:57 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 03 18:48:57 2024 +0000"
      },
      "message": "Merge \"Add mic mute keyboard led. (2/2)\" into main"
    },
    {
      "commit": "91ea16cb8a6fa9ce870fc1e0d9363f916f105aa3",
      "tree": "aa7d3caf9738010a1daff1ea619b356945fb6b02",
      "parents": [
        "f96cbe2d81d62f6ee592853947016ed4cd61b420",
        "c40f6e00af15343131e82ab3f9c270e1142f2031"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 03 01:20:44 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 03 01:20:44 2024 +0000"
      },
      "message": "Merge \"Add missing input flags to aidl and add missing definitions\" into main"
    },
    {
      "commit": "26620a62ebf3dd901f5d33e65c57c98414a11df9",
      "tree": "7aec32740e2ec65fb9499c8255c3202bf8427f96",
      "parents": [
        "dc9c4118732034f71aa275843d4c09ee78536829"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 23:11:20 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 23:12:06 2024 +0000"
      },
      "message": "Define the error conditions for ALooper_pollOnce.\n\n\"Unrecoverable internal errors\" here means that ALOOPER_POLL_ERROR\nwill be returned if the internal epoll_wait call fails with something\nother than EINTR. I could say that explicitly, but I think the\nimportant info for the caller is \"you\u0027re doomed, just abort\".\n\nBug: None\nTest: None\nChange-Id: I869f29122500ee8c71390cae1c28108a63088a77\n"
    },
    {
      "commit": "dc9c4118732034f71aa275843d4c09ee78536829",
      "tree": "508a935fc8ee297bc75bd6247204fe21a74bd13f",
      "parents": [
        "9ca6b3d5c80155b15530845b945263c02bf84ca4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 21:35:02 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 21:35:02 2024 +0000"
      },
      "message": "Expand Choreographer docs.\n\nThis (hopefully) explains all the bits that confused me when I tried\nto use these APIs for the first time. The existing docs leaned a lot\non developers already understanding the Java API, and even the Java\nAPI docs didn\u0027t explain how to use this portion of the API well.\n\nBug: None\nTest: I am the test\nChange-Id: I48490112f92ef754b38daef7a4ebf6c031cc20f8\n"
    },
    {
      "commit": "9ca6b3d5c80155b15530845b945263c02bf84ca4",
      "tree": "096699a43cbce6bbe033df1251b01d3e7b5dba1c",
      "parents": [
        "b06c7fba2d2748b9b11763bc3ba2d1ca86941e64"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 20:36:06 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 20:50:29 2024 +0000"
      },
      "message": "Restore docs for deprecated Choreographer APIs.\n\nThey\u0027re deprecated, but still needed by most users, as the replacement\nis not available until API 29. Restore the docs and explain the bugs.\n\nBug: None\nTest: treehugger\nChange-Id: I4227ce3f0ee57a73a13e394cd48373accf4a58a3\n"
    },
    {
      "commit": "b06c7fba2d2748b9b11763bc3ba2d1ca86941e64",
      "tree": "c2220698dc38cd1e205969489daec706ec0acd0d",
      "parents": [
        "c47ac844d5e887f86a9a9b7a8d10aa2c26b79447"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 20:20:10 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 20:49:30 2024 +0000"
      },
      "message": "Improve ALooper_pollAll/ALooper_pollOnce docs.\n\nAdd the soon-to-be-required removal message for ALooper_pollAll, and\nexpand the docs for both ALooper_pollAll and ALooper_pollOnce to make\nthe reason for removal clear, and to explain the fix callers should\napply.\n\nBug: https://github.com/android/ndk/issues/2014\nTest: treehugger\nChange-Id: I020a280346d1ff9f5fcbec4c153dee8319cdf539\n"
    },
    {
      "commit": "c47ac844d5e887f86a9a9b7a8d10aa2c26b79447",
      "tree": "f45cf7a224107419991f6bfa9c7f46ec0f14639c",
      "parents": [
        "951e73500c545b4d3ca995440d05f00dd7d6df07"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 20:19:54 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 02 20:19:54 2024 +0000"
      },
      "message": "Add deprecation message.\n\nBug: None\nTest: treehugger\nChange-Id: I3a52883fba0e31f05e50cd51193bbb306418b18a\n"
    },
    {
      "commit": "2e85e1b37bb9bd6f432614873ed74c9a5d53d45f",
      "tree": "d450582363edff63683a7e9747043ccdadc17be6",
      "parents": [
        "23550ef3ad955f435cf0d2d16d21f31ecd448dae"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Tue Apr 23 18:33:17 2024 -0700"
      },
      "committer": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Wed May 01 17:29:13 2024 -0700"
      },
      "message": "ftl: non_null improvements\n\n* Disallow NonNull\u003cbool\u003e by checking for nullptr, instead of false.\n* Add an \"operator bool()\" to work like other smart pointers.\n* Add [[nodiscard]] where it makes sense.\n* Implement the full set of comparison operations, and allow\n  comparisons between NonNull\u003cP\u003e and another type Q. This allows the\n  use of NonNull\u003cP\u003e in sorted containers like std::set, and allows\n  easier lookup via unwrapped pointers.\n* Specialize std::hash for NonNull. This allows the use of NonNull\u003cP\u003e in\n  hashed containers like std::unordered_set.\n\nTest: atest ftl_test\nBug: 185536303\nChange-Id: Ib1090e393ea5f5641be2cd9c61011049039ea615\n"
    },
    {
      "commit": "23550ef3ad955f435cf0d2d16d21f31ecd448dae",
      "tree": "19a44d16849c01e1e490a49c552df6476b0c1c39",
      "parents": [
        "d50d517fb36c05ee2a877a3684fb1d3ff6e273c2"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Wed May 01 17:00:22 2024 -0700"
      },
      "committer": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Wed May 01 17:29:08 2024 -0700"
      },
      "message": "ftl: contains\n\nftl::contains(container, value) returns true if the container contains\nthe value. It\u0027s implemented in terms of std::find(), so has the same\nruntime complexity.\n\nIt is otherwise a simplified version of the C++23 std::ranges::contains,\nwhich has some additional options, and can be deprecated once C++23 is\nthe minimal supported version.\n\nTest: atest ftl_test\nBug: 185536303\nChange-Id: I98aefe7cf6645ac3a20fddfe0657fa6822d669de\n"
    },
    {
      "commit": "8c5f7bec585e734ab466f0b8a2a5bfb5914973e3",
      "tree": "17fa4d703ce54a0d09830f4354fad0a8335ff9fe",
      "parents": [
        "99a0f11460077e2f773a23792d18f7f76b9a31f9"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 01 22:48:16 2024 +0000"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed May 01 16:06:04 2024 -0700"
      },
      "message": "Move BlockingQueue.h to libinput\n\nThis is already useful in several places, and it\u0027s going to be also\nuseful in the future when InputConsumer is refactored.\n\nSo let\u0027s move it to include/input.\n\nBug: 311142655\nTest: m inputflinger_blocking_queue_fuzzer\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3782af62ea590e8945f2175a90aa2b6f4995814d)\nMerged-In: Idfc492c6bfc3cccab7e0b0d12b21a41a954cc44b\n\nChange-Id: Ie662961b77d331cd62b529bae0fd66e56a69bd19\n"
    },
    {
      "commit": "c40f6e00af15343131e82ab3f9c270e1142f2031",
      "tree": "e0407f1a312379479a078e5ecca159e643c4d826",
      "parents": [
        "f4cec08046f669955317dc75fd549a703946c5c0"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Apr 25 15:49:29 2024 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed May 01 14:55:48 2024 -0700"
      },
      "message": "Add missing input flags to aidl and add missing definitions\n\nTo ensure that the future updates are consistent across java, cpp, and\nrust, we move all of motion event flags to aidl. That will be the\nsource of truth for those constants. That still doesn\u0027t ensure that in\nthe future updates, we forget to add these to all the languages, but at\nleast now it will be much easier to do so.\n\nBug: 309829647\nTest: m sync\nChange-Id: Ibb92c0c2b2da3b07eac3886c6fd652a295037099\n"
    },
    {
      "commit": "b756088af73d5934e2293edff7720d86ec77ba7a",
      "tree": "5f919fa273f033ac0f83d7a547decf10637e7dc4",
      "parents": [
        "db8c7b40ec0fbb491f5f3ca6b7cc50a7144ee6c0"
      ],
      "author": {
        "name": "Alan Ding",
        "email": "alanding@google.com",
        "time": "Sun Apr 28 17:13:41 2024 -0700"
      },
      "committer": {
        "name": "Alan Ding",
        "email": "alanding@google.com",
        "time": "Sun Apr 28 17:41:46 2024 -0700"
      },
      "message": "FTL: Support ftl::stable_hash based on CityHash64\n\nExtends stable hash from libui by increasing maximum string length\nsupported from 16 to 64 bytes (CityHash64 v1.0.1 - please see\nhttp://code.google.com/p/cityhash/).\n\nBug: 185536303\nBug: 194863377\nTest: ftl_test\nTest: Compare with 64-bit std::hash\u003cstd::string_view\u003e\nChange-Id: Ib123d0690a0d2150aa51c91526784dcf77a65d46\n"
    },
    {
      "commit": "95660fb1b47617853e932168006fdb1313ff7f65",
      "tree": "67ad9164714e1d6e54dcb4298b1eaf505aa9f821",
      "parents": [
        "e639e642f02fd915ece295e8c9c9cea2eab9c12a",
        "c57cd3c5ff1b4a69d4a96d5d7e6677a734069d49"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Thu Apr 25 13:44:01 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 25 13:44:01 2024 +0000"
      },
      "message": "Merge \"input: fix -Wformat warnings\" into main"
    },
    {
      "commit": "c57cd3c5ff1b4a69d4a96d5d7e6677a734069d49",
      "tree": "e2af7764b7c87a16d6e6ac235d334100a48c14d3",
      "parents": [
        "8be726605023df669359c4b5148cdc6bf874b34b"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Apr 24 13:52:55 2024 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Apr 24 13:55:21 2024 +0000"
      },
      "message": "input: fix -Wformat warnings\n\nThese occur when an enum value is formatted as an integer without a\ncast. In all these cases the debug logs are nicer if we use the actual\nname of the enum value, so wrap them all in ftl::enum_string calls.\n\nBug: 245989146\nTest: Check there are no -Wformat warnings in the output of\n      $ m checkinput\nChange-Id: I26333123e9fb445f1640c5e73757ddf4ad2d6e98\n"
    },
    {
      "commit": "f269a1deec7eb04ee2ed052173576338e0397ff2",
      "tree": "6ce30cc7f5ad039f2bcbe35a3a8c584429fd2c0a",
      "parents": [
        "cce9656210d5ece1a5e2b792e075e771a6fa8e16",
        "a518f32919f9c2b01a975c0cd8232c7297d24ec5"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Apr 23 22:27:09 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 22:27:09 2024 +0000"
      },
      "message": "Merge \"Add HWUI session tagging\" into main"
    },
    {
      "commit": "a518f32919f9c2b01a975c0cd8232c7297d24ec5",
      "tree": "b3ceb60bac2cb02bcdb9a93982be57b4f03feed0",
      "parents": [
        "d10195fcfe1119bc57362049c86935cea72fba4b"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Apr 05 08:13:44 2024 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Apr 23 22:25:08 2024 +0000"
      },
      "message": "Add HWUI session tagging\n\nAdds a hidden method for the creation of special \"internal\" hint\nsessions with extra metadata, and plumbs hwui to use it\n\nBug: 330553312\nTest: atest PerformanceHintNativeTestCases\nTest: hwui unit tests\nChange-Id: I2e7eb8fe010b7314c3e91ec2d11ac1910c234262\n"
    },
    {
      "commit": "48f80daef8363a51d6b982ad16bda393e39fbb7e",
      "tree": "336f1ae89f6db3401e50cf7607df2270aa524dd3",
      "parents": [
        "d10195fcfe1119bc57362049c86935cea72fba4b"
      ],
      "author": {
        "name": "Linnan Li",
        "email": "lilinnan@xiaomi.corp-partner.google.com",
        "time": "Mon Apr 22 18:38:16 2024 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 23 20:41:06 2024 +0000"
      },
      "message": "Do not show pointer for disabled device\n\nWe currently display the pointer for all devices that support displaying\nit, but there are actually some devices that are disabled and shouldn\u0027t\nactually have it displayed for them, here\u0027s an implementation for that.\n\nThis is done by adding an enabled state to the InputDeviceInfo to\ndetermine its disabled status.\n\nBug: 335795596\nTest: atest inputflinger_tests\n\nSigned-off-by: Linnan Li \u003clilinnan@xiaomi.corp-partner.google.com\u003e\n(cherry picked from https://partner-android-review.googlesource.com/q/commit:d7c5c6d376f5eae7cbb7cce5ea12f2ba420d87ab)\nMerged-In: Ibdad9f8424a29d83412866eace0ef96026fb270a\nChange-Id: Ibdad9f8424a29d83412866eace0ef96026fb270a\n"
    },
    {
      "commit": "c2440ff1f03786044df7bdf1b75f1b29d5261f7e",
      "tree": "17be394fe939d63e64ad27498b8715659262b184",
      "parents": [
        "349f85059f119ac525daebc63f32f0909ca077a0"
      ],
      "author": {
        "name": "Marijn Suijten",
        "email": "marijns95@gmail.com",
        "time": "Fri Jan 19 00:44:53 2024 +0100"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 19 17:43:46 2024 -0400"
      },
      "message": "surface_control: Add missing nullability annotations\n\nThe surface control and transaction are barely every null in most calls,\nbut some informational structures like HDR metadata, and the surface\ncontrol when reparenting are allowed to be null.\n\nChange-Id: Ia1a456041daf8136d856a1901881b74f97b3593a\nTest: make aosp_cf_x86_64_phone\nSigned-off-by: Marijn Suijten \u003cmarijns95@gmail.com\u003e\n"
    },
    {
      "commit": "99f2c3c0fe535cfabe9d91a86261caa3eb3d46ff",
      "tree": "a2965c76856edc06ad90fcc0acdd07ad82e58042",
      "parents": [
        "b83e1d62aa30ce515fa208909b9c56b2abf81ed6"
      ],
      "author": {
        "name": "DingYong",
        "email": "dingyong2@lenovo.corp-partner.google.com",
        "time": "Wed Dec 20 15:46:06 2023 +0800"
      },
      "committer": {
        "name": "Josep del Rio",
        "email": "joseprio@google.com",
        "time": "Tue Apr 16 09:55:16 2024 +0000"
      },
      "message": "Add mic mute keyboard led. (2/2)\n\nChange-Id: I6e18c9d99d562aec112fc8ecb3d4e916285368c6\nTest: Built\n"
    },
    {
      "commit": "c8681f8a644b0674451ed2d29f461e0a334632bc",
      "tree": "7a7bd35f6cf8dcd87d34dd1af8b897b8fc37d25c",
      "parents": [
        "19692ed75a88e40ce6e4faae83b8d177900cb6bf"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Mon Apr 08 12:45:59 2024 -0700"
      },
      "committer": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Fri Apr 12 23:55:25 2024 +0000"
      },
      "message": "Add a comment on thread-safety for NDK\n\nThis keeps it consistent with the SDK doc.\n\nBug: 332253611\nTest: n/a\nChange-Id: I988f9be7eb37ac1d57edd403dc30f0e17e2b2db3\n"
    },
    {
      "commit": "7f754b2dafac08dd16320e3ffba3aaa7a9797f80",
      "tree": "19415c19a551285e91499123af24f961cac5eca6",
      "parents": [
        "f81ef3c8d68cb5c8fe7b6db22849dbc9a179a7bb",
        "20fc03cdeaedd1703bd167c40f3bac3fe44f93a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Apr 04 16:59:19 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 04 16:59:19 2024 +0000"
      },
      "message": "Merge \"surface_control: Add ABI type information to `enum`s\" into main am: 72e720a93b am: 20fc03cdea\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3023923\n\nChange-Id: Iacc77094671afe332c131cf472c269b3ddd6a6c7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f81ef3c8d68cb5c8fe7b6db22849dbc9a179a7bb",
      "tree": "59ed5ff55b33470ef2e9da6652274058f6198631",
      "parents": [
        "d1dfe2905bd9f90549f32c3df3a6831a7579beae",
        "bc9f69cb3aa7fe166ad14154bfb5d1b33090a5f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Apr 04 16:59:09 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 04 16:59:09 2024 +0000"
      },
      "message": "Merge \"Make enum use C compatible.\" into main am: b30f2dd618 am: bc9f69cb3a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3023505\n\nChange-Id: I6cfad0917d2c8788b2b4cea4ddeac86d527a5b6a\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "72e720a93b29a6ec581613cf91454ece54d9723c",
      "tree": "47e54a39fe3d373517c97af2c7872fcca82a5dd4",
      "parents": [
        "b30f2dd6188255e61c53ce9d51d174615227290e",
        "896a661ddd4a989eb3b877c00a7d3abfd13bcbd2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Apr 04 16:37:38 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 04 16:37:38 2024 +0000"
      },
      "message": "Merge \"surface_control: Add ABI type information to `enum`s\" into main"
    },
    {
      "commit": "896a661ddd4a989eb3b877c00a7d3abfd13bcbd2",
      "tree": "76f8e540b77559013fc84554e2986186afd8ea7e",
      "parents": [
        "2d0d712f516df494eb397d3f5784fa901d348a66"
      ],
      "author": {
        "name": "Marijn Suijten",
        "email": "marijns95@gmail.com",
        "time": "Fri Jan 19 00:50:34 2024 +0100"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 02 22:36:54 2024 +0000"
      },
      "message": "surface_control: Add ABI type information to `enum`s\n\nBy declaring the ABI of `enum` types, the `enum` type can now be used in\nplace of a raw and untyped integer in function parameters and structure\nfields, self-documenting what the possible values are.\n\nTest: treehugger\nChange-Id: I6b9cf8b36b16e23c0e992f8155452bd194e6e1ad\nSigned-off-by: Marijn Suijten \u003cmarijns95@gmail.com\u003e\n"
    },
    {
      "commit": "dd05718927e99fcd3fb65f53e72d6c96a91c83b9",
      "tree": "e38ae8372d023983dd417d32669e9c20639a45b8",
      "parents": [
        "2d0d712f516df494eb397d3f5784fa901d348a66"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 02 20:13:46 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 02 20:13:46 2024 +0000"
      },
      "message": "Make enum use C compatible.\n\nBug: https://github.com/android/ndk/issues/1920\nTest: treehugger\nChange-Id: Ib8296e7b9c86809d16fbde0787d016095a189387\n"
    },
    {
      "commit": "c7f6181279134a24791fbfba0c02a8ac12f10375",
      "tree": "fba1beeb0991684150763d87e136b9700750c9a6",
      "parents": [
        "cf0a70f65730c0429dba2d78731e288fb037b5f8",
        "aaa473120335717706b48434056fca25fa05f930"
      ],
      "author": {
        "name": "Derek Wu",
        "email": "derekwu@google.com",
        "time": "Mon Apr 01 19:14:11 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 19:14:11 2024 +0000"
      },
      "message": "Merge \"Add jerk thresholded pruning.\" into main"
    },
    {
      "commit": "aaa473120335717706b48434056fca25fa05f930",
      "tree": "771d6d40caa3d2e334317750aa334a0f1c50b595",
      "parents": [
        "a394761fa1511992deb2106aa6b7460b7b850174"
      ],
      "author": {
        "name": "Derek Wu",
        "email": "derekwu@google.com",
        "time": "Tue Mar 26 15:53:44 2024 -0700"
      },
      "committer": {
        "name": "Derek Wu",
        "email": "derekwu@google.com",
        "time": "Sat Mar 30 01:21:44 2024 +0000"
      },
      "message": "Add jerk thresholded pruning.\n\nThis will change MotionPredictor::predict() outputs once\nenable_prediction_pruning_via_jerk_thresholding is enabled.\n\nTest: atest libinput_tests --host with local flag override to enable\nenable_prediction_pruning_via_jerk_thresholding.\nTest: atest CtsInputTestCases\nTest: atest MotionPredictorBenchmark MotionPredictorTest\nBug: 266747654\n\nChange-Id: I11eb1972246468a1f3824656f5ac57e01e0359cd\n"
    },
    {
      "commit": "c0bf3899a3eaf6db2a9baa1b014bdf058e9ce5c8",
      "tree": "e69d959126abfeeb2231b61c6eb68a1658a409dd",
      "parents": [
        "4aeb67df1c9f8e432f4743a7633556bd91efa3c9"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 29 16:29:13 2024 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 29 22:46:11 2024 +0000"
      },
      "message": "Add tracing for InputConsumer lifetime\n\nThis will help understand when it\u0027s created and destroyed. This also helps disambiguate between multiple InputConsumers in the same process.\n\nTest procedure:\n1. Add \"system tracing\" to quick settings from developer options (enable\n   the quick settings tile for system tracing)\n2. Start system tracing via UI of quick settings\n3. Open all apps and do some swipes\n4. Click \"stop tracing\"\n5. Pull the logs to the device `adb pull /data/local/traces/ ~/trace`\n6. Go to https://ui.perfetto.dev/\n7. Click \"open trace file\" and navigate to the local file\n8. In the trace, open the process of interest. In this case, it\u0027s the\n   launcher process\n9. Scroll down to \"InputConsumer processing\"\n10. The \"cookie\" field of each entry is the sequence number of this\n    event (but not the event id).\n\nBug: 311142655\nTest: perfetto test procedure described above\n\nChange-Id: If8cdadd3604e8e3ab24c45a5ccf4ea9ffa9fee4a\n"
    },
    {
      "commit": "705068dde6a8c4f2409f098eae7835ba1f2ebcd6",
      "tree": "cdc3602639ac7eb010b7c8e91dc9f13b302b693c",
      "parents": [
        "3fa9d8501e249f5b696adbd11a4b61252340a148"
      ],
      "author": {
        "name": "Derek Wu",
        "email": "derekwu@google.com",
        "time": "Wed Mar 20 10:41:37 2024 -0700"
      },
      "committer": {
        "name": "Derek Wu",
        "email": "derekwu@google.com",
        "time": "Tue Mar 26 23:12:23 2024 -0700"
      },
      "message": "Add a jerk tracker to MotionPredictor\n\nThis is a no-op\n\nTest: atest libinput_tests\nBug: 266747654\nChange-Id: I0f67a1d8ea59a6851afa6f523b6e00b2281745d0\n"
    },
    {
      "commit": "56afd1e243c725c2956b7d4a436ebccd42ea42dd",
      "tree": "2f868a99448c3ab405e433bc3a1622de5a6e3370",
      "parents": [
        "030337deabfb7ef7f2e3c00dbeae33ed87426994"
      ],
      "author": {
        "name": "Yuichiro Hanada",
        "email": "yhanada@google.com",
        "time": "Fri Mar 22 17:23:25 2024 +0900"
      },
      "committer": {
        "name": "Yuichiro Hanada",
        "email": "yhanada@google.com",
        "time": "Tue Mar 26 09:32:11 2024 +0900"
      },
      "message": "Move PointerIconType to AIDL\n\nto be shared between Java and C++.\nThe values of PointerIconStyle in Input.h and the constants in\nPointerIcon.java are manually synced now.\nThis change introduces an AIDL file which can be used by both.\n\nBug: 235023317, 330827347\nTest: presubmit\nChange-Id: I01f31868e7c13270047673d97035783deaf0a7f6\n"
    },
    {
      "commit": "8ca4b6e1bdcab38663829e89a0ab76eb44e86701",
      "tree": "62e59c866198fde06254102cd4060618a81f23c8",
      "parents": [
        "ed471732ac76eae4c7eba4dafa4ba26cd7b76e58",
        "1b95851d43a6953d5eb3c19c96d0e0ccffb145e2"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 21 17:28:35 2024 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 22 00:35:51 2024 +0000"
      },
      "message": "Merge \"Add owner for include/android/keycodes.h\" into main am: ca2def9bf4 am: 1b95851d43\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3009114\n\nChange-Id: Ib641eed189269cb50887248ecc75d7d4f1521229\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "04cb6b2e74c8b4550e0d6c41e3d0dba7dbea932e",
      "tree": "63eaf560b5db497d15a4f47d51c1bd6b46b8ea76",
      "parents": [
        "5b56e92394d1731cb6eec668238d7ce2c39598e1"
      ],
      "author": {
        "name": "Linnan Li",
        "email": "lilinnan@xiaomi.corp-partner.google.com",
        "time": "Thu Mar 21 07:05:21 2024 +0000"
      },
      "committer": {
        "name": "Linnan Li",
        "email": "lilinnan@xiaomi.corp-partner.google.com",
        "time": "Thu Mar 21 12:29:53 2024 +0000"
      },
      "message": "Add owner for include/android/keycodes.h\n\nBecause of the existence of extra spaces, the owner of keycodes.h is\nnot configured as expected. We should delete this extra spaces.\n\nBug: none\nTest: After merging, check whether the owner of keycodes.h includes\nall users under INPUT_OWNER\n\nChange-Id: I634c49f53a4633bdee3cdefbf0debae4dff90a47\n"
    },
    {
      "commit": "d6a56c97bf3563194129d6b6f7af03a5683be741",
      "tree": "41f2d951fa2d300a5953ea9847dd769165575ff1",
      "parents": [
        "703c1c04d8ec04619604239458bd8b2c3517742d"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Tue Mar 19 20:24:14 2024 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Mar 20 15:15:07 2024 +0000"
      },
      "message": "Addressed NDK API feedback\n\nTest: Builds\nBug: 330375394\nChange-Id: I54a51e3f78d5c44067369d3fce3a61fd18a4157b\n"
    },
    {
      "commit": "99280991b707a51e575c11b606426d4bc96de7f2",
      "tree": "c50f1b2061c8f29b94f380c23ed6d4dfbff5ada3",
      "parents": [
        "3891ec978149a896a453b4a675c4134639b9a152"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon Mar 04 22:49:22 2024 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Mar 15 22:33:58 2024 +0000"
      },
      "message": "Add surface_control_input_receiver native API\n\nBug: 324271765\nTest: ASurfaceControlInputReceiverTest\nChange-Id: I19a1c796c1d22e8b247368df07c34c1b4b195e64\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": "c68db5f02cb96d6ec5b5d2ee8172151abab7f9c7",
      "tree": "35251f3ebe762d785580b3864eabe7903fb2ad86",
      "parents": [
        "9672eff8020cbe884c3d8141966e96711d63eec2",
        "2b920275d0b1cbce0d83aa8a87ad82db121ffbc0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 15 09:59:16 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 09:59:16 2024 +0000"
      },
      "message": "Merge \"Add InputConsumerNoResampling, which is a rewrite of InputConsumer\" into main"
    },
    {
      "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"
    },
    {
      "commit": "2502a0b1fc06120b64efc385bddde1dcb0abff37",
      "tree": "1f3ff8ad9b50e60b5674a277d6fe68e49ee728b4",
      "parents": [
        "10f539294cbd8df95ef1b54af0869b497e9c0c59",
        "fed621c61161890fe7c21c7204f6fe2a957bb013"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 14 20:36:03 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 14 20:36:03 2024 +0000"
      },
      "message": "Merge \"Deprecate ASurfaceTransactionStats_getAcquireTime\" into main"
    },
    {
      "commit": "fed621c61161890fe7c21c7204f6fe2a957bb013",
      "tree": "cdf396c02dd698307c9ec6f65222312b34329cc1",
      "parents": [
        "fc2deb96cee3ba1695c14e1955745458b4fdb050"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Mar 14 15:46:05 2024 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Mar 14 19:19:07 2024 +0000"
      },
      "message": "Deprecate ASurfaceTransactionStats_getAcquireTime\n\nTest: Builds\nBug: 203080148\nChange-Id: I586339b82e408e0ac90944ab280a2d5b79309141\n"
    },
    {
      "commit": "22a71fb4b47cde3289b46e337504e2f9b00aa844",
      "tree": "b234bec3af4c5257dcda9985aeadb856c35c3d48",
      "parents": [
        "fc2deb96cee3ba1695c14e1955745458b4fdb050",
        "0438ca8a922661b3a870f61ab6fcb5fab4e5ffb8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 13 21:18:54 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 13 21:18:54 2024 +0000"
      },
      "message": "Merge \"Move InputConsumer into separate files\" into main"
    },
    {
      "commit": "0438ca8a922661b3a870f61ab6fcb5fab4e5ffb8",
      "tree": "1d8c82b3c049b83256cabeea31cfadf6f627ff25",
      "parents": [
        "852772756777194d84be7d9662bb155fafa41d06"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 12 14:27:25 2024 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 13 11:05:48 2024 -0700"
      },
      "message": "Move InputConsumer into separate files\n\nThis helps to keep track of things, and it also allows easier deletion\nin the future.\n\nBug: 311142655\nTest: none\nChange-Id: Iece2bf6857ab05f86072031a4cf3a36f843b1634\n"
    },
    {
      "commit": "8cf421f9fb6d9c17d884718f52efa546b9ba2a20",
      "tree": "8f6f6345df5895d01f0b4576c4238633ef2749b7",
      "parents": [
        "755d1b7ead785369163e6d2b73946ec22d73bc14",
        "a6f572f92437f5ace0b99df16af1f49cad8b260b"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Mar 13 12:56:04 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 13 12:56:04 2024 +0000"
      },
      "message": "Merge \"Add native InputTransferToken\" into main"
    },
    {
      "commit": "655d215e60286bbbd8bd3435928fcd01f4b60d99",
      "tree": "f49504adfe7537c76c495a17c882c37aebe3b1ec",
      "parents": [
        "9ee18ea5184e4cf848f3404282f91eed87124b3c",
        "25040239f17b406e33c714f56bf082d76005d20e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 13 03:59:28 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 13 03:59:28 2024 +0000"
      },
      "message": "Merge \"Use input token in PointerCaptureRequest\" into main"
    },
    {
      "commit": "9ee18ea5184e4cf848f3404282f91eed87124b3c",
      "tree": "9916c647a69cc07a9bc1f40343ca9938ec56c91d",
      "parents": [
        "f48385e87cfff607f662d0699675592b223bd090",
        "fbdf1fe58706151c0ab6ed3e7137b3c510654d4c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 13 03:06:48 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 13 03:06:48 2024 +0000"
      },
      "message": "Merge \"Remove default argument from \"C\" API.\" into main am: 7148e8da29 am: fbdf1fe587\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2973726\n\nChange-Id: I24347201636189729d0de5e25525e04a4879f649\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "a6f572f92437f5ace0b99df16af1f49cad8b260b",
      "tree": "695a9fceba51bc73a52e4894a64c5a2c7ea4e0d4",
      "parents": [
        "25cf7faf4a428573bec0a900ec628d0919657b2b"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Feb 29 16:28:21 2024 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Mar 13 01:46:13 2024 +0000"
      },
      "message": "Add native InputTransferToken\n\nAdded a native class that corresponds to the Java InputTransferToken.\n\nTest: SurfaceControlInputReceiverTests\nTest: AInputTransferTokenTest\nBug: 324271765\nChange-Id: Ida2a7b34338560dfed9af7f510d64372e41384af\n"
    },
    {
      "commit": "7148e8da298b3ece2e710aa184424424082887e0",
      "tree": "cd475d63df4535276566535dc5a95839fec1b695",
      "parents": [
        "30ad90f3ece4796c7493af9cbd6a83ab3d520d55",
        "c6278e836fd40a73254703bbe083a30ae3a7ef30"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 13 01:37:09 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 01:37:09 2024 +0000"
      },
      "message": "Merge \"Remove default argument from \"C\" API.\" into main"
    },
    {
      "commit": "25040239f17b406e33c714f56bf082d76005d20e",
      "tree": "05830242aeeecb980e232533e1695b175022c64a",
      "parents": [
        "48d4be6d40c8a60641a9fbb3cdd27a693922f78b"
      ],
      "author": {
        "name": "Hiroki Sato",
        "email": "hirokisato@google.com",
        "time": "Thu Feb 22 17:21:22 2024 +0900"
      },
      "committer": {
        "name": "Hiroki Sato",
        "email": "hirokisato@google.com",
        "time": "Wed Mar 13 09:43:01 2024 +0900"
      },
      "message": "Use input token in PointerCaptureRequest\n\nInstead of sending boolean to indicate the capture state,\nInputDispatcher now sends an input window token that requests a\npointer capture, or nullptr otherwise.\n\nThis is useful for some InputReader implementations.\nAlso, this token can be used to verify if a pointer capture changed\nevent from a reader is valid.\n\nBug: 259346762\nBug: 301628662\nTest: inputflinger_tests\nTest: android.view.cts.PointerCaptureTest WindowFocusTests#testPointerCapture\nChange-Id: Ie8343db6744dc2080f7f1dcff5a630be5c87fa3e\n"
    },
    {
      "commit": "852772756777194d84be7d9662bb155fafa41d06",
      "tree": "8ba402c2b192ad3a3421dd92da4b70f310de03cb",
      "parents": [
        "6862cb2d5766172cb1137f053b00e5a92b30385c",
        "3782af62ea590e8945f2175a90aa2b6f4995814d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Mar 12 05:51:06 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 12 05:51:06 2024 +0000"
      },
      "message": "Merge \"Move BlockingQueue.h to libinput\" into main"
    },
    {
      "commit": "3782af62ea590e8945f2175a90aa2b6f4995814d",
      "tree": "1fd144d51e145c8d9c7a24c721bdb8fb0cf13821",
      "parents": [
        "15bd9007de72dc7a0255b86652f32641a3e91204"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 07 21:56:39 2024 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Mar 11 10:19:03 2024 -0700"
      },
      "message": "Move BlockingQueue.h to libinput\n\nThis is already useful in several places, and it\u0027s going to be also\nuseful in the future when InputConsumer is refactored.\n\nSo let\u0027s move it to include/input.\n\nBug: 311142655\nTest: m inputflinger_blocking_queue_fuzzer\nChange-Id: Idfc492c6bfc3cccab7e0b0d12b21a41a954cc44b\n"
    },
    {
      "commit": "4cf469c2f407483498103dc1474b953df3310d8d",
      "tree": "e550d44c3793536a68e336965884db94e22f3a69",
      "parents": [
        "c782ca07a13d9605f71db1a56ccc3e42b310a3c4",
        "c13922027fada1919875c0e16f699dbde69e1f0b"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 08 21:10:05 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 08 21:10:05 2024 +0000"
      },
      "message": "Merge \"Always capitalize hdr and sdr\" into main"
    },
    {
      "commit": "c65c720f1c2ee914d6e0a43297472e57898adf73",
      "tree": "d56ccdef756117da6a3c92ecc459c3202b87e710",
      "parents": [
        "2803998e283cd554637ab5d8c64bb06f42eb72f5",
        "9dbf63750fcc389713237ff5f4df2c3fac40826a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 07 17:25:15 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 07 17:25:15 2024 +0000"
      },
      "message": "Merge \"Move static functions to InputConsumer cpp file\" into main"
    },
    {
      "commit": "9dbf63750fcc389713237ff5f4df2c3fac40826a",
      "tree": "c5594e1c7718990d50c72c80cb9656912a66e08e",
      "parents": [
        "55397a309fc80bd4a82efb2c96b86a691704de5e"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 06 16:08:01 2024 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 06 16:48:14 2024 -0800"
      },
      "message": "Move static functions to InputConsumer cpp file\n\nThis way, they can be reused by other code in that file. For example,\nby the new \"InputConsumerNoResampling\".\n\nAlso, pass the parameters by ref because they are not nullable.\n\nBug: 311142655\nTest: m libinput libinput_tests\nChange-Id: Ib40bcddfcb3d49b0a42d58533dcc566d9d49a500\n"
    },
    {
      "commit": "08726fcf78a07498c7d7087586e341c73ff49819",
      "tree": "1b5e84fdbe98991c9326ea96a53091721600e4e9",
      "parents": [
        "890890a2fc0772004445f3ff1cb357e4ab3da2fc",
        "add8a4a9c3abd2c2b8d75b41bb99b7fb607e549a"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Mar 06 19:19:39 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 06 19:19:39 2024 +0000"
      },
      "message": "Merge \"MotionEvent: Get offsets in raw coordinate space\" into main"
    },
    {
      "commit": "c13922027fada1919875c0e16f699dbde69e1f0b",
      "tree": "ad032fb5923457e7cd4f8d3329417a035bb42272",
      "parents": [
        "f74bfe1f7ffd47ee51c046b73a3ff403b95ec939"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Mar 06 19:10:00 2024 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Mar 06 19:10:00 2024 +0000"
      },
      "message": "Always capitalize hdr and sdr\n\nBug: 327182552\nTest: builds\nChange-Id: Ic8dd3ee6e649e493512a32956ac6d97e2627d25f\n"
    },
    {
      "commit": "add8a4a9c3abd2c2b8d75b41bb99b7fb607e549a",
      "tree": "727affec2e7716ec3cb2f6e0bba594f47f12e410",
      "parents": [
        "9180f87bfaac7d0f063d1f59fa572e4751899af6"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 05 22:18:09 2024 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 05 22:18:09 2024 +0000"
      },
      "message": "MotionEvent: Get offsets in raw coordinate space\n\nMotionEvents store the underlying axis values in the coordinate space of\nthe physical display, or \"untransformed\" space. The MotionEvent\u0027s\nmRawTransform takes those coordinates into the coordinate space of the\nlogical display, or \"raw\" coordinates. The MotionEvent\u0027s mTransform\ntakes those coordinates into the window/View\u0027s local coordinates.\n\nPreviously, getting the motion event offset would return the offset with\nrespect to the origin of the \"untransformed\" space. This is of little\nvalue to callers, since they are expecting the offset in \"raw\"\ncoordinates, which is the offset with respect to the logical display\u0027s\norigin.\n\nTo calculate the raw offset, we calculate where the raw point (0, 0)\nwould map to in untransformed coordinates by applying the inverse raw\ntransform, and then apply the window transform.\n\nBug: 249340921\nTest: atest libinput_tests\nTest: atest inputflinger_tests\nChange-Id: Iadbdde4dd45b5527b73be863b198b4c9a9e713cc\n"
    },
    {
      "commit": "7eb8cb825ed4435ff527cc606a09f4c9e466caf0",
      "tree": "55c33648e23ff8b994391776448f1db6fed613fc",
      "parents": [
        "6f39b79abf0d692ace302278cdc3f383d615e321",
        "bf9b0a854f2351e337fc7c7658cc03b75055276b"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 05 19:43:48 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 19:43:48 2024 +0000"
      },
      "message": "Merge \"Move MotionEvent#split implementation to native\" into main"
    },
    {
      "commit": "9e77d9a5e23970414026b6dc4573383b77664a2a",
      "tree": "93f63be60d0b53c30ed8f40765a4382521dfe5fe",
      "parents": [
        "d26c9194865433ff01584921f17339e8a719c34a",
        "6c18e6da2aa9758eb7c9a639f44a15a45723f65b"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Mar 05 18:27:59 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 18:27:59 2024 +0000"
      },
      "message": "Merge \"Update PowerHAL wrapper support checking behavior\" into main"
    },
    {
      "commit": "bf9b0a854f2351e337fc7c7658cc03b75055276b",
      "tree": "07937d57e660c54d0ccf2dd2960d418f8d6f6c5e",
      "parents": [
        "9180f87bfaac7d0f063d1f59fa572e4751899af6"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Feb 29 02:23:50 2024 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 05 04:23:01 2024 +0000"
      },
      "message": "Move MotionEvent#split implementation to native\n\nThere is already a native implementation of split in InputDispatcher.\nPrevent code duplication by moving the Java impl to native. The Java\nimpl is not correct, because it cannot access all values like the\ntransforms to initialize the split event with.\n\nBug: 326171104\nTest: atest libinput_tests\nTest: atest inputflinger_tests\nChange-Id: I6230b6aa0696dcfc275a5a14ab4af3d4b7bd0b45\n"
    },
    {
      "commit": "6c18e6da2aa9758eb7c9a639f44a15a45723f65b",
      "tree": "fe12dce50bca48dd2f28bb616ffc3fad03253406",
      "parents": [
        "415c59e4430e8aa34295cf09d6c0eb7ee5658705"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Wed Feb 07 23:39:50 2024 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Mon Mar 04 22:08:15 2024 +0000"
      },
      "message": "Update PowerHAL wrapper support checking behavior\n\n- Updates support checks to check status for UNKNOWN_TRANSACTION\n- Adds PowerHintSessionWrapper class to check support on session methods\n- Ensures that wrapper methods check the HAL version number for support\n- Adds macros to cache returned wrapper call support status\n\nBug: 324255931\nTest: atest libpowermanager_test\nTest: atest libsurfaceflinger_unittest:PowerAdvisorTest\nChange-Id: I4b329e6b55c53198bb064a34e792be6336e66e27\n"
    },
    {
      "commit": "c91c644ce06e5fbff08b1bb4866ce1bd81e85b7b",
      "tree": "1252c7867c607a0e5fccf0256cf8a8298f1d5c3b",
      "parents": [
        "add5fdd1f38f7116c31ad023617a7bebce995ac1"
      ],
      "author": {
        "name": "Arpit Singh",
        "email": "arpitks@google.com",
        "time": "Fri Feb 16 11:42:38 2024 +0000"
      },
      "committer": {
        "name": "Arpit Singh",
        "email": "arpitks@google.com",
        "time": "Wed Feb 28 10:39:36 2024 +0000"
      },
      "message": "Update documentation for AInputEvent_toJava\n\nAs AInputEvent_toJava makes JNI calls, the caller must ensure there are\nno pending JNI exceptions as it may result in undefined behaviour. This\nneeds to be explicitly documented.\nRefer: https://developer.android.com/training/articles/perf-jni#exceptions\n\nBug: 324375527\nTest: atest MotionEventTest KeyEventTest\nChange-Id: If9f40ba1ee2cb091514fb3baae28f2ca7520727e\n"
    },
    {
      "commit": "3057309635f99dd7314b5c0acc2ed403c6e7c41b",
      "tree": "9c373bf3be2308fbce886a55aa240ebc20926d0f",
      "parents": [
        "c3d4d845474d7bffeff3118534f6d6e2d0d78fd0",
        "3614f1842f1f1fb165fd9239e8a62ccc90e454f0"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Fri Feb 23 11:10:46 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 11:10:46 2024 +0000"
      },
      "message": "Merge \"Allow using libandroid_headers_private on host builds\" into main"
    },
    {
      "commit": "c6278e836fd40a73254703bbe083a30ae3a7ef30",
      "tree": "d9b5e853f467fbc2bc5a109ae2e3c6bfb60f6d59",
      "parents": [
        "ddf0e82e3a98aff262deeb455bcadcbaa77073e7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Feb 23 00:03:40 2024 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Feb 23 00:07:11 2024 +0000"
      },
      "message": "Remove default argument from \"C\" API.\n\nThis is far from the only C incompatibility in this file, but it\u0027s the\none that\u0027s most likely to not break builds, so I\u0027m starting small.\n\nThis is a source compat break, but not an ABI break.\n\nBug: https://github.com/android/ndk/issues/1920\nTest: treehugger\nChange-Id: I5a32762fa61b1399fb354397479603858184ea05\n"
    },
    {
      "commit": "65a071a788a1f5e575d85460d08182d0726abc83",
      "tree": "bbaa3064da0697e93e5ae40c4ecae8ad8a860902",
      "parents": [
        "9d5f9ce1b7ca608784f1eb4e40ef12a576123456"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Jan 05 20:52:09 2024 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Feb 20 23:02:01 2024 +0000"
      },
      "message": "InputDispatcher_test: Verify all traced events match exactly\n\nBug: 210460522\nTest: atest inputflinger_tests\nChange-Id: I2ab660ed0a6888c23bc711fb8494385c22b3c404\n"
    },
    {
      "commit": "3614f1842f1f1fb165fd9239e8a62ccc90e454f0",
      "tree": "55289fa02fe165b0d5564528056e9e5f16389e6c",
      "parents": [
        "74962b789d6f89e3280d92cc0c50d90b9b3c7222"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Tue Feb 13 20:34:58 2024 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Fri Feb 16 17:01:42 2024 +0000"
      },
      "message": "Allow using libandroid_headers_private on host builds\n\nThis is needed to create a host implementation of RenderThread.\n\nBug: 322360037\nTest: build libandroid_runtime on host\nChange-Id: I23f78155e0d2c511451e3e249537b83ca06f411a\n"
    },
    {
      "commit": "1d6363aafcc8cc31bc0684b4a81fc9c0d44fe84d",
      "tree": "0e2bd5103ea6495bf7c66b90d8034ed2210b2597",
      "parents": [
        "4238fc9134fce2cb12091f3a1e2aea3d7a2a363c",
        "1b0d4e16530a4feb99eafbfdfce2aeb39c5e23e3"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 16 03:35:33 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 03:35:33 2024 +0000"
      },
      "message": "Merge \"Add support for restricting HDR headroom for video\" into main"
    },
    {
      "commit": "1b0d4e16530a4feb99eafbfdfce2aeb39c5e23e3",
      "tree": "3b8836d60ef68835b1e4a2ce20a0972003da421f",
      "parents": [
        "9892aac629682352986492133b3d2ca40b2767bf"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Feb 12 22:27:19 2024 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Feb 15 06:11:12 2024 +0000"
      },
      "message": "Add support for restricting HDR headroom for video\n\nThis is needed for allowing apps to vote for HDR headroom restrictions\nfor SurfaceView and SurfaceControl\n\nBug: 323964760\nTest: manually poking at test app\nTest: SurfaceViewTests\nTest: SurfaceControlTest\nTest: ASurfaceControlTest\nChange-Id: Ie886e67879525462d49fdedc535aea659d69321a\n"
    },
    {
      "commit": "f8680e6d01b64ea8745b8c0aa335e6a4b54d8958",
      "tree": "688c0daf075d69dede269eab59976c678b8e6505",
      "parents": [
        "859749f39320f20116fe2f42169cf55bdb5e3e91"
      ],
      "author": {
        "name": "Arpit Singh",
        "email": "arpitks@google.com",
        "time": "Wed Jan 17 15:30:16 2024 +0000"
      },
      "committer": {
        "name": "Arpit Singh",
        "email": "arpitks@google.com",
        "time": "Wed Feb 14 09:17:20 2024 +0000"
      },
      "message": "Add NDK API to obtain Java InputEvent from Native AInputEvent\n\nThis CL adds an NDK API to obtain a copy of native AInputEvent as Java\nInputEvent.\n\nTest: atest MotionEventTest KeyEventTest\nBug: 298948992\nChange-Id: If7b14867813f7b07bd628ebd6da7e3be4c3bb89e\n"
    },
    {
      "commit": "f193ec59d623d0a26f3b0603a672076bf33fda70",
      "tree": "2107c16634642d3f4949cf351af3842b875927ba",
      "parents": [
        "10aa134ba72544da4e8357722f31c23c7929b317",
        "7b9f4f531f7ef28d71268d6b9ac475717f04e895"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Feb 05 18:27:36 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 05 18:27:36 2024 +0000"
      },
      "message": "Merge \"Pass unique_ptr of InputChannel to Connection\" into main"
    },
    {
      "commit": "10aa134ba72544da4e8357722f31c23c7929b317",
      "tree": "9debb993f873b450fdad4a369ee67f3f3bc2df6b",
      "parents": [
        "32966b68450dcff461bc73d0da3cfb663b9968f4",
        "0bbd177f10a7e4b21c27cd00dd1d786be6c2b722"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Mon Feb 05 18:23:13 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 05 18:23:13 2024 +0000"
      },
      "message": "Merge \"Allow ADPF WorkDuration CPU duration to be zero\" into main"
    },
    {
      "commit": "32966b68450dcff461bc73d0da3cfb663b9968f4",
      "tree": "653e1b58f8e0420466bb80c081f887794f5c5adc",
      "parents": [
        "f03f1222678fff2dc389e78daea8ed469be1b9ef",
        "d7629e7fc637efc2b5c9ad6f61ba5d96b40f8d16"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Feb 05 18:04:22 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 05 18:04:22 2024 +0000"
      },
      "message": "Merge changes I3fc52c3d,I6bdcd983 into main\n\n* changes:\n  FTL: Silence __VA_ARGS__ warning with empty arg\n  FTL: Fix SmallMap\u003cK, V, 0\u003e::try_emplace\n"
    },
    {
      "commit": "7b9f4f531f7ef28d71268d6b9ac475717f04e895",
      "tree": "944968c154a561b0a618fa24e956340e0c79f12d",
      "parents": [
        "8dc87156b1777b06a3b33e39fb1d33f5622bdbca"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Feb 02 13:07:16 2024 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Feb 05 08:50:53 2024 -0800"
      },
      "message": "Pass unique_ptr of InputChannel to Connection\n\nThis gets us closer to the goal of storing unique_ptr of InputChannel\ninside the InputPublisher.\n\nIn this CL, we are still allowing the \"copy\" and \"dup\" functions to\nexist. Removing those requires significant refactoring on the Java side,\nincluding the jni layer and object ownership models.\n\nTest: TEST\u003dinputflinger_tests; m $TEST \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST\nBug: 161009324\nChange-Id: If6f44d78c7fc9f3e12729068de1753847abf0ebb\n"
    },
    {
      "commit": "b1b96db1eb56bd0df2bdf78d3922e10d65d08925",
      "tree": "cf926df32ac232d15580f6a576f1e229df96c7ae",
      "parents": [
        "02c971640a149401a97960019a7236e6212ccf40"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Wed Jan 24 12:47:00 2024 -0800"
      },
      "committer": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Thu Feb 01 12:36:56 2024 -0800"
      },
      "message": "Support for InputDevice ViewBehavior\n\nThis change creates a struct within InputDeviceInfo to hold View related\nbehaviors of an input device. Currently, a single behavior is supported:\ndevice.viewBehavior_smoothScroll. This can be specified in an IDC file\nto hint clients of the InputDevice that they should animate scrolls for\nmotion events generated by the InputDevice.\n\nBug: 246946631\nTest: add property in IDC, check API returns expected value\nTest: atest frameworks/native/services/inputflinger/tests/InputReader_test.cpp\nChange-Id: Ibe373cadc40d2a08116e787b744dd30812638edb\n"
    },
    {
      "commit": "18cbdb8ef360eb26c1fb855f0af0d4d0d8366996",
      "tree": "f03b7cb6f273a028d9137a5410b4f73c348413d9",
      "parents": [
        "dd8bd19fb14abff12eda822ba8269fca02aa8c3e"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jan 31 17:58:13 2024 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jan 31 23:33:06 2024 -0800"
      },
      "message": "Store Connection in InputTarget and Monitor\n\nThis will replace the InputChannel. They don\u0027t both need to be shared\npointers. A lot of times, we are using InputChannel to look up the\nconnection. In this CL, this is simplified by using the connection\ndirectly.\n\nBug: 161009324\nTest: atest inputflinger_tests\nChange-Id: I3fc2bbdd8c5076b5dbff5067e4fec6e45f5c3da6\n"
    },
    {
      "commit": "0bbd177f10a7e4b21c27cd00dd1d786be6c2b722",
      "tree": "4403ae104579c294e4f14907de2d0e81be9a4d12",
      "parents": [
        "b2e2eefaf247c683c985ef70d99a519d137243da"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Wed Jan 31 22:10:42 2024 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Feb 01 00:37:17 2024 +0000"
      },
      "message": "Allow ADPF WorkDuration CPU duration to be zero\n\nThis patch updates the checks, tests, and documentation to ensure ADPF\nCPU \u003d\u003d 0 is allowed, and instead checks to make sure that both CPU\nand GPU cannot be 0 at the same time.\n\nBug: 323226967\nTest: atest PerformanceHintManagerTest\nChange-Id: I6927899793c7d9801541465280af32627e200dc9\n"
    },
    {
      "commit": "20736f94ba15165a1db89983613c198949fce9d9",
      "tree": "03f3003349d42168c6eef939ccd048306c4ea87c",
      "parents": [
        "6db9591465490047bcabba353668107b457a218c",
        "a109bb2ecea2c31f6d413f7c82805526f1d99d77"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Jan 31 13:46:27 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 31 13:46:27 2024 +0000"
      },
      "message": "Merge changes I0fcfa426,I2f1510ec,I07d70dc8 into main\n\n* changes:\n  SF: Fix error handling for getDisplayVsyncPeriod\n  SF: Handle BAD_CONFIG for getActiveConfig\n  FTL: Add Expected\u003cT, E\u003e\n"
    },
    {
      "commit": "f822c202d6d730679fb0cbc4a6ce3ed4526bbb6d",
      "tree": "d7e5a24b1ffd7e931e054a1c29ce5f8f15ed7b26",
      "parents": [
        "169d22e5543cad1aace22ee5b2016a44667444b2",
        "8d66013c673bb8e3e8876907f0ad80c91580a443"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jan 30 22:57:12 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 22:57:12 2024 +0000"
      },
      "message": "Merge \"Use aidl-defined InputChannel for parceling\" into main"
    },
    {
      "commit": "169d22e5543cad1aace22ee5b2016a44667444b2",
      "tree": "34b97bb04cdece04ddf9042fd06b761a032e650f",
      "parents": [
        "b4856166706f259a11badd7cd75c058015d7f4be",
        "f14b37a878bdefe924db5e99dd124f0ea8e5ffa2"
      ],
      "author": {
        "name": "Vaibhav Devmurari",
        "email": "vdevmurari@google.com",
        "time": "Tue Jan 30 20:09:10 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 20:09:10 2024 +0000"
      },
      "message": "Merge \"Add native side keycodes for emoji and screenshot\" into main"
    },
    {
      "commit": "8d66013c673bb8e3e8876907f0ad80c91580a443",
      "tree": "f304e90cbd51f00645dfd8c96bb513d9bb937a28",
      "parents": [
        "ca103c0ad43e964d46be8de5fb1313292655c98c"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Jan 11 16:48:44 2024 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jan 30 11:13:42 2024 -0800"
      },
      "message": "Use aidl-defined InputChannel for parceling\n\nCurrently, InputChannel is a manually-written parcelable. In this CL, we\nintroduce an aidl-defined InputChannel, which eventually could also be\nused in Java as well.\n\nNow, whenever an InputChannel needs to be written to parcel, we first\ncreate the new android.os.InputChannel and then write that object to\nparcel.\n\nEventually, we can convert the Java side of InputChannel to use this\nmechanism, as well.\n\nBug: 161009324\nTest: adb shell monkey 1000\nTest: atest libgui_test\nChange-Id: Ib44c5ff02b3c77e0425b59a76195ed100e187317\n"
    }
  ],
  "next": "9bb429aa5629a9b55943c950c7b95bffdc339b96"
}
