register method
GlassContentAwareSubscription
register({
- required RenderBox? controlBox(),
- required ValueChanged<
Brightness> onBrightnessChanged, - required Brightness initialBrightness,
- int gridColumns = 6,
- int gridRows = 1,
Registers a glass control to receive content-aware verdicts.
controlBox returns the control's render box at sample time (or null
while it is unmounted — the control is skipped for that sample). The
control's rectangle is divided into gridColumns × gridRows voting
cells — 6×1 suits wide bars; a compact button would use a square grid.
onBrightnessChanged fires only when the verdict actually flips;
initialBrightness seeds the hysteresis state.
Call GlassContentAwareSubscription.cancel when the control goes away.
Implementation
GlassContentAwareSubscription register({
required RenderBox? Function() controlBox,
required ValueChanged<Brightness> onBrightnessChanged,
required Brightness initialBrightness,
int gridColumns = 6,
int gridRows = 1,
}) {
assert(gridColumns > 0 && gridRows > 0, 'Grid must have at least 1 cell');
final sub = GlassContentAwareSubscription._(
this,
controlBox,
onBrightnessChanged,
gridColumns,
gridRows,
initialBrightness,
);
_subscriptions.add(sub);
requestSample();
return sub;
}