package Ġcom . ah med m amd ou h 1 3 . the league . ui . custom Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġcom . ah med m amd ou h 1 3 . corner to view . touch . Touch Gest ures Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min Ċ Ċ class ĠScreen Touch Listener Ġ@ Inject Ġconstructor () Ġ: ĠView . On Touch Listener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġpercent Top : ĠFloat Ġ= Ġ 0 . 0 f ĊĠĠĠ Ġprivate Ġvar Ġpercent Bottom : ĠFloat Ġ= Ġ 0 . 0 f ĊĠĠĠ Ġprivate Ġvar Ġpercent Left : ĠFloat Ġ= Ġ 0 . 0 f ĊĠĠĠ Ġprivate Ġvar Ġpercent Right : ĠFloat Ġ= Ġ 0 . 0 f ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgest ures : ĠTouch Gest ures ĊĠĠĠ Ġvar Ġx Per Pixel Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġy Per Pixel Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġ Ġx Difference Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġy Difference Ġ= Ġ 0 f ĊĊĠĠĠ Ġvar Ġis Expanded Ġ= Ġfalse ĊĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠ Ġconst Ġval ĠTOP _ LIMIT Ġ= Ġ 0 . 4 F ĊĠĠĠĠĠĠ Ġconst Ġval ĠBOT TM _ LIMIT Ġ= Ġ 0 . 9 F ĊĠĠĠĠĠĠ Ġconst Ġval ĠLEFT _ LIMIT Ġ= Ġ 0 . 5 F ĊĠĠĠĠĠĠ Ġconst Ġval ĠRIGHT _ LIMIT Ġ= Ġ 0 . 8 F ĊĠĠĠĠĠĠ Ġval Ġdevice Height Ġ= ĠResources . getSystem (). display Metrics . height Pixels ĊĠĠĠĠĠĠ Ġval Ġdevice Width Ġ= ĠResources . getSystem (). display Metrics . width Pixels ĊĊĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Touch ( v : ĠView , Ġevent : ĠMotion Event ): ĠBoolean Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġwhen ( event . action ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Down Ġx Ġ: Ġ${ event . x Ġ} Ġ, Ġy Ġ: Ġ${ event . y }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Per Pixel Ġ= Ġevent . raw X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Per Pixel Ġ= Ġevent . raw Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Difference Ġ= Ġ Ġv . x Ġ- Ġx Per Pixel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Difference Ġ= Ġ Ġv . x Ġ- Ġy Per Pixel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ MOVE Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ Ġraw X Ġ= Ġevent . raw X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġraw Y = Ġevent . raw Y ĊĊ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( y Per Pixel Ġ+ Ġraw X Ġ Ġ< Ġ 1 Ġ Ġ&& Ġx Per Pixel Ġ+ Ġraw Y Ġ< Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Top Ġ= Ġmax ( 0 F , Ġmin ( TOP _ LIMIT , Ġ( y Difference Ġ+ Ġraw Y ) Ġ/ Ġdevice Height )) Ġ/ ĠTOP _ LIMIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Bottom Ġ= Ġmax ( 0 F , Ġmin ( BOT TM _ LIMIT , Ġ( y Difference Ġ+ Ġraw Y ) Ġ/ Ġdevice Height )) Ġ/ ĠBOT TM _ LIMIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Left Ġ= Ġmax ( 0 F , Ġmin ( LEFT _ LIMIT , Ġ( xD ifference Ġ+ Ġraw X ) Ġ/ Ġdevice Width )) Ġ/ ĠLEFT _ LIMIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Right Ġ= Ġmax ( 0 F , Ġmin ( RIGHT _ LIMIT , Ġ( xD ifference Ġ+ Ġraw X ) Ġ/ Ġdevice Width )) Ġ/ ĠRIGHT _ LIMIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Move ĠTop Ġ: Ġ${ percent Top } Ġ, ĠBottom Ġ: Ġ${ percent Bottom } Ġ ĠLeft Ġ${ percent Left } Ġ, ĠRight Ġ: Ġ${ percent Right }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( percent Top Ġ< ĠBOT TM _ LIMIT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgest ures . scroll ( percent Top , Ġpercent Bottom , Ġpercent Top Ġ* ĠLEFT _ LIMIT , Ġpercent Right , v . id ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Expanded Ġ= Ġ Ġif Ġ( percent Top Ġ< Ġ 0 . 8 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgest ures . expand () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgest ures . collapse () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Up Ġy p Ġ: Ġ${ y Per Pixel } Ġ, Ġy Ġ: Ġ${ event . raw Y }") Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Expanded Ġ= Ġy Difference Ġ> Ġ 1 ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( y Per Pixel Ġ>= Ġevent . raw Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgest ures . expand ( v . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( y Per Pixel Ġ< Ġevent . raw Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgest ures . collapse ( v . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// v ?. perform Click () ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Touch Gest ures Ġ( gest ures : ĠTouch Gest ures ){ ĊĠĠĠĠĠĠĠ Ġthis . gest ures Ġ= Ġgest ures ĊĠĠĠ Ġ} Ċ Ċ }