package Ġcom . av ito . android . test . espress o Ċ Ċ import Ġandroid . view . Input Device Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroidx . test . espress o . Perform Exception Ċ import Ġandroidx . test . espress o . Ui Controller Ċ import Ġandroidx . test . espress o . View Action Ċ import Ġandroidx . test . espress o . action . Coordinates Provider Ċ import Ġandroidx . test . espress o . action . General Click Action Ċ import Ġandroidx . test . espress o . action . General Swipe Action Ċ import Ġandroidx . test . espress o . action . Precision Descri ber Ċ import Ġandroidx . test . espress o . action . Press Ċ import Ġandroidx . test . espress o . action . Swipe Ċ import Ġandroidx . test . espress o . action . Swipe Direction Ċ import Ġandroidx . test . espress o . action . Sw iper Ċ import Ġandroidx . test . espress o . action . Tap Ċ import Ġandroidx . test . espress o . action . View Actions Ċ import Ġandroidx . test . espress o . action . View Actions . action With Assertions Ċ import Ġandroidx . test . espress o . util . Human Read ables Ċ import Ġcom . av ito . android . test . UIT est Config Ċ import Ġcom . av ito . android . test . element . field . actions . Type Text Ċ import Ġcom . av ito . android . test . espress o . action . Action OnClick ableElement Ċ import Ġcom . av ito . android . test . espress o . action . Action On Enabled Element Ċ import Ġcom . av ito . android . test . espress o . action . Action On Long Click ableElement Ċ import Ġcom . av ito . android . test . espress o . action . WaitFor Idle Action Ċ import Ġcom . av ito . android . test . espress o . action . click . in Process Click Action Ċ import Ġcom . av ito . android . test . espress o . action . click . in Process Long Click Action Ċ import Ġcom . av ito . android . test . espress o . action . scroll . Scroll To If Possible Action Ċ import Ġorg . hamcrest . Matcher Ċ import Ġorg . hamcrest . core . IsAny thing Ċ Ċ // ĠTODO : Ġmake Ġinternal Ċ object ĠE sp ress o Actions Ġ{ ĊĊĠĠĠ Ġfun Ġtype Text ( string ToBe Typed : ĠString ): ĠView Action Ġ= ĊĠĠĠĠĠĠĠ Ġaction With Assertions ( Type Text ( string ToBe Typed )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEnables Ġscrolling Ġto Ġthe Ġgiven Ġview . ĊĠĠĠĠ Ġ* ĠLess Ġstrict Ġversion Ġof ĠScroll ToAction ĊĠĠĠĠ Ġ* ĠIf Ġview Ġnot Ġa Ġdesc endant Ġof Ġa ĠScroll View Ġ- Ġnothing Ġhappens ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġscroll If Possible (): ĠView Action Ġ= Ġaction With Assertions ( Scroll To If Possible Action ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHack : Ġwaits Ġfor Ġmain Ġthread Ġto Ġbe Ġidle ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠwaitFor Idle (): ĠView Action Ġ= Ġaction With Assertions ( WaitFor Idle Action ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEx pose Ġes press o ĠAPI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġswipe ( ĊĠĠĠĠĠĠĠ Ġdirection : ĠSw ipe Direction , ĊĠĠĠĠĠĠĠ Ġspeed : ĠSw iper Ġ= ĠSw ipe . FAST , ĊĠĠĠĠĠĠĠ Ġprecision : ĠPrecision Descri ber Ġ= ĠPress . F ING ER ĊĠĠĠ Ġ): ĠView Action Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproviders Ġ= Ġdirection . to Coordinate Provider () ĊĠĠĠĠĠĠĠ Ġreturn Ġaction With Assertions ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGeneral Swipe Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproviders . first , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproviders . second , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick ( ĊĠĠĠĠĠĠĠ Ġtype : ĠUIT est Config . Click Type Ġ= ĠUIT est Config . click sType , ĊĠĠĠĠĠĠĠ Ġcoordinates Provider : ĠCoordinates Provider Ġ= ĠVis ible Center Global Coordinates Provider (), ĊĠĠĠĠĠĠĠ Ġvisualize : ĠBoolean Ġ= ĠUIT est Config . visual ize Click s ĊĠĠĠ Ġ): ĠView Action Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġsafe Action ( action : ĠView Action ) Ġ= ĠAction On Enabled Element ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAction OnClick ableElement ( action ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġclick Action Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . Esp ress o Click Ġ-> Ġwhen Ġ( type . rollback Policy ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . Esp ress o Click . Click Rollback Policy . Do Nothing Ġ-> Ġdefault Esp ress o Click Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . Esp ress o Click . Click Rollback Policy . Try One More Click Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrollback Action Ġ= Ġsafe Action ( default Esp ress o Click Action ( coordinates Provider )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdefault Esp ress o Click Action ( coordinates Provider , Ġrollback Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . Esp ress o Click . Click Rollback Policy . Fail Ġ-> Ġdefault Esp ress o Click Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠView Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fake Ġfail Ġaction Ġafter Ġclick Ġinterpreted Ġas Ġlong Ġclick " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Constraints (): ĠMatcher < View > Ġ= ĠIs Anything () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform ( ui Controller : ĠUi Controller ?, Ġview : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPerform Exception . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Action Description (" click Ġinterpreted Ġas Ġlong Ġclick ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠReplace Ġwith Ġrelevant Ġdescription ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with View Description ( Human Read ables . describe ( view )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . In Process Click Ġ-> Ġin Process Click Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Provider Ġ= Ġcoordinates Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisualize Click s Ġ= Ġvisualize ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsafe Action ( click Action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlong Click ( ĊĠĠĠĠĠĠĠ Ġtype : ĠUIT est Config . Click Type Ġ= ĠUIT est Config . click sType , ĊĠĠĠĠĠĠĠ Ġcoordinates Provider : ĠCoordinates Provider Ġ= ĠVis ible Center Global Coordinates Provider (), ĊĠĠĠĠĠĠĠ Ġvisualize : ĠBoolean Ġ= ĠUIT est Config . visual ize Click s ĊĠĠĠ Ġ): ĠView Action Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġsafe Action ( action : ĠView Action ) Ġ= ĠAction On Enabled Element ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAction On Long Click ableElement ( action ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsafe Action ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . Esp ress o Click Ġ-> ĠView Actions . long Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUIT est Config . Click Type . In Process Click Ġ-> Ġin Process Long Click Action ( coordinates Provider , Ġvisualize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSame Ġas Ġ[ View Actions . click ] Ġbut Ġwith Ġusage Ġof Ġgiven Ġcoordinates Ġprovider ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdefault Esp ress o Click Action ( ĊĠĠĠĠĠĠĠ Ġcoordinates Provider : ĠCoordinates Provider , ĊĠĠĠĠĠĠĠ Ġrollback Action : ĠView Action ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠView Action Ġ= ĊĠĠĠĠĠĠĠ Ġaction With Assertions ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGeneral Click Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT ap . SINGLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPress . F ING ER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Device . SOURCE _ UNKNOWN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . BUTTON _ PRIMARY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrollback Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ