)]}'
{
  "log": [
    {
      "commit": "ecb965cd7c47fa5636814f92d83a20b90a4f7ee5",
      "tree": "448944a871b0c816729e9df7c21ba1c594df423d",
      "parents": [
        "aa87e1d092f2b459ab2b1aaf179e4f5920a8dc87"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Aug 05 14:15:56 2021 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Aug 05 15:37:18 2021 -0700"
      },
      "message": "Fix enum_value_name() for compiler update.\n\nBug: 195659713\nTest: run libinput_test\nChange-Id: I82c1d98bd189e60f86a26a02281c49167368e8ad\n"
    },
    {
      "commit": "ea6bdf0973c87de6daa74de52ee95e2691e43fd1",
      "tree": "386360ab97b30b1ef3955722b8149250bf5e00e1",
      "parents": [
        "1d5541d4c8823efa8276d3d3af5e50f1e184473a"
      ],
      "author": {
        "name": "Bo Liu",
        "email": "boliu@google.com",
        "time": "Sat Jul 17 16:41:38 2021 -0400"
      },
      "committer": {
        "name": "Bo Liu",
        "email": "boliu@google.com",
        "time": "Wed Jul 21 13:32:47 2021 -0400"
      },
      "message": "Implement native PerformanceHint API\n\nTest: None\nBug: 194204196\nChange-Id: Ied0068d5069522befd14a7ca60d4fc39b47754d1\n"
    },
    {
      "commit": "ba0ce7ddde1541536f851582946ab565fe2e50df",
      "tree": "8331febccc2da4251be8abdfd964624fe50b80d6",
      "parents": [
        "10d57c6cfa946d7c87fe4aa51a137865f01fdb0a"
      ],
      "author": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Tue Jul 06 12:35:16 2021 +0100"
      },
      "committer": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Tue Jul 06 11:43:47 2021 +0000"
      },
      "message": "Fix AMOTION_EVENT_FLAG_IS_ACCESSIBILITY_EVENT for non-linux builds\n\nRemove semicolon as there are more enum elements.\n\nBug: 192643379\nTest: build for non-linux host\nChange-Id: Ia9e90f382d50ec52f0bad9c186031fd7ca29053a\n"
    },
    {
      "commit": "cf43a955dfca8aca172ca57a9a30a2dd4331e7a6",
      "tree": "c9a5888688e08221a4bfbde01689981edafde611",
      "parents": [
        "80e30bd8f1b6816e1d642640da61e0ffbc2d3219"
      ],
      "author": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Fri Jul 02 12:13:41 2021 +0100"
      },
      "committer": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Fri Jul 02 11:22:35 2021 +0000"
      },
      "message": "Fix FLAG_IS_ACCESSIBILITY_EVENT for non-linux builds\n\nRemove semicolon as there are more enum elements.\n\nBug: 192643379\nTest: build for non-linux host\nChange-Id: Id1f622180d7c567d68cb9997317d14868453395b\n"
    },
    {
      "commit": "f00a4ec687e2bf9110106238c7738927fc3e87d7",
      "tree": "da6c6f59b222c21f55b7cb40111a06aa8c052d25",
      "parents": [
        "4019c52f68e694278e1f5833a45a04137af3780c"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jun 16 03:55:32 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jun 30 18:11:59 2021 +0000"
      },
      "message": "Set FLAG_IS_ACCESSIBILITY_EVENT for events injected from accessibility\n\nIf an input event was modified or injected by accessibility, set the\nappropriate flag. This helps applications distinguish the real hardware\nevents from synthesized events.\n\nThis also allows a11y services more flexibility in modifying the event\nstreams coming from real hardware.\n\nBug: 152399927\nBug: 175069843\nTest: atest inputflinger_tests libinput_tests\nChange-Id: I805cba4c84582fa4cd4e0892ec00428d4b255ec6\n"
    },
    {
      "commit": "509724f0931a84db5ab4f47c40e98e3b36cdba7b",
      "tree": "9942e2a5214f016d0a51a037a3f652822e527e56",
      "parents": [
        "9473f5563afd11e0d202b4bff7f4beb53008dd1e"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jun 16 04:09:35 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jun 16 04:19:32 2021 +0000"
      },
      "message": "Avoid aidl usage on mac builds\n\nWe do not have libbinder on mac, so that rules out using aidl files for\nmac builds. To unbreak sdk_mac build targets, just use constant values\ndirectly on mac instead of trying to use IInputConstants.\n\nBug: 152399927\nTest: forrest\nChange-Id: I21697ec02dbb215edd89d2f6849c9147f490af99\n"
    },
    {
      "commit": "9473f5563afd11e0d202b4bff7f4beb53008dd1e",
      "tree": "cdea1be57f466ebf2fd2dad825bde1e2ef2e0a98",
      "parents": [
        "c71ee4b1418fd1d4b401755a77acfe6641cc6dad",
        "5d552c4b7fffb63d9bc4c26ca222d43bb57b359d"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 15 21:50:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 15 21:50:38 2021 +0000"
      },
      "message": "Merge \"Use the injected device id for events that are a11y trusted\" into sc-dev"
    },
    {
      "commit": "1983a71e2a29934ec3a7c8a0fb20e0ced0ad44dc",
      "tree": "b5187bcb2eef8d3ea32504dc9ed4c70ad19245dc",
      "parents": [
        "9d7aee1d786b01942e90cb6972b2bc1e06920aef"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jun 04 19:27:09 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jun 08 20:08:53 2021 +0000"
      },
      "message": "Return a copy of InputDeviceLightInfo instead of pointer\n\nRefactor InputReaderInterface to return a copy instead of pointer. This\nwill ensure that we don\u0027t read from memory that\u0027s been freed.\n\nAlso, refactor InputDevice api\u0027s to return a list of infos instead of\nhaving to query each individually. In all usages so far, there\u0027s no need\nto get a specific info by type.\n\nBug: 190126442\nTest: atest inputflinger_tests libinput_tests\nChange-Id: I7f993a14259bb802e2631663c1c8bb65cc9b6702\n"
    },
    {
      "commit": "5d552c4b7fffb63d9bc4c26ca222d43bb57b359d",
      "tree": "d39ad333c14b922051d156911355c5c9b6bb5c7e",
      "parents": [
        "64812298b71eeb04b1c471a3cf7f48fd27cfee40"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 21 05:02:22 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jun 04 04:07:29 2021 +0000"
      },
      "message": "Use the injected device id for events that are a11y trusted\n\nIf an event is a trusted event coming from accessibility, then allow the\ndevice id that\u0027s provided in the InputEvent to be used during injection.\n\nThat means, events injected from accessibility will not always have\ndevice id \u003d\u003d -1 (VIRTUAL_DEVICE_ID).\n\nThe only exception are the events coming from external accessibility\nservices (MotionEventInjector). For simplicity, we mark all of those\nevents as untrusted.\n\nThe flow is as follows:\n\n1. When a11y is enabled, mInputFilterEnabled is set in InputDispatcher\n2. Every event processed by dispatcher is first sent to InputFilter (\u003d\u003d\u003d\naccessibility).\n3. The event from dispatcher sent to a11y has new flag,\nPOLICY_FLAG_ACCESSIBILITY_TRUSTED.\n4. By default, a11y passes all the policy flags back to inputdispatcher\nwhen it tries to reinject the event.\n5. If a11y hits a path where untrusted events may be injected, it\nremoves the FLAG_A11Y_TRUSTED from the policyFlags and continues the\nevent handling.\n6. Eventually, if a11y does not handle the input event, it sends it back\nto InputDispatcher using \u0027injectInputEvent(..., policyFlags)\u0027.\n7. InputDispatcher will look at the policyFlags of the injected event.\nIf the new flag is present, InputDispatcher will create EventEntry with\nthe provided device id. Otherwise, it will create EventEntry with the\nvirtual device id (-1).\n8. The events received by the apps will now have the original device id\nif a11y is enabled.\n\nTest: atest CtsInputTestCases:android.input.cts.GamepadWithAccessibilityTest\nTest: atest VerifyInputEventTest\nBug: 175069843\nChange-Id: Ie6399654f4434fdc8232e50373b6277d2f43a864\n"
    },
    {
      "commit": "3a7faf308a72dce8629476808108a7238773d2f8",
      "tree": "fa80fd547b6c2959305089598b9c84d368bdb325",
      "parents": [
        "46259c5ca650474647f19cc1dc80384db58f68f0",
        "857583385bd7504f89780c99d24b0da073fd43ce"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon May 24 17:35:01 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 24 17:35:01 2021 +0000"
      },
      "message": "Merge \"Change native lights to be consistent with java API.\" into sc-dev"
    },
    {
      "commit": "060a7276bfb9a9a33070405c1f3fce861b9e89b3",
      "tree": "698253eaaaa9b08a113b6ff7aeb24527bf53b0b3",
      "parents": [
        "d863dc9569bcbdc97bdfc4e7d80e11b6f246e32f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Feb 03 19:40:10 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 17 21:11:36 2021 +0000"
      },
      "message": "Remove LatencyStatistics from dispatcher\n\nCurrently, InputDispatcher is sending touch event information to\nwestworld. We will now be transitioning to new atoms that have better\ncoverage and statistical significance.\n\nIn this intermediate CL, we remove the LatencyStatistics so that we can\nreplace it with something better in the upcoming CLs.\n\nBug: 167947340\nTest: m libinput_tests inputflinger_tests\nChange-Id: I8fcb846321245011c3b6e6f896b99b8d9037a2a4\n"
    },
    {
      "commit": "857583385bd7504f89780c99d24b0da073fd43ce",
      "tree": "cec33402f6188d35091559e9925ff9edb006fd6c",
      "parents": [
        "d16d3a03fcab524ace2e27c3bdb8b0dd8510e940"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun May 16 23:05:17 2021 -0700"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun May 16 23:07:40 2021 -0700"
      },
      "message": "Change native lights to be consistent with java API.\n\nChange native lights type to match java API light types.\n\nBug: 181743615\nTest: atest InputDeviceLightsManagerTest, atest LightsManagerTest, atest android.hardware.input.cts.tests\nChange-Id: I45fe0489fdc070bb4057f4bea061f0cbeacad0de\n"
    },
    {
      "commit": "6e2e0effb3d4727b321942a0e7d015c4a1a27d71",
      "tree": "18a34f1739f5151b5bf73a47169b6fcb106cf81c",
      "parents": [
        "aa8864df41abd0ac6566e0414df4d8b4ee2abc2f",
        "110857969dbc8575f394e2bca577b13f5bb96131"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu May 13 04:44:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 13 04:44:03 2021 +0000"
      },
      "message": "Merge \"surface_control.h: Clarify callback documentation\" into sc-dev"
    },
    {
      "commit": "110857969dbc8575f394e2bca577b13f5bb96131",
      "tree": "1abbda58493d20ee1d680ae7a98edbbc00e7ea98",
      "parents": [
        "272e1621ce7eda67b38373f960a4b37c0f79207c"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed May 12 14:35:35 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed May 12 14:38:02 2021 -0700"
      },
      "message": "surface_control.h: Clarify callback documentation\n\nIn response to API council feedback we more clearly\ndocument the differences between the OnCommit and the\nOnComplete callbacks.\n\nFixes: 187846583\nTest: Doc changes only\nChange-Id: Ib0529d7d01de046ccae8f14c8bf8bb9a6110624d\n"
    },
    {
      "commit": "1f5e7403885f02b61d0763a38c0511f0787b8a0c",
      "tree": "9c7945ede3f9253ac3d3810797f79ff2f7299dbb",
      "parents": [
        "06784f2b9f5c6c6274b2a2a82b413f3d460e3257"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Thu Apr 29 09:15:20 2021 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon May 10 12:48:18 2021 -0500"
      },
      "message": "Mark ASurfaceControl.setGeometry as deprecated.\n\nWith the introduction of setCrop, setPosition, setBufferTransform, and\nsetScale, there\u0027s no need for setGeometry. The setGeometry API is\nconfusing since it\u0027s handled in buffer space where all other APIs are\nhandled in layer space.\n\nTest: N/A\nBug: 185533162\nChange-Id: Ief07dbf77f34e942d97ee5b0293b0a038bc1435b\n"
    },
    {
      "commit": "88fceed4409fda4804ffd5b22053c1d06b317d60",
      "tree": "494baf37649d480f58201f9332cf14236aeed924",
      "parents": [
        "ca8596e1336a57981d584258fdae1de91699bd68",
        "47cf0a089e4b1f02045e72b881f48ff1a2bdbd71"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 07 20:54:33 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 07 20:54:33 2021 +0000"
      },
      "message": "Merge \"Add NO_FOCUS_CHANGE flag to pointer gestures to disallow focus changes\" into sc-dev"
    },
    {
      "commit": "47cf0a089e4b1f02045e72b881f48ff1a2bdbd71",
      "tree": "c50d3a6adc75901be01fc32defab1f2fc4ff733f",
      "parents": [
        "92ffb4885f5da471a52481820357a63bdbe369da"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 11 20:30:57 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri May 07 11:19:23 2021 -0700"
      },
      "message": "Add NO_FOCUS_CHANGE flag to pointer gestures to disallow focus changes\n\nWhen using a multi-touch trackpad, it is the expected behavior in most\noperating systems that the user is allowed to perform gestures (like\nscroll, pinch, etc.) on an unfocused window without bringing it into\nfocus. The previous behavior in Android was that any DOWN event on an\nunfocused window would bring the unfocused window into focus, including\nany pointer gesture.\n\nThis change adds the NO_FOCUS_CHANGE flag to the MotionEvents generated\nby certain pointer gestures so that it does not change window focus.\nGestures such as tap and tap drag are not affected.\n\nBug: 173733166\nTest: atest inputflinger_tests\nTest: manual: in multi-display scenario with freeform windows and a\ntrackpad: open two freeform windows so that they overlap, perform\ngesture (scroll/pinch) on unfocused window, observe that the window is\nnot focused; perform tap on unfocused window, observe that the window is\nfocused.\n\nChange-Id: I74e52f8daa13d4e6c047bc23982ec56942c555f6\n"
    },
    {
      "commit": "2a4e4e58d61e7fb633bca400bb1a9644b01be095",
      "tree": "7c30754910ebc6647497a182a596d35e61187a98",
      "parents": [
        "00c2e36c3b9aa33b3457f47c08ab804291fcc64c",
        "ae02a1f49c1b0ae49af4331be1117b37616c0adb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 07 09:08:34 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 07 09:08:34 2021 +0000"
      },
      "message": "Merge \"Store connections by token instead of by fd\" into sc-dev"
    },
    {
      "commit": "ae02a1f49c1b0ae49af4331be1117b37616c0adb",
      "tree": "09f6dc17c663dc36065f18edfff1364cd268d02d",
      "parents": [
        "96e84d982fc1e50998983bed031a005140fb0355"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat May 01 23:14:04 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 07 00:20:20 2021 -0700"
      },
      "message": "Store connections by token instead of by fd\n\nThe connections are currently stored by fd. If a connection is removed\nvia \u0027removeInputChannel\u0027, it is possible to re-create the same\nconnection and have it keyed by the same fd. When this happens, a race\ncondition may occur where a socket hangup on this fd would cause the\nremoval of a newly registered connection.\n\nIn this refactor, the connections are no longer stored by fd. The looper\ninterface for adding fds has two versions:\n1) the old one that we are currently using, which is marked as \u0027do not\nuse\u0027\n2) the new one where a callback object is provided instead.\n\nIn this CL, we switch to the new version of the callback.\n\nThere is now also no need to store the inputchannels in a separate\nstructure, because we can use the connections collection that\u0027s now\nkeyed by token to find them.\n\nIn a future refactor, we should switch to using \u0027unique_ptr\u0027 for the\ninputchannels. Most of the time when we are looking for an input\nchannel, we are actually interested in finding the corresponding\nconnection.\n\nIf we switch Connection to shared_ptr, we can also look into switching\nLooperEventCallback to store a weak pointer to a connection instead of\nstoring the connection token. This should speed up the handling of\nevents, by avoiding a map lookup.\n\nTest: ./reinitinput.sh. Observe that it doesnt finish after this patch\nTest: atest inputflinger_tests\nBug: 182478748\n\nChange-Id: I601f765eebfadcaeff3661a10a10c4a4f0477389\n"
    },
    {
      "commit": "00c2e36c3b9aa33b3457f47c08ab804291fcc64c",
      "tree": "cb716924ab6987797bc91d4c55d1d5ddf0f8a3a2",
      "parents": [
        "c8ffd2fc5d3b8457b7237799ea338b5503a4ce58",
        "d4d4d80f73ad7c389af3dc2357582d989eb5957e"
      ],
      "author": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Thu May 06 22:08:21 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 06 22:08:21 2021 +0000"
      },
      "message": "Merge \"Add a hidden API to apply a transform the content of an event.\" into sc-dev"
    },
    {
      "commit": "d4d4d80f73ad7c389af3dc2357582d989eb5957e",
      "tree": "637114f1243b4f67dba6d644e78350c8de1635cb",
      "parents": [
        "0a63f543a8fa8ff7585773254aeb72cf1d5f2100"
      ],
      "author": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Mon May 03 20:12:21 2021 -0700"
      },
      "committer": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Thu May 06 12:11:05 2021 -0700"
      },
      "message": "Add a hidden API to apply a transform the content of an event.\n\nUnlike normal transform, this actually transforms each\npoint directly. This is only useful for transforming\ninjected events.\n\nBug: 179274888\nTest: atest libinput_tests:MotionEventTest\nChange-Id: Ifbd90649156d2dd00087bf5a97a372ccaea3d5f3\n"
    },
    {
      "commit": "5487967eabfadc136890057550ba91315a90742c",
      "tree": "93dc4e4f5ebce6e7a716b1a776f55f5ac35077a9",
      "parents": [
        "b8e9586db0d2d2c16a5fe77c2e5802b0675afbf2",
        "ae4719298a01f17f7c8575224558d079aa71b2b5"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu May 06 15:51:53 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 06 15:51:53 2021 +0000"
      },
      "message": "Merge \"AImageDecoder: respond to API feedback\" into sc-dev"
    },
    {
      "commit": "50e37fefe51554d300c28b496c942c0bab299fee",
      "tree": "e8fa3fe6a6076e625be1a4b3e8be7654305f0121",
      "parents": [
        "f938c3002201876665b12117604ff4520aca53ce",
        "a308b9d54eda851a93cc9ac2fdc8d0cf0b8d6319"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 05 13:38:04 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 05 13:38:04 2021 +0000"
      },
      "message": "Merge \"Update setFrameRate documentation\" into sc-dev"
    },
    {
      "commit": "a308b9d54eda851a93cc9ac2fdc8d0cf0b8d6319",
      "tree": "7a1a029e2f743f3d7f1b4258a13dc3baa6ae3d68",
      "parents": [
        "7eba108a9eac93c06168e3d8b1d4bfb926f4ca42"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Wed May 05 13:43:28 2021 +0200"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Wed May 05 13:36:28 2021 +0000"
      },
      "message": "Update setFrameRate documentation\n\nAdd a link to how to listen to the change in frame rate.\n\nBug: 186657402\nTest: n/a\nChange-Id: Idb04f966906964a98a744d914e5aca2b1db4ee46\n"
    },
    {
      "commit": "ae4719298a01f17f7c8575224558d079aa71b2b5",
      "tree": "94a2cd6b5fa0dfd15856b66fe5c97892c6d86493",
      "parents": [
        "9e8dd09f886e14585d2018f713b7d384e768856a"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon May 03 11:28:49 2021 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon May 03 15:29:27 2021 -0400"
      },
      "message": "AImageDecoder: respond to API feedback\n\nBug: 186656488\nTest: I4dc406e85709dda14af8b414e2da3d39bb07643b\n\nAImageDecoderFrameInfo_getDuration returns\nANDROID_IMAGE_DECODER_BAD_PARAMETER on null info.\n\nClarify that AImageDecoder_getFrameInfo will succeed if\nAImageDecoder_advanceFrame does, explaining why there are not more error\npossibilities.\n\nExplain more clearly what AImageDecoderFrameInfo_hasAlphaWithinBounds\nmeans.\n\nChange-Id: Ic02f1798904ad5ccc446fb4cd76cbff451a4e450\n"
    },
    {
      "commit": "84f07f0cbec87736f3d04846a7558869d69a2005",
      "tree": "3c53336d3f203a99953f64a1827f6325a78426c6",
      "parents": [
        "9e8dd09f886e14585d2018f713b7d384e768856a"
      ],
      "author": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Fri Apr 16 10:42:42 2021 -0700"
      },
      "committer": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Thu Apr 29 13:24:06 2021 -0700"
      },
      "message": "Add enough information to compatibility-transform getRaw()\n\nMany apps are mis-using getRaw (assuming it means screen-coordinates).\n\nThis means, for now, we have to do a compatibility transform on the\nAPI to prevent breaking said apps.\n\nFortunately, since the input window transform includes rotation,\nthe only extra information we need to calculate this compat-raw\nis the display size.\n\nThis CL topic pipes the display size around so that it makes into the\nMotionEvent and can be used to calculate getRaw()\n\nBug: 179274888\nTest: atest inputflinger_tests:InputDispatcherTest\nChange-Id: Iff893643312e8ec9f38eeb96d76a41fdb3a28350\n"
    },
    {
      "commit": "cfd247d31873412d6369d63033a57f1741b9230d",
      "tree": "db8ca6fa03f7a804e3c8b239e739f2ad58430a22",
      "parents": [
        "721764343a19c03767fec6ee30c5c5488646c349",
        "cf485437a02da258219516c72bf57dcb579a0d8e"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Apr 27 19:22:24 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 27 19:22:24 2021 +0000"
      },
      "message": "Merge \"AImageDecoder: only support animation for F16 and 8888 (header)\" into sc-dev"
    },
    {
      "commit": "227e8f0a4bd76e7043f8b27cae754eca0f5bc33b",
      "tree": "38088b1d2e573ac6bc633a137d83580cc848141f",
      "parents": [
        "7eba108a9eac93c06168e3d8b1d4bfb926f4ca42",
        "293ac2c604419543ae05210aab47543577993caa"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Tue Apr 27 15:56:08 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 27 15:56:08 2021 +0000"
      },
      "message": "Merge \"Update docs for setFrameRate\" into sc-dev"
    },
    {
      "commit": "cf485437a02da258219516c72bf57dcb579a0d8e",
      "tree": "c72160e37261e9cd30c3b33e6e8130591f2ececb",
      "parents": [
        "5bab982501f472655f4d9b300c792e96621fde2c"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Apr 26 15:15:45 2021 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Apr 26 15:37:32 2021 -0400"
      },
      "message": "AImageDecoder: only support animation for F16 and 8888 (header)\n\nBug: 180594747\nTest: I51dedd94aa8ff5d6846cada96861ffca30d509d7\n\nIn particular, a client might expect that ANDROID_BITMAP_FORMAT_RGB_565\nis supported. (ANDROID_BITMAP_FORMAT_RGBA_4444 is not supported at all,\nand ANDROID_BITMAP_FORMAT_NONE is an invalid request.\nANDROID_BITMAP_FORMAT_A_8 is only supported for PNG and JPEG, and\nAImageDecoder does not support multiframe images in those formats\nanyway.)\n\nHowever, 565 requires that the image be opaque. Even if the first frame\nis opaque, it is possible that a later frame is not. Moreover, the frame\ndata in a later frame may include transparent pixels, even if the\nresulting frame is opaque after blending with the frame buffer. In that\ncase, libwebp and libgifcodec decode the frame data directly to 565, so\nthe fact that there were transparent pixels has been lost, and there is\nno way to properly blend with the prior frame.\n\nFor clarity, specify the formats supported, rather than the ones not\nsupported.\n\nChange-Id: I03818703dc79942be4e574db31c6e2927ab571ed\n"
    },
    {
      "commit": "293ac2c604419543ae05210aab47543577993caa",
      "tree": "9e5dc6969c857e3f3bdd973f277dd57b0c0080e6",
      "parents": [
        "e4d7d43dd2a079e6ac89264c417fa58ce6ae8d7b"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Apr 26 14:13:04 2021 +0200"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Mon Apr 26 14:17:33 2021 +0200"
      },
      "message": "Update docs for setFrameRate\n\nExplicitly state that when fps\u003d0 the other two parameters\nof setFrameRate are ignored.\n\nBug: 161776961\nTest: n/a\nChange-Id: Ife8c462c3832e583599126708211f4cc79d431ae\n"
    },
    {
      "commit": "fc46c1e6e58ff5acdc72feea409e4aa03f978be9",
      "tree": "39b091bf9985947e831871fe688c3e009e1aecab",
      "parents": [
        "1510dad2e8929f632a49f56e7658f2c5d5246390"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 21 08:31:32 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 21 08:41:48 2021 -0700"
      },
      "message": "Introduce ASurfaceTransaction_setOnCommit api\n\nIntroduce a new callback for SurfaceControl transactions that\nfire after we commit a transaction in SurfaceFlinger. This\nwill help some clients pace when they should apply the next\ntransaction so it get applied on the next vsync. If they wait for\nthe existing transaction complete callback, there may not be\nenough time between when the client applies the transaction\nand surface flinger waking up and apply it on the new vsync.\nThis would mean the update would arrive a frame late.\n\nThis callback is guaranteed to fire before the transaction complete\ncallback. It includes all the stats as the transaction complete\ncallback with the exception of jank data, present fence\nand the previous buffer release fence.\n\nThis callback piggybacks of the oncomplete callback implementation\nby modifying the callback id to provide a callback type. The\ncallbacks are filtered in SurfaceFlinger to invoke them earlier. In\nSurfaceComposerClient, they are filtered again to make sure the\ncallbacks are invoked in order, oncommit before oncomplete.\n\nBug: 185843251\nTest: atest ASurfaceControlTest\nChange-Id: I57e85d75214376935e366d3825a6f3f1a8a4e79b\n"
    },
    {
      "commit": "be8d009ab57954caa41a1332506de0b8f80d10ac",
      "tree": "dbd4223292fa4cfaa6c28f450c9edffc4dfe6e1a",
      "parents": [
        "e4d7d43dd2a079e6ac89264c417fa58ce6ae8d7b"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Mar 29 18:49:46 2021 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Apr 19 18:12:21 2021 -0500"
      },
      "message": "Updated public surface control APIs\n\nTest: ASurfaceControlTest\nBug: 170765639\nChange-Id: Ief38cd684b7f97294c708fc6ca8a8c3055565aee\n"
    },
    {
      "commit": "c150ea1268f5eb90dafe35f0ff504b87b2fc99d0",
      "tree": "ef040ed9a24b1f288a8a791000ae0997fb6a166e",
      "parents": [
        "0e4c8a4648f7c7e44ebd7ddd7c02302744334df6"
      ],
      "author": {
        "name": "gfan",
        "email": "gfan@google.com",
        "time": "Wed Apr 14 09:27:55 2021 -0700"
      },
      "committer": {
        "name": "Gerry Fan",
        "email": "gfan@google.com",
        "time": "Thu Apr 15 03:50:53 2021 +0000"
      },
      "message": "Fixing ndk reference doc link errors in imagedecoder.h etc.\n\nBug: 183012389,183026241\nTest: \u0027m ndk\u0027, regenerate ndk reference doc, no broken link warnings\nChange-Id: I8c74e929266666f64d0f7d41e87dffeb4bfdfe37\n"
    },
    {
      "commit": "31dfd6a47bc0f66d0d74d5bea0fb95e51e578827",
      "tree": "76f941c0a89a0f7fd260009c6f67405e3e0ffaec",
      "parents": [
        "ba8e67a377c500dc334cb21c37e3ee210793fcbd",
        "5d5faa47b48263837f8d3083ae5c94173927ddf1"
      ],
      "author": {
        "name": "Gerry Fan",
        "email": "gfan@google.com",
        "time": "Tue Apr 13 20:48:22 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 20:48:22 2021 +0000"
      },
      "message": "Merge \"Fixing ndk reference doc link errors in a few headers:   hardware_buffer.h, sensor.h, trace.h, window.h\" into sc-dev"
    },
    {
      "commit": "5d5faa47b48263837f8d3083ae5c94173927ddf1",
      "tree": "85017e588daa594056d4db7d5d6dcc54200a4bce",
      "parents": [
        "5ea461caa65d5fd21ae1cf9f2125481b5b3189af"
      ],
      "author": {
        "name": "gfan",
        "email": "gfan@google.com",
        "time": "Mon Apr 12 15:14:29 2021 -0700"
      },
      "committer": {
        "name": "gfan",
        "email": "gfan@google.com",
        "time": "Tue Apr 13 11:29:34 2021 -0700"
      },
      "message": "Fixing ndk reference doc link errors in a few headers:\n  hardware_buffer.h, sensor.h, trace.h, window.h\n\nBug:183022435, 183028131\nTest: run \u0027m ndk\u0027 and regnerate reference docs, check the result is\ncorrect\n\nChange-Id: I7413453cd7f64f9585ed173d383708b25fcda5cb\n"
    },
    {
      "commit": "80402b9369c0962f1a0932da7d0e1d555b605adb",
      "tree": "c9436d630c819cd01651837a5d7a13c57c547c91",
      "parents": [
        "80c88126581a48e26b983bb95241598679e46a65",
        "351e85e2400503ee9e9108203bccd5d6f1f949c5"
      ],
      "author": {
        "name": "Gerry Fan",
        "email": "gfan@google.com",
        "time": "Tue Apr 13 00:00:01 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 00:00:01 2021 +0000"
      },
      "message": "Merge \"Fix ndk native reference documentation link errors/warnings\" into sc-dev"
    },
    {
      "commit": "351e85e2400503ee9e9108203bccd5d6f1f949c5",
      "tree": "54596992af616a4663b33c9119469a36f46d74d7",
      "parents": [
        "8fafdfc17b7f3f95fbe87ed270059aadedfe6944"
      ],
      "author": {
        "name": "gfan",
        "email": "gfan@google.com",
        "time": "Tue Apr 06 18:50:06 2021 -0700"
      },
      "committer": {
        "name": "Gerry Fan",
        "email": "gfan@google.com",
        "time": "Thu Apr 08 00:48:27 2021 +0000"
      },
      "message": "Fix ndk native reference documentation link errors/warnings\n\nTrivial changes, no functionality impact.\n\nBug: 183002717\nTest: build ndk with \u0027m ndk\u0027 works\nChange-Id: I1ee646f28500ad5769abdddd4e9780a1915fd528\n(cherry picked from commit 7fed43d17aa7c6d8ff4d7a179d53ee7dc9f26d89)\n"
    },
    {
      "commit": "0b264bb47731c140741e2e98927e41a512b5cc25",
      "tree": "c34fa20287f4451e5f3e878f6b4b03565576235d",
      "parents": [
        "b19cc001167bd3c7417330cb021539541e8e1d4f"
      ],
      "author": {
        "name": "Jimmy Shiu",
        "email": "jimmyshiu@google.com",
        "time": "Wed Mar 03 00:30:50 2021 +0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed Apr 07 14:37:02 2021 -0700"
      },
      "message": "ADPF: Plumb getAppSession throughout PowerHal wrapping\n\nTest: Manual test, run bouncy ball\nTest: atest libpowermanager_test:PowerHalWrapperAidlTest\nTest: atest libpowermanager_benchmarks\nBug: 158791282\nChange-Id: I0cf3420f3cf79f107347a640e6f14c1eeac60f23\nSigned-off-by: Wei Wang \u003cwvw@google.com\u003e\n"
    },
    {
      "commit": "2be71a48cb58eed22c8062225f7fe51fa02497b8",
      "tree": "3190958dd7df847aede1e27ba934920061d360eb",
      "parents": [
        "cfda9aafc3cee6aa12f2fb9a0cd6506fa7e26455",
        "e2b1e5c71765d5b8bc303bbfa6741c0c96e95d44"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Apr 04 22:49:07 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 04 22:49:07 2021 +0000"
      },
      "message": "Merge \"Introduce Device Controller to InputReader\" into sc-dev"
    },
    {
      "commit": "33216a47139f1671edce14150df7eb7d58b19af5",
      "tree": "c49f63d79fb020911df6a043a95084c66607a146",
      "parents": [
        "33324ae8ea06ba70f6bb39267ed70567a347d0d1",
        "f08168d93a03a6663707d97b58fc40278439abf1"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Apr 02 19:03:14 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 02 19:03:14 2021 +0000"
      },
      "message": "Merge \"ASurfaceTransaction: Add setEnableBackpressure\" into sc-dev"
    },
    {
      "commit": "e2b1e5c71765d5b8bc303bbfa6741c0c96e95d44",
      "tree": "fdb0dd18d06524d550f080a9fe2ba5531c29214c",
      "parents": [
        "6368475d4373ef9427b452f9704361d6c7e04fc7"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Mar 10 22:45:12 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Thu Apr 01 22:58:35 2021 -0700"
      },
      "message": "Introduce Device Controller to InputReader\n\nIntroduce Device Controller to manage non-evdev devices associated with\nthe input device kernel interface. These devices doesn\u0027t interact with\ninputflinger with input events which requires a mapper to process the\nraw event with assoicated input sources.\n\nBug: 180342233\nTest: atest inputflinger_tests\nChange-Id: Ib492bb3de889db180c05367bb6a7e7a2e0d78ce7\n"
    },
    {
      "commit": "75ba8bcd4209377ddd32b3e23e89b7ad9c382a9e",
      "tree": "d2a5274d70ce0053e76c6b43086bff02f0d31099",
      "parents": [
        "7f56cf876a74bd778f38c6d1dab6632f010cf6f8",
        "c5986778d0d6c7ab3f96fafb1b84887e901ed92b"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Wed Mar 31 14:30:26 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 31 14:30:26 2021 +0000"
      },
      "message": "Merge \"setFrameRate: Make shouldBeSeamless an enum\" into sc-dev"
    },
    {
      "commit": "2814c319824f2e4cedac64173f39d975dd75f988",
      "tree": "71a709ab5548b2f0e7b7d0f1bc5f823207de1ab5",
      "parents": [
        "25b04bb37d55840ac7da53e686bd175bf336be79",
        "f94ae02551f703e2b549299a9e39a1cebf547df8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 31 10:11:52 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 31 10:11:52 2021 +0000"
      },
      "message": "Merge \"Pass latency information from app to input\" into sc-dev"
    },
    {
      "commit": "38605fc3825897338fc284bbb79ee7557f3a6f07",
      "tree": "641973e63d2da7475a3fea9fbdb4343d516f71e7",
      "parents": [
        "9b84761b3845809f14645cd7576d100e9cc59b36"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 29 20:33:42 2021 +0000"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 29 20:35:09 2021 +0000"
      },
      "message": "Clarify that the buffer passed to ASurfaceTransaction_setBuffer\nneeds to have AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE.\n\nTest: N/A\nBug: 183950013\n\nChange-Id: I35de7fba1a15ec8fd96277d946c985b5a5876169\n"
    },
    {
      "commit": "f08168d93a03a6663707d97b58fc40278439abf1",
      "tree": "ec8011a166979224e91673d8d0ee77d56867e6ff",
      "parents": [
        "0a99dbe344bb473d08f5bf88392b1b74a102a0f0"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 24 15:49:18 2021 -0700"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 24 22:59:13 2021 +0000"
      },
      "message": "ASurfaceTransaction: Add setEnableBackpressure\n\nExpose the flag to the NDK. See source comment for discussion.\n\nBug: 177458703\nTest: Need new CTS\nChange-Id: Iab60a537268aa2d42175eca3658ea190045c8bdd\n"
    },
    {
      "commit": "796cdab0267173c873f508a6cefeddf8d2ff7d14",
      "tree": "d1327198df874b22d0f9ae1a57cad70f38bd2292",
      "parents": [
        "ac3aacf7ca34f2cea9e7d5a9befba67f063ebe22",
        "fb3ab5b691e614cf6ab538d5f6005e20a668db6d"
      ],
      "author": {
        "name": "Vasiliy Telezhnikov",
        "email": "vtelezhnikov@google.com",
        "time": "Wed Mar 24 13:26:04 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 24 13:26:04 2021 +0000"
      },
      "message": "Merge \"Split ASurfaceTransaction_setGeometry api\" into sc-dev"
    },
    {
      "commit": "c5986778d0d6c7ab3f96fafb1b84887e901ed92b",
      "tree": "8e99206a5ad1852ac86affa3e35ac51f1ba4206f",
      "parents": [
        "3b1f7bcf8fd0ca2458eb26ec31a1bddf4bf7fd43"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Tue Mar 16 16:09:49 2021 +0100"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Wed Mar 24 13:19:07 2021 +0100"
      },
      "message": "setFrameRate: Make shouldBeSeamless an enum\n\nChange the shouldBeSeamless parameter to an enum\nin order to make the API easier to understand.\nThis changes\n - SurfaceControl.setFrameRate\n - Surface.setFrameRate\n - ANativeWindow_setFrameRateWithChangeStrategy\n - ASurfaceTransaction_setFrameRateWithChangeStrategy\n\nBug: 179116474\nTest: atest SetFrameRateTest\nChange-Id: I28a8863ea77101f90b878fbda5f00d98e075b7cc\n"
    },
    {
      "commit": "f94ae02551f703e2b549299a9e39a1cebf547df8",
      "tree": "f2fb36f861035c69128f38ca2f6b50f59934f2ff",
      "parents": [
        "1da42f046525842aa515211a20dc1459cc699a42"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Feb 04 01:23:17 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 24 10:06:08 2021 +0000"
      },
      "message": "Pass latency information from app to input\n\nOnce the app learns about the frame\u0027s timeline, it will tell\ninputdispatcher about it. We are adding a new callback similar to\n\u0027finishInputEvent\u0027, called \u0027reportLatencyInfo\u0027.\n\nThis will tell inputdispatcher about the queue time and the present time\nof each frame that was caused by input.\n\nInputDispatcher will then be able to reconstruct the input event\ntimeline and report the end-to-end latency metrics.\n\nIn a separate CL, we will add LatencyTracker, which will eventually\nreceive this data.\n\nUsing the event id and the provided queue time and present time, we will\nbe able to reconstruct the end-to-end latency inside LatencyTracker.\n\nBug: 167947340\nTest: atest inputflinger_tests libinput_tests\nChange-Id: I181532a01b34eecd186bc3c74db289fc59c5955c\n"
    },
    {
      "commit": "4729949b505529ac7e3e006841f8b395125300c5",
      "tree": "ac926c692581a30e109cc88e4c573547e7560506",
      "parents": [
        "c6980309378f2bfdcbb84d4792e20bd0a7f8ac22"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 23 00:54:35 2021 +0000"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 23 07:11:40 2021 +0000"
      },
      "message": "Add NDK API for getprocdns, setprocdns\n\nThe API allows callers to control the default network that is used for\nDNS hostname resolution.\n\nTest: atest CtsNetTestCases\n      Tests in change I00143cafcd3eb1d71e8d5c7ea9c839a99dc6f4ce\nBug: 171540887\nChange-Id: I70d8113ae49cd1e0910a6dbc5929b6a157c44f42\n"
    },
    {
      "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": "fb3ab5b691e614cf6ab538d5f6005e20a668db6d",
      "tree": "79d30179ce774a8b996c470b7f0cf03156204392",
      "parents": [
        "82af789b6900ebd212c58e5a07edba3e74ddc874"
      ],
      "author": {
        "name": "Vasiliy Telezhnikov",
        "email": "vtelezhnikov@google.com",
        "time": "Sat Mar 13 20:00:26 2021 -0500"
      },
      "committer": {
        "name": "Vasiliy Telezhnikov",
        "email": "vtelezhnikov@google.com",
        "time": "Sat Mar 13 20:04:29 2021 -0500"
      },
      "message": "Split ASurfaceTransaction_setGeometry api\n\nThis CL adds three new methods: setSourceRect, setPosition and\nsetTransform.\n\nTest: ASurfaceControlTest\nBug: 173671170\nChange-Id: I51bc386b1d06dd4eb0270873d7c2fb465878fb49\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"
    }
  ],
  "next": "f452a2a34d5a7fbafbc1d08f814b3f23a0c7231c"
}
