/* Ċ Ġ* ĠĠĠĠ Ġ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 . all apps Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . android . launcher 3 . all apps . All Apps Container View Ċ import Ġcom . android . launcher 3 . all apps . All Apps Paged View Ċ import Ġcom . android . launcher 3 . all apps . All Apps Store Ċ import Ġorg . zim mob . zim lx . forEach Child Indexed Ċ Ċ type alias ĠAdapter Hold ers Ġ= ĠArray < All Apps Container View . Adapter Holder > Ċ Ċ class ĠAll Apps Tabs Controller ( val Ġtabs : ĠAll Apps Tabs , Ġprivate Ġval Ġcontainer : ĠAll Apps Container View ) Ġ{ ĊĊĠĠĠ Ġval Ġtabs Count Ġget () Ġ= Ġtabs . count ĊĠĠĠ Ġval Ġshould Show Tabs Ġget () Ġ= Ġtabs Count Ġ> Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġhold ers Ġ= Ġmutable ListOf < All Apps Container View . Adapter Holder >() ĊĊĠĠĠ Ġprivate Ġvar Ġhorizontal Padding Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġbottom Padding Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġcreate Hold ers (): ĠAdapter Hold ers Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( holders . size Ġ< Ġtabs Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhold ers . add ( container . create Holder ( false ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding . bottom Ġ= Ġbottom Padding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding . left Ġ= Ġhorizontal Padding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding . right Ġ= Ġhorizontal Padding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġhold ers . to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreload Tabs () Ġ{ ĊĠĠĠĠĠĠĠ Ġtabs . reload Tabs () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister Icon Containers ( all Apps Store : ĠAll Apps Store ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhold ers . forEach Ġ{ Ġall Apps Store . register Icon Container ( it . re cyclerView ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunregister Icon Containers ( all Apps Store : ĠAll Apps Store ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhold ers . forEach Ġ{ Ġall Apps Store . unregister Icon Container ( it . re cyclerView ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup ( page d View : ĠAll Apps Paged View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtabs . forEach Indexed Ġ{ Ġindex , Ġtab Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhold ers [ index ]. setIs Work ( tab . is Work ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhold ers [ index ]. setup ( page d View . getChild At ( index ), Ġtab . matcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhold ers . forEach Ġ{ Ġit . re cyclerView Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġhold ers [ 0 ]. setup ( view , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind Buttons ( buttons Container : ĠViewGroup , Ġpage d View : ĠAll Apps Paged View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuttons Container . forEach Child Indexed Ġ{ Ġview , Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ Ġpage d View . snap To Page ( i ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Padding ( horizontal : ĠInt , Ġbottom : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhorizontal Padding Ġ= Ġhorizontal ĊĠĠĠĠĠĠĠ Ġbottom Padding Ġ= Ġbottom ĊĊĠĠĠĠĠĠĠ Ġhold ers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . padding . bottom Ġ= Ġbottom Padding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . padding . left Ġ= Ġhorizontal Padding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . padding . right Ġ= Ġhorizontal Padding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . apply Padding () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }