)]}'
{
  "commit": "77c42fbd22fe97ea4ae0524cd3d6641d2e2f5ccb",
  "tree": "f9ea67ca56e67e36b1b7084e56406280d45d748b",
  "parents": [
    "ca758ac49b0e93798ce3fbe49e2c8ce290d5e136"
  ],
  "author": {
    "name": "Victor Sanni",
    "email": "victorsanniay@gmail.com",
    "time": "Mon Apr 14 21:04:00 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Apr 15 01:04:00 2025 +0000"
  },
  "message": "Persistent CupertinoListTile leading and trailing (#166799)\n\nThe bug occurs because the background color passed into the underlying\n`Container` changes from null to `backgroundColorActivated`. Under the\nhood, the `Container` wraps its child in a `ColoredBox` only if the\ncolor is non-null. So the extra wrapping with a `ColoredBox` happening\nmid-animation breaks reparenting, causing the widgets to be\nreplaced/inflated instead of updated.\n\n### Before\n\n\n\nhttps://github.com/user-attachments/assets/ca0b657a-1340-405f-8c1d-34b34366b994\n\n\n\n### After\n\n\n\nhttps://github.com/user-attachments/assets/8445c55c-0d5d-4b5f-96d2-4f12d908bdec\n\n\n\n\n\nFixes [CupertinoListTile animations are not running when pressing\nlonger](https://github.com/flutter/flutter/issues/153225)\n\n\u003cdetails\u003e\n\u003csummary\u003eSample code\u003c/summary\u003e\n\n```dart\n\nimport \u0027package:flutter/cupertino.dart\u0027;\n\nvoid main() \u003d\u003e runApp(const ListTileApp());\n\nclass ListTileApp extends StatelessWidget {\n  const ListTileApp({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return CupertinoApp(home: const ListTileExample());\n  }\n}\n\nclass ListTileExample extends StatefulWidget {\n  const ListTileExample({super.key});\n\n  @override\n  State\u003cListTileExample\u003e createState() \u003d\u003e _ListTileExampleState();\n}\n\nclass _ListTileExampleState extends State\u003cListTileExample\u003e {\n  bool _pushedToggle \u003d false;\n\n  void _toggle() {\n    setState(() {\n      _pushedToggle \u003d !_pushedToggle;\n    });\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return CupertinoPageScaffold(\n      child: Center(\n        child: SizedBox(\n          height: 40,\n          child: CupertinoListTile(\n              onTap: _toggle,\n              title: Center(\n                child: Text(\n                  \u0027Toggle\u0027,\n                ),\n              ),\n              leading: CupertinoSwitch(\n                value: _pushedToggle,\n                onChanged: (_) {},\n              ),\n              trailing: CupertinoSwitch(\n                value: _pushedToggle,\n                onChanged: (_) {},\n              )),\n        ),\n      ),\n    );\n  }\n}\n\n\n```\n\n\u003c/details\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cf0be02ce3e5223241c9dc64dd816a807c5b3bb9",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/cupertino/list_tile.dart",
      "new_id": "e14f656da71942c4b4661e0a591b6f5ff288f145",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/cupertino/list_tile.dart"
    },
    {
      "type": "modify",
      "old_id": "559b619781ad5b8111c5b3f4641646b5207fe917",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/cupertino/list_tile_test.dart",
      "new_id": "3e572cdfa421d0972efb7f3ab3d5e5867cf7a38b",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/cupertino/list_tile_test.dart"
    }
  ]
}
