package Ġcom . mapbox . android . gest ures Ċ Ċ import ĠGest ures Ui TestUtils . DEFAULT _ GEST URE _ DURATION Ċ import ĠGest ures Ui TestUtils . move Ċ import Ġandroid . graphics . PointF Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroidx . test . espress o . Esp ress o Ċ import Ġandroidx . test . espress o . matcher . View Matchers Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . rule . Activity Test Rule Ċ import Ġcom . mapbox . android . gest ures . test app . R Ċ import Ġcom . mapbox . android . gest ures . test app . Test Activity Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . util . concurrent . Count DownLatch Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠMove Gesture Detector Test Ġ{ ĊĊĠ Ġ@ Rule ĊĠ Ġ@ Jvm Field ĊĠ Ġval Ġactivity Test Rule Ġ= ĠActivity Test Rule ( Test Activity :: class . java ) ĊĊĠ Ġprivate Ġlateinit Ġvar Ġgest ures Manager : ĠAndroid Gest ures Manager ĊĊĠ Ġ@ Before ĊĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠ Ġgest ures Manager Ġ= Ġactivity Test Rule . activity . gest ures Manager ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġmove _ ignored With Rect Threshold () Ġ{ ĊĠĠĠ Ġval Ġrect Ġ= ĠRect F ( 4 0 0 f , Ġ 4 0 0 f , Ġ 6 0 0 f , Ġ 6 0 0 f ) ĊĠĠĠ Ġgest ures Manager . set Move Gesture Listener ( object Ġ: ĠMove Gesture Detector . On Move Gesture Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move Begin ( detector : ĠMove Gesture Detector ) Ġ= Ġtrue ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġdetector : ĠMove Gesture Detector , ĊĠĠĠĠĠĠĠ Ġdistance X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġdistance Y : ĠFloat ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ= Ġthrow ĠAssertionError (" on Move Ġshouldn 't Ġbe Ġcalled Ġif Ġthreshold Ġwas Ġnot Ġmet ") ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move End ( detector : ĠMove Gesture Detector , Ġvelocity X : ĠFloat , Ġvelocity Y : ĠFloat ) Ġ= ĠUnit ĊĊĠĠĠ Ġ}) ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Rect Ġ= Ġrect ĊĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . content )). perform ( ĊĠĠĠĠĠ Ġmove ( ĊĠĠĠĠĠĠĠ Ġdelta X Ġ= Ġ 5 0 f , ĊĠĠĠĠĠĠĠ Ġdelta Y Ġ= Ġ 5 0 f , ĊĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠPoint F ( rect . right Ġ- Ġ 1 0 0 f , Ġrect . bottom Ġ- Ġ 1 0 0 f ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġmove _ executed When Outside Of Rect () Ġ{ ĊĠĠĠ Ġval Ġl atch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġval Ġrect Ġ= ĠRect F ( 4 0 0 f , Ġ 4 0 0 f , Ġ 6 0 0 f , Ġ 6 0 0 f ) ĊĠĠĠ Ġgest ures Manager . set Move Gesture Listener ( object Ġ: ĠMove Gesture Detector . On Move Gesture Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move Begin ( detector : ĠMove Gesture Detector ) Ġ= Ġtrue ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġdetector : ĠMove Gesture Detector , ĊĠĠĠĠĠĠĠ Ġdistance X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġdistance Y : ĠFloat ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( rect . contains ( detector . focal Point . x , Ġdetector . focal Point . y )) ĊĠĠĠĠĠĠĠ Ġl atch . count Down () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move End ( detector : ĠMove Gesture Detector , Ġvelocity X : ĠFloat , Ġvelocity Y : ĠFloat ) Ġ= ĠUnit ĊĊĠĠĠ Ġ}) ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Rect Ġ= Ġrect ĊĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . content )). perform ( ĊĠĠĠĠĠ Ġmove ( ĊĠĠĠĠĠĠĠ Ġdelta X Ġ= Ġ 1 0 0 f , ĊĠĠĠĠĠĠĠ Ġdelta Y Ġ= Ġ 1 0 0 f , ĊĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠPoint F ( rect . right Ġ+ Ġ 5 0 f , Ġrect . bottom Ġ+ Ġ 5 0 f ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġif Ġ(! latch . await ( DEFAULT _ GEST URE _ DURATION , ĠTimeUnit . MILLISECONDS )) Ġ{ ĊĠĠĠĠĠ ĠAssert . fail (" move Ġwas Ġnot Ġcalled ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġmove _ executed When Rect Threshold Met () Ġ{ ĊĠĠĠ Ġval Ġl atch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġval Ġrect Ġ= ĠRect F ( 4 0 0 f , Ġ 4 0 0 f , Ġ 6 0 0 f , Ġ 6 0 0 f ) ĊĠĠĠ Ġgest ures Manager . set Move Gesture Listener ( object Ġ: ĠMove Gesture Detector . On Move Gesture Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move Begin ( detector : ĠMove Gesture Detector ) Ġ= Ġtrue ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġdetector : ĠMove Gesture Detector , ĊĠĠĠĠĠĠĠ Ġdistance X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġdistance Y : ĠFloat ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( rect . contains ( detector . focal Point . x , Ġdetector . focal Point . y )) ĊĠĠĠĠĠĠĠ Ġl atch . count Down () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move End ( detector : ĠMove Gesture Detector , Ġvelocity X : ĠFloat , Ġvelocity Y : ĠFloat ) Ġ= ĠUnit ĊĊĠĠĠ Ġ}) ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Rect Ġ= Ġrect ĊĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . content )). perform ( ĊĠĠĠĠĠ Ġmove ( ĊĠĠĠĠĠĠĠ Ġdelta X Ġ= Ġ- 1 5 0 f , ĊĠĠĠĠĠĠĠ Ġdelta Y Ġ= Ġ- 1 5 0 f , ĊĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠPoint F ( 5 0 0 f , Ġ 5 0 0 f ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġif Ġ(! latch . await ( DEFAULT _ GEST URE _ DURATION , ĠTimeUnit . MILLISECONDS )) Ġ{ ĊĠĠĠĠĠ ĠAssert . fail (" move Ġwas Ġnot Ġcalled ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġmove _ when Outside Of Rect _ execute When Move Threshold Met () Ġ{ ĊĠĠĠ Ġval Ġl atch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġval Ġrect Ġ= ĠRect F ( 4 0 0 f , Ġ 4 0 0 f , Ġ 6 0 0 f , Ġ 6 0 0 f ) ĊĠĠĠ Ġgest ures Manager . set Move Gesture Listener ( object Ġ: ĠMove Gesture Detector . On Move Gesture Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move Begin ( detector : ĠMove Gesture Detector ) Ġ= Ġtrue ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġdetector : ĠMove Gesture Detector , ĊĠĠĠĠĠĠĠ Ġdistance X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġdistance Y : ĠFloat ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( rect . contains ( detector . focal Point . x , Ġdetector . focal Point . y )) ĊĠĠĠĠĠĠĠ Ġl atch . count Down () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move End ( detector : ĠMove Gesture Detector , Ġvelocity X : ĠFloat , Ġvelocity Y : ĠFloat ) Ġ= ĠUnit ĊĊĠĠĠ Ġ}) ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Rect Ġ= Ġrect ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Ġ= Ġ 5 0 f ĊĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . content )). perform ( ĊĠĠĠĠĠ Ġmove ( ĊĠĠĠĠĠĠĠ Ġdelta X Ġ= Ġ 1 0 0 f , ĊĠĠĠĠĠĠĠ Ġdelta Y Ġ= Ġ 1 0 0 f , ĊĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠPoint F ( rect . right Ġ+ Ġ 5 0 f , Ġrect . bottom Ġ+ Ġ 5 0 f ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġif Ġ(! latch . await ( DEFAULT _ GEST URE _ DURATION , ĠTimeUnit . MILLISECONDS )) Ġ{ ĊĠĠĠĠĠ ĠAssert . fail (" move Ġwas Ġnot Ġcalled ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġmove _ when Outside Of Rect _ ignored When Move Threshold () Ġ{ ĊĠĠĠ Ġval Ġrect Ġ= ĠRect F ( 4 0 0 f , Ġ 4 0 0 f , Ġ 6 0 0 f , Ġ 6 0 0 f ) ĊĠĠĠ Ġgest ures Manager . set Move Gesture Listener ( object Ġ: ĠMove Gesture Detector . On Move Gesture Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move Begin ( detector : ĠMove Gesture Detector ) Ġ= Ġtrue ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġdetector : ĠMove Gesture Detector , ĊĠĠĠĠĠĠĠ Ġdistance X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġdistance Y : ĠFloat ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ= Ġthrow ĠAssertionError (" on Move Ġshouldn 't Ġbe Ġcalled Ġif Ġthreshold Ġwas Ġnot Ġmet ") ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move End ( detector : ĠMove Gesture Detector , Ġvelocity X : ĠFloat , Ġvelocity Y : ĠFloat ) Ġ= ĠUnit ĊĊĠĠĠ Ġ}) ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Rect Ġ= Ġrect ĊĠĠĠ Ġgest ures Manager . move Gesture Detector . move Threshold Ġ= Ġ 5 0 f ĊĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . content )). perform ( ĊĠĠĠĠĠ Ġmove ( ĊĠĠĠĠĠĠĠ Ġdelta X Ġ= Ġ 2 5 f , ĊĠĠĠĠĠĠĠ Ġdelta Y Ġ= Ġ 2 5 f , ĊĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠPoint F ( rect . right Ġ+ Ġ 5 0 f , Ġrect . bottom Ġ+ Ġ 5 0 f ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ }