handle method
Implementation
List<PointerSignal> handle(PointerSample sample) {
final signals = <PointerSignal>[
..._flushExpired(sample.timestampMs),
PointerSignal.fromSample(sample, _signalTypeFor(sample.phase)),
];
switch (sample.phase) {
case PointerPhase.down:
_downStates[sample.pointerId] = _PointerDownState(
position: sample.position,
);
break;
case PointerPhase.move:
final down = _downStates[sample.pointerId];
if (down != null && !down.movedBeyondSlop) {
down.movedBeyondSlop =
(sample.position - down.position).distance > settings.tapSlop;
}
break;
case PointerPhase.up:
final down = _downStates.remove(sample.pointerId);
if (down != null && !down.movedBeyondSlop) {
_handleTap(sample, signals);
}
break;
case PointerPhase.cancel:
_downStates.remove(sample.pointerId);
break;
}
return signals;
}