In the Chip implementation, onCheckedChangeListener was called before onCheckedChangeListenerInternal. This causes an issue that in onCheckedChangeListener's callback, the checkable group's checked state is not updated yet, therefore ChipGroup.getCheckedChipIds() will return the outdated checked state.
Fixes this by overriding Chip.setOnCheckedChangeListener to get full control of the execution order between onCheckedChangeListener and onCheckedChangeListenerInternal.
Resolves https://github.com/material-components/material-components-android/issues/2691
PiperOrigin-RevId: 449100861
(cherry picked from commit 413a0479574b66be74f42bf9e8a11e1245c72a09)
1. Consolidates single selected ID and multiple selected IDs to a single selected
ID set.
2. Separates View states and internal checked states so we can focus and enforce
policies much easier on only internal states.
PiperOrigin-RevId: 420087718
1. Consolidates single selected ID and multiple selected IDs to a single selected
ID set.
2. Separates View states and internal checked states so we can focus and enforce
policies much easier on only internal states.
Resolves https://github.com/material-components/material-components-android/issues/2263
PiperOrigin-RevId: 418054400