/* Ċ Ġ* ĠĠĠĠ ĠThis Ġfile Ġis Ġpart Ġof ĠL awn ch air ĠLaunch er . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠL awn ch air ĠLaunch er Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* ĠĠĠĠ Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ġby Ċ Ġ* ĠĠĠĠ Ġthe ĠFree ĠSoftware ĠFoundation , Ġeither Ġversion Ġ 3 Ġof Ġthe ĠLicense , Ġor Ċ Ġ* ĠĠĠĠ Ġ( at Ġyour Ġoption ) Ġany Ġlater Ġversion . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠL awn ch air ĠLaunch er Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* ĠĠĠĠ Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠĠĠĠ ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠĠĠĠ ĠGNU ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ċ Ġ* ĠĠĠĠ Ġalong Ġwith ĠL awn ch air ĠLaunch er . Ġ ĠIf Ġnot , Ġsee Ġ< https :// www . gnu . org / licenses />. Ċ Ġ*/ Ċ package Ġorg . zim mob . zim lx . touch Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . PointF Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġcom . android . launcher 3 . Launcher State Ċ import Ġcom . android . launcher 3 . R Ċ import Ġcom . android . launcher 3 . views . Options Popup View Ċ import Ġorg . zim mob . zim lx . Z im Launcher Ċ Ċ open Ġclass ĠGest ure Touch Listener ( context : ĠContext ) Ġ: ĠView . On Touch Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlauncher Ġ= ĠZ im Launcher . get Launcher ( context ) ĊĠĠĠ Ġprivate Ġval Ġgesture Controller Ġ= Ġlauncher . gesture Controller ĊĊĠĠĠ Ġprivate Ġvar Ġtouch Down X Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġtouch Down Y Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġdown In Options Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġclick Possible Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch ( view : ĠView ?, Ġev : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ev . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Down X Ġ= Ġev . x ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Down Y Ġ= Ġev . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdown In Options Ġ= Ġlauncher . isIn State ( Launcher State . OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Possible Ġ= Ġdown In Options Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher . workspace . is Scroller Finished ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ MOVE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Click Possible ( ev . x , Ġev . y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Click Possible ( ev . x , Ġev . y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( click Possible Ġ&& Ġlauncher . isIn State ( Launcher State . OPTIONS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher . state Manager . goTo State ( Launcher State . NORMAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! down In Options ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgesture Controller . on Blank Area Touch ( ev ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Click Possible ( x : ĠFloat , Ġy : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! click Possible ) Ġreturn ĊĠĠĠĠĠĠĠ Ġclick Possible Ġ= Ġdown In Options Ġ&& Ġdistance Squared ( touch Down X , Ġtouch Down Y , Ġx , Ġy ) Ġ< Ġ 4 0 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdistance Squared ( x 1 : ĠFloat , Ġy 1 : ĠFloat , Ġx 2 : ĠFloat , Ġy 2 : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis X Ġ= Ġx 2 Ġ- Ġx 1 ĊĠĠĠĠĠĠĠ Ġval Ġdis Y Ġ= Ġy 2 Ġ- Ġy 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġ( dis X Ġ* Ġdis X ) Ġ+ Ġ( dis Y Ġ* Ġdis Y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Long Press () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( launcher . isIn State ( Launcher State . NORMAL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgesture Controller . on Long Press () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( launcher . isIn State ( Launcher State . OPTIONS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDon 't Ġgo Ġto Ġnormal Ġon Ġup ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Possible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOptions Popup View . show ( launcher , Ġtouch Down X , Ġtouch Down Y , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOptions Popup View . Option Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . remove _ drop _ target _ label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ remove _ no _ shadow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher . workspace . remove Screen ( launcher . current Workspace Screen , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Touch Down Point ( touch Down Point : ĠPoint F ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgesture Controller . touch Down Point Ġ= Ġtouch Down Point ĊĠĠĠ Ġ} Ċ } Ċ