/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠCl iff ord ĠLi u Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . mad ness . collision . unit Ċ Ċ import Ġandroid . content . Context Ċ Ċ class ĠDesc Retriever ( private Ġval Ġcontext : ĠContext ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhether Ġto Ġcheck Ġif Ġa Ġunit Ġis Ġinstalled Ġwhen Ġretrieving Ġall Ġdescriptions ĊĠĠĠĠ Ġ* ĠNeed Ġ[ context ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdo Install : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġstate Ġis Ġavailable Ġno Ġmatter Ġinstalled Ġor Ġnot ĊĠĠĠĠ Ġ* ĠNeed Ġ[ context ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdo Available : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġstate Ġis Ġavailable Ġwhen Ġboth Ġinstalled Ġand Ġavailable ĊĠĠĠĠ Ġ* ĠNeed Ġ[ context ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdo Enable : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġstate Ġis Ġavailable Ġwhen Ġenabled ĊĠĠĠĠ Ġ* ĠNeed Ġ[ context ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdo Pin : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġto Ġtrue Ġto Ġget Ġonly Ġthe Ġresults Ġthat Ġmatch Ġincluded Ġstate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdo Filter : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġfun Ġinclude Install State (): ĠDesc Retriever Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Install Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinclude Available State (): ĠDesc Retriever Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Available Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġinclude Ġextra Ġinstall Ġand Ġavailable Ġstates ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinclude Enable State (): ĠDesc Retriever Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Enable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġinclude Ġextra Ġenable Ġstate , Ġwhich Ġwill Ġinclude Ġextra Ġinstall Ġand Ġavailable Ġstates ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinclude Pin State (): ĠDesc Retriever Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Pin Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdo Filter (): ĠDesc Retriever Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Filter Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġretrieve ( is All : ĠBoolean Ġ= Ġfalse , Ġvar arg Ġunits : ĠString ): ĠList < State ful Description > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhas Context Ġ= Ġcontext Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġdo Custom Ġ= Ġunits . isNotEmpty () ĊĠĠĠĠĠĠĠ Ġval Ġdo Check Pin Ġ= Ġdo Pin ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġto Ġtrue Ġif Ġdo Pin ĊĠĠĠĠĠĠĠ Ġval Ġdo Check Enable Ġ= Ġdo Enable Ġ|| Ġdo Check Pin ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġto Ġtrue Ġif Ġdo Enable ĊĠĠĠĠĠĠĠ Ġval Ġdo Check Available Ġ= Ġdo Available Ġ|| Ġdo Check Enable ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġto Ġtrue Ġif Ġdo Enable ĊĠĠĠĠĠĠĠ Ġval Ġdo Check Install Ġ= Ġdo Install Ġ|| Ġdo Check Enable ĊĠĠĠĠĠĠĠ Ġval Ġinstalled Units Ġ= Ġif Ġ( do Check Install Ġ&& Ġhas Context ) ĠUnit . get Installed Units ( context !! ) ĊĠĠĠĠĠĠĠ Ġelse Ġempty List () ĊĠĠĠĠĠĠĠ Ġval Ġdisabled Units Ġ= Ġif Ġ( do Check Enable Ġ&& Ġhas Context ) ĠUnit . get Disabled Units ( context !! ) ĊĠĠĠĠĠĠĠ Ġelse Ġempty List () ĊĠĠĠĠĠĠĠ Ġval Ġpinned Units Ġ= Ġif Ġ( do Check Pin Ġ&& Ġhas Context ) ĠUnit . get Pin ned Units ( context !! ) ĊĠĠĠĠĠĠĠ Ġelse Ġempty List () ĊĠĠĠĠĠĠĠ Ġval Ġunits ToCheck Ġ= Ġif Ġ( do Custom ) Ġunits . toList () ĊĠĠĠĠĠĠĠ Ġelse Ġ( if Ġ( is All ) ĠUnit . UNITS Ġelse Ġinstalled Units ) ĊĠĠĠĠĠĠĠ Ġreturn Ġunits ToCheck . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdesc Ġ= ĠUnit . getDescription ( it ) Ġ?: Ġreturn @ map NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Dynamic Ġ= Ġdesc Ġ! is ĠStatic Description ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Installed Ġ= Ġif Ġ( is All Ġ|| Ġdo Custom ) Ġ( do Check Install Ġ&& Ġinstalled Units . contains ( it )) Ġelse Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Available Ġ= Ġdo Check Available Ġ&& Ġhas Context Ġ&& Ġdesc . is Available ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Enabled Ġ= Ġis Installed Ġ&& Ġis Available Ġ&& Ġdo Check Enable Ġ&& Ġ! disabled Units . contains ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Pin ned Ġ= Ġis Enabled Ġ&& Ġdo Check Pin Ġ&& Ġpinned Units . contains ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( do Filter Ġ&& Ġ(( do Check Pin Ġ&& Ġ! is Pin ned ) Ġ|| Ġ( do Check Enable Ġ&& Ġ! isEnabled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ( do Check Available Ġ&& Ġ! is Available ) Ġ|| Ġ( do Check Install Ġ&& Ġ! is Installed ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStateful Description ( it , Ġdesc , Ġis Dynamic , Ġis Installed , Ġis Available , Ġis Enabled , Ġis Pin ned ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġretrieve All (): ĠList < State ful Description > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrieve ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġretrieve Installed (): ĠList < State ful Description > Ġ{ ĊĠĠĠĠĠĠĠ Ġinclude Install State () ĊĠĠĠĠĠĠĠ Ġreturn Ġretrieve ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġretrieve ( var arg Ġunits : ĠString ): ĠList < State ful Description > Ġ{ ĊĠĠĠĠĠĠĠ Ġinclude Install State () ĊĠĠĠĠĠĠĠ Ġreturn Ġretrieve ( false , Ġ* units ) ĊĠĠĠ Ġ} Ċ } Ċ