package Ġcom . fin nm glas . launcher . list Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . fin nm glas . launcher .* Ċ import Ġcom . fin nm glas . launcher . settings . int ended Settings Pause Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġkotlinx . android . synt hetic . main . list .* Ċ import Ġandroid . content . Context Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment Pager Adapter Ċ import Ġcom . fin nm glas . launcher . list . apps . List Fragment Apps Ċ import Ġcom . fin nm glas . launcher . list . other . List Fragment Other Ċ Ċ var Ġintended Choose Pause Ġ= Ġfalse Ġ// Ġknow Ġwhen Ġto Ġclose Ċ Ċ // ĠTODO : ĠBetter Ġsolution Ġfor Ġthis Ġinter communication Ġf uction ality Ġ( used Ġin Ġlist - fragments ) Ċ var Ġintention Ġ= Ġ" view " Ċ var Ġfor App Ġ= Ġ"" Ċ Ċ /** Ċ Ġ* ĠThe Ġ[ List Activity ] Ġis Ġthe Ġmost Ġgeneral Ġpurpose Ġactivity Ġin ĠLaunch er : Ċ Ġ* Ġ- Ġused Ġto Ġview Ġall Ġapps Ġand Ġedit Ġtheir Ġsettings Ċ Ġ* Ġ- Ġused Ġto Ġchoose Ġan Ġapp Ġ/ Ġintent Ġto Ġbe Ġlaunched Ċ Ġ* Ċ Ġ* ĠThe Ġactivity Ġitself Ġcan Ġalso Ġbe Ġchosen Ġto Ġbe Ġlaunched Ġas Ġan Ġaction . Ċ Ġ*/ Ċ class ĠList Activity Ġ: ĠAppCompatActivity (), ĠUI Object Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitial ise Ġlayout ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . list ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart (){ ĊĠĠĠĠĠĠĠ Ġsuper < AppCompatActivity >. onStart () ĊĠĠĠĠĠĠĠ Ġsuper < UI Object >. onStart () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġintended Settings Pause Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif (! int ended Choose Pause ) Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġintended Choose Pause Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ UN INSTALL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠgetString ( R . string . list _ removed ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ FIRST _ USER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠgetString ( R . string . list _ not _ removed ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġlist _ container . set BackgroundColor ( dom inant Color ) ĊĠĠĠĠĠĠĠ Ġlist _ app bar . set BackgroundColor ( dom inant Color ) ĊĠĠĠĠĠĠĠ Ġlist _ close . setTextColor ( vi br ant Color ) ĊĊĠĠĠĠĠĠĠ Ġlist _ tabs . setSelected Tab Indicator Color ( vi br ant Color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset OnClick s () Ġ{ ĊĠĠĠĠĠĠĠ Ġlist _ close . setOnClickListener () Ġ{ Ġfinish () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadjust Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġget Ġinfo Ġabout Ġwhich Ġaction Ġthis Ġactivity Ġis Ġopen Ġfor ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġintent . extras ĊĠĠĠĠĠĠĠ Ġif Ġ( bundle Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintention Ġ= Ġbundle . getString (" int ention ") !! Ġ// Ġwhy Ġchoose Ġan Ġapp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( int ention Ġ!= Ġ" view ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor App Ġ= Ġbundle . getString (" for App ") !! Ġ// Ġwhich Ġapp Ġwe Ġchoose ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġtabs Ġfor Ġthe Ġ" view " Ġaction ĊĠĠĠĠĠĠĠ Ġif Ġ( int ention Ġ== Ġ" view ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ tabs . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( int ention ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" view " Ġ-> Ġlist _ heading . text Ġ= ĠgetString ( R . string . list _ title _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" pick " Ġ-> Ġlist _ heading . text Ġ= ĠgetString ( R . string . list _ title _ pick ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsections Pager Adapter Ġ= ĠList Sections Pager Adapter ( this , Ġsupport FragmentManager ) ĊĠĠĠĠĠĠĠ Ġval Ġview Pager : ĠView Pager Ġ= ĠfindViewById ( R . id . list _ view pager ) ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġsections Pager Adapter ĊĠĠĠĠĠĠĠ Ġval Ġtabs : ĠTab Layout Ġ= ĠfindViewById ( R . id . list _ tabs ) ĊĠĠĠĠĠĠĠ Ġtabs . setup With ViewPager ( view Pager ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval ĠTAB _ TIT LES Ġ= ĠarrayOf ( ĊĠĠĠ ĠR . string . list _ tab _ app , ĊĠĠĠ ĠR . string . list _ tab _ other Ċ ) Ċ Ċ /** Ċ Ġ* ĠThe Ġ[ List Sections Pager Adapter ] Ġreturns Ġthe Ġfragment , Ċ Ġ* Ġwhich Ġcorresponds Ġto Ġthe Ġselected Ġtab Ġin Ġ[ List Activity ]. Ċ Ġ*/ Ċ class ĠList Sections Pager Adapter ( private Ġval Ġcontext : ĠContext , Ġfm : ĠFragment Manager ) ĊĠĠĠ Ġ: ĠFragment Pager Adapter ( fm , ĠBE HAV IOR _ RE SU ME _ ONLY _ CURRENT _ FRAGMENT ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( position ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠList Fragment Apps () ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠList Fragment Other () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠFragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Page Title ( position : ĠInt ): ĠCharSequence ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . resources . getString ( TAB _ TIT LES [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( int ention ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" view " Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }