)]}'
{
  "log": [
    {
      "commit": "044fd03c4a7d3b75aeb6ca2bd7fb6155d2cdb787",
      "tree": "f455ab114623797a9286f4f7c2bcd521f1cb1719",
      "parents": [
        "691c440bca89aea04848338d2a83ebcc8d2d1995"
      ],
      "author": {
        "name": "Mary Koliadenko",
        "email": "mako@google.com",
        "time": "Fri Mar 07 16:19:09 2025 +0000"
      },
      "committer": {
        "name": "Mary Koliadenko",
        "email": "mako@google.com",
        "time": "Mon Mar 10 14:15:10 2025 +0000"
      },
      "message": "Release a new alpha version for AGDK components.\n\nChange-Id: I9002af18413b19f75bd3d18dde19dfd38bed3c41\nTest: N/A\n\n"
    },
    {
      "commit": "691c440bca89aea04848338d2a83ebcc8d2d1995",
      "tree": "0c75c07c798b70163c76fc9b9720560f3c2d56cf",
      "parents": [
        "9d54c680159cc41f03d5a92eaaad6295ac2a20d5"
      ],
      "author": {
        "name": "Mary Koliadenko",
        "email": "mako@google.com",
        "time": "Thu Mar 06 12:52:42 2025 +0000"
      },
      "committer": {
        "name": "Mariia (Mary) Koliadenko",
        "email": "mako@google.com",
        "time": "Fri Mar 07 07:18:17 2025 -0800"
      },
      "message": "Remove ndk.dir from Android Games SDK.\n\nIt\u0027s deprecated and spams up the build logs.\n\nBug: 401200628\nChange-Id: I7feaea6bc69242bd297484bda527a51cefa956a1\nTest: manual\n\n"
    },
    {
      "commit": "9d54c680159cc41f03d5a92eaaad6295ac2a20d5",
      "tree": "5a4707e5781f580e151a33d10b174d0571e4eee6",
      "parents": [
        "1ed01539c0af052243de9b93acbc6420ba8c62dc"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Mar 07 13:03:13 2025 +0000"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Mar 07 13:03:13 2025 +0000"
      },
      "message": "Better support for emoji in game-text-input\n\nRefactored game-text-input tests and test app\n\nTest: build.sh tests\n\nChange-Id: Ia2184e4d736fda8855e1a28b7f12f19f460fc6b9\n"
    },
    {
      "commit": "1ed01539c0af052243de9b93acbc6420ba8c62dc",
      "tree": "5a138cff58294ed103666ad1ed8b06204385ebfc",
      "parents": [
        "a63ecca1b114e86fd4d32ae4f0f7b5e6486843e6"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Thu Mar 06 15:55:22 2025 +0000"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Mar 07 03:48:54 2025 -0800"
      },
      "message": "Update gradle to 8.8.1\n\nUpdate java to 17\n\nBug: 401200628\n\nTest: manual\nChange-Id: I4ace665b1c73507241cc63bf375d59e2f8f4d501\n"
    },
    {
      "commit": "a63ecca1b114e86fd4d32ae4f0f7b5e6486843e6",
      "tree": "b165c46d940b0ab9200d1f03ade4059425841b33",
      "parents": [
        "1198bb06b041e2df5d42cc5cf18fac81fcefa03f"
      ],
      "author": {
        "name": "Mary Koliadenko",
        "email": "mako@google.com",
        "time": "Fri Feb 28 16:38:56 2025 +0000"
      },
      "committer": {
        "name": "Mary Koliadenko",
        "email": "mako@google.com",
        "time": "Fri Feb 28 18:26:30 2025 +0000"
      },
      "message": "Consistently report keyboard open|close events in GameActivity.\n\nFixes: 399154889\nTest: local\n\nChange-Id: Iec92e67949dd4c9b845f667880bea6615d3c9f2e\n\n"
    },
    {
      "commit": "1198bb06b041e2df5d42cc5cf18fac81fcefa03f",
      "tree": "02b7645219cb6792a947b589b35ae3300ac3d1ed",
      "parents": [
        "56b0b77f6688b0c11e2019edb483f01591380399"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Jan 31 13:47:11 2025 +0000"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Jan 31 13:47:11 2025 +0000"
      },
      "message": "Fix GameActivity getLocale* functions.\n\nFixes: 340906533\nTest: ./build.sh tests\nChange-Id: Idffd4355eb90f06d9029076032b0328d842db890\n"
    },
    {
      "commit": "56b0b77f6688b0c11e2019edb483f01591380399",
      "tree": "2c1f9be48c5455040df71af1215a050c77464099",
      "parents": [
        "07eff7294b5963472724debf94ed6f03fd15e0bc"
      ],
      "author": {
        "name": "Viktor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Wed Jan 22 15:18:10 2025 +0000"
      },
      "committer": {
        "name": "Viktor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Wed Jan 22 16:24:13 2025 +0000"
      },
      "message": "Change ownership of AGDK to GPU Insights team.\n\nTest: N/A\nBug: N/A\nChange-Id: Ie49471273d66537ff7199fdbb514111ec92c4173\n"
    },
    {
      "commit": "07eff7294b5963472724debf94ed6f03fd15e0bc",
      "tree": "a8144d3005e9da6bbacd23e17c9f3604eeb10ff0",
      "parents": [
        "f0eaf3961dd78949317590a8a6534edbcc917c60"
      ],
      "author": {
        "name": "Viktor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Tue Jan 21 13:07:42 2025 +0000"
      },
      "committer": {
        "name": "Viktor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Tue Jan 21 13:14:32 2025 +0000"
      },
      "message": "Change GameActivity and GameTextInput to 4.1 alpha.\n\nBug: N/A\nTest: N/A\n\nChange-Id: I75d67f6cfe75901efde5bd7cbe01086905c3abce\n"
    },
    {
      "commit": "f0eaf3961dd78949317590a8a6534edbcc917c60",
      "tree": "c355c523f2a997e3408089d999291eb818268949",
      "parents": [
        "f7656b84151dbc1570c8730861b7b5d3ed6be1db"
      ],
      "author": {
        "name": "Viktor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Mon Jan 20 14:39:58 2025 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jan 20 07:21:12 2025 -0800"
      },
      "message": "Upgrade GameActivity and GameTextInput to release candidate.\n\nTest: N/A\nBug: 367670431\nChange-Id: Ida8fa814f80b672650e18153f68fae77731348ca\n"
    },
    {
      "commit": "f7656b84151dbc1570c8730861b7b5d3ed6be1db",
      "tree": "03496bf46b3287267c922be7a6a7cbcd6a0d45fc",
      "parents": [
        "26f4f86b8b178255240aaf650a1a1d60332ad683"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Jan 08 14:35:35 2025 +0000"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Jan 08 14:45:31 2025 +0000"
      },
      "message": "GameTextInput: Handle IME_ACTION_UNSPECIFIED editor action as \u0027Enter\u0027\n\nFixes swiftkey multiline edit\n\nTest: manual\nFix: 385287245\nChange-Id: I1cf3bffd4549c68396dd5480248e769cc85725e5\n"
    },
    {
      "commit": "26f4f86b8b178255240aaf650a1a1d60332ad683",
      "tree": "0633f46808d72493d86e80b4904b26f16d813ae0",
      "parents": [
        "4d8f6734f7db5dae785e3a37517a7281e191d414",
        "12b373de43eae8500d66ae82f0d810b0d7ae62e7"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jan 06 05:56:40 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 06 05:56:40 2025 -0800"
      },
      "message": "Merge \"promote GameActivity and GameTextInput to 4.0.0beta01\" into main"
    },
    {
      "commit": "12b373de43eae8500d66ae82f0d810b0d7ae62e7",
      "tree": "c01051c5a4beba768480bee88c1e0ca44cc20753",
      "parents": [
        "65a45983d2be4c3a2b1b6693c2ef655e91f319b0"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jan 06 11:35:02 2025 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jan 06 11:35:02 2025 +0000"
      },
      "message": "promote GameActivity and GameTextInput to 4.0.0beta01\n\nWe have addressed NDK API council\u0027s feedback and are ready to release\npublic beta version of both libraries.\n\nBug: 367670431\nTest: ./build.sh tests\nChange-Id: I5da08d062f6e3f77ce5f20b62653f7c655429155\n"
    },
    {
      "commit": "4d8f6734f7db5dae785e3a37517a7281e191d414",
      "tree": "02e6038dc01d846e8d3ede5650455e908ff84cf6",
      "parents": [
        "7f6dc69651c855cf1df9a861cf23939593b383da"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 31 15:25:42 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Jan 02 12:34:10 2025 +0000"
      },
      "message": "add backing types for all enumerations in GameActivity/GameTextInput\n\nThis satisfies NDK council requirement saying \"enums must specify their\nbacking type\".\n\nFixes: 383564412\nTest: ./build.sh tests\nChange-Id: Idbc08f6a1035ebed30d9bbc00d93cb968f4bce16\n"
    },
    {
      "commit": "7f6dc69651c855cf1df9a861cf23939593b383da",
      "tree": "c14b92cf1c4d658d202861b4048f5190eed10a65",
      "parents": [
        "071611938a3ad458abdb3b3d36f59bd5f456e1c9"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 31 15:06:21 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 31 15:06:21 2024 +0000"
      },
      "message": "add concise comments on GameActivity locales support\n\nThis CL adds detail comments on GameActivity\u0027s locale functions,\nincluding parameter semantics, return values and error handling.\nAlso it\u0027s mentioned that GameActivity\u0027s locale functionality\nis identical to corresponding Java interfaces.\n\nFixes: 383564226\nTest: N/A\nChange-Id: I4e6b1b075e4effd2564a7822fccba6e7896a29ef\n"
    },
    {
      "commit": "071611938a3ad458abdb3b3d36f59bd5f456e1c9",
      "tree": "d3237b41246bee97d5c6ddb29bf57897d7056026",
      "parents": [
        "65a45983d2be4c3a2b1b6693c2ef655e91f319b0"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 31 14:22:57 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 31 14:22:57 2024 +0000"
      },
      "message": "add comments on reserved range for android_app_write_cmd()\n\nThis CL adds comments to bring clarity on what values are reserved for\nthis library (non-negative) and what values can be used for custom\nuser\u0027s event (negative 8 bit values).\n\nFixes: 383565156\nTest: N/A\nChange-Id: Ia1d4a8c2ece0c330d1b478205dc0bf0712060f51\n"
    },
    {
      "commit": "65a45983d2be4c3a2b1b6693c2ef655e91f319b0",
      "tree": "f7c88f93fad3218ba8fc1160c53cff038d2f4422",
      "parents": [
        "251aada90ca798701ae3a34d8c6026b36036723e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Nov 08 15:15:22 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Nov 08 15:15:22 2024 +0000"
      },
      "message": "make android_app_write_cmd() publicly available\n\nThis CL exposes android_app_write_cmd() function which has been\npreviously only used internally. It can be useful for implementing\ncustom events at the game_activity_glue level.\n\nBug: 371512572\nTest: ./build.sh tests\nChange-Id: Iaa2a343b14f2749ea6d47b495d49b8c39b092c55\n"
    },
    {
      "commit": "251aada90ca798701ae3a34d8c6026b36036723e",
      "tree": "7107bdd19dcede7c405b78b5aff7c464244f5e9c",
      "parents": [
        "302d63bbb1dabf0469150ee7738db9ef51d2871a"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Oct 30 16:58:19 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Nov 04 11:13:38 2024 +0000"
      },
      "message": "Pass up-to-date locale data to the native code\n\nThis CL adds code and interfaces that provide locale data to the native\ncode. This provides information from Android\u0027s getLocales() function and\nLocale object. This information is updated on every configuration\nchange.\n\nFixes: 340906533\nTest: ./build.sh tests\nChange-Id: Ia2ed4d5115295596d2478b9a02c5c8bbc6ceedde\n"
    },
    {
      "commit": "302d63bbb1dabf0469150ee7738db9ef51d2871a",
      "tree": "7e997000d50b2d32bf9d08d91044905ee5402a33",
      "parents": [
        "e79542803f1b999c03845ea18f070f53846869ce"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Oct 28 15:36:58 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Oct 28 15:50:48 2024 +0000"
      },
      "message": "fix version strings in Swappy and TuningFork\n\nThere was a problem in the way version strings were built. This CL adds\nproper stringify/concatenate operations.\n\nFixes: 369331423\nTest: ./build.sh tests\nChange-Id: I1ee69a4caeb24601fb6d595b365aaf7f925d82b2\n"
    },
    {
      "commit": "e79542803f1b999c03845ea18f070f53846869ce",
      "tree": "d5e2ec06d4c437ced414e4f2a7c15019d9d5357e",
      "parents": [
        "7b435a4ad7c104674997a2a99a6d50e65436ebc4"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Oct 08 16:32:35 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Oct 08 16:32:35 2024 +0100"
      },
      "message": "bump GameActivity and GameTextInput to 4.0.0alpha01\n\nWe are changing interfaces, that\u0027s why we need a new major release.\n\nBug: N/A\nTest: ./build.sh tests\nChange-Id: I2d20d0e26a03c1157930e0524d5baec346e8448f\n"
    },
    {
      "commit": "7b435a4ad7c104674997a2a99a6d50e65436ebc4",
      "tree": "6e8359ab4f29c5f22136244258e70421af5d6ad2",
      "parents": [
        "41771238f6ffb4dc563ab9ffa806320828f3dbd7"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Oct 08 16:22:46 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Oct 08 16:22:46 2024 +0100"
      },
      "message": "support text selection for game_text_input_testbed test app\n\nBug: N/A\nTest: build and run game_text_input_testbed\nChange-Id: Iffdf6b46fed57f712d233b4370ef60634bf90925\n"
    },
    {
      "commit": "41771238f6ffb4dc563ab9ffa806320828f3dbd7",
      "tree": "8822d62f98a9fc76e353d453413cbbf925b34d56",
      "parents": [
        "a9e678b2cd05e8ad3ad161e00e076c819157a1ca"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Oct 08 16:20:37 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Oct 08 16:20:37 2024 +0100"
      },
      "message": "fix AGDK tests\n\nThis CL reverts to NDK version 33 for GameTextInput tests only because\nEspresso seems to conflict with NDK 35.\n\nAlso this temporary disables Swappy tests as they are unreliable.\n\nBug: N/A\nTest: ./build.sh tests\nChange-Id: I63a1a0d34cc7882066ddbcc2b36ac79cdc42eebe\n"
    },
    {
      "commit": "a9e678b2cd05e8ad3ad161e00e076c819157a1ca",
      "tree": "e58c3ec3b88591627074c72b5bc59b71edccc144",
      "parents": [
        "a23ac79757823ad1e4cb068a26582c85e49493d5"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Thu Sep 12 15:34:28 2024 +0100"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Thu Sep 19 15:03:18 2024 +0000"
      },
      "message": "Add navigation using left and right arrow keys to gametextinput.\n\nIf multiple letters are selected, pressing arrow keys move the cursor\nto the end of selection. If no letters are selected, pressing arrow keys\nmoves the cursor one space.\n\nTest: Used agdktunnel and a 3rd party keyboard with arrows\nBug: b/361220974\nChange-Id: I1aaedb3de2be86972ee4db9d273afaa6f1b89e47\n"
    },
    {
      "commit": "a23ac79757823ad1e4cb068a26582c85e49493d5",
      "tree": "e2adc48a25bb8388168b82a8b7276ca4a04b96ff",
      "parents": [
        "e4a506bb1639c0f15a9ff1a9e133f42129445d04"
      ],
      "author": {
        "name": "Victor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Tue Sep 17 16:37:55 2024 +0100"
      },
      "committer": {
        "name": "Victor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Tue Sep 17 16:16:27 2024 +0000"
      },
      "message": "Fix external directory code.\nBug: 323404241\nTest: Run  agdktunnel\n\nChange-Id: Ib3e017c88af521d5b3a9863580daf003e04a8ee0\n"
    },
    {
      "commit": "e4a506bb1639c0f15a9ff1a9e133f42129445d04",
      "tree": "6f4a26b02601eeea57729ff1299993ab0bd9b4ac",
      "parents": [
        "42a9c21745c6eb0de26166462051a0d4b16f7741"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 18:23:48 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 18:28:57 2024 +0100"
      },
      "message": "GameTextInput: Prevent keyboard input after GameActivity_hideSoftInput\n\nFixed InputConnection#getSoftKeyboardActive()\n\nUpdated samples: game_text_input_testbed, adgktunnel\n\nonCreateInputConnection required update:\n  @Override\n  public InputConnection onCreateInputConnection(EditorInfo outAttrs) {\n    if(!mInputConnection.getSoftKeyboardActive()) {\n      return null;\n    }\n    if (outAttrs !\u003d null) {\n      GameTextInput.copyEditorInfo(mInputConnection.getEditorInfo(), outAttrs);\n    }\n    return mInputConnection;\n  }\n\nTest: manual\nFix: 292560457\nChange-Id: If89118822e9fe616397207d1c0ce9cb42422ea18\n"
    },
    {
      "commit": "42a9c21745c6eb0de26166462051a0d4b16f7741",
      "tree": "7fd52f23f8d60c7280460c16cb29f791a5e201f8",
      "parents": [
        "f698660efa2d19d2fc597127037851b33b50dff3"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 14:48:35 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 16:36:57 2024 +0100"
      },
      "message": "Samsung keyboard fix\n\nTest: manual, ./build.sh tests\nBug:\nChange-Id: Ib6e87f43fba0726506d9e1f1a2dd21aba2ca346d\n"
    },
    {
      "commit": "f698660efa2d19d2fc597127037851b33b50dff3",
      "tree": "9a382a130d38c033777fc1d9e7704c4bbc398333",
      "parents": [
        "280b74118888b35fbff03c3d9fdd8742a505edc9"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Thu Sep 12 16:02:46 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 16:36:54 2024 +0100"
      },
      "message": "Fix various input issues\n\nUse more BaseInputConnection methods\nMore logs\nRemoved software backspace test cases\n\nTest: manual, ./build.sh tests\nBug: 331354808, 331571350\n\nChange-Id: I389e6c3015b67fa0241d31e2470f1e950b47eb4d\n"
    },
    {
      "commit": "280b74118888b35fbff03c3d9fdd8742a505edc9",
      "tree": "555f205481859d8b682f596f0924b235b66f30f9",
      "parents": [
        "d42326a73edd1f1816cf16545f6e48d33462d07e"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 15:49:40 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 15:52:48 2024 +0100"
      },
      "message": "GameInputText: code refactoring\n\nTest: manual\nBug: n/a\n\nChange-Id: If16ab0a23d1c5362b39e3f3ebc414e7201f8d1ec\n"
    },
    {
      "commit": "d42326a73edd1f1816cf16545f6e48d33462d07e",
      "tree": "88ac30f4397765daf7718e498f391fa7c4eef2cc",
      "parents": [
        "9e977e14c4e8e05d8c5b77be9f90311b2d4dbddd"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 13:54:24 2024 +0000"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 13:54:31 2024 +0000"
      },
      "message": "Use temporal listener variable in InputConnection to prevent race conditions\n\nTest: manual\nBug: n/a\nChange-Id: I40eb05043c0bd3cbc461341c5f4eaa35127632cc\n"
    },
    {
      "commit": "9e977e14c4e8e05d8c5b77be9f90311b2d4dbddd",
      "tree": "af443f80c1bfcacf21ab2d9f13d26cc2640cfda1",
      "parents": [
        "1948489ed494e67df4f3a4427154b03d06e83dbe"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Thu Sep 12 14:10:45 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Fri Sep 13 13:23:19 2024 +0000"
      },
      "message": "Reformat GameTextInput sources\n\nTest: not required\nBug: n/a\n\nChange-Id: I389e6c3015b67fa0241d31e2470f1e950b47eb3d\n"
    },
    {
      "commit": "1948489ed494e67df4f3a4427154b03d06e83dbe",
      "tree": "be4601e798222209cba34ec27c78ce31192e99ab",
      "parents": [
        "7ff99f881ad9a9a284b1b27610bc2f730b8b8c3f"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Sep 12 18:39:06 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Sep 12 22:48:50 2024 +0000"
      },
      "message": "convert all sources to Google\u0027s code style\n\nThis CL converts everything into Google\u0027s code style using clang-format for both in C++ and Java sources . This simplifies maintenance because clang-format essentially could not be used before this CL.\n\nMostly, changes are:\n* 2 spaces indent everywhere;\n* #includes are sorted and grouped differently;\n* long lines (such as functions with many parameters) are split differently.\n\nNote: #include sorting can break code. If your code faces this issue, put #includes between // comments to disable clang-format sorting.\n\nTest: build and run samples\nBug: N/A\nChange-Id: Ibea60e3482067df1edc3b3f2f26c4f15c9bd5cd8\n"
    },
    {
      "commit": "7ff99f881ad9a9a284b1b27610bc2f730b8b8c3f",
      "tree": "291b2a8e440c846f62b8bf71af9f630289ba81d3",
      "parents": [
        "e223fa3860bf9919561260b8c0416b7f2c84c28e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Sep 12 13:54:14 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Sep 12 14:18:42 2024 +0100"
      },
      "message": "add cpp files into prefabs for GameActivity/GameTextInput\n\nThis change removes null.cpp practice and instead puts all cpp files\ninto correponding libraries of GameActivity and GameTextInput. Both\nshared and static libraries should work.\n\nIt\u0027s now discouraged to do something like include \u003cGameActivity.cpp\u003e.\n\nInstead, you shoudld include the corresponding library into your\nCMakeLists.txt file, for example:\n\ntarget_link_libraries(${CMAKE_PROJECT_NAME} game-activity::game-activity_static)\n\nTest: compile and run AGDKTunnel, BouncyBall, game_text_input_testbed\nBug: 358918880\nChange-Id: I3ae5eff462a537f94a74700ab8a9c3e2be7f58d5\n"
    },
    {
      "commit": "e223fa3860bf9919561260b8c0416b7f2c84c28e",
      "tree": "7a115638657c3fca8a4016804dec09186352ad08",
      "parents": [
        "77483cb4754cb72fd0d33e7b7794d642402151d5",
        "f420995f13569dc0c68d3bf6c267b209cbcff54e"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Sep 11 15:59:17 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 11 15:59:17 2024 +0000"
      },
      "message": "Merge \"Replace Log.wtf with Log.d\" into main"
    },
    {
      "commit": "77483cb4754cb72fd0d33e7b7794d642402151d5",
      "tree": "d662c9bb2bbbc26b1ef934a4c0d9b59bfaa2121e",
      "parents": [
        "eddf605a8b2e4dbab347065fcfae19508c619df9",
        "a2d0f41f9e13f67df03ab1a542614735c75574d0"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Sep 11 15:59:03 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 11 15:59:03 2024 +0000"
      },
      "message": "Merge \"Fix GameTextInput_hideIme comment\" into main"
    },
    {
      "commit": "eddf605a8b2e4dbab347065fcfae19508c619df9",
      "tree": "ae371a6cbf5fb261bbb5fb79754b789bfc7281d7",
      "parents": [
        "1b57d4e32ff52839f046179ccb9f7e830e44f2c9"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 11 16:28:08 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 11 16:31:35 2024 +0100"
      },
      "message": "update targetSdkVersion to 35 in all projects\n\ntargetSdkVersion should be set to the highest available version.\nOtherwise, AGDKTunnel used to cause warnings about obsolete application\nbeing installed.\n\nAlso this CL fixes AndroidManifest.xml files because any application\nthat has Activity now has to specify this: android:exported\u003d\"true\"\n\nTest: run AGDKTunnel\nBug: N/A\nChange-Id: I9252a98d28a07e2815b7cdbd465d8d2efddd8eba\n"
    },
    {
      "commit": "f420995f13569dc0c68d3bf6c267b209cbcff54e",
      "tree": "290ef6beb42a9fa716b7d7d502cfde23f4c6076a",
      "parents": [
        "a2d0f41f9e13f67df03ab1a542614735c75574d0"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Tue Sep 10 16:13:23 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Sep 11 16:25:42 2024 +0100"
      },
      "message": "Replace Log.wtf with Log.d\n\nTest: manual\n\nChange-Id: Ibdb0690c569ee629e72a403efee9fce642ecb78c\n"
    },
    {
      "commit": "a2d0f41f9e13f67df03ab1a542614735c75574d0",
      "tree": "a7214c9742cccac05806d0f26e71c3453f79773c",
      "parents": [
        "1b57d4e32ff52839f046179ccb9f7e830e44f2c9"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Tue Sep 10 15:36:43 2024 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Sep 11 16:25:41 2024 +0100"
      },
      "message": "Fix GameTextInput_hideIme comment\n\nTest: not required\n\nChange-Id: If16ab0a23d1c5362b39e3f3ebc414e7201f8d0ec\n"
    },
    {
      "commit": "1b57d4e32ff52839f046179ccb9f7e830e44f2c9",
      "tree": "973ad14ae377b7206d72e2ca8dc192b2969d8acc",
      "parents": [
        "04770db7081b3f4744fa8f63c141ee692c370495"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Sep 10 15:46:49 2024 +0100"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Wed Sep 11 09:51:21 2024 +0000"
      },
      "message": "Add TuningForkMonitor as an apk to agdk libraries zip directory\n\nBug: b/302134476\nTest: Tested TuningForkMonitor using experimentsdemo app, and checked presubmit artifacts to see the apk there\nChange-Id: I8a730c428e24c440cf4f13439f747ea7b97965d9\n"
    },
    {
      "commit": "04770db7081b3f4744fa8f63c141ee692c370495",
      "tree": "3f2340a5e191e1fc085b4707b49e199e4b2aa9b1",
      "parents": [
        "7411beb7963d1bf5c3922779001758f405e36ac1"
      ],
      "author": {
        "name": "Tiem Song",
        "email": "tiem@google.com",
        "time": "Tue Aug 06 14:16:21 2024 -0700"
      },
      "committer": {
        "name": "Tiem Song",
        "email": "tiem@google.com",
        "time": "Tue Aug 06 14:20:45 2024 -0700"
      },
      "message": "Add target to build info files\n\nThis is used by Jetpad for target selection when scheduling a library\nrelease.\n\nAlso added a description to the `jetpadJson` task so that it\u0027ll show up\nin the Gradle task list.\n\nBug: 357855394\nTest: Ran `./gradlew tasks` and verified that jetpadJson and its\ndescription shows up in the Help section\nTest: Ran `./gradlew jetpadJson -Plibraries\u003dgame_activity` and verified that generated build info\ncontains a target entry\n\nChange-Id: I444776164c4b549e78d003f095d95fce745065d8\n"
    },
    {
      "commit": "7411beb7963d1bf5c3922779001758f405e36ac1",
      "tree": "1bc0db4c3a6af7df36793e1d6e977625c046b445",
      "parents": [
        "0fea90e46030a34d8845330ff5bc091ec7e39ed6"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Jul 30 16:01:39 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Jul 30 16:04:32 2024 +0100"
      },
      "message": "bump APT unstable version to 2.1.0alpha01\n\nBug: N/A\nTest: N/A\nChange-Id: Ic928e6cc60f3fc69bc71f7219775226e78fd4670\n"
    },
    {
      "commit": "0fea90e46030a34d8845330ff5bc091ec7e39ed6",
      "tree": "fc141dcbca28d88c476d60ec62d361ea265575e0",
      "parents": [
        "026fb8bd538fc7e5f413ab83e3c884dedc786eee"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Jul 23 13:21:09 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Jul 23 13:21:09 2024 +0100"
      },
      "message": "fix deletion with text selection\n\nThis CL fix the behavior of GameTextInput when deleting text, especially\na selected text. Also tests are added to validate consistency.\n\nFixes: 336997706\nTest: ./build.sh tests\nChange-Id: Idee848a3bcbdabc65413e77fce6eefbf592e1f9d\n"
    },
    {
      "commit": "026fb8bd538fc7e5f413ab83e3c884dedc786eee",
      "tree": "ad4bd500baaa0f4a5b6d8135dc38f8c9a92c5283",
      "parents": [
        "fff92b1f8fc5b70edbc2aaf8fae644a127259db7"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Jul 17 16:23:25 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Jul 17 16:30:58 2024 +0100"
      },
      "message": "fix tests for GameTextInput\n\nThis CL fixes Activity lifecycle issues with Espresso. Now GameTextInput\nhas functioning tests for both software and hardware keyboard inputs.\n\nBug: 343915764\nTest: run ./build.sh tests\nChange-Id: I697d6bcb8b114e44c01b8661bda2405543db4f9e\n"
    },
    {
      "commit": "fff92b1f8fc5b70edbc2aaf8fae644a127259db7",
      "tree": "ba123114a6909be13b3b1a663b54c2aa0908b7ae",
      "parents": [
        "6285b31b86f091d1ec489a9982e1d4834eec05bc"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Jul 16 16:08:33 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Jul 16 16:09:58 2024 +0100"
      },
      "message": "bump APT version to 2.0.0rc01\n\nBug: 353462460\nTest: N/A\nChange-Id: Ice795d9e8cb93a66839826260e2c3f9ced1b9f70\n"
    },
    {
      "commit": "6285b31b86f091d1ec489a9982e1d4834eec05bc",
      "tree": "d567f623f447ab798b0d3d2df693b01da6f4a70d",
      "parents": [
        "99df651c8417c491c1b8709bb0278de1cd4bb780"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Jun 26 16:10:09 2024 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Jul 08 23:46:12 2024 +0000"
      },
      "message": "swappy: use deadline and expected present time\n\nOn high refresh rate devices, SurfaceFlinger sometimes\nhas a longer than a single vsync work duration.\nUse Choreographer API to get this work duration and apply\nit when Swappy targets a specific vsync.\n\nTest: Swappy samples\nBug: 344710169\nBug: 350051320\nBug: 350051057\nChange-Id: I135c953c3ec3b4b02a9f6a957e63f5733245b963\n"
    },
    {
      "commit": "99df651c8417c491c1b8709bb0278de1cd4bb780",
      "tree": "187e6761e57f94cd4e1db313a2acb598c4ad563d",
      "parents": [
        "c84ea2d709c2ac895f3f1eea062c58af355ee606"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jul 01 11:58:43 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jul 01 12:11:27 2024 +0100"
      },
      "message": "implement tests for GameTextInput\n\nThis CL adds initial implementation of tests for GameTextInput.\nThis tests are currently non-stable (sometimes nullptr access in\nonActivity happens). I believe this is a minor issue which could be\nfixed later.\n\nIn general, I added androidTest/ directory, which contains two tests.\nExampleInstrumentedTest is a simple check that tests work.\nInputTest is a real instrumented test that uses Espresso and Android\nInstrumentation. It also uses a special test Activity class called\nMainActivity (it only exists in test environment and is not included\ninto library).\n\nThis also adds a new command in build.sh script. To run all tests, do\n./build.sh tests\n\nBug: 343915764\nTest: ./build.sh tests\nChange-Id: I177d82db3b5ab9d76745cd23a25da9f852e60f38\n"
    },
    {
      "commit": "c84ea2d709c2ac895f3f1eea062c58af355ee606",
      "tree": "91c4c9d0e0975959de055d8a4c8a01b65c4b5116",
      "parents": [
        "0a290c4b411aaf4e2cbe6769142c108cd2b57e22",
        "33e761fbbb2968c534e2b6597e093f4a4ec3ab83"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Jun 28 18:11:33 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 28 18:11:33 2024 +0000"
      },
      "message": "Merge \"swappy: unregister display listener\" into main"
    },
    {
      "commit": "33e761fbbb2968c534e2b6597e093f4a4ec3ab83",
      "tree": "24ff5ac1f2bad343ed385db7d1d3604efb5e6047",
      "parents": [
        "47777396a54dfb7917b4531939dfeba8f9f15352"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Jun 17 20:48:47 2024 +0000"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Jun 28 17:01:33 2024 +0000"
      },
      "message": "swappy: unregister display listener\n\nBug: 344043939\nBug: 348007391\nChange-Id: I169a6e573919b286675e8d9636a96e5b56c3ca31\nTest: presubmit\n"
    },
    {
      "commit": "0a290c4b411aaf4e2cbe6769142c108cd2b57e22",
      "tree": "13115de8bd7a9ed29be9d34f896711e188c4900f",
      "parents": [
        "ff4b04c8657ff9f655adfb2d26165f667dbf5aa5"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Jun 18 00:50:19 2024 +0000"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Jun 18 00:50:19 2024 +0000"
      },
      "message": "Swappy: Add surfaceflinger as OWNER\n\nChange-Id: Ica61fca92f5c235eae22e146793187a3c4f8ece5\nTest: NA\nBug: NA\n"
    },
    {
      "commit": "ff4b04c8657ff9f655adfb2d26165f667dbf5aa5",
      "tree": "81ff03887c4295016549015a90bb714bc8da8340",
      "parents": [
        "196649fcd61e2447817624848cffc5854cdc989f"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jun 10 13:02:24 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jun 10 13:02:24 2024 +0100"
      },
      "message": "fix \u0027keyboard\u0027 variable updates\n\nAdd missing code in readConfigurationValues() to update this variable.\n\nFix: 340914384\nTest: N/A\nChange-Id: I7a2c4c2530c8619f5137825b49b8d6e23eb7cbc8\n"
    },
    {
      "commit": "196649fcd61e2447817624848cffc5854cdc989f",
      "tree": "72c6df46fb3d329e03e7300e913781ab5526f181",
      "parents": [
        "07770c376b48a96d57015c56f4db153171936e5f",
        "7197569b5b7d1a3d791ae2e636cbf76cbdd7030d"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jun 10 10:55:02 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 10 10:55:02 2024 +0000"
      },
      "message": "Merge \"fix hiddenKeyboard variable updates\" into main"
    },
    {
      "commit": "7197569b5b7d1a3d791ae2e636cbf76cbdd7030d",
      "tree": "a80bdb5efa4cfd7ac542d478aa00d801b4c73e91",
      "parents": [
        "5457d767e43c7c01487a1cc2e9136b5176cc4991"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jun 10 11:15:07 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Jun 10 11:19:36 2024 +0100"
      },
      "message": "fix hiddenKeyboard variable updates\n\nAdd missing code in readConfigurationValues() to update this variable.\n\nFix: 340914384\nTest: N/A\nChange-Id: I267efd721491bbaa5dca9cd36bbbb5d3eb786fb7\n"
    },
    {
      "commit": "07770c376b48a96d57015c56f4db153171936e5f",
      "tree": "3177459ea939806a67a081e69c7e3b83bb56e336",
      "parents": [
        "47777396a54dfb7917b4531939dfeba8f9f15352",
        "5457d767e43c7c01487a1cc2e9136b5176cc4991"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Jun 07 19:10:16 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 07 19:10:16 2024 +0000"
      },
      "message": "Merge \"fix null pointer crash in GameActivity\" into main"
    },
    {
      "commit": "5457d767e43c7c01487a1cc2e9136b5176cc4991",
      "tree": "020de470aa6625f9824cfff8c96ff3d89eb75794",
      "parents": [
        "ea1a3965f1d9e662e3ea03a0f306931ffbdcb440"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Jun 07 17:06:58 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Jun 07 17:06:58 2024 +0100"
      },
      "message": "fix null pointer crash in GameActivity\n\nThis CL adds missing checks for null pointers in insets callbacks.\n\nFix: 340180513\nTest: N/A\nChange-Id: I222ca2af5d4fd0f4acc6dd3e3c356fe3e7b36f67\n"
    },
    {
      "commit": "47777396a54dfb7917b4531939dfeba8f9f15352",
      "tree": "cf904f9f7c01e2812fb86df9b4cf23b498b9edb7",
      "parents": [
        "b24a408960d7e66ac1aed1ef6c89e3027687a915"
      ],
      "author": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Mon May 20 13:59:29 2024 -0500"
      },
      "committer": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Tue May 21 17:35:47 2024 +0000"
      },
      "message": "Autoregister pressure axis for GC touchpad\n\nGame controllers with pressable touchpads\n(i.e DS4/DS5) use the Pressure axis to register\nthe touchpad press. GameActivity event path\nwasn\u0027t automatically registering this axis for\ncontrollers that use it so games wouldn\u0027t get\ntouchpad press events unless they manually\nenabled the pressure axis.\n\nFix: 335666199\nTest: Build and run the game controller sample\nChange-Id: I510f74d059fedf0d07de86cea895fcbd3e5f0529\n"
    },
    {
      "commit": "b24a408960d7e66ac1aed1ef6c89e3027687a915",
      "tree": "6ab704613b87758da73c2877a8807d4aa26da97b",
      "parents": [
        "765ca21be3bda866b3102dd9ec993fd2cb4a09db"
      ],
      "author": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Mon May 20 13:51:07 2024 -0500"
      },
      "committer": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Mon May 20 13:51:07 2024 -0500"
      },
      "message": "Fix GameActivity virtual mouse event handling\n\nVirtual mouse events (i.e. game controller\ntrackpad) were not returning that Paddleboat\nhad handled them internally even though it\nhad. This was specific to GameActivity\nevent processing.\n\nFix: 335666199\nTest: Build and run game controller sample\nChange-Id: I9d3d9255c94bf34d84bc68187f6188574548baa5\n"
    },
    {
      "commit": "765ca21be3bda866b3102dd9ec993fd2cb4a09db",
      "tree": "4ba63e7a7404b48c929136c09c65d6f36f46a43f",
      "parents": [
        "ea1a3965f1d9e662e3ea03a0f306931ffbdcb440"
      ],
      "author": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Mon May 20 13:40:42 2024 -0500"
      },
      "committer": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Mon May 20 13:43:05 2024 -0500"
      },
      "message": "Fix lack of callback on already connected devices\n\nDevelopers were expecting to be able to receive\ncontroller connected callbacks from controllers\nthat were already connected at the time\nof Paddleboat_Init. Paddleboat_Init calls\nPaddleboat_Update internally. Added an early-out\nfor that path so pending device queue doesn\u0027t\nget cleared and the game will trigger connection\ncallbacks for those devices the first time\nthey call Paddleboat_Update.\n\nTest: Build and run game controller sample\n\nChange-Id: I117971b09a2681c07cca95377403e3e67f71860d\n"
    },
    {
      "commit": "ea1a3965f1d9e662e3ea03a0f306931ffbdcb440",
      "tree": "6dd4f1ed38222db7a8ff1416001fa3439f3a9eba",
      "parents": [
        "feac0cf0fc08a685b43219306bd383d2a51077d1"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Apr 02 14:47:16 2024 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Apr 02 14:47:16 2024 +0100"
      },
      "message": "add error handling in GameTextInput\n\nWith some IMEs window insets might be null sometimes, so we have to take\nthis into account.\n\nFix: 314924320\nTest: build and run AGDKTunnel\nChange-Id: I3f8edb39f1c4cb4a0a5cc61a8dfc4e4fb52015a8\n"
    },
    {
      "commit": "feac0cf0fc08a685b43219306bd383d2a51077d1",
      "tree": "a0d0213045be5fab16d2191dc837bc9e295df965",
      "parents": [
        "ebafbf53d267673fa35282431f94756e2310976e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 20:41:20 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 20:43:03 2024 +0000"
      },
      "message": "fix game_text_input_testbed sample\n\nVarious minor changes have been made here:\n* set proper project name in settings.gradle\n* increase font size\n* use proper logging\n\nFix: 329216308\nTest: build and run game_text_input_testbed\nChange-Id: Ib151a8543d1b52891b3df5ee3b84059da6ff326a\n"
    },
    {
      "commit": "ebafbf53d267673fa35282431f94756e2310976e",
      "tree": "d1cea52e1ecacd3372b840496037309011745f53",
      "parents": [
        "95f443a2586686d5b77644b2391fd32523c6ae42"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 20:37:05 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 20:37:05 2024 +0000"
      },
      "message": "fixed state updates propagation\n\nState updates should be always propagated, because logic of the text\neditor should not depend on visibility of IME.\n\nBug: N/A\nTest: build and run game_test_input_testbed\nChange-Id: Iae9ca0921e648ad2aa93aad90bb412c5a4296b98\n"
    },
    {
      "commit": "95f443a2586686d5b77644b2391fd32523c6ae42",
      "tree": "ab0af60b400c1e80882b5fb790f626f49ffd4e6d",
      "parents": [
        "5dec41615db92250a0daf80a95d32b83ba8516fb"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 17:58:34 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 18:06:16 2024 +0000"
      },
      "message": "disable Swappy debug output\n\nFeel free to uncomment the corresponding line in CMakeLists.txt\nif you need to enable per-frame Swappy debug output.\n\nBug: N/A\nTest: N/A\nChange-Id: Ic84e84841cf4cb12e09fcae1c1cd1c1e188cbd3a\n"
    },
    {
      "commit": "5dec41615db92250a0daf80a95d32b83ba8516fb",
      "tree": "27ee0b2901d7ef2c6d9cac9766209a88b59d4571",
      "parents": [
        "76243d802b6f86b9363aac48464f09af900c0d9b"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 17:52:21 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Mar 20 17:52:21 2024 +0000"
      },
      "message": "fix selection when typing with hardware keyboard\n\nSelection interval haven\u0027t been updated correctly in cases when\ncharacters are inserted not at the end of the string.\n\nTest: build and run AGDKTunnel and test that typing works\nFix: 329405226\nChange-Id: Idafaae29d87c841d0909282f53f9bd8404114154\n"
    },
    {
      "commit": "76243d802b6f86b9363aac48464f09af900c0d9b",
      "tree": "2ae9473151887cc6da26c333188746299f944208",
      "parents": [
        "9ac9ebdde4c549ea4b0deec2f9a937b0a604a07d"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Mar 08 16:32:59 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Mar 08 16:37:06 2024 +0000"
      },
      "message": "populate list of ignored characters in InputConnection\n\nHardware keyboards generate key events for many characters that are not\nbeing used by text editors, which is what GameTextInput implements.\nHere we maintain a list of keycodes that are ignored by our input\nconnection.\n\nTest: build and run AGDKTunnel\nFix: 327668285\nChange-Id: Ibbe28bf5a52d6013103808eebf61b5052a16c373\n"
    },
    {
      "commit": "9ac9ebdde4c549ea4b0deec2f9a937b0a604a07d",
      "tree": "1201bd3e490dd7669027bb76c28f1836121e0ae7",
      "parents": [
        "e56bed6cb60e16803c2fcfada1de91a23f5443e0"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Feb 14 16:08:15 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Feb 14 16:12:39 2024 +0000"
      },
      "message": "fix InMemoryDexClassLoader issues with old API levels\n\nThis CL fixes the rare condition in SDKs before 26 (which do not have\nInMemoryDexClassLoader). Sometimes, the exception is not triggered\nduring class lookup, so we add an explicit check here.\n\nTest: build and run any sample that uses Swappy\nBug: 323059686\nChange-Id: I0d6dd75d1587ca4588039fe2c14ba749d86f89ff\n"
    },
    {
      "commit": "e56bed6cb60e16803c2fcfada1de91a23f5443e0",
      "tree": "a466c0d4fc1de491e9e0f14898f92f82795b2991",
      "parents": [
        "ccadb45ff30303337a943861111781294e344d6a"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Feb 14 15:12:13 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Feb 14 15:12:13 2024 +0000"
      },
      "message": "fix memory-advice scripts for Windows compatibility\n\nSince Windows doesn\u0027t have `touch` command, we suggest that we use\n`echo \u003e filename` command instead.\n\nTest: build Hogger sample and run it\nFix: 322119350\nChange-Id: Ie2f17f418c9e1fc1da43e6c5944d652d314b4be0\n"
    },
    {
      "commit": "ccadb45ff30303337a943861111781294e344d6a",
      "tree": "be90d51cc84ee801c06ebe2b29c98795dad55697",
      "parents": [
        "884a5e759b685bb3b07078461645c368cd7730b5"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Feb 13 19:41:49 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Feb 13 19:44:40 2024 +0000"
      },
      "message": "update game-activity and game-text-input to 3.1.0alpha01\n\nThis is requested by our release policy.\n\nTest: N/A\nFix: N/A\nChange-Id: I87306da2eb5b1fc2ded84ba54cd663b9766a376c\n"
    },
    {
      "commit": "884a5e759b685bb3b07078461645c368cd7730b5",
      "tree": "59d70dbc741a9c39ae88d25eb8a34d7404a1300b",
      "parents": [
        "499248edbe092bb3e9f2e0e1742d3480e08cfbc8"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Feb 13 18:18:25 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Feb 13 18:18:25 2024 +0000"
      },
      "message": "bump game-activity and game-text-input to 3.0.0rc01\n\nWe are ready to promote these two libraries to release candidates.\n\nTest: N/A\nFix: N/A\nChange-Id: I083b48db134f32aa595205c49ab6e34928cdf5f1\n"
    },
    {
      "commit": "499248edbe092bb3e9f2e0e1742d3480e08cfbc8",
      "tree": "a7fd7df5770e4f4c60f23f53cac4af375c6f0b62",
      "parents": [
        "12ef8dab8ec4a03116abce11081601d883d8170e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Jan 12 16:43:12 2024 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Jan 12 16:51:13 2024 +0000"
      },
      "message": "send explicit signals on key and touch events to the Looper\n\nNow we send APP_CMD_KEY_EVENT/APP_CMD_TOUCH_EVENT on corresponding\nevents, so that games that are using ALooper polling with an infinite\ntimeout would work correctly.\n\nTest: N/A\nFix: 316196505\nChange-Id: I3b7d3a09932e9d7e75b00aaede9180b8c9a1650f\n"
    },
    {
      "commit": "12ef8dab8ec4a03116abce11081601d883d8170e",
      "tree": "638664ec77a63242cf62de12c206e3f1d4dfe827",
      "parents": [
        "f1f286b6486ec02fb11eabf4b90664e8b98c4052"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Jan 02 16:08:37 2024 +0000"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Jan 02 16:08:37 2024 +0000"
      },
      "message": "Bump APT version to 2.0.0-beta01\n\nTest: N/A\nChange-Id: Ic1b0cc90c7b6f09c4242bf11e3f06f9566b668f9\n"
    },
    {
      "commit": "f1f286b6486ec02fb11eabf4b90664e8b98c4052",
      "tree": "ee0f5417e243f62abd79aefe6ec6274e7f90ac5e",
      "parents": [
        "3b94fe082e0e95399ed99b5a16ef8eeea307eee2"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 05 15:44:37 2023 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Dec 05 15:44:37 2023 +0000"
      },
      "message": "fix text deletion in GameTextInput\n\nfix a bug caused by a typo in deleteSurroundingText. Note that the behavior\nshould be the same as in the default handler,\nBaseInputConnection.deleteSurroundingText().\n\nTest: N/A\nFix: 314826655\nChange-Id: Ieb56022f18b081fe3d911ae9ebbd827f3440650a\n"
    },
    {
      "commit": "3b94fe082e0e95399ed99b5a16ef8eeea307eee2",
      "tree": "86abe0c6606571d35c7c6cb212649bc315a05acc",
      "parents": [
        "5ee183b8704c2cc29e81ec62ffddd9ebfba9afb6"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Nov 21 20:32:06 2023 +0000"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Nov 21 20:45:52 2023 +0000"
      },
      "message": "Remove the PredictQualityLevels API, and move APT to 2.0.0-alpha07.\n\nTest: Tested using experimentsdemo.\nChange-Id: I7d3115d774123dc65d8cd683783689ba936c8281\n"
    },
    {
      "commit": "5ee183b8704c2cc29e81ec62ffddd9ebfba9afb6",
      "tree": "bd3a5014cedee406c5a3310e3ee4d3c4276b6a3e",
      "parents": [
        "d1f9f40d22248179ba6612beb8acec847bc5880d"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Nov 20 18:06:57 2023 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Nov 20 18:06:57 2023 +0000"
      },
      "message": "update game-activity, game-text-input and memory-advice\n\nbump memory-advice to 2.1.0beta01, bump game-activity and\ngame-text-input to 3.0.0beta01\n\nTest: N/A\nChange-Id: Id89c22e503c1ab0b7b45c9b1b3089e0f3a56365b\n"
    },
    {
      "commit": "d1f9f40d22248179ba6612beb8acec847bc5880d",
      "tree": "d0472512ebd090bd92a503a36031f77067d9472f",
      "parents": [
        "15ca84580d287cd9d0ae0ad71d7c43e5016cdaee"
      ],
      "author": {
        "name": "Victor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Tue Nov 07 15:03:55 2023 +0000"
      },
      "committer": {
        "name": "Victor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Tue Nov 07 15:03:55 2023 +0000"
      },
      "message": "Add explicit class cast\nBug: b/244910450\nTest: Run insights sample\n\nChange-Id: I0b2106d4163957a3e257832c8d0860cbee7229b9\n"
    },
    {
      "commit": "15ca84580d287cd9d0ae0ad71d7c43e5016cdaee",
      "tree": "ca6cc6df22dd1562a2842bd047e5cbc1ab3ade60",
      "parents": [
        "f17bab7374f7a05ecf019599473653509aa3bd7e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Nov 06 17:05:55 2023 +0000"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Nov 06 18:38:22 2023 +0000"
      },
      "message": "update MemoryAdvice model\n\nThis commit fixes several issues with MemoryAdvice library:\n* it removes \"realtime\" model which is trained on 0 and 1 labels,\n  so it couldn\u0027t accurately predict values in between;\n* now red/yellow/green signals are given basing on the percentage\n  of available memory;\n* available memory model is also updated:\n  - hyperparameters are generated now by Hyperopt;\n  - the final model is trained on the full dataset without validation.\n\nFix: 308808048\nTest: use any memory-allocating app like Hogger, AGDKTunnel, etc\nChange-Id: Ib3e05093efece5b09cda3212d16c76ee3b6ac1c0\n"
    },
    {
      "commit": "f17bab7374f7a05ecf019599473653509aa3bd7e",
      "tree": "b1c6c082fa281a3f8d95e167243990700fc035e9",
      "parents": [
        "b8ac9b171cff243a5655756c33614c6ee2ff023d"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Wed Nov 01 16:48:18 2023 +0000"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Thu Nov 02 10:14:24 2023 +0000"
      },
      "message": "Fixed total_memory_bytes sometimes reporting wrong value.\n\nBug: b/284275685\nTest: Tested using experimentsdemo\nChange-Id: I0957f8e0883f3856a2e2b1d645f8fc38159a8ddd\n"
    },
    {
      "commit": "b8ac9b171cff243a5655756c33614c6ee2ff023d",
      "tree": "404032cbb09fdbcd7a9e7c5ca686a4f8eab59ab0",
      "parents": [
        "f04e066056012cddaecaab085010ae5808dc5f17"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Oct 20 14:08:41 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Oct 20 14:08:41 2023 +0100"
      },
      "message": "fix Doxygen comments in GameActivityEvents_internal.h\n\nBug: N/A\nTest: N/A\nChange-Id: Iaae5d874ac94e6b356503574111ff47328840b82\n"
    },
    {
      "commit": "f04e066056012cddaecaab085010ae5808dc5f17",
      "tree": "ecb93cea6c36fa263fa6496939b4abf0e1726690",
      "parents": [
        "12ea55fbfdbc9c76d3e2e654e3da2a80a0de9c23",
        "68aaf953c9c8e3b6114ef94abff8677fede8bef4"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Oct 20 12:53:33 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 12:53:33 2023 +0000"
      },
      "message": "Merge \"bump versions of GameActivity and GameTextInput to 3.0\" into main"
    },
    {
      "commit": "12ea55fbfdbc9c76d3e2e654e3da2a80a0de9c23",
      "tree": "a054b96dfd9dff450c62fd8b7bb02ea7e3ce8542",
      "parents": [
        "3c0102a4f42afc46ea5398daad3f8bd2c6100e57",
        "dfca49441b074e6384ce321f46f34d42505f981e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Oct 20 12:32:39 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 12:32:39 2023 +0000"
      },
      "message": "Merge \"refactor GameActivity and GameTextInput interfaces\" into main"
    },
    {
      "commit": "3c0102a4f42afc46ea5398daad3f8bd2c6100e57",
      "tree": "ef778604fb9836bd175a3caa1f74bf68f634da5a",
      "parents": [
        "e7cc630a269be37ff70185e013845ebd93bced9f"
      ],
      "author": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Thu Oct 19 16:02:42 2023 -0500"
      },
      "committer": {
        "name": "Nate Trost",
        "email": "natetrost@google.com",
        "time": "Thu Oct 19 16:02:42 2023 -0500"
      },
      "message": "Fix improper button forwarding in GameTextInput\n\nNot all keycodes commonly mapped to game controller buttons were\nbeing filtered out of the key event stream being fed to\nGameTextInput. This could result in button presses being treated\nas unexpected text input.\n\nBug: 306452719\nTest: Build and run AGDKTunnel sample, use name edit feature to\ntest input with connected controller\n\nChange-Id: I0755b34b36d16fbea45565681b44f7b97d3ba3f2\n"
    },
    {
      "commit": "68aaf953c9c8e3b6114ef94abff8677fede8bef4",
      "tree": "4744493c0f4598ab7305386dd53fb0f3756960d9",
      "parents": [
        "dfca49441b074e6384ce321f46f34d42505f981e"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Oct 19 16:29:28 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Oct 19 16:29:28 2023 +0100"
      },
      "message": "bump versions of GameActivity and GameTextInput to 3.0\n\nWe increase the major version of these libraries since the APIs were\nchanged.\n\nBug: 301147938\nTest: N/A\nChange-Id: I82e7c61a4e046fdfb8eb15559e7b4465f062fcdc\n"
    },
    {
      "commit": "dfca49441b074e6384ce321f46f34d42505f981e",
      "tree": "d593802747d07b3e10b51c5bacfd404e3f50ceca",
      "parents": [
        "e7cc630a269be37ff70185e013845ebd93bced9f"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Oct 18 16:39:02 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Thu Oct 19 16:23:59 2023 +0100"
      },
      "message": "refactor GameActivity and GameTextInput interfaces\n\nThese changes are made to address the feedback by NDK Council review.\nThis CL does not change behavior of these libraries.  Mostly these changes are cosmetic.\n\nSince we changed API earlier (GameActivityMotionEvent structure), we\nbump major versions of GameActivity and GameTextInput. Since we\u0027re\nmaking a major release, we fix a few other interfaces:\n* onEditorAction changes its return type from boolean to void\n* setImeEditorInfo now expects enum parameters, not integers\n* some code has been moved from GameActivityMotionEvent_fromJava into onTouchEvent_native\n* internal functions of GameActivityEvents are moved into GameActivityEvents_internal.h.\n\nFix: 301147938\nTest: run AGDKSample or any other sample\nChange-Id: I97d0479bd3bfaf137505258abb681528491abae0\n"
    },
    {
      "commit": "e7cc630a269be37ff70185e013845ebd93bced9f",
      "tree": "0afcc6389b294b1a4ca9792a1074aea807271020",
      "parents": [
        "7dbc58ba1c71b716667d1a2b0cb49bc63b4710ba"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Oct 17 14:16:47 2023 +0100"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Oct 17 14:17:31 2023 +0100"
      },
      "message": "New release for APT: 2.0.0-alpha06\n\nTest: N/A\nChange-Id: Ic338de712a90e255bfbaa912294dbf7264cd9aa6\n"
    },
    {
      "commit": "7dbc58ba1c71b716667d1a2b0cb49bc63b4710ba",
      "tree": "b5c5d94d22ac13c7388d3bb50a6c51a4c468843a",
      "parents": [
        "110241fd33e1559f1931b154c8617fe27932ccc0"
      ],
      "author": {
        "name": "Jim",
        "email": "jimblackler@google.com",
        "time": "Mon Oct 02 14:58:12 2023 +0000"
      },
      "committer": {
        "name": "Jim",
        "email": "jimblackler@google.com",
        "time": "Mon Oct 02 14:58:12 2023 +0000"
      },
      "message": "TF Monitor: convert the \u0027when\u0027 statement to a series of if statements.\n\nThe \u0027when\u0027 statement is unnecessary and my attempts to convert it to modern Kotlin have resulted in fresh bugs. This version is easier to follow in any case.\n\nBug: 303029189\nTest: Manual test\nChange-Id: Ib325716dfe7f5153f71765d7ba26eb361d324311\n"
    },
    {
      "commit": "110241fd33e1559f1931b154c8617fe27932ccc0",
      "tree": "cc228d20f09d13c934962b9cfd9e064c0a037956",
      "parents": [
        "87b5919121957338556d03cb89997d49ad05b47b"
      ],
      "author": {
        "name": "Jim",
        "email": "jimblackler@google.com",
        "time": "Mon Oct 02 12:47:18 2023 +0000"
      },
      "committer": {
        "name": "Jim",
        "email": "jimblackler@google.com",
        "time": "Mon Oct 02 12:49:38 2023 +0000"
      },
      "message": "Fix an error made updating Kotlin version of TF Monitor.\n\nKotlin now won\u0027t build without a default case on a \u0027when\u0027. I misinterpreted the way this code works when doing the update. In this case the default should be to exit the loop.\n\nBug: 303029189\nTest: Manual test\nChange-Id: Iba229abeccf146b20a9261650f20456dcd36b900\n"
    },
    {
      "commit": "87b5919121957338556d03cb89997d49ad05b47b",
      "tree": "ba8ed7492bddd5c29130c0318f91f2bfc26c8266",
      "parents": [
        "3e0ddbd3f9d9d62cb61328ade1299149357452bc"
      ],
      "author": {
        "name": "Jim Blackler",
        "email": "jimblackler@google.com",
        "time": "Fri Sep 29 17:06:05 2023 +0100"
      },
      "committer": {
        "name": "Jim Blackler",
        "email": "jimblackler@google.com",
        "time": "Fri Sep 29 16:10:14 2023 +0000"
      },
      "message": "Replace dependency removed in error\n\nIn https://android-review.git.corp.google.com/c/platform/frameworks/opt/gamesdk/+/2768049 I removed the \u0027google-common-protos\u0027 library by accident. In my defence because its artifacts persist in build/extraced-include-protos even after being removed, the error is only noticeable when a full clean is performed by removing the \u0027build\u0027 library (not ideal).\n\nIt\u0027s also updated to the latest version.\n\nBug: 302693168\nTest: Manual\nChange-Id: Ib952313298a2b0d51546a84fe20531f4f8d92606\n"
    },
    {
      "commit": "3e0ddbd3f9d9d62cb61328ade1299149357452bc",
      "tree": "6cdae0095d695ce8973b912038adb52106bbdb3c",
      "parents": [
        "14c47ea9424bdb7969d4220300321e0f3eb38121"
      ],
      "author": {
        "name": "Jim",
        "email": "jimblackler@google.com",
        "time": "Fri Sep 29 13:16:52 2023 +0000"
      },
      "committer": {
        "name": "Jim Blackler",
        "email": "jimblackler@google.com",
        "time": "Fri Sep 29 13:29:24 2023 +0000"
      },
      "message": "Modernize TuningForkMonitor app\n\nSee bug for justification.\n\nAPI level 33 apps cannot be built with the Android Gradle Plugin specified (4.2.2). Upgrading the Android Gradle Plugin to 8.0 triggers a cascade of modernization requirements which this CL addresses.\n\nProtobuf library was updated from 3.0.0 to 3.8.0. The Gradle configuration was updated to match the currently recommended format. The full (non-lite) version of the library was included which avoids the need to use simlinks to include the google/protobuf protos (a nice bonus is this makes the project easier to build on Windows where simlinks are unidiomatic). option\u003dlite was set in the Gradle script to retain the use of lite accessors.\n\nKotlin was updated from 1.3.50 to 1.8.10. This requires changes to satisfy new restrictions around assigning const variables from non-final variables and requiring ‘when’ constructs to make a match in every case. In addition, Kotlin Synthetics were removed in 1.8, so their use to find views in layouts has been replaced with Jetpack View Binding.\n\nAGP now requires that the launch activity is exported, but discourages the package from being specified there.\n\nThe structure of the build.gradle and settings.gradle files has been changed to the style recommended with the latest Android toolchain.\n\nBug: 302670554\nTest: Manual\nChange-Id: I5ec5864242b047cefda9abbf428f54846f5cad7f\n"
    },
    {
      "commit": "14c47ea9424bdb7969d4220300321e0f3eb38121",
      "tree": "af220bb2ec9b55b4234afcb8fb148b60437c27d8",
      "parents": [
        "4042ac9f44931fb500a7ad619235d5a092974f6e",
        "11d24d9e41fc46b61cc7cfef814d001ab32b2bf7"
      ],
      "author": {
        "name": "Vamsidhar reddy Gaddam",
        "email": "gvamsi@google.com",
        "time": "Fri Sep 22 13:51:58 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 13:51:58 2023 +0000"
      },
      "message": "Merge \"Add tracking of tracers for swappy vulkan\" into main"
    },
    {
      "commit": "11d24d9e41fc46b61cc7cfef814d001ab32b2bf7",
      "tree": "59f86a19e4a61b08f8991004a227396ef084bdd2",
      "parents": [
        "6a008f161d9130eb96b7c6c45dfd721e049d681b"
      ],
      "author": {
        "name": "Vamsidhar reddy Gaddam",
        "email": "gvamsi@google.com",
        "time": "Thu Sep 21 08:21:47 2023 +0000"
      },
      "committer": {
        "name": "Vamsidhar reddy Gaddam",
        "email": "gvamsi@google.com",
        "time": "Fri Sep 22 08:06:37 2023 +0000"
      },
      "message": "Add tracking of tracers for swappy vulkan\n\nSwappyVk_injectTracer acts differently from SwappyGL_injectTracer\napplying tracers only to the swapchain instances initialized until the\ncall. In this commit, I add a list to the swappy singleton instance\nwhere all the tracers are saved and added to the swappy\nimplementation when each swapchain instance is initialized\nautomatically. There is no performance impact as the new logic only\nexecutes once at swapchain init time.\n\nBug: 301242456\nTest: Manual testing\nChange-Id: I0439a870bdeb367e5cdae90492a0252562f70d09\n"
    },
    {
      "commit": "4042ac9f44931fb500a7ad619235d5a092974f6e",
      "tree": "0c2adcdabdd96ad55598805e26f94e552a2aa2a0",
      "parents": [
        "80243e861fd969e088dc49d55bb696ad0dd76eef",
        "dfbf5867782453579c3071de2287ce5a2b32aab9"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Thu Sep 21 13:02:12 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 21 13:02:12 2023 +0000"
      },
      "message": "Merge \"Add a new error message to predictQualityLevels.\" into main"
    },
    {
      "commit": "80243e861fd969e088dc49d55bb696ad0dd76eef",
      "tree": "47a0caabc60204bd3a3350040d7a08258d5eef9b",
      "parents": [
        "6a008f161d9130eb96b7c6c45dfd721e049d681b"
      ],
      "author": {
        "name": "Victor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Wed Sep 20 19:31:12 2023 +0100"
      },
      "committer": {
        "name": "Victor Repetskyi",
        "email": "vrepets@google.com",
        "time": "Wed Sep 20 19:31:12 2023 +0100"
      },
      "message": "Fix race condition in Swappy destructor\nBug: b/298957185\nTest: Bouncyball\n\nChange-Id: I2dfc7ca1e5cfe427fa7f49e0dfeff0a5b558306c\n"
    },
    {
      "commit": "dfbf5867782453579c3071de2287ce5a2b32aab9",
      "tree": "11d3dc1410c91fa73aa41e6b114a22b45defb33e",
      "parents": [
        "6a008f161d9130eb96b7c6c45dfd721e049d681b"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Wed Sep 20 13:25:00 2023 +0100"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Wed Sep 20 13:32:02 2023 +0100"
      },
      "message": "Add a new error message to predictQualityLevels.\n\nBug: b/300512786\nTest: Tested using experimentsdemo\nChange-Id: I03002431fa293c7d65679d4de9ef20ffe21294fa\n"
    },
    {
      "commit": "6a008f161d9130eb96b7c6c45dfd721e049d681b",
      "tree": "bf1976e9b6f060e14bb2501123e93e1538ff2c2c",
      "parents": [
        "18fc8e25c509e891df2cc26fed61ef159670fff0"
      ],
      "author": {
        "name": "Vamsidhar reddy Gaddam",
        "email": "gvamsi@google.com",
        "time": "Tue Sep 19 09:18:57 2023 +0000"
      },
      "committer": {
        "name": "Vamsidhar reddy Gaddam",
        "email": "gvamsi@google.com",
        "time": "Tue Sep 19 09:39:13 2023 +0000"
      },
      "message": "Add fidelity parameters to session\n\nInstead of storing fidelity parameters in the json request, it is now\nstored as part of the session.\n\nBug: 301049970\nTest: Manual testing using BoatAttack switching QLs\n\nChange-Id: I379430fa9535b09c4aa301b3be1cf50ff65226db\n"
    },
    {
      "commit": "18fc8e25c509e891df2cc26fed61ef159670fff0",
      "tree": "b217e6932d2f8dc94a6f2f5c3e0df79fb1ef727a",
      "parents": [
        "b2f598f0ad85035dba90ea13cabe6e4e99cfa902"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Sep 15 17:33:30 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Sep 15 17:38:38 2023 +0100"
      },
      "message": "fix a race condition in GameTextInput\n\nThis commit fixes the problem with concurrent access to the\ncurrentState_ variable in gametextinput.cpp. A mutex has been added to\nguarantee safe multithreaded access to it.\n\nFix: 294112477\nTest: N/A\nChange-Id: I09729504c863217fe5530bc980e83655c979d461\n"
    },
    {
      "commit": "b2f598f0ad85035dba90ea13cabe6e4e99cfa902",
      "tree": "ac752e09523ae08d0d7582d5cea3a8667e11c7d0",
      "parents": [
        "2924078cb65ca1d32e903d2d9332720ae42b067b"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Sep 15 13:00:43 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Fri Sep 15 17:20:28 2023 +0100"
      },
      "message": "fix GameTextInput editing functions\n\nThe implementation was broken during refactoring.\n\nFix: 300465694\nTest: run AGDKTunnel and test edit box\nChange-Id: I011397d924d2b75b8039d6fa1cc81bd9b8dc947e\n"
    },
    {
      "commit": "2924078cb65ca1d32e903d2d9332720ae42b067b",
      "tree": "8dc914a7a7e0a8ef81b577d0ad2c69cb16932f30",
      "parents": [
        "d238783e34976b76c6cfb199450afd492a9e329e",
        "1f1e394de9e959178f5e712bf7fb84940ac29d9f"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 13 15:31:42 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 15:31:42 2023 +0000"
      },
      "message": "Merge \"add a note about supported input types for GameTextInput\" into main"
    },
    {
      "commit": "1f1e394de9e959178f5e712bf7fb84940ac29d9f",
      "tree": "d4cb71e334d723b0957f00d4b094df82822c0115",
      "parents": [
        "0407bf896beaccbe853f1a3438755b2830e210dc"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 13 15:24:31 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 13 14:50:14 2023 +0000"
      },
      "message": "add a note about supported input types for GameTextInput\n\nCurrently we only support plain text and number inputs.\n\nFix: 290894127\nTest: N/A\nChange-Id: I095be619be6d45fe25469927c4941a5178a0f2a7\n"
    },
    {
      "commit": "d238783e34976b76c6cfb199450afd492a9e329e",
      "tree": "b6dc41d5a597998beeafc0e293d0e47951771626",
      "parents": [
        "0407bf896beaccbe853f1a3438755b2830e210dc"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 13 15:09:51 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Wed Sep 13 15:09:51 2023 +0100"
      },
      "message": "add physical volume buttons to the ignore list for GameTextInput\n\nAlso fix the behavior so that the default system action is applied\nin case we don\u0027t handle the key.\n\nFix: 289014222\nTest: run AGDKTunnel\nChange-Id: Id62955e9a650f10d31b60be770f8be8f42fe1a02\n"
    },
    {
      "commit": "0407bf896beaccbe853f1a3438755b2830e210dc",
      "tree": "dbaf350d8a846d97c49561491e2f560ce9f8d72b",
      "parents": [
        "4961b2107e3e92fdf6229f92a1aaf19959d19d9d",
        "268f60ee46d23aea1c28a2222e055204fa988f89"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 12 13:58:57 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 13:58:57 2023 +0000"
      },
      "message": "Merge \"Decrease minSdkVersion of memory advice to 19.\" into main"
    },
    {
      "commit": "268f60ee46d23aea1c28a2222e055204fa988f89",
      "tree": "e2a6109e01b9b57370245e1cc204b7f4f2bf45f8",
      "parents": [
        "cb0cf2c186b9a70a15057bdf8d998eab38f74fa1"
      ],
      "author": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Sep 12 14:34:50 2023 +0100"
      },
      "committer": {
        "name": "Barış Kaya",
        "email": "bkaya@google.com",
        "time": "Tue Sep 12 14:34:50 2023 +0100"
      },
      "message": "Decrease minSdkVersion of memory advice to 19.\n\nBug: b/296597460\nTest: Tested using on an emulator running on API Level 19.\nChange-Id: I32e3f962ff1d8d9f31b3e6b8a79cefe88c860de6\n"
    },
    {
      "commit": "4961b2107e3e92fdf6229f92a1aaf19959d19d9d",
      "tree": "5895a1db2626c2b113a03efbd1aed287be31d51a",
      "parents": [
        "cb0cf2c186b9a70a15057bdf8d998eab38f74fa1"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Sep 12 14:25:12 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Tue Sep 12 14:25:12 2023 +0100"
      },
      "message": "fix wrong return type in MemoryAdvice\n\nThis is a minor fix of the GetAvailableMemory() implementation.\n\nBug: N/A\nTest: N/A\nChange-Id: I31602c97fb1b8ef56d8f724ca2bd58507b10d35e\n"
    },
    {
      "commit": "cb0cf2c186b9a70a15057bdf8d998eab38f74fa1",
      "tree": "1989bad9adf06426eb9efcfd300ddd9f18345d08",
      "parents": [
        "6b170d56f6405178b252b57774b73e7730480fd5"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Sep 11 16:40:16 2023 +0100"
      },
      "committer": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Sep 11 16:43:42 2023 +0100"
      },
      "message": "add an API GetAvailableMemory()\n\nThis CL adds a public interface for the implementation that has been\nadded ealier.\n\nBug: 297035019\nTest: modify AGDKTunnel or Hogger sample to make this call and display\nthe information returned\n\nChange-Id: I777de9d185e89f0a50d2e139da9c28b737fab771\n"
    },
    {
      "commit": "6b170d56f6405178b252b57774b73e7730480fd5",
      "tree": "cfe88faa11f621aae172d4f4aadfcd52477cc48d",
      "parents": [
        "d6782dca9bd861dd159eb3ccf760f0b746d0500a",
        "f4c1847a918196f22f060cbe917eaee84bb4c795"
      ],
      "author": {
        "name": "Artyom Palvelev",
        "email": "artyompp@google.com",
        "time": "Mon Sep 11 11:34:03 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 11:34:03 2023 +0000"
      },
      "message": "Merge \"update Hogger sample to the modern SDK\" into main"
    }
  ],
  "next": "f4c1847a918196f22f060cbe917eaee84bb4c795"
}
