/* Ċ Ġ* ĠĠĠĠ Ġ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 . gest ures . handlers Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Keep Ċ import Ġcom . android . launcher 3 . Launcher State Ċ import Ġcom . android . launcher 3 . R Ċ import Ġcom . android . quick step . Recent s Model Ċ import Ġcom . android . quick step . Touch Interaction Service Ċ import Ġcom . android . system ui . shared . system . Activity Manager Wrapper Ċ import Ġorg . json . JSONObject Ċ import Ġorg . zim mob . zim lx . gest ures . Gesture Controller Ċ import Ġorg . zim mob . zim lx . gest ures . Gesture Handler Ċ Ċ @ Keep Ċ open Ġclass ĠOpen Recent s Gesture Handler ( context : ĠContext , Ġconfig : ĠJSONObject ?) Ġ: ĠGest ure Handler ( context , Ġconfig ), ĊĠĠĠĠĠĠĠ ĠVertical Swipe Gesture Handler , ĠState Change Gesture Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠdisplayName : ĠString Ġ= Ġcontext . getString ( R . string . action _ switch _ apps ) ĊĠĠĠ Ġoverride Ġval Ġis Available : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠTouch Interaction Service . isConnected () ĊĠĠĠ Ġoverride Ġval Ġicon Resource : ĠIntent . Shortcut Icon Resource Ġby Ġlazy Ġ{ ĠIntent . Shortcut Icon Resource . from Context ( context , ĠR . drawable . ic _ l awn step ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Gesture Trigger ( controller : ĠGest ure Controller , Ġview : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontroller . launcher . state Manager . goTo State ( Launcher State . OVER VIEW ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Available For Swipe Up ( is Swipe Up : ĠBoolean ) Ġ= Ġ! is Swipe Up ĊĊĠĠĠ Ġoverride Ġfun Ġget Target State (): ĠLaunch er State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLaunch er State . OVER VIEW ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Keep Ċ @ Target Api ( Build . VERSION _ CODES . P ) Ċ open Ġclass ĠLaunch Most Recent Task Gesture Handler ( context : ĠContext , Ġconfig : ĠJSONObject ?) Ġ: ĠGest ure Handler ( context , Ġconfig ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠdisplayName : ĠString Ġ= Ġcontext . getString ( R . string . action _ last _ task ) ĊĠĠĠ Ġoverride Ġval Ġis Available : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠTouch Interaction Service . isConnected () ĊĊĠĠĠ Ġoverride Ġfun Ġon Gesture Trigger ( controller : ĠGest ure Controller , Ġview : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* Recent s Model . INSTANCE . get ( context ). Ġ. load Tasks (- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopts Ġ= ĠActivity Options . make Basic () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . task Stack . most Recent Task ?. let Ġ{ Ġmost Recent Task Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Manager Wrapper . getInstance (). startActivity From Recent s Async ( most Recent Task . key , Ġopts , Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( this :: class . java . simple Name , Ġ" Failed Ġto Ġstart Ġtask ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġmain Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠ Ġ} Ċ } Ċ