start method
Begin watching connectivity. Each true (online) tick triggers a
drain attempt; false ticks are ignored. Idempotent — calling twice
is a no-op.
Implementation
void start(Stream<bool> onlineStream) {
if (_onlineSub != null) return;
_onlineSub = onlineStream.listen((online) {
if (!online) return;
// Fire-and-forget; failures inside drain are logged + marked on the
// affected row, not surfaced here.
unawaited(drain());
});
}