)]}'
{
  "log": [
    {
      "commit": "c6980309378f2bfdcbb84d4792e20bd0a7f8ac22",
      "tree": "323da70b40c292dc4e6f07ba22a35961814bbbde",
      "parents": [
        "bdaf6fe2116447c7ed4b3cf0a4c7b3e282274e5f",
        "7a09ee1ab48971fd9f3e3ec55493a814877fc612"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 23 07:11:07 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 23 07:11:07 2021 +0000"
      },
      "message": "Merge \"Add NDK API for getprocnetwork\" into sc-dev"
    },
    {
      "commit": "7a09ee1ab48971fd9f3e3ec55493a814877fc612",
      "tree": "3a02b2c403d26d0c694f192c1ce07f0df55b35c0",
      "parents": [
        "8756d24cddbcd88c56580b063d1b6aab832d8926"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Sun Mar 21 15:00:46 2021 +0000"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 23 00:31:42 2021 +0000"
      },
      "message": "Add NDK API for getprocnetwork\n\nThe API is the getter couterpart for setprocnetwork.\nUse it in NetworkUtils so that the NDK API can be the source of truth\nfor the process network.\n\nBug: 171540887\nTest: atest CtsNetTestCases\nChange-Id: I4c7a302df580cec6315e10d0d49a89cf93597ef0\n"
    },
    {
      "commit": "0a99dbe344bb473d08f5bf88392b1b74a102a0f0",
      "tree": "c694191d1fcd3b090f830dce279b704269492a7b",
      "parents": [
        "8756d24cddbcd88c56580b063d1b6aab832d8926",
        "574c58d9922a99a0ab78efefabfad1977ef793c4"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Mar 18 17:47:30 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 17:47:30 2021 +0000"
      },
      "message": "Merge \"Fix \"end of file while inside a group\" error in NDK\" into sc-dev"
    },
    {
      "commit": "574c58d9922a99a0ab78efefabfad1977ef793c4",
      "tree": "f5d7e2fda521e7b17ba113e50e9344c573bf70bb",
      "parents": [
        "2cdc76b85c680226245aef589865637f49da02a1"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Mar 18 15:10:02 2021 +0100"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Mar 18 15:11:57 2021 +0100"
      },
      "message": "Fix \"end of file while inside a group\" error in NDK\n\nAdd the missing end of group markers to the files\nwhich generate the \"end of file while inside a group\"\nwarning.\n\nBug: 183024041\nTest: development/tools/ndk/build_ndk_docs.py 2\u003e\u00261 \\\n         | grep \"end of file while inside a group\"\nChange-Id: Ib41840bbc72651ad90aaac878d36c233b5284cf3\n"
    },
    {
      "commit": "2745c956d03aa5bba0fe8b0efb58a7c2756f611b",
      "tree": "9a7e27ba87bce22765fd4804cb1fac763b8d7ddf",
      "parents": [
        "f0ca8651c21abc18f3fba893e78afab93f61a58c"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 17 20:27:41 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 17 21:39:44 2021 +0000"
      },
      "message": "Update android/input.h docs\n\nFix doc generation error\n\nBug: 183013620\nTest: ./_scripts/update_api_doc.py ~/android/master/ 2\u003e\u00261 \u003e/dev/null | grep -i input\n\nBefore:\nandroid/input.h:680: warning: unable to resolve link to `RELATIVE_X\u0027 for \\link command\nAfter:\nthe line above is not present\n\nChange-Id: I995ac91d8bfd53309607e3cdac305adb68d40d78\n"
    },
    {
      "commit": "e02c066af62d8f1b86b1bf528b0d5269350b1f35",
      "tree": "1e82af3c5bb8fb77a53228bdf785121b9c4450ec",
      "parents": [
        "2bbc3a88bd653c050ea270b6456747b40a44c5b3"
      ],
      "author": {
        "name": "Brian Duddie",
        "email": "bduddie@google.com",
        "time": "Tue Mar 16 09:53:20 2021 -0700"
      },
      "committer": {
        "name": "Brian Duddie",
        "email": "bduddie@google.com",
        "time": "Tue Mar 16 17:40:29 2021 +0000"
      },
      "message": "Add missing union members to ASensorEvent\n\nNamed fields for accessing data from the gyroscope and uncalibrated\naccelerometer sensor types were mistakenly left out of the union.\nAlthough this data was accessible directly before, these fields make\ndevelopers\u0027 lives easier.\n\nFixes: 182903112\nTest: compile only\nChange-Id: If8189658030fab96b54b79dd318935b9116b5e58\n"
    },
    {
      "commit": "eedd0fc7b1a1269fc4891ddb110c5197739cc3d0",
      "tree": "b2da1bb55347b43cb87cacc52ca69e7515ecc8dd",
      "parents": [
        "cc81b2f4c32846ecfacb9c56a61eb9af694f345f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 09:50:36 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 20:25:07 2021 +0000"
      },
      "message": "Use Result\u003cInputPublisher::Finished\u003e instead of callback -- try 2\n\nWhen the \u0027Finished\u0027 message is received inside InputDispatcher, we are\ncurrently providing a callback function that gets executed with the\nparameters that are matching the InputMessage fields.\n\nThis does not scale well for the case where there is more than 1 type of\nInputMessage received from the InputConsumer. We would have to provide 2\ncallbacks, which is not user-friendly.\n\nThe calling code inside InputDispatcher is already aware of the\nInputMessage struct, but InputMessage is intended to be a protocol of\ncommunication between input channels, and is not meant to be used\nelsewhere. To provide the output of \u0027finished\u0027 signal, we introduce a\nnew \u0027Finished\u0027 struct into InputPublisher. InputPublisher will now try\nto read a message, and will provide a response in that struct.\n\nThis approach will also now force the caller to check ok(), which will\nincrease correctness.\n\nBug: 167947340\nTest: atest inputflinger_tests\nTest: TBD\n\nRevert submission 13838212-revert-13780058-receiveFinishedSignal-UGCLLLUBPW\n\nReason for revert: Relanding with fix\nReverted Changes:\nIdb3a44b4a:Revert \"Update the usage of receiveFinishedSignal\"...\nI1e71010f5:Revert \"Use Result\u003cInputPublisher::Finished\u003e inste...\n\nChange-Id: I9c425bb7249d43648e558214e40fa35aeaa0bb11\n"
    },
    {
      "commit": "7cce0ad081d8997b97cf94ca99df8f06f330e906",
      "tree": "326c333299927d17ddd6086031429959f036be6c",
      "parents": [
        "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Fri Mar 12 04:18:38 2021 +0000"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Fri Mar 12 04:18:38 2021 +0000"
      },
      "message": "Revert \"Use Result\u003cInputPublisher::Finished\u003e instead of callback\"\n\nRevert submission 13780058-receiveFinishedSignal\n\nReason for revert:\nCaused severe delay in back navigation on IME-focusable window.\n\nReverted Changes:\nI301c6e9c3:Use Result\u003cInputPublisher::Finished\u003e instead of ca...\nI43a0f2d31:Update the usage of receiveFinishedSignal\n\nBug: 167947340\nFix: 182514338\nTest: Manually verified as follows:\n 1. Set up the device as \"Set up offline\" mode.\n 2. adb shell am start -n com.google.android.dialer/.extensions.GoogleDialtactsActivity\n 3. On one terminal, run adb logcat -s InputMethodManager:*\n 4. On another terminal, run adb shell input keyevent 4\n 5. Make sure that the following message is not shown.\n  \"Timeout waiting for IME to handle input event after 2500 ms\"\n\nChange-Id: I1e71010f5f4ae268dfcbc3bde50881c2fa3d51d5\n"
    },
    {
      "commit": "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8",
      "tree": "23b26bb9228eca41fdcc4dca4191141271bd0311",
      "parents": [
        "5c2a67856070668b9f886a5e1fef7694444b8a1f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 05 02:32:57 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 11 03:38:48 2021 +0000"
      },
      "message": "Use Result\u003cInputPublisher::Finished\u003e instead of callback\n\nWhen the \u0027Finished\u0027 message is received inside InputDispatcher, we are\ncurrently providing a callback function that gets executed with the\nparameters that are matching the InputMessage fields.\n\nThis does not scale well for the case where there is more than 1 type of\nInputMessage received from the InputConsumer. We would have to provide 2\ncallbacks, which is not user-friendly.\n\nThe calling code inside InputDispatcher is already aware of the\nInputMessage struct, but InputMessage is intended to be a protocol of\ncommunication between input channels, and is not meant to be used\nelsewhere. To provide the output of \u0027finished\u0027 signal, we introduce a\nnew \u0027Finished\u0027 struct into InputPublisher. InputPublisher will now try\nto read a message, and will provide a response in that struct.\n\nThis approach will also now force the caller to check ok(), which will\nincrease correctness.\n\nBug: 167947340\nTest: atest inputflinger_tests\nChange-Id: I301c6e9c39c02692f5565aa8affdcfd0e17bcefc\n"
    },
    {
      "commit": "7632c3391394a47cface411997ce03d126d1e4da",
      "tree": "f4c4ab55383c089cb766c95442dfd958a5c78fb3",
      "parents": [
        "335c73a433ab3e7e158204d09a6f1f5f6a2ff1dc"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Dec 30 16:58:01 2020 +0800"
      },
      "committer": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Mon Mar 08 21:40:13 2021 +0800"
      },
      "message": "Move drag event to InputDispatcher (1/n)\n\nThis CL adds the ability to send a DRAG event through the\nInputChannel, and adds the appropriate processing logic to\nInputPublisher and InputConsumer.\n\nBug: 158242495\nTest: atest libinput_tests InputPublisherAndConsumerTest\nChange-Id: I7aead341a9851facf654024c476bd6d7eaae4590\n"
    },
    {
      "commit": "38b7f7faaede3ad09c55d933e94d28366e2a1cdd",
      "tree": "d637bd5c5ed1d8f6e664de08863e23e14f1739bc",
      "parents": [
        "a170ec6a87f2720eb9846ea75cd9807db54b12ad"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 05 01:57:08 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 05 02:29:16 2021 +0000"
      },
      "message": "Use bool directly in InputMessage\n\nIn order to send the data via socket, we use the InputMessage struct. In\nthis struct, various fields are stored. This struct\u0027s purpose is to\nserialize the input event information.\n\nWe are storing bools in InputMessage as various integer types. To read\nthese bools, we compare the integers to 1. It\u0027s not very convenient.\n\nTo simplify this, let\u0027s store bools directly in InputMessage. Bool size\nis implementation-dependent, but it\u0027s typically 1, so we can just guard\nagainst that with a static_assert.\n\nBug: 169866723\nTest: presubmit\nChange-Id: Iae4870fac95e884cc328791c0035df6e31e34a7b\n"
    },
    {
      "commit": "7766c03ec5f76ea0ad6e37b214c425653b8416a6",
      "tree": "b719f3e36c34185733791d9d678bc544ae93b4d5",
      "parents": [
        "86d048d6f0d02e568fd1f1360d13db2b3fc9d049"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 02 20:32:20 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 02 20:46:34 2021 +0000"
      },
      "message": "Use NamedEnum for printing Entry type\n\nCurrently, we are using InputMessage::typeToString, a manually written\nfunction, to print the entry type.\n\nLet\u0027s use \"NamedEnum\" instead to simplify the process of adding new\ntypes.\n\nBug: 167947340\nTest: compile only\nChange-Id: I26d0a469bf93adbe2795d8a378c25e6ded891274\n"
    },
    {
      "commit": "9dce082f0b490876293c3924a3c18405b17e7d01",
      "tree": "6b194821c0b272ebfe89f054eed4d81d3e837e88",
      "parents": [
        "79e26e175fe62e1dc31a6f587a3a9f999db59db2",
        "269dc4d22ad689f96864039d009e336dab2842e6"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Feb 25 19:48:19 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 19:48:19 2021 +0000"
      },
      "message": "Merge changes from topic \"sf_planner\" into sc-dev\n\n* changes:\n  SF: Add initial Planner infrastructure\n  SF: add a sysprop to control layer caching\n"
    },
    {
      "commit": "96a824cecf22fdc1e961e6b48c8549aba4b87292",
      "tree": "b8bdf6271661d564da17bf267ed1a7a8b8808fb1",
      "parents": [
        "01803f65fb75a3fe4012f45a0f3aedc0d51c36c7",
        "159ab12de6e6b01ccbc4bb24dee0f37ade9ff22f"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Feb 25 16:57:26 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 16:57:26 2021 +0000"
      },
      "message": "Merge \"AImageDecoder: Recommend only downscaling with setTargetSize\" into sc-dev"
    },
    {
      "commit": "159ab12de6e6b01ccbc4bb24dee0f37ade9ff22f",
      "tree": "0b5ebca9f221c9d04387b79d6406b351edc997d1",
      "parents": [
        "97792f96d7760311383ca9c94590d5039a025583"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Feb 24 15:32:42 2021 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Feb 24 15:32:42 2021 -0500"
      },
      "message": "AImageDecoder: Recommend only downscaling with setTargetSize\n\nFixes: 180037959\nTest: NA\nChange-Id: I19076b4368623806f7a9f6312a780a6d5886e49e\n"
    },
    {
      "commit": "269dc4d22ad689f96864039d009e336dab2842e6",
      "tree": "87b46fefa6181d6f577a500c2c00ad8d21d2d6b7",
      "parents": [
        "9c87defdde0d2016f8a8daebccfa31879e872306"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Fri Jan 15 15:07:43 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Feb 24 11:32:41 2021 -0800"
      },
      "message": "SF: Add initial Planner infrastructure\n\nAdds infrastructure for the SF Planner, which will support layer\ncaching/flattening and composition strategy prediction.\n\nBug: 158790260\nTest: atest libcompositionengine_test libsurfaceflinger_unittest\nChange-Id: I0d3027cea073fe25f269f3d5e83fe621dfbe7b2b\n"
    },
    {
      "commit": "87645ab5f53a143a12e9bf67bc5f5e6dcbdcf90d",
      "tree": "f6af2ed52cd26b3b88361cadf134be203da8607f",
      "parents": [
        "44e9f3b54d71a0b71d10918047163fd11bebfdf8",
        "3fdbfef367514df07b0cf158fc24fe72aca0541f"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Feb 23 08:19:10 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 08:19:10 2021 +0000"
      },
      "message": "Merge \"Support Inputdevice LightsManager feature in frameworks.\" into sc-dev"
    },
    {
      "commit": "76a16cf5d35db347778d6ee45465ec636c8330e0",
      "tree": "80014b526f0cb891acd0bcd30fb319f3f4c6139d",
      "parents": [
        "4ab66f469c72a352fe78656cf8faa7c2a118a7ce",
        "7015fa97eea0e30a17ca8986a33dccf3c826b406"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Feb 23 01:35:24 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 01:35:24 2021 +0000"
      },
      "message": "Merge \"Document DisplayManager atomicity with AChoreographer\" into sc-dev"
    },
    {
      "commit": "3fdbfef367514df07b0cf158fc24fe72aca0541f",
      "tree": "ef7afcbe6f8f35ccd83c55a1511019c3240b072e",
      "parents": [
        "97792f96d7760311383ca9c94590d5039a025583"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Jan 06 18:45:18 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon Feb 22 16:19:29 2021 -0800"
      },
      "message": "Support Inputdevice LightsManager feature in frameworks.\n\nAdd lights manager support to input frameworks.\n\nBug: 161633625\nTest: atest LightsManagerTest, atest InputDeviceLightsManagerTest\nChange-Id: Ie00357bce0f6c98e9eada5e0a79f93f48e7a4d1b\n"
    },
    {
      "commit": "af9b2ae5602aafa7e7db9bb50f770c5bf5af580e",
      "tree": "621c6f877deba567dce061a0d04dc9165691ef99",
      "parents": [
        "8a6910f1b7b3cd7ae3cf0dc79d45484911c25b70",
        "228f46b5b9c3eac674aceb579a718cd459165f2e"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Feb 22 18:28:27 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 18:28:27 2021 +0000"
      },
      "message": "Merge \"Introduce DynamicDisplayInfo\" into sc-dev"
    },
    {
      "commit": "228f46b5b9c3eac674aceb579a718cd459165f2e",
      "tree": "593f9b053f2e8371e8b1bfd4eaad11894b70e3c4",
      "parents": [
        "8c9d2483cad988a5e84ad8c3108f8143cd9cbf3a"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Jan 28 21:11:45 2021 +0100"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Feb 22 16:44:08 2021 +0100"
      },
      "message": "Introduce DynamicDisplayInfo\n\nIn this CL we introduce the getDynamicDisplayInfo call\non ISurfaceComposer which replaces the existing\n - getDisplayModes\n - getActiveDisplayMode\n - getColorModes\n - getActiveColorMode\n - getHdrCapabilities\n\nThis way all display properties can be queried atomically.\n\nThe current DisplayInfo class is moved to the androd::ui\nnamespace and it\u0027s renamed to StaticDisplayInfo.\n\nui::DisplayMode is now LightFlattenable and the mode ID is\nint32_t instead of size_t in order to prevent serialization\nproblems.\n\nAdditionally we add the ID field to ui::DisplayMode. This\nway we no longer need the supported display IDs to be\nfrom 0 to N-1.\n\nBug: 159590486\nBug: 180539476\nTest: presubmit, manually test that device boots\nChange-Id: I52b170913ce47cb5df2e8417e6cc95d395df1fda\n"
    },
    {
      "commit": "e2edd2237bcb681222f2af201afd9016dc95827d",
      "tree": "996f99eb77448d83f885d13ec66dd8119dd6aef5",
      "parents": [
        "72407f9d585eda16498680bfccf89667d7ca4f92",
        "7f7db5a8f9ce3e7526a13382d592f4ccc0e4e560"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 17 19:36:48 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 19:36:48 2021 +0000"
      },
      "message": "Merge \"Add @addtogroup to permission_manager.h for doc to appear in DAC\" into sc-dev"
    },
    {
      "commit": "efc92f464e183c08f80267db94ac0dddcd6e2a48",
      "tree": "c8f1b2854b8267db9e7db3c1de957dc84fef4068",
      "parents": [
        "93be444a3d8e6e2d0ef73f82b0e42104ad4462bc",
        "f51775dbb66ff8ee2254ec06d5d5668d8791d8dc"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Feb 17 17:38:20 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 17:38:20 2021 +0000"
      },
      "message": "Merge \"Add GPU completion to FrameMetrics (2/3)\" into sc-dev"
    },
    {
      "commit": "7015fa97eea0e30a17ca8986a33dccf3c826b406",
      "tree": "8cc972129f0c10e6f4341d65346a65b4f106fc5a",
      "parents": [
        "e06403fa179494d6c5cafd0b4ffce767413eb14c"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Feb 11 19:31:44 2021 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Feb 16 17:43:27 2021 -0800"
      },
      "message": "Document DisplayManager atomicity with AChoreographer\n\nVery early in Android 12\u0027s development, AChoreographer\u0027s refresh rate\ncallbacks were updated to dispatch from DisplayManager rather than from\nSurfaceFlinger. Now that we\u0027ve written a test enforcing this behavior,\nupdate the documentation so that API users can depend on more reliable\nbehavior.\n\nBug: 168708518\nTest: builds\nChange-Id: I4f28c7a8d7b92b45dc2b89ba43595a6f0434d09d\n"
    },
    {
      "commit": "7f7db5a8f9ce3e7526a13382d592f4ccc0e4e560",
      "tree": "27ce32de13f5aad1dc789475a8bcbe90127cd885",
      "parents": [
        "b89b51a0a1926ea7e33e6f0b89bea42609a7b617"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Feb 16 14:08:09 2021 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Feb 16 15:01:53 2021 -0800"
      },
      "message": "Add @addtogroup to permission_manager.h for doc to appear in DAC\n\nbug: 180406708\ntest: build and treehugger\nChange-Id: Iaf8d2824c99762051553de39a0926a1fea9363fa\n"
    },
    {
      "commit": "f51775dbb66ff8ee2254ec06d5d5668d8791d8dc",
      "tree": "1708ccd8ef13f85ed863c5c0e4d7a1119af9a971",
      "parents": [
        "e06403fa179494d6c5cafd0b4ffce767413eb14c"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Jan 14 23:44:15 2021 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Feb 12 12:41:01 2021 +0000"
      },
      "message": "Add GPU completion to FrameMetrics (2/3)\n\n- Add SurfaceStatsCallback to TransactionCompletedListener\n- Register a callback in RenderProxy to be called when we have\nsurface stats from SF via the BLAST callback.\n- Instead of finishing a frame for frame metrics reporting\nimmediately, wait until BLAST callback fires, note GPU completion\ntime and finish frame.\n- Expose GPU_COMPLETION in FrameMetrics\n- Modify TOTAL_DURATION to also include GPU_COMPLETION\n\nTest: FrameMetricsListenerTest\nFixes: 171046219\nChange-Id: If4b63c6a4c49c9ce2f31410d7f33541b0e6bf594\n"
    },
    {
      "commit": "db5778ee162ab5bb8ed94233835ee933dc40b38a",
      "tree": "76f44c8b6e42bef32ee367b650883ebff7c58b05",
      "parents": [
        "f07a9853fee568112c54cc024d32533e183d8fc8"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Thu Jan 28 14:48:59 2021 -0800"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Thu Feb 11 17:59:24 2021 +0000"
      },
      "message": "Add ASurfaceControl_acquire api\n\nhwui needs this api to hold a reference to a surface control object passed from java layer.\n\nBug: 173671170\nTest: manual\nChange-Id: I1ca9cbe5caad4bdb8594b421e5444d7bdb7b71a8\n"
    },
    {
      "commit": "618dcfef3f35a3a93bc018a30fbc6a012f8c2264",
      "tree": "2038a67fba3fbaf78389099923ded834170e3445",
      "parents": [
        "55e57de6ca9420b3f101701e8e89ffe3b631050f",
        "3531ae7db42af4c982f5c60f7bd532f90de34c88"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 10 19:16:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 10 19:16:36 2021 +0000"
      },
      "message": "Merge \"Send consumeTime from the app to InputDispatcher\" into sc-dev"
    },
    {
      "commit": "3531ae7db42af4c982f5c60f7bd532f90de34c88",
      "tree": "be5eddd80b99d6c2f7343191eee98ad5df9beb17",
      "parents": [
        "a9b9fe40c28882f3db0b13dc9ac9b00b0fd2eab1"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Feb 02 12:12:27 2021 -1000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Feb 09 18:14:04 2021 +0000"
      },
      "message": "Send consumeTime from the app to InputDispatcher\n\nWhen the app completes an input event by calling \u0027finishInputEvent\u0027, it\nwill now notify InputDispatcher about the time when the event was first\nread by the app.\n\nThis will help InputManager collect dispatching latency statistics.\n\nSample dumpsys output for validation:\n    android.view.ViewRootImpl$WindowInputEventReceiver\n       mInputChannel: da2dbc7 com.google.latencyTester/com.google.latencyTester.activities.MainActivity (client)\n       mSeqMap: {}\n       mReceiverPtr:\n        mInputConsumer:\n          mResampleTouch \u003d true\n          mChannel \u003d da2dbc7 com.google.latencyTester/com.google.latencyTester.activities.MainActivity (client)\n          mMsgDeferred: false\n          Batches:\n              Batch:\n                  Message 2277: MOTION action\u003dMOVE\n                      Pointer 0 : x\u003d643.0 y\u003d961.0\n          mSeqChains:\n              \u003cempty\u003e\n          mConsumeTimes:\n              seq \u003d 2277 consumeTime \u003d 74385633441431\nThe above dump was acquired during touch of the latencyTester app.\nAlso verified that normally, mConsumeTimes is empty.\n\nBug: 169866723\nTest: atest inputflinger_tests\nTest: adb shell dumpsys activity all | grep -i consume -C 20\nChange-Id: Ib173bb38e5decc2e4a6b0cf9bca9aceb32352ec0\n"
    },
    {
      "commit": "627873f3a6fd586c6e8e21fc995d590450c13615",
      "tree": "905b286826dd7888713a804ea5d5cc3b3d67dbc5",
      "parents": [
        "a9b9fe40c28882f3db0b13dc9ac9b00b0fd2eab1",
        "677f8c48f4d4376ae2853b5446c1fd639a8e00c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 09 03:19:10 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 09 03:19:10 2021 +0000"
      },
      "message": "Merge \"Stop #define\u0027ing __ANDROID_API__.\" am: 94be650e36 am: 73a4ac7daf am: 677f8c48f4\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1580211\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I66d850d16d5ff7c480cb5f8506801660dbb84b3f\n"
    },
    {
      "commit": "08e6cf5d7aa77c529bd8548eb86a66c1fdf029b9",
      "tree": "622d75dba9ff8ffaaf9659afd9fa772e9f938d19",
      "parents": [
        "db3bb21b2d1a32530e6138797ba3bd6ad780e673"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 08 12:37:53 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 08 12:37:53 2021 -0800"
      },
      "message": "Stop #define\u0027ing __ANDROID_API__.\n\nAlso normalize the non-bionic definitions of __INTRODUCED_IN() to match\nthe majority.\n\nBug: http://b/178449269\nTest: treehugger\nChange-Id: I378a6d8a01999958f397c896a375d38a9de43f8f\n"
    },
    {
      "commit": "e5d7b701a35e9b94383d9924ce1b1ee15de1c43f",
      "tree": "4b01c30919e1a05f199d9d7a0d824e524ab9f2b5",
      "parents": [
        "ca344844d5cde52289b3b60563f69f906052b224",
        "bf28ea6181c2f2e008a7322d570056167fa812aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 08 15:47:19 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 08 15:47:19 2021 +0000"
      },
      "message": "Merge \"IAudioManager: add audio session ID to trackPlayer()\" into sc-dev"
    },
    {
      "commit": "767dc08c381c0a3253f7d23dc92831876a1a4e5e",
      "tree": "2e95424bc5d22f61843f2c7eca999bfc24780fe1",
      "parents": [
        "d4c5bd00c95bae98391be96c49e614629f42a603",
        "101035169c4f51bb6b6432f73ae4be9c06f89d7c"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Sat Feb 06 02:31:36 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Feb 06 02:31:36 2021 +0000"
      },
      "message": "Merge \"Remove stoza@ from OWNERS\" am: 6b9a50419a am: 38f77ce227 am: 101035169c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1575981\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If5d5f36f1e25996bd46a9649089df96546faf4aa\n"
    },
    {
      "commit": "6b9a50419a474d062630a0d1175a50cd35306ce4",
      "tree": "8bcbebdc70f7e0a26eeb40afab8e618b8b6e2396",
      "parents": [
        "85906d7cc766a4380091a5def7f3ea3b44790a53",
        "5dd2e398b7f055b984071415e5881581d47c09ae"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Sat Feb 06 00:49:16 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 06 00:49:16 2021 +0000"
      },
      "message": "Merge \"Remove stoza@ from OWNERS\""
    },
    {
      "commit": "bf28ea6181c2f2e008a7322d570056167fa812aa",
      "tree": "1d20adb8c12c8289a73f3c8b99092f75d1343df1",
      "parents": [
        "93d860a9a7b11109456c3fe5cb0d574b56f7f76d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 29 20:45:03 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 05 14:55:44 2021 +0100"
      },
      "message": "IAudioManager: add audio session ID to trackPlayer()\n\nAdd the audio session ID to the information returned by the PlayerBase\nclass to AudioPlaybackMonitor via trackPlayer().\n\nBug: 178909700\nTest: atest AudioPlaybackConfigurationTest\nChange-Id: Ieb3e075d8edbef846ee5864e68ac5b774ac7cfc1\n"
    },
    {
      "commit": "5dd2e398b7f055b984071415e5881581d47c09ae",
      "tree": "e6cee57c2478c36d19a0105505969b8e2f792382",
      "parents": [
        "7af525ef9537b6870dd2717ddf59533c06ba17fe"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Thu Feb 04 12:06:37 2021 -0800"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Thu Feb 04 20:51:39 2021 +0000"
      },
      "message": "Remove stoza@ from OWNERS\n\nRemoving stoza@ from OWNERS since he\u0027s leaving\n\nBug: N/A\nTest: N/A\nBYPASS_INCLUSIVE_LANGUAGE_REASON\u003dCorrect pronouns for stoza@\nChange-Id: I800d39d2e1d8bde690cae696df38c7e6c6e459a5\n"
    },
    {
      "commit": "c1f093f6bd6f611c8a22ac786090f132b1325aa7",
      "tree": "71dfcfe7dccae5c0e15544c5b1c692d635b92701",
      "parents": [
        "7af525ef9537b6870dd2717ddf59533c06ba17fe"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 08 14:25:31 2021 -0500"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 00:35:30 2021 +0000"
      },
      "message": "Support building libjnigraphics on the host\n\nBug: 169137236\nTest: SANITIZE_HOST\u003daddress make imagedecoder_fuzzer\n\nAlong with a change in frameworks/base\n(I0ffc4e90b4083db79fbb12012e2e1284206b43e3), this will make it possible\nto run imagedecoder_fuzzer on the host, for faster fuzzing.\n\nimagedecoder.h:\n- define __ANDROID_API__ and __INTRODUCED_IN on non-Android systems, so\n  methods can be called on those systems.\n\nbitmap.h:\n- define __ANDROID_API__ and __INTRODUCED_IN on non-Android systems, so\n  methods can be called on those systems.\n- include \u003cstddef.h\u003e, which is needed on non-Android systems for size_t.\n- on Android, unguard types and enums for easier opportunistic usage via\n  dlsym.\n\nnativewindow/Android.bp\n- make libnativewindow_headers host_supported, so that libjnigraphics\n  can access android/data_space.h\n\nBug: http://b/179303032\nChange-Id: Iefdb4132d6f10f9164be85f4dc6e11883f6fd37e\nMerged-In: Iefdb4132d6f10f9164be85f4dc6e11883f6fd37e\n"
    },
    {
      "commit": "66f7bc4e825b25d4ebde9de97c6ae57305f5da13",
      "tree": "121459e2daaeb05eeba2bd660747d479cb15bc7f",
      "parents": [
        "b2ce9986fce6b4ef09eee167dcb71427e75ba5b2",
        "23e82b4798681581e3412b2b454ff86a76d078f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 17:33:53 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 17:33:53 2021 +0000"
      },
      "message": "Merge \"Remove __ANDROID_API__ #if checks.\" into sc-dev"
    },
    {
      "commit": "03ea035572c55fb3ab460acfebc703ca4ad6aa34",
      "tree": "22e12f9082547cdb90312b9140f8eb2f1a25c2de",
      "parents": [
        "917c81d6fcb903078194be115451e3acb6f4ac22"
      ],
      "author": {
        "name": "Kim Low",
        "email": "kim-huei.low@sony.com",
        "time": "Fri Nov 06 12:45:07 2020 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Feb 02 01:17:14 2021 +0000"
      },
      "message": "Added the ability to read external batteries\n\nExtended InputDevice and EventHub with capabilites to detect and read\nexternal battery status and capacity. This allows devices such as\nwireless gamepads to provide battery information to applications.\n\nBug: 161633432\nTest: atest InputDeviceBatteryTest\n\nChange-Id: I3c65166a1f0b055c5b85bad286afd5beb60bb303\nMerged-In: I3c65166a1f0b055c5b85bad286afd5beb60bb303\n"
    },
    {
      "commit": "0230344dcd32e367dd8ac232155972765343bbac",
      "tree": "186df9767f2cadc52ab9e13ceafb60b114e5abd2",
      "parents": [
        "87eb2c419ef230366ccbdbe980c4f49b7a70f372"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Jan 26 13:21:01 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon Feb 01 22:14:01 2021 +0000"
      },
      "message": "Update SOURCE_SENSOR source for input device.\n\nUpdate the SOURCE_SENSOR input source to not limited to Joystick deivce\nclass.\n\nBug: 170131554\nTest: atest InputDeviceSensorManagerTest\nChange-Id: I08cb72f22d9a06f63139317551c821fd5eaa3e46\nMerged-In: I08cb72f22d9a06f63139317551c821fd5eaa3e46\n"
    },
    {
      "commit": "23e82b4798681581e3412b2b454ff86a76d078f8",
      "tree": "057f613c77333368db867e8e4ad5b5e051387ed4",
      "parents": [
        "87eb2c419ef230366ccbdbe980c4f49b7a70f372"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 14:55:48 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 01 13:34:00 2021 -0800"
      },
      "message": "Remove __ANDROID_API__ #if checks.\n\n__INTRODUCED_IN() does the right thing automatically now.\n\nBug: http://b/178449269\nTest: treehugger\nChange-Id: I94d2ad6fafb6d907793a416db82a9e56f4f61d1c\nMerged-In: I94d2ad6fafb6d907793a416db82a9e56f4f61d1c\n"
    },
    {
      "commit": "b7425079bf06c494a4b5e190598c51148361dc64",
      "tree": "f97c8504c87feff37c1910a0d8997e5e1f4e15fb",
      "parents": [
        "7dfe58cc10486fb3a06309aaf5abfc4290c6931c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 14:55:48 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 01 11:42:45 2021 -0800"
      },
      "message": "Remove __ANDROID_API__ #if checks.\n\n__INTRODUCED_IN() does the right thing automatically now.\n\nBug: http://b/178449269\nTest: treehugger\nChange-Id: I94d2ad6fafb6d907793a416db82a9e56f4f61d1c\nMerged-In: I94d2ad6fafb6d907793a416db82a9e56f4f61d1c\n"
    },
    {
      "commit": "2887ed93c5b36bf4c150f3fe17dec770467a4612",
      "tree": "b21543370ab86b89dae200f4289c229277ced799",
      "parents": [
        "7d321f585b6640a3f605c54370c895e3ea0f0808"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 22 09:44:27 2021 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 22 10:37:28 2021 -0800"
      },
      "message": "Remove __ANDROID_API__ guards from thermal.h\n\n__ANDROID_API__ guards are removed in favor of __INTRODUCED_IN macros.\n\nbug: 163288375\nbug: 169452730\ntest: builds\n\nChange-Id: I145a86a5f8143977c8638aa3a3f14324a488fefb\n"
    },
    {
      "commit": "2416f131f6102f9c60ddbe73f8d43f9f75da1c13",
      "tree": "c68b38bfdc3ec9b6218a93e20293a2620858eaf3",
      "parents": [
        "d26cd28bce5a34a364d55a4ada25ba798dc868aa",
        "726a550804ef4fbed2d0a4067d598a322ec6d1f3"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Jan 15 14:24:34 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 15 14:24:34 2021 +0000"
      },
      "message": "Merge \"Support building libjnigraphics on the host\""
    },
    {
      "commit": "726a550804ef4fbed2d0a4067d598a322ec6d1f3",
      "tree": "bacf28e4e203fa659c575ab910467223da166f5e",
      "parents": [
        "78859b42b5697ca1165d14fe23aa4b0e2f3141cb"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 08 14:25:31 2021 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Jan 14 12:02:31 2021 -0500"
      },
      "message": "Support building libjnigraphics on the host\n\nBug: 169137236\nTest: SANITIZE_HOST\u003daddress make imagedecoder_fuzzer\n\nAlong with a change in frameworks/base\n(I0ffc4e90b4083db79fbb12012e2e1284206b43e3), this will make it possible\nto run imagedecoder_fuzzer on the host, for faster fuzzing.\n\nimagedecoder.h:\n- define __ANDROID_API__ and __INTRODUCED_IN on non-Android systems, so\n  methods can be called on those systems.\n\nbitmap.h:\n- define __ANDROID_API__ and __INTRODUCED_IN on non-Android systems, so\n  methods can be called on those systems.\n- include \u003cstddef.h\u003e, which is needed on non-Android systems for size_t.\n- on Android, unguard types and enums for easier opportunistic usage via\n  dlsym.\n\nnativewindow/Android.bp\n- make libnativewindow_headers host_supported, so that libjnigraphics\n  can access android/data_space.h\n\nChange-Id: Iefdb4132d6f10f9164be85f4dc6e11883f6fd37e\n"
    },
    {
      "commit": "fd86f1a5455fed74d89e6fee645d402548dbc7b7",
      "tree": "b54929abad6d3245d24e8e05e1ef82f72da0cf39",
      "parents": [
        "df6bae2a6160294c63c7d617db24cd82ec40ce80"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 14 17:38:58 2021 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 14 17:40:23 2021 +0900"
      },
      "message": "Remove __ANDROID_API__ guards\n\n__ANDROID_API__ guards are removed in favor of __INTRODUCED_IN macros.\n\nCurrently, __INTRODUCED_IN macro does nothing for these headers (it\u0027s\nmeaningful only to the headers processed by versioner which are limited\nto binic headers). The plan is to make the macros to tag the declaration\nwith the availability attribute. Then, when the min_sdk_version of a\ncaller is set to an API level that is older than the API level of the\nAPIs, the compiler will provide them as weak symbols and enforce that\ncalling the APIs are guarded with a runtime check.\n\nFor now, these guards are preventing from making a build system change\nto let __ANDROID_API__ track the min_sdk_version property instead of the\nsdk_version property. With the build system change, __ANDROID_API__ will\nsuddenly drop for the native modules where min_sdk_version \u003c\nsdk_version, which is the case when the modules are included in APEXes.\nAs a result, some new APIs will be unavailable at build-time. Dropping\nthe hand-written guards fixes the problem.\n\nBug: 163288375\nTest: m\nChange-Id: Ia1292327fd995e847f3d6a5837adef048220fd78\n"
    },
    {
      "commit": "df6bae2a6160294c63c7d617db24cd82ec40ce80",
      "tree": "72d44ebfeaf7fc8671c845f335b23ed55ed323c8",
      "parents": [
        "7d4e69cb21471d40965f380e90efda0903003b87",
        "78859b42b5697ca1165d14fe23aa4b0e2f3141cb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 14 06:06:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 14 06:06:03 2021 +0000"
      },
      "message": "Merge changes from topic \"AImageDecoder_setInternallyHandleDisposePrevious\"\n\n* changes:\n  Add AImageDecoder_setInternallyHandleDisposePrevious\n  AImageDecoder: Hide support for animated HEIF\n"
    },
    {
      "commit": "78859b42b5697ca1165d14fe23aa4b0e2f3141cb",
      "tree": "356a981426a16732b83910a6b044607efa93c43b",
      "parents": [
        "ec2cbe34d742e13e06612ce788bfd3bd3e153336"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 13 11:48:34 2021 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 13 12:00:01 2021 -0500"
      },
      "message": "Add AImageDecoder_setInternallyHandleDisposePrevious\n\nBug: 160984428\nTest: I00682f201a52f894b0e1335c00c4368ce675a805\nChange-Id: I1262f6003e45f8217cb1adb90ffcc5a165a24b7a\n"
    },
    {
      "commit": "ec2cbe34d742e13e06612ce788bfd3bd3e153336",
      "tree": "7f22614b19cb7fdffc25dcbbc727bf13248de01b",
      "parents": [
        "b2ee00d9caf9531ffe0fdcd66f82db18e4d46601"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 12 12:59:21 2021 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 13 12:00:01 2021 -0500"
      },
      "message": "AImageDecoder: Hide support for animated HEIF\n\nBug: 160984428\nBug: 170672785\nTest: none\n\nThe system currently requires decoding the pixels of the frame of an\nHEIF/AVIF animated image before the actual duration of that frame can\nbe retrieved. Rather than handling this (likely temporary) limitation by\n- documenting it\n- providing extra APIs\n- limiting other formats in the same way\nremove documentation specifying that animated HEIF is supported.\nDevelopers are likely to be more interested in the other formats (GIF,\nWebP) anyway. If they do attempt to animate an HEIF file, they will\nstill see the default duration specified for the sequence.\n\nChange-Id: I5b97aeddee1311b694d73ac67b6157032d9ad745\n"
    },
    {
      "commit": "f1f209062eded1ed8c1e41aadec116b097caa662",
      "tree": "42c5ab5a70af6c8f8e2ea2b39768ddaa2f7050f5",
      "parents": [
        "90f29fbd76bdb3faf8b6d01c1b6dc9fe9c7ce35c"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jan 13 08:28:13 2021 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jan 13 08:30:37 2021 +0900"
      },
      "message": "Remove an erroneous semicolon\n\n__INTRODUCED_IN(...) macro expands to attributes, and therefore\nshouldn\u0027t be after a semicolon.\n\nBug: N/A\nTest: m\n\nChange-Id: Ib56471aa33b107ae66c02945f91cc36e3a708d74\n"
    },
    {
      "commit": "f452a2a34d5a7fbafbc1d08f814b3f23a0c7231c",
      "tree": "af52ece2601d927bb5ed98e3cb219a6bd9ba1ccb",
      "parents": [
        "0a84318d86c025af88e38fe990e689245f885836",
        "b2ee00d9caf9531ffe0fdcd66f82db18e4d46601"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Jan 08 18:47:50 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 18:47:50 2021 +0000"
      },
      "message": "Merge changes from topics \"AID_to_string\", \"AImageDecoder_nonnull\"\n\n* changes:\n  Fix null annotations in AImageDecoder\n  Add AImageDecoder_resultToString\n"
    },
    {
      "commit": "61a682e8d66b3428e5591ddbd1b2e5e309880e6e",
      "tree": "25dc211260f1cb02d46f3d5fe1822a13efee2578",
      "parents": [
        "7b632a57ee3f4a236575a62bb6fb7c3ab91c4f65",
        "ac9f749cfe3087d9624bdfc31065dfc219a9e6b4"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Jan 08 17:08:18 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 17:08:18 2021 +0000"
      },
      "message": "Merge changes from topics \"FrameInfo\", \"_advanceFrame\"\n\n* changes:\n  AImageDecoder: Add APIs for FrameInfo\n  Add AImageDecoder _advanceFrame and _rewind\n"
    },
    {
      "commit": "b2ee00d9caf9531ffe0fdcd66f82db18e4d46601",
      "tree": "49f3efd1bea13e257d4041dfb22738c26bbc8398",
      "parents": [
        "9b9fb394e3f40b90fff0c24bfbf225da91c8b8c8"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Jan 07 15:37:34 2021 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 08 10:16:02 2021 -0500"
      },
      "message": "Fix null annotations in AImageDecoder\n\nBug: 160984428\nTest: I27033454b2b8b683db727190b834b970c9732d8e\n\nMake AImageDecoder_delete _Nullable. This matches\nAImageDecoderFrameInfo_delete. It also makes sense because it just calls\n\"delete\", and even if it didn\u0027t, it does conceptually the same thing, so\nit should be safe to pass null.\n\nFix annotation for AImageDecoder_create*. Although the pointer must not\nbe null, the pointer it points to can, both as input and as output. This\nchange doesn\u0027t seem to affect my local build system (it doesn\u0027t warn if\nI pass a pointer to a pointer which points to null without this change),\nthis is more accurate.\n\nChange-Id: I0bf4e160b21169b81a377378bb65cbfd2ef809b2\n"
    },
    {
      "commit": "9b9fb394e3f40b90fff0c24bfbf225da91c8b8c8",
      "tree": "dc1cd127fb724a9ffaec19f59b0cce55d503f08f",
      "parents": [
        "ac9f749cfe3087d9624bdfc31065dfc219a9e6b4"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Dec 03 16:55:36 2020 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 08 09:40:38 2021 -0500"
      },
      "message": "Add AImageDecoder_resultToString\n\nBug: 160984428\nTest: I118eaa99cd65b70dbfb2c8a7731c714564911a34\n\nThis allows clients to print a readable string when there is an error\n(e.g. \"ANDROID_IMAGE_DECODER_BAD_PARAMETER\" instead of \"-5\").\n\nChange-Id: I24400979e1ce12d5c8b48bba456b07fdfda49662\n"
    },
    {
      "commit": "15232b578cc10189692138a4b579c6053ccced49",
      "tree": "445f6344558c2e776924bb4b62e36d439891746c",
      "parents": [
        "c93bb3b9d98e5bc65c2d32de35af9c5265481a3f",
        "56e925a87838f731a2cd2c8c1bb4a506de254833"
      ],
      "author": {
        "name": "Chris Forbes",
        "email": "chrisforbes@google.com",
        "time": "Thu Jan 07 00:05:40 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 07 00:05:40 2021 +0000"
      },
      "message": "Merge \"ndk: Add AThermal_getThermalHeadroom\""
    },
    {
      "commit": "ae9bf1e192f93b5ad259f7c13c5b72264d9c57a2",
      "tree": "d5ac6f1616cd54325da78bb4081ddbb1d90915da",
      "parents": [
        "162b5e90f9760392cd881091cdbf9de4ea1eb889",
        "fae808ffc32c594b25f043c4205e742fdbaae818"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 06 19:00:32 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 06 19:00:32 2021 +0000"
      },
      "message": "Merge \"Revert^2 \"Added update device info playback configuration\"\""
    },
    {
      "commit": "ac9f749cfe3087d9624bdfc31065dfc219a9e6b4",
      "tree": "b079b29ed9a30272dcda961f4b5c808ebb204f8a",
      "parents": [
        "5528700001e411698cbf95e72ab69411e8705309"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Dec 28 15:33:13 2020 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 06 14:00:14 2021 -0500"
      },
      "message": "AImageDecoder: Add APIs for FrameInfo\n\nBug: 160984428\nTest: If47d475233f6b9973abf68029b63a610ff47cdae\n\nChange-Id: I7f28499fecfc7d36bc9b493568d1c03023e65ce4\n"
    },
    {
      "commit": "56e925a87838f731a2cd2c8c1bb4a506de254833",
      "tree": "7d19ba1a84ea9200ccc222bade427ca252c37045",
      "parents": [
        "b98a1bfbe1358a748767a4ee183c8138a0bed42d"
      ],
      "author": {
        "name": "Chris Forbes",
        "email": "chrisforbes@google.com",
        "time": "Tue Sep 15 09:34:59 2020 -0700"
      },
      "committer": {
        "name": "Chris Forbes",
        "email": "chrisforbes@google.com",
        "time": "Tue Jan 05 19:49:31 2021 +0000"
      },
      "message": "ndk: Add AThermal_getThermalHeadroom\n\nThe SDK variant of this [PowerManager#getThermalHeadroom] was introduced in R,\nbut NDK support didn\u0027t make it in time.\n\nBug: b/168612028\nTest: atest CtsThermalTestCases\nChange-Id: I58422ca2567f6145e388fe669334a15c3a72c1e4\n"
    },
    {
      "commit": "5528700001e411698cbf95e72ab69411e8705309",
      "tree": "4895c304284ef173ba2407530c5d53bffeecb796",
      "parents": [
        "3b3700edf4cd5d1eab7cf3de2cd332b2f903258e"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Oct 13 11:30:11 2020 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 05 12:37:22 2021 -0500"
      },
      "message": "Add AImageDecoder _advanceFrame and _rewind\n\nBug: 160984428\nTest: Iae7d274b69999c471fd5610c6ef4d148cca81bec\n\nThese enable decoding all frames of an animated image (e.g. GIF).\n\nAlso add ANDROID_IMAGE_DECODER_FINISHED, which can be returned by\nAImageDecoder_decodeImage or AImageDecoder_advanceFrame when the end of\nthe animation has been reached.\n\nDisallow AImageDecoder_set* methods after the first frame, since\nchanging the settings would interfere with blending and caching for\nkRestorePrevious frames.\n\nSpecify that a single frame GIF is not animated.\n\nChange-Id: I6a0738d2e8ed27062c86d7b6dce37d54425552f2\n"
    },
    {
      "commit": "3b3700edf4cd5d1eab7cf3de2cd332b2f903258e",
      "tree": "bdf2c4558541d865e5e9d28ccff2743e378da332",
      "parents": [
        "542630954b270eadd31af33a8019df588647d9df"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Dec 29 11:52:12 2020 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 05 12:37:22 2021 -0500"
      },
      "message": "AImageDecoder: Document/unguard types/enums\n\nBug: 160984428\nTest: none\n\nFrom go/android-ndk-api-guidelines, these shouldn\u0027t be guarded, but they\nshould have an \"Introduced in API ##\" line. Match the guidelines.\n\nChange-Id: I9bb51adb81782e7f6df8bd1d614d7e00a2e5556a\n"
    },
    {
      "commit": "fae808ffc32c594b25f043c4205e742fdbaae818",
      "tree": "07c53e90801a9af2865701cdf5fbba928eaa0991",
      "parents": [
        "d0ab5db490260a696021e069385ac5035bee1f5f"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 22 20:40:07 2020 +0000"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Jan 05 14:55:35 2021 +0000"
      },
      "message": "Revert^2 \"Added update device info playback configuration\"\n\nd0ab5db490260a696021e069385ac5035bee1f5f\n\nBug: 176043355\nTest: atest android.media.cts.AudioPlaybackConfigurationTest\nChange-Id: I6a46a05e82f4fa64c15d5467394d885c43d876c1\n"
    },
    {
      "commit": "19ff85c42ece67a8ec46098a453d6790695449e2",
      "tree": "2006eeb98acb4dec56ac266bb2aaf5f4cf3cd57e",
      "parents": [
        "da2078430f6e4ef62c26e81d0e85275954582a31",
        "d0ab5db490260a696021e069385ac5035bee1f5f"
      ],
      "author": {
        "name": "Daniel Chapin",
        "email": "chapin@google.com",
        "time": "Tue Dec 22 18:10:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 22 18:10:43 2020 +0000"
      },
      "message": "Merge \"Revert \"Added update device info playback configuration\"\""
    },
    {
      "commit": "d0ab5db490260a696021e069385ac5035bee1f5f",
      "tree": "acc5a11109111dd9f3438fd965c8fa494520abb5",
      "parents": [
        "fc28648fd6d344516a0f2bdbbf662bbbd2e4fcb2"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 22 00:51:59 2020 +0000"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 22 00:51:59 2020 +0000"
      },
      "message": "Revert \"Added update device info playback configuration\"\n\nRevert \"Added audio playback configuration CTS test\"\n\nRevert submission 13138779-device_id_push_work\n\nReason for revert: Breaking device tests, see b/176043355\nReverted Changes:\nI859d33a4a:Added update device info playback configuration\nIcbd1d430b:Added audio playback configuration CTS test\nI4a8409d95:Added device info playback config for Open SL ES\nI365bafc95:Added update device info playback configuration\nI802269fea:Added device info playback config for native playe...\n\nChange-Id: I581374aaa8a91d42c1d147f96e22cb0d3ddf2875\n"
    },
    {
      "commit": "9efa8758e09e87bd2dc27270481f488ba375a7a3",
      "tree": "e74307b1f863320d2248123732688ad9d3cb0720",
      "parents": [
        "2d80e9202f0d2b458db019eabc13ed8d2ae797c2",
        "4e2b71fe7792843fc23e13d0201b59377888c3c5"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Dec 21 17:48:38 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 21 17:48:38 2020 +0000"
      },
      "message": "Merge changes If9eb2564,Iab01c967,I1056f6fa\n\n* changes:\n  FTL: Import std::future utilities from SF\n  FTL: Configure clang-format\n  FTL: Standardize style\n"
    },
    {
      "commit": "dd8b2eed9c01e835e8cd2a8593e2224b4997f4a4",
      "tree": "e58e6320b8feaf3329ee4f54409de98993975ba5",
      "parents": [
        "1104d3928c985a85ab44a34ce4732e3d35aff288",
        "f59a2f484d4765edd74c9bb3f911f66c4eb7a3f4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 17 20:26:17 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 17 20:26:17 2020 +0000"
      },
      "message": "Merge \"Add SensorManager support in inputflinger.\""
    },
    {
      "commit": "f59a2f484d4765edd74c9bb3f911f66c4eb7a3f4",
      "tree": "b91d1eb60a4d61bf4a7bc44f2f170633f61b176f",
      "parents": [
        "ef7705d5695070d62ed58047021af5318d91d494"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Fri Oct 16 12:55:26 2020 -0700"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Dec 16 15:42:57 2020 -0800"
      },
      "message": "Add SensorManager support in inputflinger.\n\nAdd sensor device, sensor input mapper, sens event dispatcher support\ninto inputflinger.\n\nBug: 161634265\nTest: atest inputflinger_tests\n\nChange-Id: I2dcb2c35d9dccefc4cd8d939b79cf340931a9410\n"
    },
    {
      "commit": "fc28648fd6d344516a0f2bdbbf662bbbd2e4fcb2",
      "tree": "07c53e90801a9af2865701cdf5fbba928eaa0991",
      "parents": [
        "adfede47f98d1d5f0b38d3048f68d3dd8bf918fd"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Mon Nov 30 12:23:00 2020 -0800"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 15 17:41:45 2020 -0800"
      },
      "message": "Added update device info playback configuration\n\nAdded method to update audio device id information from native layer.\n\nBug: 156790437\nTest: play audio see audio configuration changes\nChange-Id: I365bafc95eba14478e15769c2a3873eab57a4a36\n"
    },
    {
      "commit": "6f77846c3c071716c7f0333159ca06b0a0448ac2",
      "tree": "dd52ea2e28f0e7fe4b59f88219bca7efe1d4ee43",
      "parents": [
        "d47bfc43c3bfc43daddc36f3b497d2f8df9edd4a"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Dec 09 23:39:07 2020 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Dec 11 12:13:32 2020 -1000"
      },
      "message": "Disable touch mapper associated with an inactive viewport\n\nIf a touch mapper is associated with an inactive viewport, disable it.\nWe don\u0027t need to even try to send events there because the user can\u0027t\nsee them.\n\nBug: 175053311\nTest: atest inputflinger_tests\nChange-Id: Ia9910f4401deef749f5ca2a84ebe92396390c53f\n"
    },
    {
      "commit": "4e2b71fe7792843fc23e13d0201b59377888c3c5",
      "tree": "1218637a7c5111ebc75764f9d21fce8e56fb28f6",
      "parents": [
        "e21dbed979755c48581ce2600bdc9ce4b3bdc9ba"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 10 15:05:32 2020 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Dec 07 17:09:12 2020 -0800"
      },
      "message": "FTL: Import std::future utilities from SF\n\nNow including docs and expanded tests.\n\nBug: 160012986\nTest: ftl_test\nChange-Id: If9eb25646bb33ebc417ea87e6718b46fe0b87cf3\n"
    },
    {
      "commit": "e21dbed979755c48581ce2600bdc9ce4b3bdc9ba",
      "tree": "848ec66ae3c9803fd352dfa2155c7a1974eca749",
      "parents": [
        "5444fc8c17d65453e3623d2307a813e611c72c6f"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Dec 04 20:51:43 2020 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Dec 07 17:09:12 2020 -0800"
      },
      "message": "FTL: Configure clang-format\n\nBug: 160012986\nTest: ftl_test\nChange-Id: Iab01c967b9318afecb21107a6c25bebc4178edcd\n"
    },
    {
      "commit": "5444fc8c17d65453e3623d2307a813e611c72c6f",
      "tree": "bf999aaa8c1b302d3b5de4a377aac8fe80e9fb7d",
      "parents": [
        "f22c4c072cec6bec83ac08cecfb55e953ff21ea5"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 24 13:41:10 2020 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Dec 07 17:09:06 2020 -0800"
      },
      "message": "FTL: Standardize style\n\nAdopt STL-flavored Google style for internal and libbase consistency.\n\nAdd README.\n\nBug: 160012986\nTest: ftl_test\nChange-Id: I1056f6fa890d68717386d634c398bb2faa46775c\n"
    },
    {
      "commit": "4228535e7a473687edda73d309af5e83495380f5",
      "tree": "d6a2ee7a72fc27609668d134dd542f14f4c59055",
      "parents": [
        "b502fac0d6640c806bf69e507b0f77093c4f6dd6",
        "c4b9146f630e523d9136c1a040258777657e4b2c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Nov 22 23:57:02 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Nov 22 23:57:02 2020 +0000"
      },
      "message": "Merge changes Id8848530,I9331f202\n\n* changes:\n  FTL: Add SmallMap\u003cK, V, N\u003e\n  FTL: Generalize StaticVector in-place construction\n"
    },
    {
      "commit": "3f37b7b1d750190f15afd0d6c0a54e1ea76cbd40",
      "tree": "6da90b8365b50b4502f2d544c538d1cd8c45358d",
      "parents": [
        "7e186182c8181458ec9d0072bc1f3d7f34ba88a6"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Nov 10 16:50:18 2020 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Nov 17 14:55:52 2020 -0800"
      },
      "message": "SyncPointerCapture (3/n): Add Capture event to InputChannel\n\nThis CL adds the ability to send a CAPTURE event through the\nInputChannel, and adds the appropriate processing logic to\nInputPublisher and InputConsumer.\n\nThis will be used by the InputDispatcher to notify windows when they\nhave either lost or gained Pointer Capture.\n\nBug: 141749603\nTest: atest libinput_tests\nChange-Id: I102833e6f0fd1e8e9c4b3c12e7a5a737eeda2377\n"
    },
    {
      "commit": "b8871072670285c34d18c762d483b553c5473557",
      "tree": "c284bb80485eb8cc3597518de3ec40a79f925413",
      "parents": [
        "16d09068027eb4b1bd18b8fe5089b10ee2a7dea5",
        "110c6bcc11979eb13db5966388056d3805adea4f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 17 14:57:10 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 17 14:57:10 2020 +0000"
      },
      "message": "Merge changes from topic \"isSeamlessRequired\"\n\n* changes:\n  Fix docs formatting for surface_control.h\n  Dump RefreshRateConfigs\n  Add shouldBeSeamless to setFrameRate\n"
    },
    {
      "commit": "110c6bcc11979eb13db5966388056d3805adea4f",
      "tree": "5ead85a257017b5761882c2b06bf17e14328f101",
      "parents": [
        "ba421a88f89fb800732f6f50072b1b3ebd9961e9"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Nov 16 17:57:59 2020 +0100"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Nov 16 18:25:09 2020 +0100"
      },
      "message": "Fix docs formatting for surface_control.h\n\nThis change\n - adds \\params, so the parameter descriptions\nget formatted as a table\n - replaces |name| with \\a name, when used for\nfunction args. This way they appear in itallic\nin the documentation and w/o vertical bars.\n - changes /* to /**, so docs can be generated\n - fixes several typos\n\nTest: development/tools/ndk/build_ndk_docs.py\nChange-Id: I738b04c9e26a6b5604182a3d452787976a7f6043\n"
    },
    {
      "commit": "4608442db90c07dccc833dbdf1cea78f57c7b96d",
      "tree": "be976923f779a78bf40ee5f5165a51f76b37b897",
      "parents": [
        "6bb6836cbdc56efc7e3bc4a14aea6dcf43f9ff3c"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Tue Oct 13 12:33:42 2020 +0200"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Nov 16 18:01:55 2020 +0100"
      },
      "message": "Add shouldBeSeamless to setFrameRate\n\nThis CL adds a new parameter shouldBeSeamless to the existing\nsetFrameRate APIs. This parameter indicates whether the desired\nrefresh rate should be achieved only seamlessly or also switches\nwith visual interruptions for the user are allowed. The default\nvalue of the new parameter is \"true\".\n\nTest: atest RefreshRateConfigsTest\nTest: atest SetFrameRateTest\nTest: atest libsurfaceflinger_unittest\nTest: atest libgui_test\n\nBug: 161776961\nChange-Id: I0df16e09f77c8c198fd3733fb581a2aaadfed685\n"
    },
    {
      "commit": "749b84652d808906ffe0bfa59e220d343c93c9fc",
      "tree": "055c45f103095fbc30afd05a2c5843d2f667f077",
      "parents": [
        "69df21f13ca16427fce2ba75e6beedacf05686cb"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun Nov 15 14:14:36 2020 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun Nov 15 14:14:36 2020 -0800"
      },
      "message": "Change NamedEnum unknow enum string format from hexical to decimal.\n\nTest: atest libinput_tests\nChange-Id: I80ee324805ed6ae8e1aea13f2fccc81a681d3336\n"
    },
    {
      "commit": "c4b9146f630e523d9136c1a040258777657e4b2c",
      "tree": "a3d8385728724e08e6cf798d1c18dae126db5365",
      "parents": [
        "ccd50a4f357fc9e47e759c971897ad40941269b4"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Nov 02 13:37:25 2020 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 10 16:28:29 2020 -0800"
      },
      "message": "FTL: Add SmallMap\u003cK, V, N\u003e\n\nSmallMap is a SmallVector of unordered key-value pairs. This CL includes\nconstruction and lookup, while mutators will be added in a follow-up CL.\n\nBug: 160012986\nTest: ftl_test\nChange-Id: Id88485304c7d7f515226b4f8edf63ce9af6a2157\n"
    },
    {
      "commit": "706f9d131c9c7e534664345e0ba99cbaa9e8eb64",
      "tree": "3baaefd666b1f1ca213fd15fe53dd1c274b78932",
      "parents": [
        "bb75a481dc57d9272fd99e998b8eb15a8f9f0ed0",
        "b632bd57168ef757002d577a53afad81ccd5db1b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 09 21:25:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 09 21:25:26 2020 +0000"
      },
      "message": "Merge \"Add NDK PermissionManager checkPermission\""
    },
    {
      "commit": "5872c14d7f1217cfc86e9fe90bb01f0afc042ded",
      "tree": "d334d5b4ab4f6aa895855678c8f36ea860d0a057",
      "parents": [
        "f7e67dbf909c4642dab729ffde8ef299ae507be9",
        "faa986c076dffff0be41dd866462494a76d0ad90"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 05 15:08:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 05 15:08:48 2020 +0000"
      },
      "message": "Merge \"Fix libinput mac build, hopefully.\""
    },
    {
      "commit": "faa986c076dffff0be41dd866462494a76d0ad90",
      "tree": "767586452e7f9b522df5f4f00ad48e54c342afbd",
      "parents": [
        "a267bd3745798d20270dff422bafc73a64d227ae"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Wed Nov 04 17:39:36 2020 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Wed Nov 04 18:56:42 2020 -0800"
      },
      "message": "Fix libinput mac build, hopefully.\n\nRestore the ifdefs removed in go/ag/12549959, but using\nifdef __linux__ instead of __ANDROID__.\n\nTest: m libinput\nBug: 172023026\nChange-Id: Iafbf592e7b937b780e5ffc2df490a6c17f5f6cf5\n"
    },
    {
      "commit": "ccd50a4f357fc9e47e759c971897ad40941269b4",
      "tree": "b0d0251299b9dd4d5c1aceb46d4b9ebeb6141905",
      "parents": [
        "92f1eedcaae8662739ff1c9ada8a31e61f015702"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Oct 30 19:56:38 2020 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Nov 04 15:15:10 2020 -0800"
      },
      "message": "FTL: Generalize StaticVector in-place construction\n\nReplace the std::in_place_type constructor, which is limited to one\nargument per element, with construction from InitializerList, which\nforwards argument tuples for each element.\n\nSmallMap will use this syntax for its key-value pair constructor.\n\nBug: 160012986\nTest: ftl_test\nChange-Id: I9331f20268532cb09e980475d68768ba891aca1f\n"
    },
    {
      "commit": "f65999ccc401724da37ccfa77a3a2acc0df5a774",
      "tree": "9e3bd6c16e8cc871aa8bfafd388d578815f51576",
      "parents": [
        "2fd7b4b97209a8e337c6d47e9b10249b32b60c31",
        "534b2a26f51ef70478663507a68980dcbd373f07"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 04 21:39:17 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 21:39:17 2020 +0000"
      },
      "message": "Merge changes I054ef2f6,Id223a6fc,I78397517\n\n* changes:\n  FTL: Optimize SmallVector\n  FTL: Add SmallVector\u003cT, N\u003e\n  FTL: Make StaticVector::replace infallible\n"
    },
    {
      "commit": "c4fb2587728fd0d2aeaaf920fbb43e0344c5c7b1",
      "tree": "2b2e7b0efeb0f11f672726dafcad9f1945d5fbf1",
      "parents": [
        "c89e521bb714f319383feb4de77677d40254d9c8",
        "102936ef2b2e2c0c7c782f461b48f12dfc9464eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 04 19:18:54 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 19:18:54 2020 +0000"
      },
      "message": "Merge \"Move KeyCharacterMap to enum class\""
    },
    {
      "commit": "b632bd57168ef757002d577a53afad81ccd5db1b",
      "tree": "eba2349c90683c3c5d0715ca921a651ef6a52d25",
      "parents": [
        "5cc8820fdda3a7d41f4e36c6ac67110573135a9e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Nov 02 11:01:48 2020 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Nov 04 11:08:24 2020 -0800"
      },
      "message": "Add NDK PermissionManager checkPermission\n\nbug: 172283477\nbug: 159172726\n\nChange-Id: I532722772f6a86ef4f94a95146df34603278bb45\n"
    },
    {
      "commit": "a267bd3745798d20270dff422bafc73a64d227ae",
      "tree": "79b8f08065ab1cbcb147ac40af567a0a10e3ecce",
      "parents": [
        "ec5c5174b7dbafe3a5096e228b616cf2855afc26",
        "dde67b898d10daf78a93527e1e866d67bb8c3f63"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 04 13:37:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:37:50 2020 +0000"
      },
      "message": "Merge \"Support multiple internal and external viewports\""
    },
    {
      "commit": "102936ef2b2e2c0c7c782f461b48f12dfc9464eb",
      "tree": "c4b23e25e64a7b2f4789193d535f7c56484ea926",
      "parents": [
        "dde67b898d10daf78a93527e1e866d67bb8c3f63"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Nov 04 03:44:27 2020 +0000"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Nov 04 05:49:25 2020 +0000"
      },
      "message": "Move KeyCharacterMap to enum class\n\nBug: 160010896\nTest: compiles\nChange-Id: Ia8c0d976665acf817f083726dcac10db0cd91048\n"
    },
    {
      "commit": "534b2a26f51ef70478663507a68980dcbd373f07",
      "tree": "22724c89fbe62e40f0247ec7fc2ec64de1bd348a",
      "parents": [
        "0bacf27fe9ab2f1bf4b055c05d50da9826a8dd0a"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Oct 26 16:31:47 2020 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 03 15:48:07 2020 -0800"
      },
      "message": "FTL: Optimize SmallVector\n\nAvoid std::visit as it generates a dispatch table.\n\nBug: 160012986\nTest: ftl_test\nTest: Check assembly for labelled branches.\nChange-Id: I054ef2f6812cbd828315dad01afbff0723f8a87c\n"
    },
    {
      "commit": "0bacf27fe9ab2f1bf4b055c05d50da9826a8dd0a",
      "tree": "2520361f67fb28abd381b6cab8567c92cca85615",
      "parents": [
        "0357237ccdf06d5337f96dc9d9b300028a821466"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Oct 22 14:08:27 2020 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 03 15:48:04 2020 -0800"
      },
      "message": "FTL: Add SmallVector\u003cT, N\u003e\n\nSmallVector is a StaticVector that promotes to std::vector when full.\nIt will serve as a base for SmallMap.\n\nBug: 160012986\nTest: ftl_test\nChange-Id: Id223a6fc169d792746220d2dde1f9f1a0e87a0cc\n"
    },
    {
      "commit": "0357237ccdf06d5337f96dc9d9b300028a821466",
      "tree": "411bbf9ebc1e1311a12ecdc498abb6ccb3ef491e",
      "parents": [
        "60b120adc62c8d07f4e4b35d4642eb8773238356"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Oct 27 22:36:00 2020 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 03 13:51:19 2020 -0800"
      },
      "message": "FTL: Make StaticVector::replace infallible\n\nstd::move from a temporary to avoid bailing out when the vector is full,\nwith the caveat that replacing at end() is no longer valid.\n\nAlso, disable iterator constructor for ambiguous types, and document\npreconditions/postconditions for all functions.\n\nBug: 160012986\nTest: ftl_test\nChange-Id: I78397517ed11098067fff1cb04f735b29756c9cf\n"
    },
    {
      "commit": "53fc31e8ab6cbcb633395a99efa6d3f89496922f",
      "tree": "354d1f5bc797009a7d3e6f2d0b9b5925c627f97e",
      "parents": [
        "854e1b9538adf3aac0f1ce012a2d3b532880f4ca"
      ],
      "author": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Tue Nov 03 11:01:07 2020 +0000"
      },
      "committer": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Tue Nov 03 17:44:10 2020 +0000"
      },
      "message": "Add touchableRegion to touch occlusion dump\n\nAnd format type as decimal in case we can\u0027t name the enum.\n\nTest: Verify logs\nChange-Id: I0674f30597b67e3330f9053c7576fb7bf3dcf6ef\n"
    },
    {
      "commit": "dde67b898d10daf78a93527e1e866d67bb8c3f63",
      "tree": "9b33f933e46d596c3d017b3d6026e50348b56d5c",
      "parents": [
        "9febda8e05bbd924d14682454fdc7a846c38f954"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Oct 27 16:09:22 2020 +0000"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Nov 03 15:17:02 2020 +0000"
      },
      "message": "Support multiple internal and external viewports\n\nThe policy is still effectively the same by selecting the first display,\nbut this lets devices which are configured with a specific unique ID to\nsee the viewport that should be associated with it.\n\nBug: 116824030\nBug: 171549575\nTest: atest InputReader_test\nChange-Id: I3f78a122a3a8dce9c8dac3c88f3d51f29afa367c\n"
    },
    {
      "commit": "08a8d53960e91d453ab479e6f41eb8c46a556d1f",
      "tree": "54264daa087aa883dd6da8d5084843da5b0b61bd",
      "parents": [
        "f4b1410afa384815ea89dd4b089df4ebce2068ff",
        "5820852c0f0fe634a104f81691ad3e0026caecdc"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Thu Oct 29 17:43:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 17:43:49 2020 +0000"
      },
      "message": "Merge \"Build all of libinput for linux host.\""
    },
    {
      "commit": "5820852c0f0fe634a104f81691ad3e0026caecdc",
      "tree": "3e430545bfdf4788230f9dcfbaca29c8eee47778",
      "parents": [
        "1ac550d7973e5a1f90a3cd9b661a0fa0668d6516"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Wed Sep 09 13:55:24 2020 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Wed Oct 28 11:16:53 2020 -0700"
      },
      "message": "Build all of libinput for linux host.\n\nIncluding enabling parcel-related code in source already building for\nhost.\n\nTest: m libandroid_runtime\nChange-Id: Ia569e5158ba6ead28486069036f6a3595662bbf8\n"
    },
    {
      "commit": "8101611b9f4e4884f41fe57b9e792ed8549947fe",
      "tree": "585ee5851599fb77e23eb1be67e41166be7645ac",
      "parents": [
        "1f1d6b4c7dd1d9e634dedd9be18456baa018b80c",
        "c68fdecad27ad2061ae27f27cab02b2eb13b423f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 26 21:54:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 26 21:54:49 2020 +0000"
      },
      "message": "Merge \"Add full action printout to MotionEvent\""
    },
    {
      "commit": "1f1d6b4c7dd1d9e634dedd9be18456baa018b80c",
      "tree": "1e608bc1fa0c262aa534fabde6220f5f7066ebec",
      "parents": [
        "6d6b19d6b7b4a51815203c6d3354be2cd837e7aa",
        "6fdf114e80c74eef33597f13322a9136f2ff96e1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 26 20:02:15 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 26 20:02:15 2020 +0000"
      },
      "message": "Merge \"FTL: Add StaticVector\u003cT, N\u003e\""
    },
    {
      "commit": "6fdf114e80c74eef33597f13322a9136f2ff96e1",
      "tree": "955fdfd2244bb672f0b7040beefca73536202864",
      "parents": [
        "d0aa7ce6716002aab586461f7accf83051d387f9"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Oct 07 12:09:09 2020 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Sun Oct 25 23:35:03 2020 -0700"
      },
      "message": "FTL: Add StaticVector\u003cT, N\u003e\n\nFTL is a template library shared by SurfaceFlinger and InputFlinger.\n\nStaticVector is a hybrid of std::array and std::vector, a statically\nallocated container with fixed capacity. It will serve as a base for\nSmallVector and SmallMap.\n\nBug: 160012986\nTest: ftl_test\nTest: Apply ag/12919186 and compare assembly\nChange-Id: I821c736f3411e970402faf19d9238b68c056ca93\n"
    },
    {
      "commit": "c68fdecad27ad2061ae27f27cab02b2eb13b423f",
      "tree": "6166ec7a8639a121e933a3644003ea993e2e68af",
      "parents": [
        "2a32108acac356a34f3f3307ff10c2a9f2c56c78"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 22 14:58:14 2020 -0500"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 22 16:15:00 2020 -0500"
      },
      "message": "Add full action printout to MotionEvent\n\nCurrently, not all actions are being printed in the input dump. This\nresults in hard-to-debug cases like the hover issue with multi-finger\noperation before screen off.\n\nAdd printouts for all known action values, and add a number printout in\ncase an invalid value is received.\n\nBug: 169785626\nBug: 164506345\nTest: adb shell dumpsys input\nChange-Id: I885bf311eb28cca153887ebb382528927a736041\n"
    },
    {
      "commit": "79f1be558b473638761a7f1b34f6b5d0dc217255",
      "tree": "45d9fd8fd5d3645b1c8de7d572c36e8a0a6578ef",
      "parents": [
        "419cc99ae9ee8426ee76fa189337ca48c09d9095",
        "728a9ac4e726707fd5d3c5aeac286382fdd68d0c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 14 17:21:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 14 17:21:16 2020 +0000"
      },
      "message": "Merge \"Add AImageDecoder_getRepeatCount\""
    },
    {
      "commit": "4e0393d9e67fb81beba3dea2062de1771454b243",
      "tree": "b4135e9b509b8a60db33119e592de5753e2bd0f9",
      "parents": [
        "ed35f1265682c3fbe519072b7f06745f0d21f1f9",
        "1b3897163eccbfd75ed7e4a40de3537afad458b1"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Oct 13 15:00:41 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 15:00:41 2020 +0000"
      },
      "message": "Merge \"Add AImageDecoder_isAnimated\""
    }
  ],
  "next": "fed12334968378220dc65d62529c09ee4d62ab1e"
}
