)]}'
{
  "log": [
    {
      "commit": "97b0f27faf6a1e68d75cfcf360c989705872054c",
      "tree": "eb774dc348dbdaebec2e2102aa03a2599228c8ac",
      "parents": [
        "cd5ca03f9805bb50210ee33762e8025f708d1805",
        "36f83358f9e4c25787ca0f6086ceb2d64a11859e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 08 04:10:00 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 08 04:10:00 2025 -0700"
      },
      "message": "Merge \"Convert uses of @hide to block tag\" into main"
    },
    {
      "commit": "cd5ca03f9805bb50210ee33762e8025f708d1805",
      "tree": "016e8b35a2a34dde5c56b0a5d1050fd6b378e22f",
      "parents": [
        "c8a74e4545ef0b0515b62cb122c5c007deffd702",
        "3e02e3656b0f6a54663fe0c1663654b376b28911"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Sat Sep 06 01:13:42 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 06 01:13:42 2025 -0700"
      },
      "message": "Merge \"25Q4 OWNER freeze window\" into main"
    },
    {
      "commit": "44320d2542fec64f7d494dc459af492bcf7962e7",
      "tree": "d591ea187afdd54f56fb57935721549b2e1a60db",
      "parents": [
        "ed88710f330152583449cadb3191ad45fde6424d"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Fri Sep 05 16:41:06 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Fri Sep 05 16:42:15 2025 -0700"
      },
      "message": "Only broadcast to concerned user\n\nBug: 435244086\nFlag: com.android.bluetooth.flags.only_broadcast_to_local_user\nTest: atest BluetoothJavaUnitTests\nChange-Id: Ic8636c0f33958cf939558969dd56ecd39b4903e5\n"
    },
    {
      "commit": "ed88710f330152583449cadb3191ad45fde6424d",
      "tree": "7cb881b07ab2d5f50f1a996ca56d3a34664afa19",
      "parents": [
        "97bb6479df639e2624c87e2305322f3464133c99",
        "eab17948d6507ae3759274a2b14ece05e6e53c3e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 05 14:33:39 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 05 14:33:39 2025 -0700"
      },
      "message": "Merge \"Avatar HAP: better scope name change\" into main"
    },
    {
      "commit": "3e02e3656b0f6a54663fe0c1663654b376b28911",
      "tree": "fe3aeb2764e7b5df4cfd7aa7c1d4fbccba3b52c4",
      "parents": [
        "066d790beb02cf13b201b199a2c040a6a2b060a4"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Fri Sep 05 12:59:28 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Fri Sep 05 12:59:28 2025 -0700"
      },
      "message": "25Q4 OWNER freeze window\n\nRemove all owner to make sure the Bluetooth prebuilt is aligned with\n25Q4 sources and no last minutes regressions happens\n\nFlag: EXEMPT owner only\nBug: 443313840\nTest: m .\nChange-Id: If67405799a3cc4a9cc68bc9859c1eb94c6b5f50d\n"
    },
    {
      "commit": "f5a2a8f8bdbab1912602d2d21e3132b09b4b6302",
      "tree": "a1ba09972ab111c937e6b5fd725de60cfe0e0bb6",
      "parents": [
        "3adf0bb6d25b0a6710f4dffd0831d1f039c6a43c",
        "322a8802246396128684b78d1dc93e4da39a9bd8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 05 10:03:35 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 05 10:03:35 2025 -0700"
      },
      "message": "Merge \"Add modern Java syntax for generic types\" into main"
    },
    {
      "commit": "2e4f222a76750ed52a5185077f31a8c1108d1de3",
      "tree": "353f0d7de2e6083a3abd9374e0687acc4120b92b",
      "parents": [
        "b93c6f29ea77708246cde5063f140b65ce7ea319"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Fri Sep 05 15:11:10 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Fri Sep 05 16:35:18 2025 +0900"
      },
      "message": "Check if `ScanController` is available before calling in AdapterSuspend\n\n`mAdapterService.getBluetoothScanController()` will return null if\nBluetooth is not available, is not turned on, or prior to completing\ntransition to at least `BLE_ON`.\n\nBug: 442793215\nFix: 442793215\nBug: 438826539\nBug: 438561761\nTest: m -j\nTest: atest ScanManagerTest\nFlag: com.android.bluetooth.flags.stop_le_scan_system_suspend\nChange-Id: Ic5682543eaa505b4d605184f00225b9e83936c32\n"
    },
    {
      "commit": "322a8802246396128684b78d1dc93e4da39a9bd8",
      "tree": "9b9648ca8f4ecdbecd09a1e89a70cb2b4c4cbf68",
      "parents": [
        "b93c6f29ea77708246cde5063f140b65ce7ea319"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Fri Sep 05 14:59:13 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Fri Sep 05 14:59:53 2025 +0900"
      },
      "message": "Add modern Java syntax for generic types\n\nThis change updates several classes to use modern Java syntax by\nreplacing raw types with parameterized types. This improves code\nreadability and eliminates compiler warnings related to unchecked\noperations.\n\nBug: 394958283\nTest: atest BluetoothJavaUnitTests\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: Ibf2014099ba52469d3668f5cf7d6bc006857bce2\n"
    },
    {
      "commit": "eab17948d6507ae3759274a2b14ece05e6e53c3e",
      "tree": "5d1357619e9053de2cbaea520d15a9017f13a0a2",
      "parents": [
        "b1a7ee991e40a71dd29cffbdb0706593d6a7ed98"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Thu Sep 04 13:37:07 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Thu Sep 04 13:37:07 2025 -0700"
      },
      "message": "Avatar HAP: better scope name change\n\nModifying a preset name in a test was appearing in another one. We don\u0027t\nwant that as the setup is now flaky in continuous testing\n\nBug: 442923652\nFix: 442923652\nTest: atest avatar:HapTest\nFlag: TEST_ONLY\nChange-Id: I1beeb5b3cd5f19db5119c0eb2556b360ca491400\n"
    },
    {
      "commit": "f515be7a193cfdc1e3bedda9c48218d33aa16009",
      "tree": "7460a82a8f45a27e6d6e04d4ebfd6c6acb24ca9c",
      "parents": [
        "b00b46d5866b7fe286cde90c38336c125f699b3c",
        "20a2c6b1a566443eb6ac127f4e8c83b2ca11489a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 04 10:58:21 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 10:58:21 2025 -0700"
      },
      "message": "Merge \"Fix variable shadowing in AdvertiseSuspendManager\" into main"
    },
    {
      "commit": "b00b46d5866b7fe286cde90c38336c125f699b3c",
      "tree": "fbb93cd0082ca5b4562daf19f637055a863def64",
      "parents": [
        "03f434673ac4d53cb8c0962412c0d6348550df64",
        "4163799a84e239fed7d2c6a04548f0897d820eef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 04 10:55:38 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 10:55:38 2025 -0700"
      },
      "message": "Merge \"Simplify ScanSuspendManager#clientHandler initialization\" into main"
    },
    {
      "commit": "665fbf12cb5d65281042bd6ea9cfa1daa0a2d712",
      "tree": "1d95b08f75e55e7e9c47a6ce120e2f5402e4201f",
      "parents": [
        "1e769b3276f9d7f4c4d9b63913f876186607cfc1",
        "912d3d7670eefcbeb20a91948236c9ca4ce1e518"
      ],
      "author": {
        "name": "Michal Belusiak (xWF)",
        "email": "belusiak@google.com",
        "time": "Thu Sep 04 08:08:15 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 08:08:15 2025 -0700"
      },
      "message": "Merge \"BassUtils: Fix NPE when checking containUuid\" into main"
    },
    {
      "commit": "a976f3dacb3a99921aa7e821c063db4cc208582f",
      "tree": "217c82becdf950ffeb76a712d1234dbc6fc477c5",
      "parents": [
        "ce2698520580cd424460b4c7f4bf8a6104620dec",
        "e883676eaed7264c1fec8013e82ca1d34f48f4bd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 04 07:35:10 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 07:35:10 2025 -0700"
      },
      "message": "Merge \"Remove redundant null checks in BluetoothKeystoreNativeInterface\" into main"
    },
    {
      "commit": "27b73413bc48fb6b515abd269800541d631e3a68",
      "tree": "6688f6b63b46d9259ce79c45124a9558013cd7e3",
      "parents": [
        "519536071a3dbe92d81c90071bfd933f2fe8f99c",
        "0852e27170c22432384cb2281e3a24f00db9e731"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 04 02:24:00 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 02:24:00 2025 -0700"
      },
      "message": "Merge \"Remove reverted flag kill_instead_of_exit\" into main"
    },
    {
      "commit": "4163799a84e239fed7d2c6a04548f0897d820eef",
      "tree": "3caa42efa0a502732b5fbb9c2a4e3b19a642fec7",
      "parents": [
        "d63e05ba949a01504301c327abfa5ec36e1248a7"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Thu Sep 04 17:26:02 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Thu Sep 04 17:26:25 2025 +0900"
      },
      "message": "Simplify ScanSuspendManager#clientHandler initialization\n\nThe clientHandler property initialization is simplified by using a\ndirect, single-line initializer, which is a more idiomatic Kotlin\napproach. This also removes the need for a nullable type and init block.\n\nBug: 438826539\nBug: 438561761\nTest: m -j\nTest: atest ScanManagerTest\nFlag: com.android.bluetooth.flags.stop_le_scan_system_suspend\nChange-Id: I8db1edb973f8fad852cc53be3a0b0a4c6dbfa461\n"
    },
    {
      "commit": "20a2c6b1a566443eb6ac127f4e8c83b2ca11489a",
      "tree": "23dc36ede392e250fe61064607a447f3b5595c6a",
      "parents": [
        "d63e05ba949a01504301c327abfa5ec36e1248a7"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Thu Sep 04 17:18:26 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Thu Sep 04 17:19:27 2025 +0900"
      },
      "message": "Fix variable shadowing in AdvertiseSuspendManager\n\nPreviously: `skipCallback \u003d skipCallback`\n\nRename the local skipCallback variable to skipCallbackForThisEvent to\nresolve a shadowing issue with the class property of the same name.\n\nBug: 413129616\nBug: 433136730\nTest: atest BluetoothJavaUnitTests\nFlag: com.android.bluetooth.flags.adapter_suspend_advertisement\nChange-Id: Ic7614cfd38081d6ed103aceb00db03a21842a8f3\n"
    },
    {
      "commit": "e883676eaed7264c1fec8013e82ca1d34f48f4bd",
      "tree": "d36968774c627d48b1b79700d2c09b754f1d6dec",
      "parents": [
        "8b40c93b813c54a9ba521bb64a8cf3bc6cddd5b9"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Thu Sep 04 16:05:52 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Thu Sep 04 16:09:28 2025 +0900"
      },
      "message": "Remove redundant null checks in BluetoothKeystoreNativeInterface\n\nThe null checks are not required because mBluetoothKeystoreService is a\nfinal field that cannot be null. Since cl\nag/33648808:\n  Remove singleton from BluetoothKeystoreNativeInterface\n\n// And a sneaky, unrelated typo fix in GuardedLogLineDetector\n\nBug: 418183047\nTest: atest BluetoothKeystoreServiceTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: I1e3a8615293f056bb91609c7ca54bc341612a169\n"
    },
    {
      "commit": "912d3d7670eefcbeb20a91948236c9ca4ce1e518",
      "tree": "2bb87165fc8a75af2fb1832855bccf18df7f4151",
      "parents": [
        "fbbda8a08861e504b07523369f448e4d5db03f26"
      ],
      "author": {
        "name": "Michal Belusiak",
        "email": "belusiak@google.com",
        "time": "Thu Sep 04 05:21:33 2025 +0000"
      },
      "committer": {
        "name": "Michal Belusiak",
        "email": "belusiak@google.com",
        "time": "Thu Sep 04 05:21:33 2025 +0000"
      },
      "message": "BassUtils: Fix NPE when checking containUuid\n\nUse Objects.equals to safely compare UUID values and avoid\nNullPointerException when serviceDataUuid is null.\n\nBug: 442790446\nFlag: EXEMPT BUGFIX\nTest: mmm packages/modules/Bluetooth\nChange-Id: Ie65c20788672428e7fcc1dc53befe74c93ba33fb\n"
    },
    {
      "commit": "0b39045dbee6072c384c248f0dcc4d9e5ed420bf",
      "tree": "0674747c9eeef0fc62f43fb531a4a937c6d53029",
      "parents": [
        "8a71656f86376e89d3b77539be2d262908cb4e25",
        "ebe3fd43ee881f4fdf1a87ebbc9cbed4b336e657"
      ],
      "author": {
        "name": "Kyunglyul Hyun",
        "email": "klhyun@google.com",
        "time": "Wed Sep 03 20:48:47 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 20:48:47 2025 -0700"
      },
      "message": "Merge \"Prevent battery level fluctuation\" into main"
    },
    {
      "commit": "bf9d2a52a27a7db322cb5633e340a32787480425",
      "tree": "03d55039c4c7a0ed95919c50e12c8b91fa32b34d",
      "parents": [
        "8cef52a25a4b75d519be8a495340478700ddba26",
        "0e3636236bf07fa5ab214bef568a59b04d12c4be"
      ],
      "author": {
        "name": "Ang Li",
        "email": "ihcinihsdk@google.com",
        "time": "Wed Sep 03 17:04:52 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 17:04:52 2025 -0700"
      },
      "message": "Merge \"Add unit tests for device list retrieval methods\" into main"
    },
    {
      "commit": "8cef52a25a4b75d519be8a495340478700ddba26",
      "tree": "d4e559a683844a8ec6283288d8737d097cf1e66c",
      "parents": [
        "e9ef0602c709597e9d2776d5874e91fbf86577e6",
        "0230ca4400b0115e235a15105ff4c31c5141eba3"
      ],
      "author": {
        "name": "Ang Li",
        "email": "ihcinihsdk@google.com",
        "time": "Wed Sep 03 16:46:23 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 16:46:23 2025 -0700"
      },
      "message": "Merge \"Add unit tests for HandleMap.Entry constructors\" into main"
    },
    {
      "commit": "e9ef0602c709597e9d2776d5874e91fbf86577e6",
      "tree": "26a929cba14a3e187edf136d5efdfc2ddb613af6",
      "parents": [
        "ae5a5229ccfdd517484a97274992ed0b38187115",
        "1b24352bb29285f822ae5c909aeff89338aeee2b"
      ],
      "author": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Wed Sep 03 16:27:59 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 16:27:59 2025 -0700"
      },
      "message": "Merge \"Adjust Bitbool values as per the spec.\" into main"
    },
    {
      "commit": "0852e27170c22432384cb2281e3a24f00db9e731",
      "tree": "49e0aa37b6268ffb5df337c255dfd5cfc7a00d18",
      "parents": [
        "75f17f2b36f9a327c233ff312ea7a2f26a9352ab"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Sep 02 16:13:18 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Wed Sep 03 15:05:41 2025 -0700"
      },
      "message": "Remove reverted flag kill_instead_of_exit\n\nCalling kill instead of exit is skipping the exit action that allows\nnative coverage to be computed.\n\nBug: 440223264\nBug: 339553092\nFlag: EXEMPT FLAG_REMOVAL\nTest: m .\nChange-Id: Ia0c3f4134d6c0a0ecf51b1f767a6c502e961b514\n"
    },
    {
      "commit": "0230ca4400b0115e235a15105ff4c31c5141eba3",
      "tree": "6ebd26a7d736d63df2e8034ec957c0d5605c716a",
      "parents": [
        "b1a7ee991e40a71dd29cffbdb0706593d6a7ed98"
      ],
      "author": {
        "name": "AI test gen",
        "email": "mdb.ai-test-generation-team@google.com",
        "time": "Tue Sep 02 06:08:28 2025 -0700"
      },
      "committer": {
        "name": "Ang Li",
        "email": "ihcinihsdk@google.com",
        "time": "Wed Sep 03 14:52:00 2025 -0700"
      },
      "message": "Add unit tests for HandleMap.Entry constructors\n\nAdds unit tests to verify that the different constructors of the\n`HandleMap.Entry` inner class correctly initialize all member fields,\nincluding those that are set to default values.\n\nThe tests are implemented by calling the public methods `addService`,\n`addCharacteristic`, and `addDescriptor` on the `HandleMap` instance,\nwhich in turn use the `Entry` constructors. The state of the created\n`Entry` object is then inspected to ensure its correctness.\n\nPlease help fill out the survey for feedback: https://docs.google.com/forms/d/e/1FAIpQLSeKFKpHImCAqZIa_OR801cw72HQUreM2oGM25C3mKKT2tBFnw/viewform?usp\u003dpp_url\u0026entry.1586624956\u003dag/35423546\n\nPlease feel free to use your domain knowledge to make changes to the generated tests to make it more valuable for your team.\n\nOriginal Change: ag/35050090\nTest: atest android/app/tests/unit/src/com/android/bluetooth/gatt/HandleMapTest.java (http://ab/I19900010442375908) AND ATP tests passed http://go/forrest-run/L90700030017481972\nBug: 431235865\nFlag: TEST_ONLY\n\nChange-Id: Idc3d26528f2a82701e454c9decbec622ce1a0efa\n"
    },
    {
      "commit": "0e3636236bf07fa5ab214bef568a59b04d12c4be",
      "tree": "0688edda8ed087aa55e09cdba053a32f403014d7",
      "parents": [
        "e338e4c7eb479e8cbe5ba424093ca4518e4ba92a"
      ],
      "author": {
        "name": "AI test gen",
        "email": "mdb.ai-test-generation-team@google.com",
        "time": "Fri Aug 29 22:55:43 2025 -0700"
      },
      "committer": {
        "name": "Ang Li",
        "email": "ihcinihsdk@google.com",
        "time": "Wed Sep 03 14:45:22 2025 -0700"
      },
      "message": "Add unit tests for device list retrieval methods\n\nAdd comprehensive unit tests for `getConnectedDevices` and `getDevicesMatchingConnectionStates` in `HeadsetClientService`.\n\nThese tests cover various scenarios, including:\n- No devices in the map.\n- Devices in various connection states.\n- Single and multiple matching devices.\n- Empty desired states array.\n- Edge cases like null state machine entries.\n\nThis ensures the functional correctness of these methods after a recent refactoring.\n\n\nPlease help fill out the survey for feedback: https://docs.google.com/forms/d/e/1FAIpQLSeKFKpHImCAqZIa_OR801cw72HQUreM2oGM25C3mKKT2tBFnw/viewform?usp\u003dpp_url\u0026entry.1586624956\u003dag/35392098\n\nOriginal Change: ag/35064989 (Note that tests are based on the original CL but may add coverage beyond the specific changes to improve overall code health)\nTest: atest android/app/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientServiceTest.java (http://ab/I05400010441422044) AND ATP tests passed http://go/forrest-run/L99600030017349247\nBug: 431235865\nFlag: TEST_ONLY\n\nChange-Id: I997f28bdffe85527f0bf2f18fe90d2a042c3e119\n"
    },
    {
      "commit": "1b24352bb29285f822ae5c909aeff89338aeee2b",
      "tree": "6ecf50b3ced7b4107156f2614d6279d74c41b53b",
      "parents": [
        "35a69c35a8db3fa086e40b811456f59936f9d740"
      ],
      "author": {
        "name": "Rajat Soni",
        "email": "quic_rajasoni@quicinc.com",
        "time": "Mon Mar 17 21:15:03 2025 +0530"
      },
      "committer": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Wed Sep 03 13:32:45 2025 -0700"
      },
      "message": "Adjust Bitbool values as per the spec.\n\nWhen some remotes give the supported min/max bitpool values are differ\nfrom spec. In such cases we will set the min/max values as per spec.\nOutgoing connection:\n  - If remote Max bitpool value \u003e 250, then DUT will set it to 250.\n  - If remote Min bitpool value \u003e 250, then DUT will set it to 250.\n  - If remote Min bitpool value \u003e Max bitpool value, then DUT will set\n    Max bitpool value to Minpool value to behave properly.\nIncoming connection:\n  - If remote sets Min bitpool value \u003c 2, then DUT will set it to 2.\n  - If remote sets Max bitpool value \u003e 250, then DUT will set it to 250.\n  - If remote sets Min bitpool value \u003e 250, then DUT will set it to 250.\n  - If remote sets Min bitpool value \u003e Max bitpool value, then DUT will set\n    max bitpool value to Minpool value to behave properly.\n\nBug: 441146545\nBug: 404201032\nTest: m com.android.bt\nFlag: com.android.bluetooth.flags.a2dp_adjust_sbc_bitpool\nChange-Id: I9c4fc500e4fe319c6b0107de6fcb8c17d092173f\n"
    },
    {
      "commit": "024aaa658ac348747e5af33a06e2a53dc5b45b3e",
      "tree": "9d256283c4f4422a99a8e8e73a37466bdb19deef",
      "parents": [
        "98c5d0508734ac136d29122853cc9c86a7209255",
        "95b9c6c68a29b32e108001ff01fa4bd5f29a4757"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 03 11:19:08 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 11:19:08 2025 -0700"
      },
      "message": "Merge \"pandora/server: Wait for audio routing in A2DP\" into main"
    },
    {
      "commit": "0f34af616981cce1dc2f3941d142f263c37c2d09",
      "tree": "e55645ee6ef5fc00db46d416058f924021cacbb3",
      "parents": [
        "133dfe23a310b33ab0775836f2b83f6c0d78502d",
        "546fd35e46079117ba38b054ce8ccc7a6ad0d1bf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 03 10:27:10 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 10:27:10 2025 -0700"
      },
      "message": "Merge \"Inject UserManager into AvrcpTargetService\" into main"
    },
    {
      "commit": "133dfe23a310b33ab0775836f2b83f6c0d78502d",
      "tree": "8d823daa2f0389b1d9858446f911b0fba3f814bd",
      "parents": [
        "dd0a3d1fb63f7ce4808af03e60a0723df6195d24",
        "d1d90e3f20e048b64e1fd337d57c1421ab073915"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 03 10:27:09 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 10:27:09 2025 -0700"
      },
      "message": "Merge \"Inject UserManager into PanService\" into main"
    },
    {
      "commit": "d1d90e3f20e048b64e1fd337d57c1421ab073915",
      "tree": "e7d0ec01564aec9c92505d1cf4c0157399f2e5da",
      "parents": [
        "3178a0e534241293a81121a7e3bc82926b5199ad"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Sep 03 20:20:25 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Sep 03 20:22:11 2025 +0900"
      },
      "message": "Inject UserManager into PanService\n\nBug: 417622882\nTest: atest PanServiceTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: I16778c717ca6a1aa3050b6ace74e4623d34e292c\n"
    },
    {
      "commit": "546fd35e46079117ba38b054ce8ccc7a6ad0d1bf",
      "tree": "9abdb0193fdb9c4245cfa2dd5c30e05837f87f08",
      "parents": [
        "3178a0e534241293a81121a7e3bc82926b5199ad"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Sep 03 20:08:38 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Sep 03 20:10:20 2025 +0900"
      },
      "message": "Inject UserManager into AvrcpTargetService\n\nBug: 417622882\nTest: atest AvrcpTargetServiceTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: Ie95313a8ca95c9aa4b38093816abc8b2f87b56ae\n"
    },
    {
      "commit": "a2eedd355e686f09a7e4875aeb484527b4958ab9",
      "tree": "95ac1b7cde337179d5c0b66939a7e1122cc6b012",
      "parents": [
        "1025ab13755bab1ccc88f041d224711e066006bf",
        "c279becabc4a83476878ac26e11c67265d8727a2"
      ],
      "author": {
        "name": "Archie Pusaka",
        "email": "apusaka@google.com",
        "time": "Wed Sep 03 02:34:43 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 02:34:43 2025 -0700"
      },
      "message": "Merge changes I635d05f5,I7947050a into main\n\n* changes:\n  Disable advertisement on suspend and re-enable on resume\n  Queue advertisements commands from app when suspending\n"
    },
    {
      "commit": "ebe3fd43ee881f4fdf1a87ebbc9cbed4b336e657",
      "tree": "bea29936cb217ea21897ef2793736c931566dc6c",
      "parents": [
        "55403e79c976641b9acd3deb536e75f6b0632732"
      ],
      "author": {
        "name": "Kyunglyul Hyun",
        "email": "klhyun@google.com",
        "time": "Wed Sep 03 07:53:40 2025 +0000"
      },
      "committer": {
        "name": "Kyunglyul Hyun",
        "email": "klhyun@google.com",
        "time": "Wed Sep 03 08:21:32 2025 +0000"
      },
      "message": "Prevent battery level fluctuation\n\nA remote device\u0027s battery level can be reported by two different\nprotocols: HFP (classic) and BAS (LE).\nBecause these protocols have different precision levels,\ntheir reported battery levels can vary. We prefer to use the BAS\nvalue as it provides a more precise report.\n\nPreviously, an unstable or temporary LE disconnection would cause\nthe BAS data to reset, forcing the displayed battery level to\nrevert to the HFP value. This created a fluctuation when\nthe LE connection was restored and the BAS value returned.\n\nThis change ensures the displayed battery level remains consistent\nby maintaining the last known BAS value. This value is only updated\nwhen a new battery indication is received from the HFP profile,\nwhich prevents the battery level from jumping around during brief\ndisconnections.\n\nFlag: com.android.bluetooth.flags.consistent_battery_level\nTest: atest RemoteDevicesTest\nBug: 442696675\nBug: 441242765\nChange-Id: I64ea9013b82d1b8289e0f36b4d2c60f5c6fd5f10\n"
    },
    {
      "commit": "c279becabc4a83476878ac26e11c67265d8727a2",
      "tree": "439ee8def556a27470b53007f0ba3cc30008fc6c",
      "parents": [
        "472fd9204419cd02ae62af120c416cd9d3484220"
      ],
      "author": {
        "name": "Archie Pusaka",
        "email": "apusaka@google.com",
        "time": "Mon Jun 23 22:52:07 2025 +0000"
      },
      "committer": {
        "name": "Archie Pusaka",
        "email": "apusaka@google.com",
        "time": "Tue Sep 02 19:06:30 2025 -0700"
      },
      "message": "Disable advertisement on suspend and re-enable on resume\n\nThis is to reduce the power consumption during suspend.\n\nAdditionally, this tries to selectively filter out the advertisement\nenabled/disabled event generated by suspend activity so that it\u0027s not\npropagated to any upper layer apps.\n\nPlease refer to the design doc in b/433136730.\n\nBug: 413129616\nBug: 433136730\nTest: m com.google.android.bt\nFlag: com.android.bluetooth.flags.adapter_suspend_advertisement\n\nChange-Id: I635d05f5d1a1fb48e775dba7dbc888b00644b73b\n"
    },
    {
      "commit": "1b58551cc90cd2259396c602db39eb03bd0b7863",
      "tree": "c8a68c140002d44771999f61df9c9a20a05b8d8d",
      "parents": [
        "3a7f8615e9808017e2820810d27c370d743b62a0",
        "6ed39e5fc4c681aecc1527ea8de36779064f5e32"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Sep 02 17:50:55 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 17:50:55 2025 -0700"
      },
      "message": "Merge \"Add tests for AppRecord in ContextMap dump\" into main"
    },
    {
      "commit": "6ed39e5fc4c681aecc1527ea8de36779064f5e32",
      "tree": "5cfbf17180717a43b0adc932fddc3360168ead8e",
      "parents": [
        "9c316b99ad63221e26b61f07be2be88cee9f137e"
      ],
      "author": {
        "name": "AI test gen",
        "email": "mdb.ai-test-generation-team@google.com",
        "time": "Sun Aug 31 17:13:02 2025 -0700"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Sep 02 17:38:34 2025 -0700"
      },
      "message": "Add tests for AppRecord in ContextMap dump\n\nThe `dump()` method is used for debugging and its output is crucial for understanding the state of registered GATT applications. The existing tests only ensured that `dump()` did not crash but did not validate its output.\n\nThis change introduces two tests for the `dump()` method:\n- `dump_withActiveApps_doesNotShowLastApps`: Verifies that for active applications, no \"last apps\" records are printed.\n- `dump_withRemovedApp_containsAppRecord`: Verifies that after an application is removed, its details are correctly recorded and included in the dump output. This test specifically checks for the application ID, name, and removal reason, ensuring the `AppRecord` logic is working as expected.\n\n\nPlease help fill out the survey for feedback: https://docs.google.com/forms/d/e/1FAIpQLSeKFKpHImCAqZIa_OR801cw72HQUreM2oGM25C3mKKT2tBFnw/viewform?usp\u003dpp_url\u0026entry.1586624956\u003dag/35407627\n\nPlease feel free to use your domain knowledge to make changes to the generated tests to make it more valuable for your team.\n\nOriginal Change: ag/34942522 (Note tests are based on the original CL but may add coverage beyond the specific changes to improve overall code health).\n\nTest: atest ContextMapTest\nTest: ATP tests passed http://go/forrest-run/L35700030017421891\nBug: 431235865\nFlag: TEST_ONLY\n\nChange-Id: Ia070bca9b5bb32fddd826b37a120a501a8889112\n"
    },
    {
      "commit": "3a7f8615e9808017e2820810d27c370d743b62a0",
      "tree": "7e8123378fbc51c1fa05bf48de9ddcb40ea6cd9c",
      "parents": [
        "1083aca6ea7f351c490d89612ddafed827715b2e",
        "6a06ee64a382ed67134d5defd79c1a6bd9e4d074"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 02 16:39:19 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 16:39:19 2025 -0700"
      },
      "message": "Merge \"Inject CompanionDeviceManager into A2dpService\" into main"
    },
    {
      "commit": "1083aca6ea7f351c490d89612ddafed827715b2e",
      "tree": "a983e2405fa4bfa5e714afd07ee07fa1f97b0b26",
      "parents": [
        "46e7ccca88e17a4f3f864fa88271fa635288c08d",
        "2f5800ed462412bdd640111965f2e6a57cced3c8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 02 16:35:50 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 16:35:50 2025 -0700"
      },
      "message": "Merge \"Inject CompanionDeviceManager into GattService\" into main"
    },
    {
      "commit": "46e7ccca88e17a4f3f864fa88271fa635288c08d",
      "tree": "520d91ca12aa402a97122d969b194521e3f76a10",
      "parents": [
        "75f17f2b36f9a327c233ff312ea7a2f26a9352ab",
        "fbac49329ea797b06d8a5f4bf8170df11effa885"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 02 16:34:12 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 16:34:12 2025 -0700"
      },
      "message": "Merge \"Inject CompanionDeviceManager into ScanController\" into main"
    },
    {
      "commit": "75f17f2b36f9a327c233ff312ea7a2f26a9352ab",
      "tree": "866511063826fe1405f50217272b8c3e045d35cb",
      "parents": [
        "7ca03c5454a14862caabf5d1de84cde407762606",
        "69ef571a579cb5ec55525b9ac0632c90c995beb3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 02 13:23:18 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 13:23:18 2025 -0700"
      },
      "message": "Merge \"Remove repeating \"Gatt\" prefix for Logcat calls in GattService logging\" into main"
    },
    {
      "commit": "7ca03c5454a14862caabf5d1de84cde407762606",
      "tree": "4cdcefcc4d075d8c491f1402f845b0eb03e7a89b",
      "parents": [
        "064e05fa3dc2d7a5fdf68259ee3c2edadb8c2822",
        "b70cab0d03042886f6968de5815c8d5a0c4394f0"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Sep 02 12:54:41 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 12:54:41 2025 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE ANYWHERE\" into main"
    },
    {
      "commit": "064e05fa3dc2d7a5fdf68259ee3c2edadb8c2822",
      "tree": "c7ebc332f21f46cf5eece4459f8958e1ec378932",
      "parents": [
        "e3b377a01c7f24009495e1ff61cfdbe46e0c6f03",
        "5a0df8e0bb2d18fb7e2ecca43b2954eb8e4b1aee"
      ],
      "author": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Tue Sep 02 10:26:48 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 10:26:48 2025 -0700"
      },
      "message": "Merge changes I6cb7071f,I24a39ba0 into main\n\n* changes:\n  [le audio] Broadcast connection change intent at LEA state machine shut down\n  flags: Add leaudioIntentBroadcastInStateMachineCleanup\n"
    },
    {
      "commit": "e3b377a01c7f24009495e1ff61cfdbe46e0c6f03",
      "tree": "7d5945959df671dff681de44736f521fe0d0849e",
      "parents": [
        "b9f7d623846f5720e6bdcd2d039a4863322a008e",
        "801f41cac82e4b6b5daa8f07fc059eb0e6ff20a2"
      ],
      "author": {
        "name": "Jakub Rotkiewicz (xWF)",
        "email": "rotkiewicz@google.com",
        "time": "Tue Sep 02 09:50:20 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 02 09:50:20 2025 -0700"
      },
      "message": "Merge \"ptsbot: Enable a2dp_cancel_acceptor_alarm_for_avdt_init\" into main"
    },
    {
      "commit": "95b9c6c68a29b32e108001ff01fa4bd5f29a4757",
      "tree": "c0b69696b8d9265b4fe95dc1ecf300fef776e6ee",
      "parents": [
        "deadfd2e4d6da25c512d80cd54fb27011c51a37c"
      ],
      "author": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Fri Aug 29 08:00:00 2025 +0000"
      },
      "committer": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Tue Sep 02 13:42:04 2025 +0000"
      },
      "message": "pandora/server: Wait for audio routing in A2DP\n\nWait until a2dp device is added as an audio device.\nAdd listener to A2DP and wait a2dp device is selected\nas routed device.\n\nBug: 432706160\nFlag: EXEMPT TEST_ONLY\nTest: atest avatar:\u0027A2dpTest\u0027 -v\nChange-Id: I5a247a60d4f7da3559a73959bf0d873fad62c421\n"
    },
    {
      "commit": "b70cab0d03042886f6968de5815c8d5a0c4394f0",
      "tree": "a20004d5b230ae1370552fdc06d5a396f2aedf29",
      "parents": [
        "fb66a9aa5815aeeab001ff23e88c4c8b872d472b"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Sep 02 11:44:03 2025 +0000"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Sep 02 11:44:03 2025 +0000"
      },
      "message": "Import translations. DO NOT MERGE ANYWHERE\n\nAuto-generated-cl: translation import\nChange-Id: I15ba4c1bb7badaf5d5fab62c25785b176144767f\n"
    },
    {
      "commit": "fb66a9aa5815aeeab001ff23e88c4c8b872d472b",
      "tree": "f9e8b317a74dfdeaf28c4e19d1aba20753c4e730",
      "parents": [
        "d11bcc726271fe3bf4125a85fef7ef31b4626f8a",
        "9f5a755af2ed007e3d55a056e3e23c68a87ae2a1"
      ],
      "author": {
        "name": "Clay Zhu",
        "email": "clayzhu@google.com",
        "time": "Mon Sep 01 20:37:24 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 01 20:37:24 2025 -0700"
      },
      "message": "Merge \"Stop logging A2DP connection state changes in `A2dpStateMachine`.\" into main"
    },
    {
      "commit": "69ef571a579cb5ec55525b9ac0632c90c995beb3",
      "tree": "2d3eab325044994d4b631617f8070e06503bb48f",
      "parents": [
        "ffadc6a54a713d4d4964bbe43042cc5498926ec7"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Sep 02 10:13:11 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Sep 02 10:13:15 2025 +0900"
      },
      "message": "Remove repeating \"Gatt\" prefix for Logcat calls in GattService logging\n\n`TAG` is defined as `BtGatt.GattService`. This changes the logcat line\nfrom:\n  `BtGatt.GattService: Gatt Logging: metric_id\u003d8, app_uid\u003d-1`\nto:\n  `BtGatt.GattService: Logging: metric_id\u003d8, app_uid\u003d-1`\n\nBug: 394958283\nTest: atest GattServiceTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: I1f5fb68fb95c5189ccc05f9940c7749fdd033723\n"
    },
    {
      "commit": "fbac49329ea797b06d8a5f4bf8170df11effa885",
      "tree": "95a7f4706fb7c4feb2fc371240427b56fe71745a",
      "parents": [
        "ffadc6a54a713d4d4964bbe43042cc5498926ec7"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Mon Sep 01 22:34:47 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Mon Sep 01 22:46:38 2025 +0900"
      },
      "message": "Inject CompanionDeviceManager into ScanController\n\nBug: 417622882\nTest: atest ScanControllerTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: I197cad07343bdcf70265e828685c059d0c03ada6\n"
    },
    {
      "commit": "2f5800ed462412bdd640111965f2e6a57cced3c8",
      "tree": "868d619d7addba410bef9238f682db8f50110458",
      "parents": [
        "ffadc6a54a713d4d4964bbe43042cc5498926ec7"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Mon Sep 01 20:52:59 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Mon Sep 01 20:56:54 2025 +0900"
      },
      "message": "Inject CompanionDeviceManager into GattService\n\nAlso remove an unused constructor in GattService\n\nBug: 417622882\nTest: atest GattServiceTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: Icf314d185de56a077d4675e87883b93542f55396\n"
    },
    {
      "commit": "6a06ee64a382ed67134d5defd79c1a6bd9e4d074",
      "tree": "307a2b65a7fb7edff9cf3a6ef3e628644d0e11bc",
      "parents": [
        "ffadc6a54a713d4d4964bbe43042cc5498926ec7"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Mon Sep 01 20:43:58 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Mon Sep 01 20:46:45 2025 +0900"
      },
      "message": "Inject CompanionDeviceManager into A2dpService\n\nBug: 417622882\nTest: atest A2dpServiceTest\nFlag: EXEMPT PURE_REFACTOR\nChange-Id: I283ba6cd4c1187d8a570011d54965bf99755ce7e\n"
    },
    {
      "commit": "deadfd2e4d6da25c512d80cd54fb27011c51a37c",
      "tree": "552793a11414f3118419f2c1fbef613e84e96102",
      "parents": [
        "04670862597bda77e6cab562a3521dee3cfa7453",
        "6126ead9a705c0f246330dd25af2b5f05fa573de"
      ],
      "author": {
        "name": "Jakub Rotkiewicz (xWF)",
        "email": "rotkiewicz@google.com",
        "time": "Mon Sep 01 00:48:01 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 01 00:48:01 2025 -0700"
      },
      "message": "Merge \"values/config: Decrease A2DP OPUS codec priority to 1501\" into main"
    },
    {
      "commit": "472fd9204419cd02ae62af120c416cd9d3484220",
      "tree": "9ff261d5d9135f1969cf1acc2361592fc644de66",
      "parents": [
        "16da410d6e417e12099bfaf8596b12c4fd73cc56"
      ],
      "author": {
        "name": "Archie Pusaka",
        "email": "apusaka@google.com",
        "time": "Mon Jun 23 09:25:49 2025 +0000"
      },
      "committer": {
        "name": "Archie Pusaka",
        "email": "apusaka@google.com",
        "time": "Mon Sep 01 07:03:07 2025 +0000"
      },
      "message": "Queue advertisements commands from app when suspending\n\nTo prevent advertisement requests from the app to interrupt the\nsuspension process, we queue them and return early. These commands\nwill be carried out upon resume.\n\nThe above process is done in AdvertiseManager. Since suspend/resume\nis handled by AdapterSuspend, this CL also connect the bridge between\nthose two classes.\n\nPlease refer to the design doc in b/433136730.\n\nBug: 413129616\nBug: 433136730\nTest: m com.google.android.bt\nFlag: com.android.bluetooth.flags.adapter_suspend_advertisement\n\nChange-Id: I7947050afab1fa30dfbac7d1810d38750b73b34c\n"
    },
    {
      "commit": "ffadc6a54a713d4d4964bbe43042cc5498926ec7",
      "tree": "e57559e2b3bdf77e12bd536403e1eb704a7c1e14",
      "parents": [
        "16da410d6e417e12099bfaf8596b12c4fd73cc56",
        "553c4b61b1aef43a6d8e25505db5c816c14f8761"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Sun Aug 31 19:15:41 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 31 19:15:41 2025 -0700"
      },
      "message": "Merge \"Update encapsulation in ContextMap and GattService\" into main"
    },
    {
      "commit": "92261de6312bf44de69b0f317ba4175dffc64929",
      "tree": "fb95561c6744fff538eadb7a8ca4a30010422bad",
      "parents": [
        "8d941938788ffde6ff175436eb9dc1e5a3488e7e",
        "09931905ac1401f9386d9853d707e5e86bc31055"
      ],
      "author": {
        "name": "Zhengping Jiang",
        "email": "jiangzp@google.com",
        "time": "Sat Aug 30 23:56:53 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 30 23:56:53 2025 -0700"
      },
      "message": "Merge \"le_scan: stop all LE scanners if system is suspended\" into main"
    },
    {
      "commit": "ade3b0ecca6b3ae2f911cb521c3e92313ec2253e",
      "tree": "26df6ad295f3c98aa16fd80a343001b8922ec649",
      "parents": [
        "b4dee25580b8ec83dbbdd2c96ef12bc2b575dc1e",
        "af49f7e004ef0249afbb585b1e352d4fabef9b66"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat Aug 30 00:30:43 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 30 00:30:43 2025 -0700"
      },
      "message": "Merge \"bluetooth/types: Make RawAddress::FromOctets static\" into main"
    },
    {
      "commit": "36f83358f9e4c25787ca0f6086ceb2d64a11859e",
      "tree": "48714828e416ea5d41d18b54006b09d5d97592f4",
      "parents": [
        "1ffb9487c0ea8d626d5fef9c3bd6ebdc0ad5ece1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Aug 27 11:09:38 2025 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Aug 29 21:19:30 2025 +0000"
      },
      "message": "Convert uses of @hide to block tag\n\nIn most places the `@hide` doctag is treated as a block tag on its own\nline. However, there are a few places where it is treated as an inline\ndoctag, e,g. `{@hide}`, and some places where it looks like a block\ntag but is inline in the text, e.g. `Some text. @hide`. Dealing with\nall the types increases the complexity of Metalava and makes it\nslightly slower.\n\nThis change replaces the non-block tag forms with a block tag.\n\nFlag: EXEMPT change the form of @hide does not change the API or behavior\nBug: 429965593\nTest: m checkapi\nChange-Id: I7a632a87d314aa571fa1063dbc850888c1b49a6e\n"
    },
    {
      "commit": "5a0df8e0bb2d18fb7e2ecca43b2954eb8e4b1aee",
      "tree": "ee39d8a737d269c75b10265035006089f14dbcaf",
      "parents": [
        "0af3ac558cef630c39c4f0c47a45cf2a6a09b57a"
      ],
      "author": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Fri Aug 29 18:35:28 2025 +0000"
      },
      "committer": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Fri Aug 29 13:42:56 2025 -0700"
      },
      "message": "[le audio] Broadcast connection change intent at LEA state machine shut down\n\nWhen state machine is turning off, it should broadcast the intent to notify the state change.\nAlso adding a change to perform doQuit() instead of quit() for cleanup.\n\nBug: 441564325\nBug: 431184452\nFlag: com.android.bluetooth.flags.leaudio_intent_broadcast_in_state_machine_cleanup\nTest: atest BassClientStateMachineTest LeAudioStateMachineTest\nChange-Id: I6cb7071f2253d4f21e35a2b83e82c6a6b41863ff\n"
    },
    {
      "commit": "1ffb9487c0ea8d626d5fef9c3bd6ebdc0ad5ece1",
      "tree": "f8de5d119e29cd389a4e6a8fbf542d22d82e663f",
      "parents": [
        "1c921d394f2280ab3d81c790831734281c327ff3",
        "8678d67c9afa9ce742d8972bec15da8f943bb74d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 29 13:38:19 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 29 13:38:19 2025 -0700"
      },
      "message": "Merge \"HAP: update preset name from remote\" into main"
    },
    {
      "commit": "97a4fced84c9e90e6222b120943a2be639fa1f80",
      "tree": "317c100eaae5e05000ac67fa53e714bde7b02190",
      "parents": [
        "3c19305a26c7b9ce224df72e948b2bcee7011ee9",
        "fdc331cf375b6af6ede10c00693582058ebe408c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 29 03:34:16 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 29 03:34:16 2025 -0700"
      },
      "message": "Merge \"btservice: delay a2dp disconnect for bl devices\" into main"
    },
    {
      "commit": "8678d67c9afa9ce742d8972bec15da8f943bb74d",
      "tree": "098c991ff9e4d5e3ab0fc3d8e39f6b07329ed58a",
      "parents": [
        "88c5c762996bcc1dbfb45a365c1a0acecc12c81a"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Wed Aug 27 14:30:11 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Thu Aug 28 17:46:13 2025 -0700"
      },
      "message": "HAP: update preset name from remote\n\nTest: atest avatar:HapTest\\#test_update_preset_name\nFlag: TEST_ONLY\nBug: 438860349\nChange-Id: I12b3d4f7c56ef6a50e05196a9b12f37781837f7a\n"
    },
    {
      "commit": "f1993e01ddd0b89d2da3731d25177a81be5bcb38",
      "tree": "ca6e2feb866fec3a9ad8af350fb00b168a0502e7",
      "parents": [
        "cee487f0da85bd9d50fcd3f5ebf94f24b36ff899",
        "b49c2594afe14323827d9374c50814aff502eb4e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Aug 28 15:08:09 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 15:08:09 2025 -0700"
      },
      "message": "Merge \"LeAudioService: Fix NullPointerException\" into main"
    },
    {
      "commit": "09931905ac1401f9386d9853d707e5e86bc31055",
      "tree": "39ab92b0f7bec2dfcc6cd17e876dccea19f2d1c7",
      "parents": [
        "5b5db781c8348c1786ebdc77f76a4276fa3afeb6"
      ],
      "author": {
        "name": "Zhengping Jiang",
        "email": "jiangzp@google.com",
        "time": "Thu Aug 14 23:13:27 2025 +0000"
      },
      "committer": {
        "name": "Zhengping Jiang",
        "email": "jiangzp@google.com",
        "time": "Thu Aug 28 12:30:31 2025 -0700"
      },
      "message": "le_scan: stop all LE scanners if system is suspended\n\nRefactor ScanManager to monitor display changes from AdapterSuspend.\n\nWhenever the screen status changes, the existing logic to handle screen\nstatus is called from the ScanManager. If the system does not go to\nsleep after screen is turned off, there is no behavior change.\n\nIf the system goes to sleep, AdapterSuspend will call\nonSystemSuspendChanged, which stops all regular and batch scans.\n\nWhen screen is turned on, all scanners are re-enabled. There is no\nspecial handling for system resume, except the systemSuspended status is\nupdated.\n\nWhen system is suspended, requests to start scan are queued and put to\nthe suspended queue.\n\nFinally define a system property to determine if all LE scanners should\nbe suspended when the system is suspended.\n\nBug: 438826539\nBug: 438561761\nTest: m -j\nTest: atest ScanManagerTest\nFlag: com.android.bluetooth.flags.stop_le_scan_system_suspend\nChange-Id: Ifd5c6c35f77fa79e42e1294226507506fdfdb3b7\n"
    },
    {
      "commit": "b49c2594afe14323827d9374c50814aff502eb4e",
      "tree": "c64daa1ff22f2b4ddf8a450bb2b14b0aa74f672a",
      "parents": [
        "b054c9adb64ac9ae93abf9b050c31bff921264ed"
      ],
      "author": {
        "name": "Łukasz Rymanowski",
        "email": "rlukasz@google.com",
        "time": "Wed Aug 27 07:30:10 2025 +0000"
      },
      "committer": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Thu Aug 28 09:53:18 2025 -0700"
      },
      "message": "LeAudioService: Fix NullPointerException\n\nWhen LeAudioService operates on the BluetoothLeAudioCodecStatus it\nexpects that all the fields are not null.\nHowever when codec status is return over API, the requirement is to\nreturn null whenever there is empty configuration for the given\ndirections.\n\nThis CL reorganize the code in the way, that both requirements are\nfulfiled. Without that this could happen:\n\n08-27 08:36:17.285621  1002 20171 20231 E BluetoothHciVendorSpecificJni: android/app/jni/com_android_bluetooth.h:40 ~CallbackEnv: An exception was thrown by callback \u0027OnAudioGroupCurrentCodecConf\u0027.\n08-27 08:36:17.285720  1002 20171 20231 E BluetoothHciVendorSpecificJni: java.lang.NullPointerException: Attempt to invoke virtual method \u0027int android.bluetooth.BluetoothLeAudioCodecConfig.getCodecType()\u0027 on a null object reference\n08-27 08:36:17.285720  1002 20171 20231 E BluetoothHciVendorSpecificJni: \tat com.android.bluetooth.le_audio.LeAudioService.isCodecChangedForTheStream(LeAudioService.java:3429)\n08-27 08:36:17.285720  1002 20171 20231 E BluetoothHciVendorSpecificJni: \tat com.android.bluetooth.le_audio.LeAudioService.messageFromNative(LeAudioService.java:3738)\n08-27 08:36:17.285720  1002 20171 20231 E BluetoothHciVendorSpecificJni: \tat com.android.bluetooth.le_audio.LeAudioNativeInterface.onAudioGroupCurrentCodecConf(LeAudioNativeInterface.java:165)\n\nBug: 441422829\nTest: atest LeAudioServiceTest\nFlag: EXEMPT BUGFIX null check with mechanical refactor\nChange-Id: I6d4e6162196c9872a603543b7ba66da6b3094e2c\n"
    },
    {
      "commit": "9f5a755af2ed007e3d55a056e3e23c68a87ae2a1",
      "tree": "c76c73b37db2d03117ba02520de1375b2e8f3645",
      "parents": [
        "10f87e9ebf1097a81e32a95ae2c3d76eba41b7d0"
      ],
      "author": {
        "name": "Clay Zhu",
        "email": "clayzhu@google.com",
        "time": "Thu Aug 28 06:53:08 2025 -0700"
      },
      "committer": {
        "name": "Clay Zhu",
        "email": "clayzhu@google.com",
        "time": "Thu Aug 28 06:53:08 2025 -0700"
      },
      "message": "Stop logging A2DP connection state changes in `A2dpStateMachine`.\n\nRemoved the call to `logA2dpStateMetric` from `broadcastConnectionState` and removed the mapping for `STATE_NOT_PLAYING` and `STATE_PLAYING` in `getMetricState`, events too much.\n\nBug: 441706463\nTest: m Bluetooth\nFlag: EXEMPT metric only\nChange-Id: I502bbfb167b5830e59159b38b45c9669576b93c7\n"
    },
    {
      "commit": "6126ead9a705c0f246330dd25af2b5f05fa573de",
      "tree": "a6128259a1fd6a4722185fe0b00acda17d5536fd",
      "parents": [
        "b17a97389f51c5674b2a7a313e80580446ad21fb"
      ],
      "author": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Thu Aug 28 13:19:59 2025 +0000"
      },
      "committer": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Thu Aug 28 13:19:59 2025 +0000"
      },
      "message": "values/config: Decrease A2DP OPUS codec priority to 1501\n\nOmit unnecessary reconfiguration for non-spatial audio playback.\nOpus is currently used only for spatial audio.\n\nBug: 424618914\nFlag: EXEMPT - minor fix\nTest: m packages/modules/Bluetooth\nChange-Id: I4c96c87a80b98792d2df71ccf4426e5c3dd638d0\n"
    },
    {
      "commit": "801f41cac82e4b6b5daa8f07fc059eb0e6ff20a2",
      "tree": "0f52a64fabaff73adb428ce74d05b10ae5e66b2f",
      "parents": [
        "8ace068b7f7885c411c01c15b8dadf658f6a310b"
      ],
      "author": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Thu Aug 28 10:37:14 2025 +0000"
      },
      "committer": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Thu Aug 28 10:41:13 2025 +0000"
      },
      "message": "ptsbot: Enable a2dp_cancel_acceptor_alarm_for_avdt_init\n\nBug: 433179484\nBug: 440264270\nFlag: com.android.bluetooth.flags.a2dp_cancel_acceptor_alarm_for_avdt_init\nTest: m packages/modules/Bluetooth\nChange-Id: I30776f6404b2db09f074fe4adb4493cf1f5cd764\n"
    },
    {
      "commit": "fdc331cf375b6af6ede10c00693582058ebe408c",
      "tree": "e3bb5b2414f71ec659fc3bdeeb8d051dbf9965f1",
      "parents": [
        "b17a97389f51c5674b2a7a313e80580446ad21fb"
      ],
      "author": {
        "name": "Rajat Soni",
        "email": "quic_rajasoni@quicinc.com",
        "time": "Wed Apr 23 15:17:48 2025 +0530"
      },
      "committer": {
        "name": "Jakub Rotkiewicz",
        "email": "rotkiewicz@google.com",
        "time": "Thu Aug 28 10:41:13 2025 +0000"
      },
      "message": "btservice: delay a2dp disconnect for bl devices\n\nFew devices when disconnected during ongoing call will\nautomatically re-attempt a2dp connection. To avoid this\ndisconnect a2dp almost 400ms after hfp disconnection\n\nBug: 414546936\nBug: 440507683\nFlag: com.android.bluetooth.flags.a2dp_delay_disconnect\nTest: m .\nChange-Id: I5f8471949acbdfa2b2f442982a754e8aeb1c870e\n"
    },
    {
      "commit": "5eee135d2db74ffb1f2f39a855431a69c09c69dc",
      "tree": "f3d364614c6f4262881e35c03d58d5b2619a9626",
      "parents": [
        "10f87e9ebf1097a81e32a95ae2c3d76eba41b7d0"
      ],
      "author": {
        "name": "Krzysztof Kopyscinski",
        "email": "kopyscinski@google.com",
        "time": "Wed Aug 20 12:13:52 2025 +0000"
      },
      "committer": {
        "name": "Krzysztof Kopyscinski",
        "email": "kopyscinski@google.com",
        "time": "Thu Aug 28 07:05:32 2025 +0000"
      },
      "message": "Move setActiveDevice logic from Adapter Service to Active Device Manager\n\nThis change makes it so that when Bluetooth device is set as active\nfrom Bluetooth Adapter Service, Active device manager takes\nresponsibility for disabling/enabling profiles for this device.\n\nBug: 312396770\nBug: 429980017\nTest: atest ActiveDeviceManagerTest\nFlag: EXEMPT PURE_REFACTOR\n\nChange-Id: Ie0d902054a448d0e0c261bf8ae235cc62662f18d\n"
    },
    {
      "commit": "b598767c4393a0d91039086cdd0cde763a968fc6",
      "tree": "f8e5962c4a84a112b5483f8b2d79b0b4a60ea87e",
      "parents": [
        "e67cdea919f3fa33c7483f7b729199841b97e16a",
        "28d7844e86a23f87dc17619c9a664858b8dc1690"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 27 20:29:47 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 20:29:47 2025 -0700"
      },
      "message": "Merge \"Improve logging for `getBroadcastToUnicastFallbackGroup`.\" into main"
    },
    {
      "commit": "7a6acbbc67dec583ecaaf8c8be51c8f9f083ed5c",
      "tree": "e39a818282a6faa2839b61140a2fbb19ad9ba88a",
      "parents": [
        "54f52e02a451c55d2daa7babba93078830a7261f",
        "c38070dc9408c85893d0001eed76bcd4bce4aee4"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Aug 27 17:30:39 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 17:30:39 2025 -0700"
      },
      "message": "Merge \"Early remove 25Q4: adapter_service_profiles_use_optional\" into main"
    },
    {
      "commit": "54f52e02a451c55d2daa7babba93078830a7261f",
      "tree": "8791404ee0e6c9ce18223e5be467259cf2ab1751",
      "parents": [
        "d02ced8f171b512e951b2842ecf906e11936f376",
        "e188ecf62a98b5d0c64df61c43d11e3e691bb19d"
      ],
      "author": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Wed Aug 27 17:02:40 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 17:02:40 2025 -0700"
      },
      "message": "Merge \"A2dpStateMachine: Suppress EVENT_TYPE_AUDIO_DELAY_REPORTED in connected state\" into main"
    },
    {
      "commit": "e188ecf62a98b5d0c64df61c43d11e3e691bb19d",
      "tree": "737805564d845c2aacc4beebe64a8737f62e6e18",
      "parents": [
        "d59a1b9670daa43009b213f7006997597dfda3c9"
      ],
      "author": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Mon Aug 25 14:03:23 2025 -0700"
      },
      "committer": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Wed Aug 27 15:12:40 2025 -0700"
      },
      "message": "A2dpStateMachine: Suppress EVENT_TYPE_AUDIO_DELAY_REPORTED in connected state\n\nBug: 331817295\nTest: m .\nFlag: EXEMPT log change\nChange-Id: Ib898faf1c57cfe6391a0012a24333e1f6bb56323\n"
    },
    {
      "commit": "b17a97389f51c5674b2a7a313e80580446ad21fb",
      "tree": "01088f6bdf7d700bebd7d82ca4a3af12a956b892",
      "parents": [
        "88c5c762996bcc1dbfb45a365c1a0acecc12c81a",
        "0a4fd187754050401d7a9d79cbd92f73ccbf75f1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 27 13:25:54 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 13:25:54 2025 -0700"
      },
      "message": "Merge \"BluetoothInCallService: more logs and early return\" into main"
    },
    {
      "commit": "88c5c762996bcc1dbfb45a365c1a0acecc12c81a",
      "tree": "c8d1177ed3aaabf54fd589e2ab5e6c14cdd0361f",
      "parents": [
        "985baaa3f01def809b88d45638e9c7fbd35e03d6",
        "bcadec19d10bb0c5d92c8bafdc23862552b4f838"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Wed Aug 27 11:53:42 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 11:53:42 2025 -0700"
      },
      "message": "Merge \"Reset the media connected state when turning off\" into main"
    },
    {
      "commit": "985baaa3f01def809b88d45638e9c7fbd35e03d6",
      "tree": "fd5e9beaa648a1cb9fde4110ad5d47fbdfd7738d",
      "parents": [
        "7b367e9d1a9d7feb55f1834e3d916889c691a381",
        "cfaaebaf5d3698c5e5ba40b2f3f68cf947d39ade"
      ],
      "author": {
        "name": "Sarvesh Kalwit",
        "email": "sarveshkalwit@google.com",
        "time": "Wed Aug 27 11:48:57 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 11:48:57 2025 -0700"
      },
      "message": "Merge \"Support scanning if MSFT is supported\" into main"
    },
    {
      "commit": "af49f7e004ef0249afbb585b1e352d4fabef9b66",
      "tree": "21642efb1d0ea9d39b88d46abe5b283962288505",
      "parents": [
        "d59a1b9670daa43009b213f7006997597dfda3c9"
      ],
      "author": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Wed Aug 13 18:19:07 2025 +0000"
      },
      "committer": {
        "name": "Henri Chataing",
        "email": "henrichataing@google.com",
        "time": "Wed Aug 27 11:40:25 2025 -0700"
      },
      "message": "bluetooth/types: Make RawAddress::FromOctets static\n\nBug: 424272093\nTest: m .\nFlag: EXEMPT no logical change\nChange-Id: I9ebe0d7f9c3cc5cbfbfd9b0acab4bee8f1be16ac\n"
    },
    {
      "commit": "7b367e9d1a9d7feb55f1834e3d916889c691a381",
      "tree": "ed4b5b7523898b31983816f928175ceed6361198",
      "parents": [
        "8c1344b2d4435215f3f3eea8dbcf6dc9e7153799",
        "57c53c471f55bf004084d7e294c9d617dcc6ad0c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 27 11:34:13 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 11:34:13 2025 -0700"
      },
      "message": "Merge \"Add additional owners for core BT files.\" into main"
    },
    {
      "commit": "28d7844e86a23f87dc17619c9a664858b8dc1690",
      "tree": "d680113fee514fbd27cdf2e4dd918a6c32028638",
      "parents": [
        "8c1344b2d4435215f3f3eea8dbcf6dc9e7153799"
      ],
      "author": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Wed Aug 27 11:20:58 2025 -0700"
      },
      "committer": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Wed Aug 27 11:20:58 2025 -0700"
      },
      "message": "Improve logging for `getBroadcastToUnicastFallbackGroup`.\n\nThe log now includes the value of the group ID being returned.\nAdding this for debugging this path.\n\nBug: 440519259\nTest: atest LeAudioBroadcastServiceTest\nFlag: EXEMPT DEBUG\nChange-Id: Id4dbd0008a76a4970f99b121db45ce1dbfa17f37\n"
    },
    {
      "commit": "57c53c471f55bf004084d7e294c9d617dcc6ad0c",
      "tree": "d489f21e103b279682d6c2c1b5de61a0c0ac6a2b",
      "parents": [
        "fef5b220303ca5fd8ff705142127b46ad1276d14"
      ],
      "author": {
        "name": "Omair Kamil",
        "email": "okamil@google.com",
        "time": "Sun Aug 24 22:32:44 2025 +0000"
      },
      "committer": {
        "name": "Omair Kamil",
        "email": "okamil@google.com",
        "time": "Wed Aug 27 18:16:25 2025 +0000"
      },
      "message": "Add additional owners for core BT files.\n\nAlso sort the owners.\n\nBug: 440926347\nFix: 440926347\nTest: m Bluetooth\nFlag: EXEMPT, no-op\nChange-Id: Ia1da9e81a1326f64a427842192f84f0e3aabf540\n"
    },
    {
      "commit": "8c1344b2d4435215f3f3eea8dbcf6dc9e7153799",
      "tree": "464d3a6516b814289f26d6e6aef37b62203cef10",
      "parents": [
        "6834a55f6ce913c5817df957f4a4c3c7fdcb906b",
        "e3a8b7476227d46fdd78bb5ab4452d73519bf783"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Wed Aug 27 11:11:17 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 11:11:17 2025 -0700"
      },
      "message": "Merge \"Speed up some LeAudio unit test with testlooper\" into main"
    },
    {
      "commit": "6834a55f6ce913c5817df957f4a4c3c7fdcb906b",
      "tree": "330a39d583a8e14b9557ab6035c13cad19775e04",
      "parents": [
        "64227d8310e57c4e076f873f0e7577c1db7dd7e4",
        "05abd67a715d351733edf929854b19332606d2bf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 27 10:38:12 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 10:38:12 2025 -0700"
      },
      "message": "Merge \"Pandora: Add support for BAP Unicast tests\" into main"
    },
    {
      "commit": "64227d8310e57c4e076f873f0e7577c1db7dd7e4",
      "tree": "89196a092931c6ea6601f1d248c569916651be07",
      "parents": [
        "1b2bd1699f41d88427d4ea02c3e181aea5ef8975",
        "22fa9642c92aeea36aef5f9056ac7e8bef9b2d5d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 27 10:38:10 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 10:38:10 2025 -0700"
      },
      "message": "Merge changes Icbb473e4,I1f000b44 into main\n\n* changes:\n  Pandora: Add wait for group stream status change\n  le_audio: Add sysprop for tests of dynamic directions\n"
    },
    {
      "commit": "1b2bd1699f41d88427d4ea02c3e181aea5ef8975",
      "tree": "a4b161be586793d6b43d0ef4e4d219c2f38dd736",
      "parents": [
        "b054c9adb64ac9ae93abf9b050c31bff921264ed",
        "734e1fc3697e2c1b5a2d701a55d113799d3ab279"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Wed Aug 27 10:22:51 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 10:22:51 2025 -0700"
      },
      "message": "Merge \"Cleanup 25Q2 flags usages\" into main"
    },
    {
      "commit": "b054c9adb64ac9ae93abf9b050c31bff921264ed",
      "tree": "fa311e300f98357c7b7c064725b8c88df0d1fc96",
      "parents": [
        "3b134cd4a6317df751bcc9e88097abb5e5b3df57",
        "d5b168e6b5b51c99955201328b2e36a0692d0b52"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Aug 26 22:45:01 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 26 22:45:01 2025 -0700"
      },
      "message": "Merge \"Revert \"[LE Broadcast] filter out null metadata while getAllBroadcastMetadata\"\" into main"
    },
    {
      "commit": "c38070dc9408c85893d0001eed76bcd4bce4aee4",
      "tree": "5c4689b7067ec2e80a1d11b5cefb555a99eae9d2",
      "parents": [
        "3b134cd4a6317df751bcc9e88097abb5e5b3df57"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Aug 27 10:08:52 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Wed Aug 27 11:44:28 2025 +0900"
      },
      "message": "Early remove 25Q4: adapter_service_profiles_use_optional\n\nAs per the guidelines in: go/android-flags-guidelines#launched-flags\nIt\u0027s been 10 weeks since the last code change under this flag,\nremoving this flag early for a lot! of cleanup.\n\nGoodbye `AdapterService#PROFILE_CONSTRUCTORS` 👋🏻!\nGoodbye `ServiceFactory` 👋🏻!\n\nThis will also open up a lot of dependency injection possibilities for\nthe various profiles in `AdapterService.java`\n\nBug: 422543753\nFix: 422543753\nTest: atest BluetoothJavaUnitTests\nFlag: EXEMPT removal of adapter_service_profiles_use_optional\nChange-Id: Ief9644e01a134d42f342072ab7af6f7ca82f398a\n"
    },
    {
      "commit": "3b134cd4a6317df751bcc9e88097abb5e5b3df57",
      "tree": "593db850ec6609585a75c181115f1b0f01acde88",
      "parents": [
        "10e869b59771e50661a78c8496f96ae5f54f7e25",
        "a9a96fc0fc101e0ba7e6140b045b8316c00e9e29"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Aug 26 18:38:28 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 26 18:38:28 2025 -0700"
      },
      "message": "Merge \"Do not obfuscate external flags\" into main"
    },
    {
      "commit": "e3a8b7476227d46fdd78bb5ab4452d73519bf783",
      "tree": "6dd8f3501e4349a53f6e0cb5beb9faa6860f1fd1",
      "parents": [
        "655f526f7ec6ffe5736619296845798883f9efa1"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Wed Aug 13 15:21:20 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 17:12:44 2025 -0700"
      },
      "message": "Speed up some LeAudio unit test with testlooper\n\nWe have some test timeout on hwasan.\nAccording to go/BluetoothJavaUnitTests there is a lot of LeAudio tests\nthat average 200 to 500 ms tests. I believe we could reduce the time of\nthose tests by propagating the test looper in tests\n\nBug: 438559323\nTest: atest BluetoothJavaUnitTests:LeAudioServiceTest\nTest: atest BluetoothJavaUnitTests:LeAudioStateMachineTest\nFlag: TEST_ONLY\nChange-Id: Ib0e11f5206d6d9bfdeb41696e8d68cb2cc810fbf\n"
    },
    {
      "commit": "0a4fd187754050401d7a9d79cbd92f73ccbf75f1",
      "tree": "a56d4df3dfd820feab09a30fb574380b271b075a",
      "parents": [
        "655f526f7ec6ffe5736619296845798883f9efa1"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 17:07:55 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 17:09:07 2025 -0700"
      },
      "message": "BluetoothInCallService: more logs and early return\n\nBug: 436273570\nFlag: EXEMPT log only\nTest: m .\nChange-Id: Ic3cf6eaf431d122fd7d4612eca659334c47f314e\n"
    },
    {
      "commit": "d5b168e6b5b51c99955201328b2e36a0692d0b52",
      "tree": "aa58ae719ace41505db10ad9b222572f85327f45",
      "parents": [
        "4c407684cae1eab760057edb310b3252ad7dc5c4"
      ],
      "author": {
        "name": "Rongxuan Liu",
        "email": "rongxuan@google.com",
        "time": "Tue Aug 26 16:20:48 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 26 16:20:48 2025 -0700"
      },
      "message": "Revert \"[LE Broadcast] filter out null metadata while getAllBroadcastMetadata\"\n\nThis reverts commit 4c407684cae1eab760057edb310b3252ad7dc5c4.\n\nReason for revert: Caused regression b/441174869, forward-fix will be planned separately.\n\nChange-Id: Idbf4ccb3f601015f5262868720f2a2a552515741\n"
    },
    {
      "commit": "b32a30033f0e2eb27383f886fa37ffb0d1fb66a3",
      "tree": "d0cb7d45482777e8645f1c1c37107fb7a1a5187b",
      "parents": [
        "576d43d1c2b7aaf8c0846861b592684773d42992",
        "e5449d736196c94d50bc8a67496b79ba27f7ce29"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 16:04:12 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 26 16:04:12 2025 -0700"
      },
      "message": "Merge \"Fix InteropUtil private constructor\" into main"
    },
    {
      "commit": "a9a96fc0fc101e0ba7e6140b045b8316c00e9e29",
      "tree": "25ec4f8ce566cd5489392b4d69eb00ba3841cf1e",
      "parents": [
        "576d43d1c2b7aaf8c0846861b592684773d42992"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Thu Aug 14 17:14:50 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 15:33:09 2025 -0700"
      },
      "message": "Do not obfuscate external flags\n\nWhen looking at the code, it should be obvious to detect what is an\nexternal flag and what is a locally owned flag.\nBy inlining all external flags this will be the case\n\nBug: 311772251\nTest: m .\nFlag: EXEMPT refactor\nChange-Id: I3bb998b160fd647f75f8e1a3c93df476674e8293\n"
    },
    {
      "commit": "576d43d1c2b7aaf8c0846861b592684773d42992",
      "tree": "f77bccc085fc5ddf84864665b7f24e64e6bf9647",
      "parents": [
        "2f5bda791a084a69212c9d4fba5b5ee46c8e5e80",
        "ed5106f439c4ad65c2fb1c1f2c7d91d674a9889b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Aug 26 13:51:23 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 26 13:51:23 2025 -0700"
      },
      "message": "Merge \"Render getProfileProxy oneway safe\" into main"
    },
    {
      "commit": "bcadec19d10bb0c5d92c8bafdc23862552b4f838",
      "tree": "b2560c81dd3bba613b2d1b6170eb6e9e438f1b23",
      "parents": [
        "655f526f7ec6ffe5736619296845798883f9efa1"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 11:50:19 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Tue Aug 26 11:50:19 2025 -0700"
      },
      "message": "Reset the media connected state when turning off\n\nWhen Bluetooth is turning off, there is by definition no more media\nconnected. But the internal variable is not always updated.\nWe encounter some case where the LeAudio state change wasn\u0027t broadcasted\nto internal listener and leaving the status desynced.\n\nThis can be an issue when the Bluetooth does a ON -\u003e BLE_ON -\u003e ON\ntransition without going full OFF in between.\n\nBug: 431184452\nFlag: EXEMPT trivial fix\nTest: m .\nChange-Id: I3ee8c9ee4d7b6ab972977001011710515e522bb9\n"
    },
    {
      "commit": "45c5fca45e7302f064f37a2820fed444d193a839",
      "tree": "a016cc8954e9e27b70cfc743898b6dd989f4b1e8",
      "parents": [
        "20253dc0498dcaeed9828149bced00e6e70120c5",
        "b72bab19bf442503f84758e91d7870f63d79229b"
      ],
      "author": {
        "name": "Ted Wang",
        "email": "tedwang@google.com",
        "time": "Tue Aug 26 07:04:28 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 26 07:04:28 2025 -0700"
      },
      "message": "Merge changes I84c1008a,I2fa977d1 into main\n\n* changes:\n  Adjust the mandatory codec priority to match the preferred optional codec settings\n  flag: synchronize_codec_preferences_and_priority\n"
    },
    {
      "commit": "b72bab19bf442503f84758e91d7870f63d79229b",
      "tree": "4d162bb7a4df120abc80ac26007bed9d5def2453",
      "parents": [
        "5cdc7316e4352305191b520984183c3c810471b3"
      ],
      "author": {
        "name": "Ted Wang",
        "email": "tedwang@google.com",
        "time": "Wed Aug 13 23:08:30 2025 -0700"
      },
      "committer": {
        "name": "Ted Wang",
        "email": "tedwang@google.com",
        "time": "Tue Aug 26 07:46:41 2025 +0000"
      },
      "message": "Adjust the mandatory codec priority to match the preferred optional codec settings\n\nBug: 424705175\nTest: atest BluetoothJavaUnitTests\nFlag: com.android.bluetooth.flags.synchronize_codec_preferences_and_priority\nChange-Id: I84c1008a9d6a8be5cfff084de9007dc72c1a84cd\n"
    },
    {
      "commit": "e5449d736196c94d50bc8a67496b79ba27f7ce29",
      "tree": "16418e4d47f86046847977c878dac851afee09a3",
      "parents": [
        "eee5aed113f4d28e46241c779be3b345a7a5b056"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Aug 26 11:18:50 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Aug 26 11:18:53 2025 +0900"
      },
      "message": "Fix InteropUtil private constructor\n\nFollow up of ag/35129058\n\nBug: 394958283\nTest: atest BluetoothJavaUnitTests\nFlag: EXEMPT refactor no-op\nChange-Id: Ia0cdb463f23c0c59998d8886b6af83c49e95904d\n"
    },
    {
      "commit": "553c4b61b1aef43a6d8e25505db5c816c14f8761",
      "tree": "6a9009f3478360fa8052aef01e23104a5475ebdb",
      "parents": [
        "eee5aed113f4d28e46241c779be3b345a7a5b056"
      ],
      "author": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Aug 26 10:51:52 2025 +0900"
      },
      "committer": {
        "name": "Ömer Faruk Yılmaz",
        "email": "ofy@google.com",
        "time": "Tue Aug 26 10:52:10 2025 +0900"
      },
      "message": "Update encapsulation in ContextMap and GattService\n\nBug: 394958283\nTest: atest com.android.bluetooth.gatt\nFlag: EXEMPT refactor no-op\nChange-Id: I367bdd64f326d0e51e599f46e2dfb1329ac1969c\n"
    },
    {
      "commit": "d1e94afe6e1362767f058a4609b5a7662b94b7b2",
      "tree": "cb3466958b3147be8252f5b18da035df7111e3f9",
      "parents": [
        "eee5aed113f4d28e46241c779be3b345a7a5b056",
        "b172bfbb495df509918e9b6df61db7f2e8e85579"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 25 17:37:57 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 25 17:37:57 2025 -0700"
      },
      "message": "Merge \"Reapply \"Remove the bitmask on supported profiles\"\" into main"
    },
    {
      "commit": "5349e28dfacf6cfa52fa107e0f9283273d923cc0",
      "tree": "0dbb90047cc1ff2b2c6540b05f437ab1fea4aaa6",
      "parents": [
        "d59a1b9670daa43009b213f7006997597dfda3c9",
        "20ac2581d90064a88c52fdb2c48248e054c98c89"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 25 16:26:19 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 25 16:26:19 2025 -0700"
      },
      "message": "Merge changes I9a4bd070,I23fd111d into main\n\n* changes:\n  Encapsulate and rename all AppScanStats.LastScan member variables\n  Encapsulate and rename all AppScanStats.LastScan final member variables\n"
    },
    {
      "commit": "b172bfbb495df509918e9b6df61db7f2e8e85579",
      "tree": "3cf4d6456985749e6946bbd45be87c47a77c0d24",
      "parents": [
        "829ea136d50821f264ca49f7089725093fa9bb5c"
      ],
      "author": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Fri Aug 15 13:02:56 2025 -0700"
      },
      "committer": {
        "name": "William Escande",
        "email": "wescande@google.com",
        "time": "Mon Aug 25 15:54:40 2025 -0700"
      },
      "message": "Reapply \"Remove the bitmask on supported profiles\"\n\nThis reverts commit 746b11fcce05b2713a6b7a2cba12fd3776c95006.\nReason for revert: Relanding initial change with fixes\n\nWe can directly query what profiles is supported\n\nBug: 311772251\nFlag: EXEMPT refactor\nTest: atest CtsBluetoothTestCases\nTest: atest BluetoothJavaUnitTests\nChange-Id: I1255a4abf0b8bddbdd9ac63b6a0263c9e48ee0ce\n"
    }
  ],
  "next": "05abd67a715d351733edf929854b19332606d2bf"
}
