package Ġcom . abs int he . any where _. adapter . card Ċ Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . view . H aptic Feedback Constants Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . view . is G one Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . lifecycle . Lifecycle Coroutine Scope Ċ import Ġcom . abs int he . any where _. Any where Application Ċ import Ġcom . abs int he . any where _. Base Activity Ċ import Ġcom . abs int he . any where _. R Ċ import Ġcom . abs int he . any where _. adapter . Item Touch CallBack Ċ import Ġcom . abs int he . any where _. constants . Any where Type Ċ import Ġcom . abs int he . any where _. constants . Const Ċ import Ġcom . abs int he . any where _. constants . Global Values Ċ import Ġcom . abs int he . any where _. model . database . Any where Entity Ċ import Ġcom . abs int he . any where _. ui . dialog . EXTRA _ FROM _ WORK FLOW Ċ import Ġcom . abs int he . any where _. ui . editor . EXTRA _ EDIT _ MODE Ċ import Ġcom . abs int he . any where _. ui . editor . EXTRA _ ENTITY Ċ import Ġcom . abs int he . any where _. ui . editor . Editor Activity Ċ import Ġcom . abs int he . any where _. ui . editor . impl . SWITCH _ OFF Ċ import Ġcom . abs int he . any where _. ui . editor . impl . SWITCH _ ON Ċ import Ġcom . abs int he . any where _. ui . qrcode . QR Code Collection Activity Ċ import Ġcom . abs int he . any where _. utils . App Utils . at Least O Ċ import Ġcom . abs int he . any where _. utils . App Utils . is App Frozen Ċ import Ġcom . abs int he . any where _. utils . Shortcut s Utils Ċ import Ġcom . abs int he . any where _. utils . Ux Utils Ċ import Ġcom . abs int he . any where _. utils . handler . Op ener Ċ import Ġcom . abs int he . any where _. view . card .* Ċ import Ġcom . abs int he . libraries . utils . extensions . dp Ċ import Ġcom . blank j . util code . util . Utils Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . catch ing now . ice box . sdk _ client . Ice Box Ċ import Ġcom . ch ad . library . adapter . base . Base Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base . view holder . Base ViewHolder Ċ import Ġcom . google . android . material . card . Material Card View Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ const Ġval ĠAD AP TER _ MODE _ NORMAL Ġ= Ġ 0 Ċ const Ġval ĠAD AP TER _ MODE _ SORT Ġ= Ġ 1 Ċ const Ġval ĠAD AP TER _ MODE _ SELECT Ġ= Ġ 2 Ċ Ċ const Ġval ĠLAY OUT _ MODE _ LARGE Ġ= Ġ 0 Ċ const Ġval ĠLAY OUT _ MODE _ MEDIUM Ġ= Ġ 1 Ċ const Ġval ĠLAY OUT _ MODE _ SMALL Ġ= Ġ 2 Ċ const Ġval ĠLAY OUT _ MODE _ MIN IMUM Ġ= Ġ 3 Ċ Ċ const Ġval ĠS NOW _ FL A KE _ E MO JI Ġ= Ġ"\ u 2 7 4 4 " Ċ Ċ class ĠBase Card Adapter ( ĊĠ Ġprivate Ġval Ġlayout Mode : ĠInt , ĊĠ Ġprivate Ġval Ġlifecycle Coroutine Scope : ĠLifecycle Coroutine Scope Ċ ) Ġ: ĠBase Quick Adapter < Any where Entity , ĠBase ViewHolder >( 0 ), ĠItem Touch CallBack . On Item Touch Listener Ġ{ ĊĊĠ Ġvar Ġmode Ġ= ĠAD AP TER _ MODE _ NORMAL ĊĠ Ġprivate Ġval Ġselected Index Ġ= Ġmutable ListOf < Int >() ĊĊĠ Ġoverride Ġfun ĠonCreate Def ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBase ViewHolder Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( layout Mode ) Ġ{ ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ LARGE Ġ-> Ġcreate Base ViewHolder ( Card Item View ( context , ĠNormal Item View ( context ))) ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ MEDIUM Ġ-> Ġcreate Base ViewHolder ( Card Item View ( context , ĠStream Item View ( context ))) ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ SMALL Ġ-> Ġcreate Base ViewHolder ( ĊĠĠĠĠĠĠĠ ĠCard Item View ( ĊĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠ ĠStream Single Line Item View ( context ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ MIN IMUM Ġ-> Ġcreate Base ViewHolder ( Card Item View ( context , ĠMinimum Item View ( context ))) ĊĠĠĠĠĠ Ġelse Ġ-> Ġcreate Base ViewHolder ( Card Item View ( context , ĠNormal Item View ( context ))) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġoverride Ġfun Ġconvert ( holder : ĠBase ViewHolder , Ġitem : ĠAny where Entity ) Ġ{ ĊĊĠĠĠ Ġval ĠitemView Ġ= Ġholder . item View Ġas ĠCard Item View < *> ĊĊĠĠĠ ĠitemView . appName . text Ġ= Ġtry Ġ{ ĊĠĠĠĠĠ Ġif Ġ( Ice Box . getApp Enabled Setting ( context , Ġitem . packageName ) Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS NOW _ FL A KE _ E MO JI Ġ+ Ġitem . appName ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġitem . appName ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠ Ġitem . appName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwhen Ġ( layout Mode ) Ġ{ ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ LARGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnormal View Ġ= ĠitemView Ġas ĠCard Item View < Normal Item View > ĊĊĠĠĠĠĠĠĠ Ġnormal View . content . description . is G one Ġ= Ġitem . description . isNull OrEmpty () ĊĠĠĠĠĠĠĠ Ġnormal View . content . param 1 . is G one Ġ= Ġitem . type Ġ== ĠAny where Type . Card . QR _ CODE ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . IMAGE ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . BRO ADCAST ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . WORK FLOW ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . ACC ES SI B ILITY ĊĠĠĠĠĠĠĠ Ġnormal View . content . param 2 . is G one Ġ= Ġitem . type Ġ== ĠAny where Type . Card . URL _ SCHEME ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . QR _ CODE ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . IMAGE ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . BRO ADCAST ĊĠĠĠĠĠĠĠĠĠ Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . WORK FLOW ĊĊĠĠĠĠĠĠĠ Ġnormal View . content . description . text Ġ= Ġitem . description ĊĠĠĠĠĠĠĠ Ġnormal View . content . param 1 . text Ġ= Ġitem . param 1 ĊĠĠĠĠĠĠĠ Ġnormal View . content . param 2 . text Ġ= Ġitem . param 2 ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ MEDIUM , ĠLAY OUT _ MODE _ SMALL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnormal View : ĠCard Item View < Stream Item View >? Ġ= Ġif Ġ( layout Mode Ġ== ĠLAY OUT _ MODE _ MEDIUM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠitemView Ġas ĠCard Item View < Stream Item View > ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( layout Mode Ġ== ĠLAY OUT _ MODE _ MEDIUM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnormal View !!. content . description . text Ġ= Ġitem . description ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Global Values . s Card Background Mode Ġ== ĠConst . CARD _ BG _ MODE _ PURE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . color Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . packageName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Coroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . set Card Use Icon Color ( Ux Utils . getApp Icon ( context , Ġitem , Ġ 4 5 . dp )) Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . color Ġ= Ġcolor ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Update Color Info ( context , Ġitem )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAny where Application . s Repository . update ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . background Ġ= ĠColor Drawable ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal View ?. content ?. description ?. setTextColor ( if Ġ( Ux Utils . is Light Color ( color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . background Ġ= ĠColor Drawable ( item . color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal View ?. content ?. description ?. setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Global Values . s Card Background Mode Ġ== ĠConst . CARD _ BG _ MODE _ GRAD IENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . color Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . packageName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Coroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . set Card Use Icon Color ( Ux Utils . getApp Icon ( context , Ġitem , Ġ 4 5 . dp )) Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Update Color Info ( context , Ġitem )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAny where Application . s Repository . update ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . create Linear Gradient Bitmap ( context , ĠitemView . card Background , Ġcolor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal View ?. content ?. description ?. setTextColor ( if Ġ( Ux Utils . is Light Color ( color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . create Linear Gradient Bitmap ( context , ĠitemView . card Background , Ġitem . color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal View ?. content ?. description ?. setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠLAY OUT _ MODE _ MIN IMUM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Global Values . s Card Background Mode Ġ== ĠConst . CARD _ BG _ MODE _ PURE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . color Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . packageName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Coroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . set Card Use Icon Color ( Ux Utils . getApp Icon ( context , Ġitem , Ġ 3 2 . dp )) Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( color Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . root View . background Tint List Ġ= ĠColor State List . valueOf ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . color Ġ= Ġcolor ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Update Color Info ( context , Ġitem )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAny where Application . s Repository . update ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . textColor Normal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . root View . background Tint List Ġ= ĠColor State List . valueOf ( item . color ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Global Values . s Card Background Mode Ġ== ĠConst . CARD _ BG _ MODE _ GRAD IENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . color Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . packageName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Coroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . set Card Use Icon Color ( Ux Utils . getApp Icon ( context , Ġitem , Ġ 3 2 . dp )) Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Update Color Info ( context , Ġitem )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAny where Application . s Repository . update ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( color Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . create Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . create Linear Gradient Bitmap ( context , ĠitemView . card Background , Ġitem . color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . appName . setTextColor ( if Ġ( Ux Utils . is Light Color ( item . color )) ĠColor . BLACK Ġelse ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠitemView . card Background . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( item . icon Uri . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠ ĠG lide . with ( context . application Context ) ĊĠĠĠĠĠĠĠ Ġ. load ( Ux Utils . getApp Icon ( context , Ġitem , Ġ 4 5 . dp )) ĊĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . NONE ) ĊĠĠĠĠĠĠĠ Ġ. into ( item View . icon ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠG lide . with ( context . application Context ) ĊĠĠĠĠĠĠĠ Ġ. load ( item . icon Uri ) ĊĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . AUT OM AT IC ) ĊĠĠĠĠĠĠĠ Ġ. into ( item View . icon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠitemView . badge . apply Ġ{ ĊĠĠĠĠĠ Ġif Ġ( Global Values . shortcuts List . contains ( item . id )) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġset Image Resource ( R . drawable . ic _ add _ shortcut ) ĊĠĠĠĠĠĠĠ Ġset Color Filter ( Context Compat . getColor ( context , ĠR . color . color Accent ), ĠPort er D uff . Mode . SRC _ IN ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġis G one Ġ= Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠitemView . indicator . apply Ġ{ ĊĠĠĠĠĠ Ġif Ġ( item . type Ġ== ĠAny where Type . Card . SWITCH _ SHELL ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( item . param 3 Ġ== ĠSW ITCH _ OFF ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġset Image Resource ( R . drawable . ic _ red _ dot ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( item . param 3 Ġ== ĠSW ITCH _ ON ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġset Image Resource ( R . drawable . ic _ green _ dot ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġis G one Ġ= Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ(! selectedIndex . contains ( holder . layout Position )) Ġ{ ĊĠĠĠĠĠ Ġ( holder . item View Ġas ĠMaterial Card View ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġscale X Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġfalse ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Move ( from Position : ĠInt , Ġto Position : ĠInt ) Ġ{ ĊĠĠĠ Ġdata . add ( to Position , Ġdata . remove At ( from Position )) ĊĠĠĠ Ġnotify Item Moved ( from Position , Ġto Position ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Sw ip ed ( position : ĠInt ) Ġ{ Ġ/* ĠDo Ġnothing Ġ*/ ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ= Ġdata [ position ]. id . to Long () ĊĊĠ Ġfun Ġclick Item ( v : ĠView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĊĠĠĠĠĠ Ġif Ġ( mode Ġ== ĠAD AP TER _ MODE _ NORMAL ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is App Frozen ( context , Ġitem )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġv . post Delayed ({ Ġnotify Item Changed ( position ) Ġ}, Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠOp ener . with ( context ) ĊĠĠĠĠĠĠĠĠĠ Ġ. load ( item ) ĊĠĠĠĠĠĠĠĠĠ Ġ. set Opened Listener ( object Ġ: ĠOp ener . On Open Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Opened () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Global Values . close After Launch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠBase Activity <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( context Ġas ĠBase Activity < *> ). should Finish On Resume Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠ Ġ. open () ĊĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( mode Ġ== ĠAD AP TER _ MODE _ SELECT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( selectedIndex . isNotEmpty () Ġ&& Ġselected Index . contains ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ( v Ġas ĠMaterial Card View ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale X Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġselected Index . remove ( position ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ( v Ġas ĠMaterial Card View ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale X Ġ= Ġ 0 . 9 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġ 0 . 9 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġselected Index . add ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIndex OutOfBoundsException ) Ġ{ ĊĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġlong Click Item ( v : ĠView , Ġposition : ĠInt , Ġis Edit Mode : ĠBoolean Ġ= Ġtrue ): ĠBoolean Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĊĠĠĠĠĠ Ġif Ġ( mode Ġ== ĠAD AP TER _ MODE _ NORMAL ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠEditor Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ ENTITY , Ġitem ) ĊĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ EDIT _ MODE , Ġis Edit Mode ) ĊĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ FROM _ WORK FLOW , Ġitem . type Ġ== ĠAny where Type . Card . WORK FLOW ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Global Values . editor Entry Anim ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġas ĠBase Activity <* >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . trans _ item _ container ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent , Ġoptions . to Bundle ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġv . perform H aptic Feedback ( H aptic Feedback Constants . LONG _ PRESS ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIndex OutOfBoundsException ) Ġ{ ĊĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġdelete Select () Ġ{ ĊĠĠĠ Ġif Ġ( selectedIndex . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġdelete List Ġ= Ġmutable ListOf < Any where Entity >() ĊĊĠĠĠ Ġfor Ġ( index Ġin Ġselected Index ) Ġ{ ĊĊĠĠĠĠĠ Ġif Ġ( index Ġ< Ġdata . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete List . add ( data [ index ]) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠAny where Application . s Repository . delete ( delete List ) ĊĠĠĠ Ġclear Select () ĊĠ Ġ} ĊĊĠ Ġfun Ġmove Select ( page Title : ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( selectedIndex . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġmove List Ġ= Ġmutable ListOf < Any where Entity >() ĊĊĠĠĠ Ġfor Ġ( index Ġin Ġselected Index ) Ġ{ ĊĊĠĠĠĠĠ Ġif Ġ( index Ġ< Ġdata . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmove List . add ( data [ index ]) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( item Ġin Ġmove List ) Ġ{ ĊĠĠĠĠĠ Ġitem . category Ġ= ĠpageTitle ĊĠĠĠĠĠ ĠAny where Application . s Repository . update ( item ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġclear Select () ĊĠ Ġ} ĊĊĠ Ġsuspend Ġfun Ġcreate Shortcut Select () Ġ{ ĊĠĠĠ Ġif Ġ( selectedIndex . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġentity : ĠAny where Entity ĊĠĠĠ Ġfor Ġ( index Ġin Ġselected Index ) Ġ{ ĊĊĠĠĠĠĠ Ġif Ġ( index Ġ< Ġdata . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġentity Ġ= Ġdata [ index ] ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( at Least O ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShort cuts Utils . add Pin ned Shortcut ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . getApp Icon ( Utils . getApp (), Ġentity , Ġ 4 5 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . appName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShort cuts Utils . add Home Shortcut Pre O ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU x Utils . getApp Icon ( Utils . getApp (), Ġentity , Ġ 4 5 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . appName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclear Select () ĊĠ Ġ} ĊĊĠ Ġfun Ġclear Select () Ġ{ ĊĠĠĠ Ġselected Index . clear () ĊĠ Ġ} ĊĊĠ Ġfun Ġupdate Sort edList () Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < Any where Entity >() ĊĠĠĠ Ġval ĠstartTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠ Ġfor Ġ( pos Ġin Ġ 0 Ġuntil Ġdata . size ) Ġ{ ĊĠĠĠĠĠ Ġval Ġitem Ġ= Ġdata [ pos ] ĊĠĠĠĠĠ Ġitem . time Stamp Ġ= Ġ( startTime Ġ- Ġpos Ġ* Ġ 1 0 0 ). toString () ĊĠĠĠĠĠ Ġlist . add ( item ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠAny where Application . s Repository . update ( list ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġshould Update Color Info ( context : ĠContext , Ġitem : ĠAny where Entity ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġcontext Ġ! is ĠQR Code Collection Activity Ġ&& Ġ( item . type Ġ== ĠAny where Type . Card . ACTIVITY Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . URL _ SCHEME Ġ|| Ġitem . type Ġ== ĠAny where Type . Card . QR _ CODE ) ĊĠ Ġ} Ċ } Ċ