tree 9cba04d1c8d845dbfcf2dcfdb1a268c5f2482d44
parent 3198f0112e012bd02702a049cf311f86d19c63ab
author Boris Zbarsky <bzbarsky@apple.com> 1668753016 -0500
committer GitHub <noreply@github.com> 1668753016 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJjdyZ4CRBK7hj4Ov3rIwAA3rkIAJmDH6/J5rfv6/mMnfIRZqxG
 W+7gWpf6uPursrn0bNElWw3xFikO/RyItQXwd7CGShrNNX5sMrKXh6t7OuOvIl5k
 rgMz0OBntkoS16sk6i1igBQNoKn/V3AQmVt0oSEmcEEQY8NkwxuaHULerOkGzENx
 2q/U3yhyg6GFwyTJiXjRQZicMZJ1XiFcqGgUO7ceeSiEvc899fxeXZAYUTnXv8Aq
 vPM+/A8vMmZN7HwEd8QLxNKLXs8nys6qxn1OH3y7kSozUvPwu9yD5ou10e1JOrxr
 vBU1kStt+tyz+GSfBIj+w/5jxrna+aIBNAAZqV6LV2kbzpXZvN6zlOafpGwrDNQ=
 =sKKw
 -----END PGP SIGNATURE-----
 

Fix reporting for Administrator Commissioning attributes. (#23589)

* Fix reporting for Administrator Commissioning attributes.

Nothing was marking the attributes dirty when the data backing them changed.

* Remove the dependency of af-types.h from reporting.h, so reporting.h can be
  part of the SDK library, not the app.
* Move reporting.h to the same library as the other reporting files.
* Fix the one example app that was using the EmberAfAttributeType bits in
  reporting.h.
* Fix color control server depending on reporting.h to get af-types.h.
* Add convenience MakeNullable methods, like we have for Optional.
* Make sure we call MatterReportingAttributeChangeCallback as needed in
  CommissioningWindowManager.
* Add a unit test that fails without these changes.
* Fix the existing TestCommissioningWindow unit test to not hardcode fabric
  indices, since that's not needed anymore.

* Address review comment.