Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
6af44927
Commit
6af44927
authored
Feb 25, 2016
by
Adam Barth
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2147 from abarth/static_arena
Remove PointerRouter and GestureArena arguments
parents
dc0e97e5
4b1a9ff1
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
306 additions
and
597 deletions
+306
-597
drag.dart
packages/flutter/lib/src/gestures/drag.dart
+0
-53
long_press.dart
packages/flutter/lib/src/gestures/long_press.dart
+1
-10
multidrag.dart
packages/flutter/lib/src/gestures/multidrag.dart
+5
-39
multitap.dart
packages/flutter/lib/src/gestures/multitap.dart
+18
-49
recognizer.dart
packages/flutter/lib/src/gestures/recognizer.dart
+6
-26
scale.dart
packages/flutter/lib/src/gestures/scale.dart
+0
-11
tap.dart
packages/flutter/lib/src/gestures/tap.dart
+1
-13
slider.dart
packages/flutter/lib/src/material/slider.dart
+1
-1
switch.dart
packages/flutter/lib/src/material/switch.dart
+1
-1
toggleable.dart
packages/flutter/lib/src/material/toggleable.dart
+1
-1
editable_line.dart
packages/flutter/lib/src/rendering/editable_line.dart
+1
-1
drag_target.dart
packages/flutter/lib/src/widgets/drag_target.dart
+13
-33
gesture_detector.dart
packages/flutter/lib/src/widgets/gesture_detector.dart
+17
-19
double_tap_test.dart
packages/flutter/test/gestures/double_tap_test.dart
+120
-177
gesture_tester.dart
packages/flutter/test/gestures/gesture_tester.dart
+14
-0
long_press_test.dart
packages/flutter/test/gestures/long_press_test.dart
+15
-29
scale_test.dart
packages/flutter/test/gestures/scale_test.dart
+23
-25
scroll_test.dart
packages/flutter/test/gestures/scroll_test.dart
+12
-14
tap_test.dart
packages/flutter/test/gestures/tap_test.dart
+51
-83
hyperlink_test.dart
packages/flutter/test/widget/hyperlink_test.dart
+6
-12
No files found.
packages/flutter/lib/src/gestures/drag.dart
View file @
6af44927
...
@@ -32,17 +32,6 @@ bool _isFlingGesture(Velocity velocity) {
...
@@ -32,17 +32,6 @@ bool _isFlingGesture(Velocity velocity) {
}
}
abstract
class
_DragGestureRecognizer
<
T
extends
dynamic
>
extends
OneSequenceGestureRecognizer
{
abstract
class
_DragGestureRecognizer
<
T
extends
dynamic
>
extends
OneSequenceGestureRecognizer
{
_DragGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
,
this
.
onStart
,
this
.
onUpdate
,
this
.
onEnd
})
:
super
(
router:
router
,
gestureArena:
gestureArena
);
GestureDragStartCallback
onStart
;
GestureDragStartCallback
onStart
;
_GesturePolymorphicUpdateCallback
<
T
>
onUpdate
;
_GesturePolymorphicUpdateCallback
<
T
>
onUpdate
;
GestureDragEndCallback
onEnd
;
GestureDragEndCallback
onEnd
;
...
@@ -126,20 +115,6 @@ abstract class _DragGestureRecognizer<T extends dynamic> extends OneSequenceGest
...
@@ -126,20 +115,6 @@ abstract class _DragGestureRecognizer<T extends dynamic> extends OneSequenceGest
}
}
class
VerticalDragGestureRecognizer
extends
_DragGestureRecognizer
<
double
>
{
class
VerticalDragGestureRecognizer
extends
_DragGestureRecognizer
<
double
>
{
VerticalDragGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
,
GestureDragStartCallback
onStart
,
GestureDragUpdateCallback
onUpdate
,
GestureDragEndCallback
onEnd
})
:
super
(
router:
router
,
gestureArena:
gestureArena
,
onStart:
onStart
,
onUpdate:
onUpdate
,
onEnd:
onEnd
);
double
get
_initialPendingDragDelta
=>
0.0
;
double
get
_initialPendingDragDelta
=>
0.0
;
double
_getDragDelta
(
PointerEvent
event
)
=>
event
.
delta
.
dy
;
double
_getDragDelta
(
PointerEvent
event
)
=>
event
.
delta
.
dy
;
bool
get
_hasSufficientPendingDragDeltaToAccept
=>
_pendingDragDelta
.
abs
()
>
kTouchSlop
;
bool
get
_hasSufficientPendingDragDeltaToAccept
=>
_pendingDragDelta
.
abs
()
>
kTouchSlop
;
...
@@ -148,20 +123,6 @@ class VerticalDragGestureRecognizer extends _DragGestureRecognizer<double> {
...
@@ -148,20 +123,6 @@ class VerticalDragGestureRecognizer extends _DragGestureRecognizer<double> {
}
}
class
HorizontalDragGestureRecognizer
extends
_DragGestureRecognizer
<
double
>
{
class
HorizontalDragGestureRecognizer
extends
_DragGestureRecognizer
<
double
>
{
HorizontalDragGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
,
GestureDragStartCallback
onStart
,
GestureDragUpdateCallback
onUpdate
,
GestureDragEndCallback
onEnd
})
:
super
(
router:
router
,
gestureArena:
gestureArena
,
onStart:
onStart
,
onUpdate:
onUpdate
,
onEnd:
onEnd
);
double
get
_initialPendingDragDelta
=>
0.0
;
double
get
_initialPendingDragDelta
=>
0.0
;
double
_getDragDelta
(
PointerEvent
event
)
=>
event
.
delta
.
dx
;
double
_getDragDelta
(
PointerEvent
event
)
=>
event
.
delta
.
dx
;
bool
get
_hasSufficientPendingDragDeltaToAccept
=>
_pendingDragDelta
.
abs
()
>
kTouchSlop
;
bool
get
_hasSufficientPendingDragDeltaToAccept
=>
_pendingDragDelta
.
abs
()
>
kTouchSlop
;
...
@@ -170,20 +131,6 @@ class HorizontalDragGestureRecognizer extends _DragGestureRecognizer<double> {
...
@@ -170,20 +131,6 @@ class HorizontalDragGestureRecognizer extends _DragGestureRecognizer<double> {
}
}
class
PanGestureRecognizer
extends
_DragGestureRecognizer
<
Offset
>
{
class
PanGestureRecognizer
extends
_DragGestureRecognizer
<
Offset
>
{
PanGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
,
GesturePanStartCallback
onStart
,
GesturePanUpdateCallback
onUpdate
,
GesturePanEndCallback
onEnd
})
:
super
(
router:
router
,
gestureArena:
gestureArena
,
onStart:
onStart
,
onUpdate:
onUpdate
,
onEnd:
onEnd
);
Offset
get
_initialPendingDragDelta
=>
Offset
.
zero
;
Offset
get
_initialPendingDragDelta
=>
Offset
.
zero
;
Offset
_getDragDelta
(
PointerEvent
event
)
=>
event
.
delta
;
Offset
_getDragDelta
(
PointerEvent
event
)
=>
event
.
delta
;
bool
get
_hasSufficientPendingDragDeltaToAccept
{
bool
get
_hasSufficientPendingDragDeltaToAccept
{
...
...
packages/flutter/lib/src/gestures/long_press.dart
View file @
6af44927
...
@@ -5,22 +5,13 @@
...
@@ -5,22 +5,13 @@
import
'arena.dart'
;
import
'arena.dart'
;
import
'constants.dart'
;
import
'constants.dart'
;
import
'events.dart'
;
import
'events.dart'
;
import
'pointer_router.dart'
;
import
'recognizer.dart'
;
import
'recognizer.dart'
;
typedef
void
GestureLongPressCallback
(
);
typedef
void
GestureLongPressCallback
(
);
/// The user has pressed down at this location for a long period of time.
/// The user has pressed down at this location for a long period of time.
class
LongPressGestureRecognizer
extends
PrimaryPointerGestureRecognizer
{
class
LongPressGestureRecognizer
extends
PrimaryPointerGestureRecognizer
{
LongPressGestureRecognizer
({
LongPressGestureRecognizer
()
:
super
(
deadline:
kLongPressTimeout
);
PointerRouter
router
,
GestureArena
gestureArena
,
this
.
onLongPress
})
:
super
(
router:
router
,
gestureArena:
gestureArena
,
deadline:
kLongPressTimeout
);
GestureLongPressCallback
onLongPress
;
GestureLongPressCallback
onLongPress
;
...
...
packages/flutter/lib/src/gestures/multidrag.dart
View file @
6af44927
...
@@ -6,9 +6,9 @@ import 'dart:async';
...
@@ -6,9 +6,9 @@ import 'dart:async';
import
'dart:ui'
show
Point
,
Offset
;
import
'dart:ui'
show
Point
,
Offset
;
import
'arena.dart'
;
import
'arena.dart'
;
import
'binding.dart'
;
import
'constants.dart'
;
import
'constants.dart'
;
import
'events.dart'
;
import
'events.dart'
;
import
'pointer_router.dart'
;
import
'recognizer.dart'
;
import
'recognizer.dart'
;
import
'velocity_tracker.dart'
;
import
'velocity_tracker.dart'
;
...
@@ -121,18 +121,6 @@ abstract class MultiDragPointerState {
...
@@ -121,18 +121,6 @@ abstract class MultiDragPointerState {
}
}
abstract
class
MultiDragGestureRecognizer
<
T
extends
MultiDragPointerState
>
extends
GestureRecognizer
{
abstract
class
MultiDragGestureRecognizer
<
T
extends
MultiDragPointerState
>
extends
GestureRecognizer
{
MultiDragGestureRecognizer
({
PointerRouter
pointerRouter
,
GestureArena
gestureArena
,
this
.
onStart
})
:
_pointerRouter
=
pointerRouter
,
_gestureArena
=
gestureArena
{
assert
(
pointerRouter
!=
null
);
assert
(
gestureArena
!=
null
);
}
final
PointerRouter
_pointerRouter
;
final
GestureArena
_gestureArena
;
GestureMultiDragStartCallback
onStart
;
GestureMultiDragStartCallback
onStart
;
Map
<
int
,
T
>
_pointers
=
<
int
,
T
>{};
Map
<
int
,
T
>
_pointers
=
<
int
,
T
>{};
...
@@ -144,8 +132,8 @@ abstract class MultiDragGestureRecognizer<T extends MultiDragPointerState> exten
...
@@ -144,8 +132,8 @@ abstract class MultiDragGestureRecognizer<T extends MultiDragPointerState> exten
assert
(!
_pointers
.
containsKey
(
event
.
pointer
));
assert
(!
_pointers
.
containsKey
(
event
.
pointer
));
T
state
=
createNewPointerState
(
event
);
T
state
=
createNewPointerState
(
event
);
_pointers
[
event
.
pointer
]
=
state
;
_pointers
[
event
.
pointer
]
=
state
;
_
pointerRouter
.
addRoute
(
event
.
pointer
,
handleEvent
);
Gesturer
.
instance
.
pointerRouter
.
addRoute
(
event
.
pointer
,
handleEvent
);
state
.
_setArenaEntry
(
_
gestureArena
.
add
(
event
.
pointer
,
this
));
state
.
_setArenaEntry
(
Gesturer
.
instance
.
gestureArena
.
add
(
event
.
pointer
,
this
));
}
}
T
createNewPointerState
(
PointerDownEvent
event
);
T
createNewPointerState
(
PointerDownEvent
event
);
...
@@ -211,7 +199,7 @@ abstract class MultiDragGestureRecognizer<T extends MultiDragPointerState> exten
...
@@ -211,7 +199,7 @@ abstract class MultiDragGestureRecognizer<T extends MultiDragPointerState> exten
void
_removeState
(
int
pointer
)
{
void
_removeState
(
int
pointer
)
{
assert
(
_pointers
!=
null
);
assert
(
_pointers
!=
null
);
assert
(
_pointers
.
containsKey
(
pointer
));
assert
(
_pointers
.
containsKey
(
pointer
));
_
pointerRouter
.
removeRoute
(
pointer
,
handleEvent
);
Gesturer
.
instance
.
pointerRouter
.
removeRoute
(
pointer
,
handleEvent
);
_pointers
[
pointer
].
dispose
();
_pointers
[
pointer
].
dispose
();
_pointers
.
remove
(
pointer
);
_pointers
.
remove
(
pointer
);
}
}
...
@@ -241,12 +229,6 @@ class _ImmediatePointerState extends MultiDragPointerState {
...
@@ -241,12 +229,6 @@ class _ImmediatePointerState extends MultiDragPointerState {
}
}
class
ImmediateMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_ImmediatePointerState
>
{
class
ImmediateMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_ImmediatePointerState
>
{
ImmediateMultiDragGestureRecognizer
({
PointerRouter
pointerRouter
,
GestureArena
gestureArena
,
GestureMultiDragStartCallback
onStart
})
:
super
(
pointerRouter:
pointerRouter
,
gestureArena:
gestureArena
,
onStart:
onStart
);
_ImmediatePointerState
createNewPointerState
(
PointerDownEvent
event
)
{
_ImmediatePointerState
createNewPointerState
(
PointerDownEvent
event
)
{
return
new
_ImmediatePointerState
(
event
.
position
);
return
new
_ImmediatePointerState
(
event
.
position
);
}
}
...
@@ -270,12 +252,6 @@ class _HorizontalPointerState extends MultiDragPointerState {
...
@@ -270,12 +252,6 @@ class _HorizontalPointerState extends MultiDragPointerState {
}
}
class
HorizontalMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_HorizontalPointerState
>
{
class
HorizontalMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_HorizontalPointerState
>
{
HorizontalMultiDragGestureRecognizer
({
PointerRouter
pointerRouter
,
GestureArena
gestureArena
,
GestureMultiDragStartCallback
onStart
})
:
super
(
pointerRouter:
pointerRouter
,
gestureArena:
gestureArena
,
onStart:
onStart
);
_HorizontalPointerState
createNewPointerState
(
PointerDownEvent
event
)
{
_HorizontalPointerState
createNewPointerState
(
PointerDownEvent
event
)
{
return
new
_HorizontalPointerState
(
event
.
position
);
return
new
_HorizontalPointerState
(
event
.
position
);
}
}
...
@@ -299,12 +275,6 @@ class _VerticalPointerState extends MultiDragPointerState {
...
@@ -299,12 +275,6 @@ class _VerticalPointerState extends MultiDragPointerState {
}
}
class
VerticalMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_VerticalPointerState
>
{
class
VerticalMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_VerticalPointerState
>
{
VerticalMultiDragGestureRecognizer
({
PointerRouter
pointerRouter
,
GestureArena
gestureArena
,
GestureMultiDragStartCallback
onStart
})
:
super
(
pointerRouter:
pointerRouter
,
gestureArena:
gestureArena
,
onStart:
onStart
);
_VerticalPointerState
createNewPointerState
(
PointerDownEvent
event
)
{
_VerticalPointerState
createNewPointerState
(
PointerDownEvent
event
)
{
return
new
_VerticalPointerState
(
event
.
position
);
return
new
_VerticalPointerState
(
event
.
position
);
}
}
...
@@ -360,12 +330,8 @@ class _DelayedPointerState extends MultiDragPointerState {
...
@@ -360,12 +330,8 @@ class _DelayedPointerState extends MultiDragPointerState {
class
DelayedMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_DelayedPointerState
>
{
class
DelayedMultiDragGestureRecognizer
extends
MultiDragGestureRecognizer
<
_DelayedPointerState
>
{
DelayedMultiDragGestureRecognizer
({
DelayedMultiDragGestureRecognizer
({
PointerRouter
pointerRouter
,
GestureArena
gestureArena
,
GestureMultiDragStartCallback
onStart
,
Duration
delay:
kLongPressTimeout
Duration
delay:
kLongPressTimeout
})
:
_delay
=
delay
,
})
:
_delay
=
delay
{
super
(
pointerRouter:
pointerRouter
,
gestureArena:
gestureArena
,
onStart:
onStart
)
{
assert
(
delay
!=
null
);
assert
(
delay
!=
null
);
}
}
...
...
packages/flutter/lib/src/gestures/multitap.dart
View file @
6af44927
...
@@ -6,6 +6,7 @@ import 'dart:async';
...
@@ -6,6 +6,7 @@ import 'dart:async';
import
'dart:ui'
show
Point
,
Offset
;
import
'dart:ui'
show
Point
,
Offset
;
import
'arena.dart'
;
import
'arena.dart'
;
import
'binding.dart'
;
import
'constants.dart'
;
import
'constants.dart'
;
import
'events.dart'
;
import
'events.dart'
;
import
'pointer_router.dart'
;
import
'pointer_router.dart'
;
...
@@ -32,17 +33,17 @@ class _TapTracker {
...
@@ -32,17 +33,17 @@ class _TapTracker {
bool
_isTrackingPointer
=
false
;
bool
_isTrackingPointer
=
false
;
void
startTrackingPointer
(
PointerRoute
r
router
,
PointerRoute
route
)
{
void
startTrackingPointer
(
PointerRoute
route
)
{
if
(!
_isTrackingPointer
)
{
if
(!
_isTrackingPointer
)
{
_isTrackingPointer
=
true
;
_isTrackingPointer
=
true
;
r
outer
.
addRoute
(
pointer
,
route
);
Gesturer
.
instance
.
pointerR
outer
.
addRoute
(
pointer
,
route
);
}
}
}
}
void
stopTrackingPointer
(
PointerRoute
r
router
,
PointerRoute
route
)
{
void
stopTrackingPointer
(
PointerRoute
route
)
{
if
(
_isTrackingPointer
)
{
if
(
_isTrackingPointer
)
{
_isTrackingPointer
=
false
;
_isTrackingPointer
=
false
;
r
outer
.
removeRoute
(
pointer
,
route
);
Gesturer
.
instance
.
pointerR
outer
.
removeRoute
(
pointer
,
route
);
}
}
}
}
...
@@ -55,17 +56,6 @@ class _TapTracker {
...
@@ -55,17 +56,6 @@ class _TapTracker {
class
DoubleTapGestureRecognizer
extends
GestureRecognizer
{
class
DoubleTapGestureRecognizer
extends
GestureRecognizer
{
DoubleTapGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
,
this
.
onDoubleTap
})
:
_router
=
router
,
_gestureArena
=
gestureArena
{
assert
(
router
!=
null
);
assert
(
gestureArena
!=
null
);
}
// Implementation notes:
// Implementation notes:
// The double tap recognizer can be in one of four states. There's no
// The double tap recognizer can be in one of four states. There's no
// explicit enum for the states, because they are already captured by
// explicit enum for the states, because they are already captured by
...
@@ -86,8 +76,6 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
...
@@ -86,8 +76,6 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
// - The long timer between taps expires
// - The long timer between taps expires
// - The gesture arena decides we have been rejected wholesale
// - The gesture arena decides we have been rejected wholesale
PointerRouter
_router
;
GestureArena
_gestureArena
;
GestureDoubleTapCallback
onDoubleTap
;
GestureDoubleTapCallback
onDoubleTap
;
Timer
_doubleTapTimer
;
Timer
_doubleTapTimer
;
...
@@ -102,10 +90,10 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
...
@@ -102,10 +90,10 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
_stopDoubleTapTimer
();
_stopDoubleTapTimer
();
_TapTracker
tracker
=
new
_TapTracker
(
_TapTracker
tracker
=
new
_TapTracker
(
event:
event
,
event:
event
,
entry:
_
gestureArena
.
add
(
event
.
pointer
,
this
)
entry:
Gesturer
.
instance
.
gestureArena
.
add
(
event
.
pointer
,
this
)
);
);
_trackers
[
event
.
pointer
]
=
tracker
;
_trackers
[
event
.
pointer
]
=
tracker
;
tracker
.
startTrackingPointer
(
_router
,
handleEvent
);
tracker
.
startTrackingPointer
(
handleEvent
);
}
}
void
handleEvent
(
PointerEvent
event
)
{
void
handleEvent
(
PointerEvent
event
)
{
...
@@ -152,8 +140,6 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
...
@@ -152,8 +140,6 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
void
dispose
()
{
void
dispose
()
{
_reset
();
_reset
();
_router
=
null
;
_gestureArena
=
null
;
}
}
void
_reset
()
{
void
_reset
()
{
...
@@ -164,14 +150,14 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
...
@@ -164,14 +150,14 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
_TapTracker
tracker
=
_firstTap
;
_TapTracker
tracker
=
_firstTap
;
_firstTap
=
null
;
_firstTap
=
null
;
_reject
(
tracker
);
_reject
(
tracker
);
_
gestureArena
.
release
(
tracker
.
pointer
);
Gesturer
.
instance
.
gestureArena
.
release
(
tracker
.
pointer
);
}
}
_clearTrackers
();
_clearTrackers
();
}
}
void
_registerFirstTap
(
_TapTracker
tracker
)
{
void
_registerFirstTap
(
_TapTracker
tracker
)
{
_startDoubleTapTimer
();
_startDoubleTapTimer
();
_
gestureArena
.
hold
(
tracker
.
pointer
);
Gesturer
.
instance
.
gestureArena
.
hold
(
tracker
.
pointer
);
// Note, order is important below in order for the clear -> reject logic to
// Note, order is important below in order for the clear -> reject logic to
// work properly.
// work properly.
_freezeTracker
(
tracker
);
_freezeTracker
(
tracker
);
...
@@ -198,7 +184,7 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
...
@@ -198,7 +184,7 @@ class DoubleTapGestureRecognizer extends GestureRecognizer {
}
}
void
_freezeTracker
(
_TapTracker
tracker
)
{
void
_freezeTracker
(
_TapTracker
tracker
)
{
tracker
.
stopTrackingPointer
(
_router
,
handleEvent
);
tracker
.
stopTrackingPointer
(
handleEvent
);
}
}
void
_startDoubleTapTimer
()
{
void
_startDoubleTapTimer
()
{
...
@@ -234,9 +220,9 @@ class _TapGesture extends _TapTracker {
...
@@ -234,9 +220,9 @@ class _TapGesture extends _TapTracker {
_lastPosition
=
event
.
position
,
_lastPosition
=
event
.
position
,
super
(
super
(
event:
event
,
event:
event
,
entry:
gestureRecognizer
.
_
gestureArena
.
add
(
event
.
pointer
,
gestureRecognizer
)
entry:
Gesturer
.
instance
.
gestureArena
.
add
(
event
.
pointer
,
gestureRecognizer
)
)
{
)
{
startTrackingPointer
(
gestureRecognizer
.
router
,
handleEvent
);
startTrackingPointer
(
handleEvent
);
if
(
longTapDelay
>
Duration
.
ZERO
)
{
if
(
longTapDelay
>
Duration
.
ZERO
)
{
_timer
=
new
Timer
(
longTapDelay
,
()
{
_timer
=
new
Timer
(
longTapDelay
,
()
{
_timer
=
null
;
_timer
=
null
;
...
@@ -263,16 +249,16 @@ class _TapGesture extends _TapTracker {
...
@@ -263,16 +249,16 @@ class _TapGesture extends _TapTracker {
}
else
if
(
event
is
PointerCancelEvent
)
{
}
else
if
(
event
is
PointerCancelEvent
)
{
cancel
();
cancel
();
}
else
if
(
event
is
PointerUpEvent
)
{
}
else
if
(
event
is
PointerUpEvent
)
{
stopTrackingPointer
(
gestureRecognizer
.
router
,
handleEvent
);
stopTrackingPointer
(
handleEvent
);
_finalPosition
=
event
.
position
;
_finalPosition
=
event
.
position
;
_check
();
_check
();
}
}
}
}
void
stopTrackingPointer
(
PointerRoute
r
router
,
PointerRoute
route
)
{
void
stopTrackingPointer
(
PointerRoute
route
)
{
_timer
?.
cancel
();
_timer
?.
cancel
();
_timer
=
null
;
_timer
=
null
;
super
.
stopTrackingPointer
(
route
r
,
route
);
super
.
stopTrackingPointer
(
route
);
}
}
void
accept
()
{
void
accept
()
{
...
@@ -281,7 +267,7 @@ class _TapGesture extends _TapTracker {
...
@@ -281,7 +267,7 @@ class _TapGesture extends _TapTracker {
}
}
void
reject
()
{
void
reject
()
{
stopTrackingPointer
(
gestureRecognizer
.
router
,
handleEvent
);
stopTrackingPointer
(
handleEvent
);
gestureRecognizer
.
_resolveTap
(
pointer
,
_TapResolution
.
cancel
,
null
);
gestureRecognizer
.
_resolveTap
(
pointer
,
_TapResolution
.
cancel
,
null
);
}
}
...
@@ -307,24 +293,9 @@ class _TapGesture extends _TapTracker {
...
@@ -307,24 +293,9 @@ class _TapGesture extends _TapTracker {
/// taps, on up-1 and up-2.
/// taps, on up-1 and up-2.
class
MultiTapGestureRecognizer
extends
GestureRecognizer
{
class
MultiTapGestureRecognizer
extends
GestureRecognizer
{
MultiTapGestureRecognizer
({
MultiTapGestureRecognizer
({
PointerRouter
router
,
this
.
longTapDelay
:
Duration
.
ZERO
GestureArena
gestureArena
,
});
this
.
onTapDown
,
this
.
onTapUp
,
this
.
onTap
,
this
.
onTapCancel
,
this
.
longTapDelay
:
Duration
.
ZERO
,
this
.
onLongTapDown
})
:
_router
=
router
,
_gestureArena
=
gestureArena
{
assert
(
router
!=
null
);
assert
(
gestureArena
!=
null
);
}
PointerRouter
get
router
=>
_router
;
PointerRouter
_router
;
GestureArena
get
gestureArena
=>
_gestureArena
;
GestureArena
_gestureArena
;
GestureMultiTapDownCallback
onTapDown
;
GestureMultiTapDownCallback
onTapDown
;
GestureMultiTapUpCallback
onTapUp
;
GestureMultiTapUpCallback
onTapUp
;
GestureMultiTapCallback
onTap
;
GestureMultiTapCallback
onTap
;
...
@@ -382,8 +353,6 @@ class MultiTapGestureRecognizer extends GestureRecognizer {
...
@@ -382,8 +353,6 @@ class MultiTapGestureRecognizer extends GestureRecognizer {
gesture
.
cancel
();
gesture
.
cancel
();
// Rejection of each gesture should cause it to be removed from our map
// Rejection of each gesture should cause it to be removed from our map
assert
(
_gestureMap
.
isEmpty
);
assert
(
_gestureMap
.
isEmpty
);
_router
=
null
;
_gestureArena
=
null
;
}
}
String
toStringShort
()
=>
'multitap'
;
String
toStringShort
()
=>
'multitap'
;
...
...
packages/flutter/lib/src/gestures/recognizer.dart
View file @
6af44927
...
@@ -7,6 +7,7 @@ import 'dart:collection';
...
@@ -7,6 +7,7 @@ import 'dart:collection';
import
'dart:ui'
show
Point
,
Offset
;
import
'dart:ui'
show
Point
,
Offset
;
import
'arena.dart'
;
import
'arena.dart'
;
import
'binding.dart'
;
import
'constants.dart'
;
import
'constants.dart'
;
import
'events.dart'
;
import
'events.dart'
;
import
'pointer_router.dart'
;
import
'pointer_router.dart'
;
...
@@ -56,18 +57,6 @@ abstract class GestureRecognizer extends GestureArenaMember {
...
@@ -56,18 +57,6 @@ abstract class GestureRecognizer extends GestureArenaMember {
/// which manages each pointer independently and can consider multiple
/// which manages each pointer independently and can consider multiple
/// simultaneous touches to each result in a separate tap.
/// simultaneous touches to each result in a separate tap.
abstract
class
OneSequenceGestureRecognizer
extends
GestureRecognizer
{
abstract
class
OneSequenceGestureRecognizer
extends
GestureRecognizer
{
OneSequenceGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
})
:
_router
=
router
,
_gestureArena
=
gestureArena
{
assert
(
_router
!=
null
);
assert
(
_gestureArena
!=
null
);
}
PointerRouter
_router
;
GestureArena
_gestureArena
;
final
List
<
GestureArenaEntry
>
_entries
=
<
GestureArenaEntry
>[];
final
List
<
GestureArenaEntry
>
_entries
=
<
GestureArenaEntry
>[];
final
Set
<
int
>
_trackedPointers
=
new
HashSet
<
int
>();
final
Set
<
int
>
_trackedPointers
=
new
HashSet
<
int
>();
...
@@ -86,21 +75,19 @@ abstract class OneSequenceGestureRecognizer extends GestureRecognizer {
...
@@ -86,21 +75,19 @@ abstract class OneSequenceGestureRecognizer extends GestureRecognizer {
void
dispose
()
{
void
dispose
()
{
resolve
(
GestureDisposition
.
rejected
);
resolve
(
GestureDisposition
.
rejected
);
for
(
int
pointer
in
_trackedPointers
)
for
(
int
pointer
in
_trackedPointers
)
_r
outer
.
removeRoute
(
pointer
,
handleEvent
);
Gesturer
.
instance
.
pointerR
outer
.
removeRoute
(
pointer
,
handleEvent
);
_trackedPointers
.
clear
();
_trackedPointers
.
clear
();
assert
(
_entries
.
isEmpty
);
assert
(
_entries
.
isEmpty
);
_router
=
null
;
_gestureArena
=
null
;
}
}
void
startTrackingPointer
(
int
pointer
)
{
void
startTrackingPointer
(
int
pointer
)
{
_r
outer
.
addRoute
(
pointer
,
handleEvent
);
Gesturer
.
instance
.
pointerR
outer
.
addRoute
(
pointer
,
handleEvent
);
_trackedPointers
.
add
(
pointer
);
_trackedPointers
.
add
(
pointer
);
_entries
.
add
(
_
gestureArena
.
add
(
pointer
,
this
));
_entries
.
add
(
Gesturer
.
instance
.
gestureArena
.
add
(
pointer
,
this
));
}
}
void
stopTrackingPointer
(
int
pointer
)
{
void
stopTrackingPointer
(
int
pointer
)
{
_r
outer
.
removeRoute
(
pointer
,
handleEvent
);
Gesturer
.
instance
.
pointerR
outer
.
removeRoute
(
pointer
,
handleEvent
);
_trackedPointers
.
remove
(
pointer
);
_trackedPointers
.
remove
(
pointer
);
if
(
_trackedPointers
.
isEmpty
)
if
(
_trackedPointers
.
isEmpty
)
didStopTrackingLastPointer
(
pointer
);
didStopTrackingLastPointer
(
pointer
);
...
@@ -120,14 +107,7 @@ enum GestureRecognizerState {
...
@@ -120,14 +107,7 @@ enum GestureRecognizerState {
}
}
abstract
class
PrimaryPointerGestureRecognizer
extends
OneSequenceGestureRecognizer
{
abstract
class
PrimaryPointerGestureRecognizer
extends
OneSequenceGestureRecognizer
{
PrimaryPointerGestureRecognizer
({
PrimaryPointerGestureRecognizer
({
this
.
deadline
});
PointerRouter
router
,
GestureArena
gestureArena
,
this
.
deadline
})
:
super
(
router:
router
,
gestureArena:
gestureArena
);
final
Duration
deadline
;
final
Duration
deadline
;
...
...
packages/flutter/lib/src/gestures/scale.dart
View file @
6af44927
...
@@ -19,17 +19,6 @@ typedef void GestureScaleUpdateCallback(double scale, Point focalPoint);
...
@@ -19,17 +19,6 @@ typedef void GestureScaleUpdateCallback(double scale, Point focalPoint);
typedef
void
GestureScaleEndCallback
(
);
typedef
void
GestureScaleEndCallback
(
);
class
ScaleGestureRecognizer
extends
OneSequenceGestureRecognizer
{
class
ScaleGestureRecognizer
extends
OneSequenceGestureRecognizer
{
ScaleGestureRecognizer
({
PointerRouter
router
,
GestureArena
gestureArena
,
this
.
onStart
,
this
.
onUpdate
,
this
.
onEnd
})
:
super
(
router:
router
,
gestureArena:
gestureArena
);
GestureScaleStartCallback
onStart
;
GestureScaleStartCallback
onStart
;
GestureScaleUpdateCallback
onUpdate
;
GestureScaleUpdateCallback
onUpdate
;
GestureScaleEndCallback
onEnd
;
GestureScaleEndCallback
onEnd
;
...
...
packages/flutter/lib/src/gestures/tap.dart
View file @
6af44927
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
import
'arena.dart'
;
import
'arena.dart'
;
import
'constants.dart'
;
import
'constants.dart'
;
import
'events.dart'
;
import
'events.dart'
;
import
'pointer_router.dart'
;
import
'recognizer.dart'
;
import
'recognizer.dart'
;
typedef
void
GestureTapDownCallback
(
Point
globalPosition
);
typedef
void
GestureTapDownCallback
(
Point
globalPosition
);
...
@@ -17,18 +16,7 @@ typedef void GestureTapCancelCallback();
...
@@ -17,18 +16,7 @@ typedef void GestureTapCancelCallback();
/// pointer per gesture. That is, during tap recognition, extra pointer events
/// pointer per gesture. That is, during tap recognition, extra pointer events
/// are ignored: down-1, down-2, up-1, up-2 produces only one tap on up-1.
/// are ignored: down-1, down-2, up-1, up-2 produces only one tap on up-1.
class
TapGestureRecognizer
extends
PrimaryPointerGestureRecognizer
{
class
TapGestureRecognizer
extends
PrimaryPointerGestureRecognizer
{
TapGestureRecognizer
({
TapGestureRecognizer
()
:
super
(
deadline:
kPressTimeout
);
PointerRouter
router
,
GestureArena
gestureArena
,
this
.
onTapDown
,
this
.
onTapUp
,
this
.
onTap
,
this
.
onTapCancel
})
:
super
(
router:
router
,
gestureArena:
gestureArena
,
deadline:
kPressTimeout
);
GestureTapDownCallback
onTapDown
;
GestureTapDownCallback
onTapDown
;
GestureTapUpCallback
onTapUp
;
GestureTapUpCallback
onTapUp
;
...
...
packages/flutter/lib/src/material/slider.dart
View file @
6af44927
...
@@ -84,7 +84,7 @@ class _RenderSlider extends RenderConstrainedBox {
...
@@ -84,7 +84,7 @@ class _RenderSlider extends RenderConstrainedBox {
_activeColor
=
activeColor
,
_activeColor
=
activeColor
,
super
(
additionalConstraints:
const
BoxConstraints
.
tightFor
(
width:
_kTrackWidth
+
2
*
_kReactionRadius
,
height:
2
*
_kReactionRadius
))
{
super
(
additionalConstraints:
const
BoxConstraints
.
tightFor
(
width:
_kTrackWidth
+
2
*
_kReactionRadius
,
height:
2
*
_kReactionRadius
))
{
assert
(
value
!=
null
&&
value
>=
0.0
&&
value
<=
1.0
);
assert
(
value
!=
null
&&
value
>=
0.0
&&
value
<=
1.0
);
_drag
=
new
HorizontalDragGestureRecognizer
(
router:
Gesturer
.
instance
.
pointerRouter
,
gestureArena:
Gesturer
.
instance
.
gestureArena
)
_drag
=
new
HorizontalDragGestureRecognizer
()
..
onStart
=
_handleDragStart
..
onStart
=
_handleDragStart
..
onUpdate
=
_handleDragUpdate
..
onUpdate
=
_handleDragUpdate
..
onEnd
=
_handleDragEnd
;
..
onEnd
=
_handleDragEnd
;
...
...
packages/flutter/lib/src/material/switch.dart
View file @
6af44927
...
@@ -112,7 +112,7 @@ class _RenderSwitch extends RenderToggleable {
...
@@ -112,7 +112,7 @@ class _RenderSwitch extends RenderToggleable {
)
{
)
{
_activeTrackColor
=
activeTrackColor
;
_activeTrackColor
=
activeTrackColor
;
_inactiveTrackColor
=
inactiveTrackColor
;
_inactiveTrackColor
=
inactiveTrackColor
;
_drag
=
new
HorizontalDragGestureRecognizer
(
router:
Gesturer
.
instance
.
pointerRouter
,
gestureArena:
Gesturer
.
instance
.
gestureArena
)
_drag
=
new
HorizontalDragGestureRecognizer
()
..
onStart
=
_handleDragStart
..
onStart
=
_handleDragStart
..
onUpdate
=
_handleDragUpdate
..
onUpdate
=
_handleDragUpdate
..
onEnd
=
_handleDragEnd
;
..
onEnd
=
_handleDragEnd
;
...
...
packages/flutter/lib/src/material/toggleable.dart
View file @
6af44927
...
@@ -30,7 +30,7 @@ abstract class RenderToggleable extends RenderConstrainedBox implements Semantic
...
@@ -30,7 +30,7 @@ abstract class RenderToggleable extends RenderConstrainedBox implements Semantic
assert
(
value
!=
null
);
assert
(
value
!=
null
);
assert
(
activeColor
!=
null
);
assert
(
activeColor
!=
null
);
assert
(
inactiveColor
!=
null
);
assert
(
inactiveColor
!=
null
);
_tap
=
new
TapGestureRecognizer
(
router:
Gesturer
.
instance
.
pointerRouter
,
gestureArena:
Gesturer
.
instance
.
gestureArena
)
_tap
=
new
TapGestureRecognizer
()
..
onTapDown
=
_handleTapDown
..
onTapDown
=
_handleTapDown
..
onTap
=
_handleTap
..
onTap
=
_handleTap
..
onTapUp
=
_handleTapUp
..
onTapUp
=
_handleTapUp
...
...
packages/flutter/lib/src/rendering/editable_line.dart
View file @
6af44927
...
@@ -39,7 +39,7 @@ class RenderEditableLine extends RenderBox {
...
@@ -39,7 +39,7 @@ class RenderEditableLine extends RenderBox {
..
maxWidth
=
double
.
INFINITY
..
maxWidth
=
double
.
INFINITY
..
minHeight
=
0.0
..
minHeight
=
0.0
..
maxHeight
=
double
.
INFINITY
;
..
maxHeight
=
double
.
INFINITY
;
_tap
=
new
TapGestureRecognizer
(
router:
Gesturer
.
instance
.
pointerRouter
,
gestureArena:
Gesturer
.
instance
.
gestureArena
)
_tap
=
new
TapGestureRecognizer
()
..
onTapDown
=
_handleTapDown
..
onTapDown
=
_handleTapDown
..
onTap
=
_handleTap
..
onTap
=
_handleTap
..
onTapCancel
=
_handleTapCancel
;
..
onTapCancel
=
_handleTapCancel
;
...
...
packages/flutter/lib/src/widgets/drag_target.dart
View file @
6af44927
...
@@ -82,7 +82,7 @@ abstract class DraggableBase<T> extends StatefulComponent {
...
@@ -82,7 +82,7 @@ abstract class DraggableBase<T> extends StatefulComponent {
/// Should return a new MultiDragGestureRecognizer instance
/// Should return a new MultiDragGestureRecognizer instance
/// constructed with the given arguments.
/// constructed with the given arguments.
MultiDragGestureRecognizer
createRecognizer
(
PointerRouter
router
,
GestureArena
arena
,
GestureMultiDragStartCallback
starter
);
MultiDragGestureRecognizer
createRecognizer
(
GestureMultiDragStartCallback
onStart
);
_DraggableState
<
T
>
createState
()
=>
new
_DraggableState
<
T
>();
_DraggableState
<
T
>
createState
()
=>
new
_DraggableState
<
T
>();
}
}
...
@@ -109,12 +109,8 @@ class Draggable<T> extends DraggableBase<T> {
...
@@ -109,12 +109,8 @@ class Draggable<T> extends DraggableBase<T> {
maxSimultaneousDrags:
maxSimultaneousDrags
maxSimultaneousDrags:
maxSimultaneousDrags
);
);
MultiDragGestureRecognizer
createRecognizer
(
PointerRouter
router
,
GestureArena
arena
,
GestureMultiDragStartCallback
starter
)
{
MultiDragGestureRecognizer
createRecognizer
(
GestureMultiDragStartCallback
onStart
)
{
return
new
ImmediateMultiDragGestureRecognizer
(
return
new
ImmediateMultiDragGestureRecognizer
()..
onStart
=
onStart
;
pointerRouter:
router
,
gestureArena:
arena
,
onStart:
starter
);
}
}
}
}
...
@@ -141,12 +137,8 @@ class HorizontalDraggable<T> extends DraggableBase<T> {
...
@@ -141,12 +137,8 @@ class HorizontalDraggable<T> extends DraggableBase<T> {
maxSimultaneousDrags:
maxSimultaneousDrags
maxSimultaneousDrags:
maxSimultaneousDrags
);
);
MultiDragGestureRecognizer
createRecognizer
(
PointerRouter
router
,
GestureArena
arena
,
GestureMultiDragStartCallback
starter
)
{
MultiDragGestureRecognizer
createRecognizer
(
GestureMultiDragStartCallback
onStart
)
{
return
new
HorizontalMultiDragGestureRecognizer
(
return
new
HorizontalMultiDragGestureRecognizer
()..
onStart
=
onStart
;
pointerRouter:
router
,
gestureArena:
arena
,
onStart:
starter
);
}
}
}
}
...
@@ -173,12 +165,8 @@ class VerticalDraggable<T> extends DraggableBase<T> {
...
@@ -173,12 +165,8 @@ class VerticalDraggable<T> extends DraggableBase<T> {
maxSimultaneousDrags:
maxSimultaneousDrags
maxSimultaneousDrags:
maxSimultaneousDrags
);
);
MultiDragGestureRecognizer
createRecognizer
(
PointerRouter
router
,
GestureArena
arena
,
GestureMultiDragStartCallback
starter
)
{
MultiDragGestureRecognizer
createRecognizer
(
GestureMultiDragStartCallback
onStart
)
{
return
new
VerticalMultiDragGestureRecognizer
(
return
new
VerticalMultiDragGestureRecognizer
()..
onStart
=
onStart
;
pointerRouter:
router
,
gestureArena:
arena
,
onStart:
starter
);
}
}
}
}
...
@@ -204,18 +192,14 @@ class LongPressDraggable<T> extends DraggableBase<T> {
...
@@ -204,18 +192,14 @@ class LongPressDraggable<T> extends DraggableBase<T> {
maxSimultaneousDrags:
maxSimultaneousDrags
maxSimultaneousDrags:
maxSimultaneousDrags
);
);
MultiDragGestureRecognizer
createRecognizer
(
PointerRouter
router
,
GestureArena
arena
,
GestureMultiDragStartCallback
starter
)
{
MultiDragGestureRecognizer
createRecognizer
(
GestureMultiDragStartCallback
onStart
)
{
return
new
DelayedMultiDragGestureRecognizer
(
return
new
DelayedMultiDragGestureRecognizer
()
pointerRouter:
router
,
..
onStart
=
(
Point
position
)
{
gestureArena:
arena
,
Drag
result
=
onStart
(
position
);
delay:
kLongPressTimeout
,
onStart:
(
Point
position
)
{
Drag
result
=
starter
(
position
);
if
(
result
!=
null
)
if
(
result
!=
null
)
userFeedback
.
performHapticFeedback
(
HapticFeedbackType
.
virtualKey
);
userFeedback
.
performHapticFeedback
(
HapticFeedbackType
.
virtualKey
);
return
result
;
return
result
;
}
};
);
}
}
}
}
...
@@ -223,11 +207,7 @@ class _DraggableState<T> extends State<DraggableBase<T>> {
...
@@ -223,11 +207,7 @@ class _DraggableState<T> extends State<DraggableBase<T>> {
void
initState
()
{
void
initState
()
{
super
.
initState
();
super
.
initState
();
_recognizer
=
config
.
createRecognizer
(
_recognizer
=
config
.
createRecognizer
(
_startDrag
);
Gesturer
.
instance
.
pointerRouter
,
Gesturer
.
instance
.
gestureArena
,
_startDrag
);
}
}
GestureRecognizer
_recognizer
;
GestureRecognizer
_recognizer
;
...
...
packages/flutter/lib/src/widgets/gesture_detector.dart
View file @
6af44927
...
@@ -28,7 +28,7 @@ export 'package:flutter/gestures.dart' show
...
@@ -28,7 +28,7 @@ export 'package:flutter/gestures.dart' show
GestureScaleEndCallback
,
GestureScaleEndCallback
,
Velocity
;
Velocity
;
typedef
GestureRecognizer
GestureRecognizerFactory
(
GestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
);
typedef
GestureRecognizer
GestureRecognizerFactory
(
GestureRecognizer
recognizer
);
/// A widget that detects gestures.
/// A widget that detects gestures.
///
///
...
@@ -152,8 +152,8 @@ class GestureDetector extends StatelessComponent {
...
@@ -152,8 +152,8 @@ class GestureDetector extends StatelessComponent {
Map
<
Type
,
GestureRecognizerFactory
>
gestures
=
<
Type
,
GestureRecognizerFactory
>{};
Map
<
Type
,
GestureRecognizerFactory
>
gestures
=
<
Type
,
GestureRecognizerFactory
>{};
if
(
onTapDown
!=
null
||
onTapUp
!=
null
||
onTap
!=
null
||
onTapCancel
!=
null
)
{
if
(
onTapDown
!=
null
||
onTapUp
!=
null
||
onTap
!=
null
||
onTapCancel
!=
null
)
{
gestures
[
TapGestureRecognizer
]
=
(
TapGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
TapGestureRecognizer
]
=
(
TapGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
TapGestureRecognizer
())
..
onTapDown
=
onTapDown
..
onTapDown
=
onTapDown
..
onTapUp
=
onTapUp
..
onTapUp
=
onTapUp
..
onTap
=
onTap
..
onTap
=
onTap
...
@@ -162,22 +162,22 @@ class GestureDetector extends StatelessComponent {
...
@@ -162,22 +162,22 @@ class GestureDetector extends StatelessComponent {
}
}
if
(
onDoubleTap
!=
null
)
{
if
(
onDoubleTap
!=
null
)
{
gestures
[
DoubleTapGestureRecognizer
]
=
(
DoubleTapGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
DoubleTapGestureRecognizer
]
=
(
DoubleTapGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
DoubleTapGestureRecognizer
())
..
onDoubleTap
=
onDoubleTap
;
..
onDoubleTap
=
onDoubleTap
;
};
};
}
}
if
(
onLongPress
!=
null
)
{
if
(
onLongPress
!=
null
)
{
gestures
[
LongPressGestureRecognizer
]
=
(
LongPressGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
LongPressGestureRecognizer
]
=
(
LongPressGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
LongPressGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
LongPressGestureRecognizer
())
..
onLongPress
=
onLongPress
;
..
onLongPress
=
onLongPress
;
};
};
}
}
if
(
onVerticalDragStart
!=
null
||
onVerticalDragUpdate
!=
null
||
onVerticalDragEnd
!=
null
)
{
if
(
onVerticalDragStart
!=
null
||
onVerticalDragUpdate
!=
null
||
onVerticalDragEnd
!=
null
)
{
gestures
[
VerticalDragGestureRecognizer
]
=
(
VerticalDragGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
VerticalDragGestureRecognizer
]
=
(
VerticalDragGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
VerticalDragGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
VerticalDragGestureRecognizer
())
..
onStart
=
onVerticalDragStart
..
onStart
=
onVerticalDragStart
..
onUpdate
=
onVerticalDragUpdate
..
onUpdate
=
onVerticalDragUpdate
..
onEnd
=
onVerticalDragEnd
;
..
onEnd
=
onVerticalDragEnd
;
...
@@ -185,8 +185,8 @@ class GestureDetector extends StatelessComponent {
...
@@ -185,8 +185,8 @@ class GestureDetector extends StatelessComponent {
}
}
if
(
onHorizontalDragStart
!=
null
||
onHorizontalDragUpdate
!=
null
||
onHorizontalDragEnd
!=
null
)
{
if
(
onHorizontalDragStart
!=
null
||
onHorizontalDragUpdate
!=
null
||
onHorizontalDragEnd
!=
null
)
{
gestures
[
HorizontalDragGestureRecognizer
]
=
(
HorizontalDragGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
HorizontalDragGestureRecognizer
]
=
(
HorizontalDragGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
HorizontalDragGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
HorizontalDragGestureRecognizer
())
..
onStart
=
onHorizontalDragStart
..
onStart
=
onHorizontalDragStart
..
onUpdate
=
onHorizontalDragUpdate
..
onUpdate
=
onHorizontalDragUpdate
..
onEnd
=
onHorizontalDragEnd
;
..
onEnd
=
onHorizontalDragEnd
;
...
@@ -194,8 +194,8 @@ class GestureDetector extends StatelessComponent {
...
@@ -194,8 +194,8 @@ class GestureDetector extends StatelessComponent {
}
}
if
(
onPanStart
!=
null
||
onPanUpdate
!=
null
||
onPanEnd
!=
null
)
{
if
(
onPanStart
!=
null
||
onPanUpdate
!=
null
||
onPanEnd
!=
null
)
{
gestures
[
PanGestureRecognizer
]
=
(
PanGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
PanGestureRecognizer
]
=
(
PanGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
PanGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
PanGestureRecognizer
())
..
onStart
=
onPanStart
..
onStart
=
onPanStart
..
onUpdate
=
onPanUpdate
..
onUpdate
=
onPanUpdate
..
onEnd
=
onPanEnd
;
..
onEnd
=
onPanEnd
;
...
@@ -203,14 +203,14 @@ class GestureDetector extends StatelessComponent {
...
@@ -203,14 +203,14 @@ class GestureDetector extends StatelessComponent {
}
}
if
(
onScaleStart
!=
null
||
onScaleUpdate
!=
null
||
onScaleEnd
!=
null
)
{
if
(
onScaleStart
!=
null
||
onScaleUpdate
!=
null
||
onScaleEnd
!=
null
)
{
gestures
[
ScaleGestureRecognizer
]
=
(
ScaleGestureRecognizer
recognizer
,
PointerRouter
router
,
GestureArena
arena
)
{
gestures
[
ScaleGestureRecognizer
]
=
(
ScaleGestureRecognizer
recognizer
)
{
return
(
recognizer
??=
new
ScaleGestureRecognizer
(
router:
router
,
gestureArena:
arena
))
return
(
recognizer
??=
new
ScaleGestureRecognizer
())
..
onStart
=
onScaleStart
..
onStart
=
onScaleStart
..
onUpdate
=
onScaleUpdate
..
onUpdate
=
onScaleUpdate
..
onEnd
=
onScaleEnd
;
..
onEnd
=
onScaleEnd
;
};
};
}
}
return
new
RawGestureDetector
(
return
new
RawGestureDetector
(
gestures:
gestures
,
gestures:
gestures
,
behavior:
behavior
,
behavior:
behavior
,
...
@@ -314,14 +314,12 @@ class RawGestureDetectorState extends State<RawGestureDetector> {
...
@@ -314,14 +314,12 @@ class RawGestureDetectorState extends State<RawGestureDetector> {
}
}
void
_syncAll
(
Map
<
Type
,
GestureRecognizerFactory
>
gestures
)
{
void
_syncAll
(
Map
<
Type
,
GestureRecognizerFactory
>
gestures
)
{
final
PointerRouter
pointerRouter
=
Gesturer
.
instance
.
pointerRouter
;
final
GestureArena
gestureArena
=
Gesturer
.
instance
.
gestureArena
;
assert
(
_recognizers
!=
null
);
assert
(
_recognizers
!=
null
);
Map
<
Type
,
GestureRecognizer
>
oldRecognizers
=
_recognizers
;
Map
<
Type
,
GestureRecognizer
>
oldRecognizers
=
_recognizers
;
_recognizers
=
<
Type
,
GestureRecognizer
>{};
_recognizers
=
<
Type
,
GestureRecognizer
>{};
for
(
Type
type
in
gestures
.
keys
)
{
for
(
Type
type
in
gestures
.
keys
)
{
assert
(!
_recognizers
.
containsKey
(
type
));
assert
(!
_recognizers
.
containsKey
(
type
));
_recognizers
[
type
]
=
gestures
[
type
](
oldRecognizers
[
type
]
,
pointerRouter
,
gestureArena
);
_recognizers
[
type
]
=
gestures
[
type
](
oldRecognizers
[
type
]);
assert
(
_recognizers
[
type
].
runtimeType
==
type
);
assert
(
_recognizers
[
type
].
runtimeType
==
type
);
}
}
for
(
Type
type
in
oldRecognizers
.
keys
)
{
for
(
Type
type
in
oldRecognizers
.
keys
)
{
...
...
packages/flutter/test/gestures/double_tap_test.dart
View file @
6af44927
...
@@ -6,6 +6,8 @@ import 'package:flutter/gestures.dart';
...
@@ -6,6 +6,8 @@ import 'package:flutter/gestures.dart';
import
'package:quiver/testing/async.dart'
;
import
'package:quiver/testing/async.dart'
;
import
'package:test/test.dart'
;
import
'package:test/test.dart'
;
import
'gesture_tester.dart'
;
class
TestGestureArenaMember
extends
GestureArenaMember
{
class
TestGestureArenaMember
extends
GestureArenaMember
{
void
acceptGesture
(
Object
key
)
{
void
acceptGesture
(
Object
key
)
{
accepted
=
true
;
accepted
=
true
;
...
@@ -18,6 +20,7 @@ class TestGestureArenaMember extends GestureArenaMember {
...
@@ -18,6 +20,7 @@ class TestGestureArenaMember extends GestureArenaMember {
}
}
void
main
(
)
{
void
main
(
)
{
setUp
(
ensureGesturer
);
// Down/up pair 1: normal tap sequence
// Down/up pair 1: normal tap sequence
const
PointerDownEvent
down1
=
const
PointerDownEvent
(
const
PointerDownEvent
down1
=
const
PointerDownEvent
(
...
@@ -80,12 +83,7 @@ void main() {
...
@@ -80,12 +83,7 @@ void main() {
);
);
test
(
'Should recognize double tap'
,
()
{
test
(
'Should recognize double tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -93,37 +91,32 @@ void main() {
...
@@ -93,37 +91,32 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Inter-tap distance cancels double tap'
,
()
{
test
(
'Inter-tap distance cancels double tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -131,37 +124,32 @@ void main() {
...
@@ -131,37 +124,32 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down3
);
tap
.
addPointer
(
down3
);
gestureArena
.
close
(
3
);
Gesturer
.
instance
.
gestureArena
.
close
(
3
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down3
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down3
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up3
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up3
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
3
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
3
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Intra-tap distance cancels double tap'
,
()
{
test
(
'Intra-tap distance cancels double tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -169,39 +157,34 @@ void main() {
...
@@ -169,39 +157,34 @@ void main() {
};
};
tap
.
addPointer
(
down4
);
tap
.
addPointer
(
down4
);
gestureArena
.
close
(
4
);
Gesturer
.
instance
.
gestureArena
.
close
(
4
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down4
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down4
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
move4
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
move4
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up4
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up4
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
4
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
4
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Inter-tap delay cancels double tap'
,
()
{
test
(
'Inter-tap delay cancels double tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -210,26 +193,26 @@ void main() {
...
@@ -210,26 +193,26 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
async
.
elapse
(
new
Duration
(
milliseconds:
5000
));
async
.
elapse
(
new
Duration
(
milliseconds:
5000
));
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
});
});
...
@@ -237,12 +220,7 @@ void main() {
...
@@ -237,12 +220,7 @@ void main() {
});
});
test
(
'Inter-tap delay resets double tap, allowing third tap to be a double-tap'
,
()
{
test
(
'Inter-tap delay resets double tap, allowing third tap to be a double-tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -251,38 +229,38 @@ void main() {
...
@@ -251,38 +229,38 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
async
.
elapse
(
new
Duration
(
milliseconds:
5000
));
async
.
elapse
(
new
Duration
(
milliseconds:
5000
));
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
async
.
elapse
(
new
Duration
(
milliseconds:
100
));
async
.
elapse
(
new
Duration
(
milliseconds:
100
));
tap
.
addPointer
(
down5
);
tap
.
addPointer
(
down5
);
gestureArena
.
close
(
5
);
Gesturer
.
instance
.
gestureArena
.
close
(
5
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down5
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down5
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up5
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up5
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
gestureArena
.
sweep
(
5
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
5
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
});
});
...
@@ -290,12 +268,7 @@ void main() {
...
@@ -290,12 +268,7 @@ void main() {
});
});
test
(
'Intra-tap delay does not cancel double tap'
,
()
{
test
(
'Intra-tap delay does not cancel double tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -304,26 +277,26 @@ void main() {
...
@@ -304,26 +277,26 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
async
.
elapse
(
new
Duration
(
milliseconds:
1000
));
async
.
elapse
(
new
Duration
(
milliseconds:
1000
));
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
});
});
...
@@ -331,12 +304,7 @@ void main() {
...
@@ -331,12 +304,7 @@ void main() {
});
});
test
(
'Should not recognize two overlapping taps'
,
()
{
test
(
'Should not recognize two overlapping taps'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -344,37 +312,32 @@ void main() {
...
@@ -344,37 +312,32 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Should recognize one tap of group followed by second tap'
,
()
{
test
(
'Should recognize one tap of group followed by second tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -382,36 +345,36 @@ void main() {
...
@@ -382,36 +345,36 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isTrue
);
expect
(
doubleTapRecognized
,
isTrue
);
tap
.
dispose
();
tap
.
dispose
();
...
@@ -419,12 +382,7 @@ void main() {
...
@@ -419,12 +382,7 @@ void main() {
});
});
test
(
'Should cancel on arena reject during first tap'
,
()
{
test
(
'Should cancel on arena reject during first tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -433,41 +391,36 @@ void main() {
...
@@ -433,41 +391,36 @@ void main() {
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
GestureArenaEntry
entry
=
gestureArena
.
add
(
1
,
member
);
GestureArenaEntry
entry
=
Gesturer
.
instance
.
gestureArena
.
add
(
1
,
member
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
expect
(
member
.
accepted
,
isTrue
);
expect
(
member
.
accepted
,
isTrue
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Should cancel on arena reject between taps'
,
()
{
test
(
'Should cancel on arena reject between taps'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -476,41 +429,36 @@ void main() {
...
@@ -476,41 +429,36 @@ void main() {
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
GestureArenaEntry
entry
=
gestureArena
.
add
(
1
,
member
);
GestureArenaEntry
entry
=
Gesturer
.
instance
.
gestureArena
.
add
(
1
,
member
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
expect
(
member
.
accepted
,
isTrue
);
expect
(
member
.
accepted
,
isTrue
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Should cancel on arena reject during last tap'
,
()
{
test
(
'Should cancel on arena reject during last tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -519,41 +467,36 @@ void main() {
...
@@ -519,41 +467,36 @@ void main() {
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
GestureArenaEntry
entry
=
gestureArena
.
add
(
1
,
member
);
GestureArenaEntry
entry
=
Gesturer
.
instance
.
gestureArena
.
add
(
1
,
member
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
expect
(
member
.
accepted
,
isTrue
);
expect
(
member
.
accepted
,
isTrue
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Passive gesture should trigger on double tap cancel'
,
()
{
test
(
'Passive gesture should trigger on double tap cancel'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
DoubleTapGestureRecognizer
tap
=
new
DoubleTapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
doubleTapRecognized
=
false
;
bool
doubleTapRecognized
=
false
;
tap
.
onDoubleTap
=
()
{
tap
.
onDoubleTap
=
()
{
...
@@ -563,15 +506,15 @@ void main() {
...
@@ -563,15 +506,15 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
gestureArena
.
add
(
1
,
member
);
Gesturer
.
instance
.
gestureArena
.
add
(
1
,
member
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
doubleTapRecognized
,
isFalse
);
expect
(
member
.
accepted
,
isFalse
);
expect
(
member
.
accepted
,
isFalse
);
...
...
packages/flutter/test/gestures/gesture_tester.dart
0 → 100644
View file @
6af44927
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:flutter/services.dart'
;
import
'package:flutter/gestures.dart'
;
class
TestGestureFlutterBinding
extends
BindingBase
with
Gesturer
{
}
void
ensureGesturer
(
)
{
if
(
Gesturer
.
instance
==
null
)
new
TestGestureFlutterBinding
();
assert
(
Gesturer
.
instance
!=
null
);
}
packages/flutter/test/gestures/long_press_test.dart
View file @
6af44927
...
@@ -6,6 +6,8 @@ import 'package:quiver/testing/async.dart';
...
@@ -6,6 +6,8 @@ import 'package:quiver/testing/async.dart';
import
'package:flutter/gestures.dart'
;
import
'package:flutter/gestures.dart'
;
import
'package:test/test.dart'
;
import
'package:test/test.dart'
;
import
'gesture_tester.dart'
;
const
PointerDownEvent
down
=
const
PointerDownEvent
(
const
PointerDownEvent
down
=
const
PointerDownEvent
(
pointer:
5
,
pointer:
5
,
position:
const
Point
(
10.0
,
10.0
)
position:
const
Point
(
10.0
,
10.0
)
...
@@ -17,13 +19,10 @@ const PointerUpEvent up = const PointerUpEvent(
...
@@ -17,13 +19,10 @@ const PointerUpEvent up = const PointerUpEvent(
);
);
void
main
(
)
{
void
main
(
)
{
setUp
(
ensureGesturer
);
test
(
'Should recognize long press'
,
()
{
test
(
'Should recognize long press'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
LongPressGestureRecognizer
longPress
=
new
LongPressGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
LongPressGestureRecognizer
longPress
=
new
LongPressGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
longPressRecognized
=
false
;
bool
longPressRecognized
=
false
;
longPress
.
onLongPress
=
()
{
longPress
.
onLongPress
=
()
{
...
@@ -32,9 +31,9 @@ void main() {
...
@@ -32,9 +31,9 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
longPress
.
addPointer
(
down
);
longPress
.
addPointer
(
down
);
gestureArena
.
close
(
5
);
Gesturer
.
instance
.
gestureArena
.
close
(
5
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
r
outer
.
route
(
down
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
async
.
elapse
(
const
Duration
(
milliseconds:
300
));
async
.
elapse
(
const
Duration
(
milliseconds:
300
));
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
...
@@ -46,12 +45,7 @@ void main() {
...
@@ -46,12 +45,7 @@ void main() {
});
});
test
(
'Up cancels long press'
,
()
{
test
(
'Up cancels long press'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
LongPressGestureRecognizer
longPress
=
new
LongPressGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
LongPressGestureRecognizer
longPress
=
new
LongPressGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
longPressRecognized
=
false
;
bool
longPressRecognized
=
false
;
longPress
.
onLongPress
=
()
{
longPress
.
onLongPress
=
()
{
...
@@ -60,13 +54,13 @@ void main() {
...
@@ -60,13 +54,13 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
longPress
.
addPointer
(
down
);
longPress
.
addPointer
(
down
);
gestureArena
.
close
(
5
);
Gesturer
.
instance
.
gestureArena
.
close
(
5
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
r
outer
.
route
(
down
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
async
.
elapse
(
const
Duration
(
milliseconds:
300
));
async
.
elapse
(
const
Duration
(
milliseconds:
300
));
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
r
outer
.
route
(
up
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
async
.
elapse
(
const
Duration
(
seconds:
1
));
async
.
elapse
(
const
Duration
(
seconds:
1
));
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
...
@@ -76,16 +70,8 @@ void main() {
...
@@ -76,16 +70,8 @@ void main() {
});
});
test
(
'Should recognize both tap down and long press'
,
()
{
test
(
'Should recognize both tap down and long press'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
LongPressGestureRecognizer
longPress
=
new
LongPressGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
LongPressGestureRecognizer
longPress
=
new
LongPressGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
tapDownRecognized
=
false
;
bool
tapDownRecognized
=
false
;
tap
.
onTapDown
=
(
_
)
{
tap
.
onTapDown
=
(
_
)
{
...
@@ -100,10 +86,10 @@ void main() {
...
@@ -100,10 +86,10 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
tap
.
addPointer
(
down
);
tap
.
addPointer
(
down
);
longPress
.
addPointer
(
down
);
longPress
.
addPointer
(
down
);
gestureArena
.
close
(
5
);
Gesturer
.
instance
.
gestureArena
.
close
(
5
);
expect
(
tapDownRecognized
,
isFalse
);
expect
(
tapDownRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
r
outer
.
route
(
down
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down
);
expect
(
tapDownRecognized
,
isFalse
);
expect
(
tapDownRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
expect
(
longPressRecognized
,
isFalse
);
async
.
elapse
(
const
Duration
(
milliseconds:
300
));
async
.
elapse
(
const
Duration
(
milliseconds:
300
));
...
...
packages/flutter/test/gestures/scale_test.dart
View file @
6af44927
...
@@ -6,18 +6,16 @@ import 'package:flutter_test/flutter_test.dart';
...
@@ -6,18 +6,16 @@ import 'package:flutter_test/flutter_test.dart';
import
'package:flutter/gestures.dart'
;
import
'package:flutter/gestures.dart'
;
import
'package:test/test.dart'
;
import
'package:test/test.dart'
;
import
'gesture_tester.dart'
;
void
main
(
)
{
void
main
(
)
{
setUp
(
ensureGesturer
);
test
(
'Should recognize scale gestures'
,
()
{
test
(
'Should recognize scale gestures'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
GestureArena
gestureArena
=
Gesturer
.
instance
.
gestureArena
;
GestureArena
gestureArena
=
new
GestureArena
();
PointerRouter
pointerRouter
=
Gesturer
.
instance
.
pointerRouter
;
ScaleGestureRecognizer
scale
=
new
ScaleGestureRecognizer
(
ScaleGestureRecognizer
scale
=
new
ScaleGestureRecognizer
();
router:
router
,
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
gestureArena:
gestureArena
);
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
didStartScale
=
false
;
bool
didStartScale
=
false
;
Point
updatedFocalPoint
;
Point
updatedFocalPoint
;
...
@@ -56,14 +54,14 @@ void main() {
...
@@ -56,14 +54,14 @@ void main() {
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
// One-finger panning
// One-finger panning
r
outer
.
route
(
down
);
pointerR
outer
.
route
(
down
);
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
expect
(
updatedScale
,
isNull
);
expect
(
updatedScale
,
isNull
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
didEndScale
,
isFalse
);
expect
(
didEndScale
,
isFalse
);
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
r
outer
.
route
(
pointer1
.
move
(
const
Point
(
20.0
,
30.0
)));
pointerR
outer
.
route
(
pointer1
.
move
(
const
Point
(
20.0
,
30.0
)));
expect
(
didStartScale
,
isTrue
);
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
const
Point
(
20.0
,
30.0
));
expect
(
updatedFocalPoint
,
const
Point
(
20.0
,
30.0
));
...
@@ -79,7 +77,7 @@ void main() {
...
@@ -79,7 +77,7 @@ void main() {
scale
.
addPointer
(
down2
);
scale
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
gestureArena
.
close
(
2
);
r
outer
.
route
(
down2
);
pointerR
outer
.
route
(
down2
);
expect
(
didEndScale
,
isTrue
);
expect
(
didEndScale
,
isTrue
);
didEndScale
=
false
;
didEndScale
=
false
;
...
@@ -88,7 +86,7 @@ void main() {
...
@@ -88,7 +86,7 @@ void main() {
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
// Zoom in
// Zoom in
r
outer
.
route
(
pointer2
.
move
(
const
Point
(
0.0
,
10.0
)));
pointerR
outer
.
route
(
pointer2
.
move
(
const
Point
(
0.0
,
10.0
)));
expect
(
didStartScale
,
isTrue
);
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
const
Point
(
10.0
,
20.0
));
expect
(
updatedFocalPoint
,
const
Point
(
10.0
,
20.0
));
...
@@ -99,7 +97,7 @@ void main() {
...
@@ -99,7 +97,7 @@ void main() {
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
// Zoom out
// Zoom out
r
outer
.
route
(
pointer2
.
move
(
const
Point
(
15.0
,
25.0
)));
pointerR
outer
.
route
(
pointer2
.
move
(
const
Point
(
15.0
,
25.0
)));
expect
(
updatedFocalPoint
,
const
Point
(
17.5
,
27.5
));
expect
(
updatedFocalPoint
,
const
Point
(
17.5
,
27.5
));
updatedFocalPoint
=
null
;
updatedFocalPoint
=
null
;
expect
(
updatedScale
,
0.5
);
expect
(
updatedScale
,
0.5
);
...
@@ -112,7 +110,7 @@ void main() {
...
@@ -112,7 +110,7 @@ void main() {
scale
.
addPointer
(
down3
);
scale
.
addPointer
(
down3
);
tap
.
addPointer
(
down3
);
tap
.
addPointer
(
down3
);
gestureArena
.
close
(
3
);
gestureArena
.
close
(
3
);
r
outer
.
route
(
down3
);
pointerR
outer
.
route
(
down3
);
expect
(
didEndScale
,
isTrue
);
expect
(
didEndScale
,
isTrue
);
didEndScale
=
false
;
didEndScale
=
false
;
...
@@ -121,7 +119,7 @@ void main() {
...
@@ -121,7 +119,7 @@ void main() {
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
// Zoom in
// Zoom in
r
outer
.
route
(
pointer3
.
move
(
const
Point
(
55.0
,
65.0
)));
pointerR
outer
.
route
(
pointer3
.
move
(
const
Point
(
55.0
,
65.0
)));
expect
(
didStartScale
,
isTrue
);
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
const
Point
(
30.0
,
40.0
));
expect
(
updatedFocalPoint
,
const
Point
(
30.0
,
40.0
));
...
@@ -132,9 +130,9 @@ void main() {
...
@@ -132,9 +130,9 @@ void main() {
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
// Return to original positions but with different fingers
// Return to original positions but with different fingers
r
outer
.
route
(
pointer1
.
move
(
const
Point
(
25.0
,
35.0
)));
pointerR
outer
.
route
(
pointer1
.
move
(
const
Point
(
25.0
,
35.0
)));
r
outer
.
route
(
pointer2
.
move
(
const
Point
(
20.0
,
30.0
)));
pointerR
outer
.
route
(
pointer2
.
move
(
const
Point
(
20.0
,
30.0
)));
r
outer
.
route
(
pointer3
.
move
(
const
Point
(
15.0
,
25.0
)));
pointerR
outer
.
route
(
pointer3
.
move
(
const
Point
(
15.0
,
25.0
)));
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
expect
(
updatedFocalPoint
,
const
Point
(
20.0
,
30.0
));
expect
(
updatedFocalPoint
,
const
Point
(
20.0
,
30.0
));
updatedFocalPoint
=
null
;
updatedFocalPoint
=
null
;
...
@@ -143,7 +141,7 @@ void main() {
...
@@ -143,7 +141,7 @@ void main() {
expect
(
didEndScale
,
isFalse
);
expect
(
didEndScale
,
isFalse
);
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
r
outer
.
route
(
pointer1
.
up
());
pointerR
outer
.
route
(
pointer1
.
up
());
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedScale
,
isNull
);
expect
(
updatedScale
,
isNull
);
...
@@ -152,7 +150,7 @@ void main() {
...
@@ -152,7 +150,7 @@ void main() {
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
// Continue scaling with two fingers
// Continue scaling with two fingers
r
outer
.
route
(
pointer3
.
move
(
const
Point
(
10.0
,
20.0
)));
pointerR
outer
.
route
(
pointer3
.
move
(
const
Point
(
10.0
,
20.0
)));
expect
(
didStartScale
,
isTrue
);
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
const
Point
(
15.0
,
25.0
));
expect
(
updatedFocalPoint
,
const
Point
(
15.0
,
25.0
));
...
@@ -160,7 +158,7 @@ void main() {
...
@@ -160,7 +158,7 @@ void main() {
expect
(
updatedScale
,
2.0
);
expect
(
updatedScale
,
2.0
);
updatedScale
=
null
;
updatedScale
=
null
;
r
outer
.
route
(
pointer2
.
up
());
pointerR
outer
.
route
(
pointer2
.
up
());
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedScale
,
isNull
);
expect
(
updatedScale
,
isNull
);
...
@@ -169,7 +167,7 @@ void main() {
...
@@ -169,7 +167,7 @@ void main() {
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
// Continue panning with one finger
// Continue panning with one finger
r
outer
.
route
(
pointer3
.
move
(
const
Point
(
0.0
,
0.0
)));
pointerR
outer
.
route
(
pointer3
.
move
(
const
Point
(
0.0
,
0.0
)));
expect
(
didStartScale
,
isTrue
);
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
const
Point
(
0.0
,
0.0
));
expect
(
updatedFocalPoint
,
const
Point
(
0.0
,
0.0
));
...
@@ -178,7 +176,7 @@ void main() {
...
@@ -178,7 +176,7 @@ void main() {
updatedScale
=
null
;
updatedScale
=
null
;
// We are done
// We are done
r
outer
.
route
(
pointer3
.
up
());
pointerR
outer
.
route
(
pointer3
.
up
());
expect
(
didStartScale
,
isFalse
);
expect
(
didStartScale
,
isFalse
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedFocalPoint
,
isNull
);
expect
(
updatedScale
,
isNull
);
expect
(
updatedScale
,
isNull
);
...
...
packages/flutter/test/gestures/scroll_test.dart
View file @
6af44927
...
@@ -6,18 +6,16 @@ import 'package:flutter_test/flutter_test.dart';
...
@@ -6,18 +6,16 @@ import 'package:flutter_test/flutter_test.dart';
import
'package:flutter/gestures.dart'
;
import
'package:flutter/gestures.dart'
;
import
'package:test/test.dart'
;
import
'package:test/test.dart'
;
import
'gesture_tester.dart'
;
void
main
(
)
{
void
main
(
)
{
setUp
(
ensureGesturer
);
test
(
'Should recognize pan'
,
()
{
test
(
'Should recognize pan'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
GestureArena
gestureArena
=
Gesturer
.
instance
.
gestureArena
;
GestureArena
gestureArena
=
new
GestureArena
();
PointerRouter
pointerRouter
=
Gesturer
.
instance
.
pointerRouter
;
PanGestureRecognizer
pan
=
new
PanGestureRecognizer
(
PanGestureRecognizer
pan
=
new
PanGestureRecognizer
();
router:
router
,
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
gestureArena:
gestureArena
);
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
didStartPan
=
false
;
bool
didStartPan
=
false
;
pan
.
onStart
=
(
_
)
{
pan
.
onStart
=
(
_
)
{
...
@@ -49,13 +47,13 @@ void main() {
...
@@ -49,13 +47,13 @@ void main() {
expect
(
didEndPan
,
isFalse
);
expect
(
didEndPan
,
isFalse
);
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
r
outer
.
route
(
down
);
pointerR
outer
.
route
(
down
);
expect
(
didStartPan
,
isFalse
);
expect
(
didStartPan
,
isFalse
);
expect
(
updatedScrollDelta
,
isNull
);
expect
(
updatedScrollDelta
,
isNull
);
expect
(
didEndPan
,
isFalse
);
expect
(
didEndPan
,
isFalse
);
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
r
outer
.
route
(
pointer
.
move
(
const
Point
(
20.0
,
20.0
)));
pointerR
outer
.
route
(
pointer
.
move
(
const
Point
(
20.0
,
20.0
)));
expect
(
didStartPan
,
isTrue
);
expect
(
didStartPan
,
isTrue
);
didStartPan
=
false
;
didStartPan
=
false
;
expect
(
updatedScrollDelta
,
const
Offset
(
10.0
,
10.0
));
expect
(
updatedScrollDelta
,
const
Offset
(
10.0
,
10.0
));
...
@@ -63,14 +61,14 @@ void main() {
...
@@ -63,14 +61,14 @@ void main() {
expect
(
didEndPan
,
isFalse
);
expect
(
didEndPan
,
isFalse
);
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
r
outer
.
route
(
pointer
.
move
(
const
Point
(
20.0
,
25.0
)));
pointerR
outer
.
route
(
pointer
.
move
(
const
Point
(
20.0
,
25.0
)));
expect
(
didStartPan
,
isFalse
);
expect
(
didStartPan
,
isFalse
);
expect
(
updatedScrollDelta
,
const
Offset
(
0.0
,
5.0
));
expect
(
updatedScrollDelta
,
const
Offset
(
0.0
,
5.0
));
updatedScrollDelta
=
null
;
updatedScrollDelta
=
null
;
expect
(
didEndPan
,
isFalse
);
expect
(
didEndPan
,
isFalse
);
expect
(
didTap
,
isFalse
);
expect
(
didTap
,
isFalse
);
r
outer
.
route
(
pointer
.
up
());
pointerR
outer
.
route
(
pointer
.
up
());
expect
(
didStartPan
,
isFalse
);
expect
(
didStartPan
,
isFalse
);
expect
(
updatedScrollDelta
,
isNull
);
expect
(
updatedScrollDelta
,
isNull
);
expect
(
didEndPan
,
isTrue
);
expect
(
didEndPan
,
isTrue
);
...
...
packages/flutter/test/gestures/tap_test.dart
View file @
6af44927
...
@@ -6,12 +6,15 @@ import 'package:flutter/gestures.dart';
...
@@ -6,12 +6,15 @@ import 'package:flutter/gestures.dart';
import
'package:quiver/testing/async.dart'
;
import
'package:quiver/testing/async.dart'
;
import
'package:test/test.dart'
;
import
'package:test/test.dart'
;
import
'gesture_tester.dart'
;
class
TestGestureArenaMember
extends
GestureArenaMember
{
class
TestGestureArenaMember
extends
GestureArenaMember
{
void
acceptGesture
(
Object
key
)
{}
void
acceptGesture
(
Object
key
)
{}
void
rejectGesture
(
Object
key
)
{}
void
rejectGesture
(
Object
key
)
{}
}
}
void
main
(
)
{
void
main
(
)
{
setUp
(
ensureGesturer
);
// Down/up pair 1: normal tap sequence
// Down/up pair 1: normal tap sequence
const
PointerDownEvent
down1
=
const
PointerDownEvent
(
const
PointerDownEvent
down1
=
const
PointerDownEvent
(
...
@@ -52,12 +55,7 @@ void main() {
...
@@ -52,12 +55,7 @@ void main() {
);
);
test
(
'Should recognize tap'
,
()
{
test
(
'Should recognize tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
tapRecognized
=
false
;
bool
tapRecognized
=
false
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -65,26 +63,21 @@ void main() {
...
@@ -65,26 +63,21 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapRecognized
,
isTrue
);
expect
(
tapRecognized
,
isTrue
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapRecognized
,
isTrue
);
expect
(
tapRecognized
,
isTrue
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'No duplicate tap events'
,
()
{
test
(
'No duplicate tap events'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
int
tapsRecognized
=
0
;
int
tapsRecognized
=
0
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -92,37 +85,32 @@ void main() {
...
@@ -92,37 +85,32 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapsRecognized
,
0
);
expect
(
tapsRecognized
,
0
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapsRecognized
,
0
);
expect
(
tapsRecognized
,
0
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapsRecognized
,
2
);
expect
(
tapsRecognized
,
2
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapsRecognized
,
2
);
expect
(
tapsRecognized
,
2
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Should not recognize two overlapping taps'
,
()
{
test
(
'Should not recognize two overlapping taps'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
int
tapsRecognized
=
0
;
int
tapsRecognized
=
0
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -130,38 +118,33 @@ void main() {
...
@@ -130,38 +118,33 @@ void main() {
};
};
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapsRecognized
,
0
);
expect
(
tapsRecognized
,
0
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapsRecognized
,
0
);
expect
(
tapsRecognized
,
0
);
tap
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
gestureArena
.
close
(
2
);
Gesturer
.
instance
.
gestureArena
.
close
(
2
);
expect
(
tapsRecognized
,
0
);
expect
(
tapsRecognized
,
0
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapsRecognized
,
0
);
expect
(
tapsRecognized
,
0
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
r
outer
.
route
(
up2
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up2
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
gestureArena
.
sweep
(
2
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
2
);
expect
(
tapsRecognized
,
1
);
expect
(
tapsRecognized
,
1
);
tap
.
dispose
();
tap
.
dispose
();
});
});
test
(
'Distance cancels tap'
,
()
{
test
(
'Distance cancels tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
tapRecognized
=
false
;
bool
tapRecognized
=
false
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -173,20 +156,20 @@ void main() {
...
@@ -173,20 +156,20 @@ void main() {
};
};
tap
.
addPointer
(
down3
);
tap
.
addPointer
(
down3
);
gestureArena
.
close
(
3
);
Gesturer
.
instance
.
gestureArena
.
close
(
3
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapCanceled
,
isFalse
);
expect
(
tapCanceled
,
isFalse
);
r
outer
.
route
(
down3
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down3
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapCanceled
,
isFalse
);
expect
(
tapCanceled
,
isFalse
);
r
outer
.
route
(
move3
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
move3
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapCanceled
,
isTrue
);
expect
(
tapCanceled
,
isTrue
);
r
outer
.
route
(
up3
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up3
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapCanceled
,
isTrue
);
expect
(
tapCanceled
,
isTrue
);
gestureArena
.
sweep
(
3
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
3
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapCanceled
,
isTrue
);
expect
(
tapCanceled
,
isTrue
);
...
@@ -194,12 +177,7 @@ void main() {
...
@@ -194,12 +177,7 @@ void main() {
});
});
test
(
'Timeout does not cancel tap'
,
()
{
test
(
'Timeout does not cancel tap'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
tapRecognized
=
false
;
bool
tapRecognized
=
false
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -208,16 +186,16 @@ void main() {
...
@@ -208,16 +186,16 @@ void main() {
new
FakeAsync
().
run
((
FakeAsync
async
)
{
new
FakeAsync
().
run
((
FakeAsync
async
)
{
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
async
.
elapse
(
new
Duration
(
milliseconds:
500
));
async
.
elapse
(
new
Duration
(
milliseconds:
500
));
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapRecognized
,
isTrue
);
expect
(
tapRecognized
,
isTrue
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapRecognized
,
isTrue
);
expect
(
tapRecognized
,
isTrue
);
});
});
...
@@ -225,12 +203,7 @@ void main() {
...
@@ -225,12 +203,7 @@ void main() {
});
});
test
(
'Should yield to other arena members'
,
()
{
test
(
'Should yield to other arena members'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
tapRecognized
=
false
;
bool
tapRecognized
=
false
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -239,16 +212,16 @@ void main() {
...
@@ -239,16 +212,16 @@ void main() {
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
GestureArenaEntry
entry
=
gestureArena
.
add
(
1
,
member
);
GestureArenaEntry
entry
=
Gesturer
.
instance
.
gestureArena
.
add
(
1
,
member
);
gestureArena
.
hold
(
1
);
Gesturer
.
instance
.
gestureArena
.
hold
(
1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
entry
.
resolve
(
GestureDisposition
.
accepted
);
...
@@ -258,12 +231,7 @@ void main() {
...
@@ -258,12 +231,7 @@ void main() {
});
});
test
(
'Should trigger on release of held arena'
,
()
{
test
(
'Should trigger on release of held arena'
,
()
{
PointerRouter
router
=
new
PointerRouter
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
();
GestureArena
gestureArena
=
new
GestureArena
();
TapGestureRecognizer
tap
=
new
TapGestureRecognizer
(
router:
router
,
gestureArena:
gestureArena
);
bool
tapRecognized
=
false
;
bool
tapRecognized
=
false
;
tap
.
onTap
=
()
{
tap
.
onTap
=
()
{
...
@@ -272,16 +240,16 @@ void main() {
...
@@ -272,16 +240,16 @@ void main() {
tap
.
addPointer
(
down1
);
tap
.
addPointer
(
down1
);
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
TestGestureArenaMember
member
=
new
TestGestureArenaMember
();
GestureArenaEntry
entry
=
gestureArena
.
add
(
1
,
member
);
GestureArenaEntry
entry
=
Gesturer
.
instance
.
gestureArena
.
add
(
1
,
member
);
gestureArena
.
hold
(
1
);
Gesturer
.
instance
.
gestureArena
.
hold
(
1
);
gestureArena
.
close
(
1
);
Gesturer
.
instance
.
gestureArena
.
close
(
1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
down1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
down1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
r
outer
.
route
(
up1
);
Gesturer
.
instance
.
pointerR
outer
.
route
(
up1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
gestureArena
.
sweep
(
1
);
Gesturer
.
instance
.
gestureArena
.
sweep
(
1
);
expect
(
tapRecognized
,
isFalse
);
expect
(
tapRecognized
,
isFalse
);
entry
.
resolve
(
GestureDisposition
.
rejected
);
entry
.
resolve
(
GestureDisposition
.
rejected
);
...
...
packages/flutter/test/widget/hyperlink_test.dart
View file @
6af44927
...
@@ -11,22 +11,16 @@ void main() {
...
@@ -11,22 +11,16 @@ void main() {
test
(
'Can tap a hyperlink'
,
()
{
test
(
'Can tap a hyperlink'
,
()
{
testWidgets
((
WidgetTester
tester
)
{
testWidgets
((
WidgetTester
tester
)
{
bool
didTapLeft
=
false
;
bool
didTapLeft
=
false
;
TapGestureRecognizer
tapLeft
=
new
TapGestureRecognizer
(
TapGestureRecognizer
tapLeft
=
new
TapGestureRecognizer
()
router:
Gesturer
.
instance
.
pointerRouter
,
..
onTap
=
()
{
gestureArena:
Gesturer
.
instance
.
gestureArena
,
onTap:
()
{
didTapLeft
=
true
;
didTapLeft
=
true
;
}
};
);
bool
didTapRight
=
false
;
bool
didTapRight
=
false
;
TapGestureRecognizer
tapRight
=
new
TapGestureRecognizer
(
TapGestureRecognizer
tapRight
=
new
TapGestureRecognizer
()
router:
Gesturer
.
instance
.
pointerRouter
,
..
onTap
=
()
{
gestureArena:
Gesturer
.
instance
.
gestureArena
,
onTap:
()
{
didTapRight
=
true
;
didTapRight
=
true
;
}
};
);
Key
textKey
=
new
Key
(
'text'
);
Key
textKey
=
new
Key
(
'text'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment