package Ġcom . m ichael fl is ar . dialogs . classes Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . vect ord raw able . graphics . drawable . Vector Drawable Compat Ċ import Ġcom . m ichael fl is ar . dialogs . Color Definitions Ċ import Ġcom . m ichael fl is ar . dialogs . Dialog Setup Ċ import Ġcom . m ichael fl is ar . dialogs . color . R Ċ import Ġcom . m ichael fl is ar . dialogs . set Circle Background Ċ import Ġcom . m ichael fl is ar . dialogs . utils . Color Util Ċ Ċ class ĠGroup ed Color ( ĊĠĠĠĠĠĠĠ Ġmain Color Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġres Title : ĠInt , ĊĠĠĠĠĠĠĠ Ġvar arg Ġval Ġres Colors : ĠInt Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmain Color Res : ĠInt Ġ= Ġres Colors [ main Color Index ] ĊĊĠĠĠ Ġfun Ġget Main Color ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠContext Compat . getColor ( context , Ġmain Color Res ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Color ( context : ĠContext , Ġindex : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠContext Compat . getColor ( context , Ġres Colors [ index ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Header Description ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . getString ( res Title ). toUpperCase () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Color Description ( context : ĠContext , Ġindex : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColor Util . getName From Material Color ( context , Ġres Colors [ index ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ---------------- ĊĠĠĠ Ġ// Ġadapter Ġfunctions ĊĠĠĠ Ġ// Ġ---------------- ĊĊĠĠĠ Ġprivate Ġfun Ġhas Extra Items ( is Land scape : ĠBoolean ) Ġ= Ġ! is Land scape Ġ&& Ġres Colors . size Ġ== Ġ 1 4 ĊĊĠĠĠ Ġfun Ġge Adapter ItemCount ( is Land scape : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġwant Ġa Ġbreak Ġbefore Ġthe Ġ 4 Ġaccent Ġcolors Ġin Ġpor trait Ġmode Ġ( fits Ġperfectly Ġwithout Ġan Ġextra Ġrow Ġfor Ġthe Ġ 4 Ġcolumns ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( has Extra Items ( is Land scape )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Colors . size Ġ+ Ġ 2 ĊĠĠĠĠĠĠĠ Ġelse Ġres Colors . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Adapter Index ( context : ĠContext , Ġis Land scape : ĠBoolean , Ġindex : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( has Extra Items ( is Land scape )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex ToUse Ġ= Ġif Ġ( index Ġ<= Ġ 9 ) Ġindex Ġelse Ġif Ġ( index Ġ> Ġ 1 1 ) Ġ( index Ġ- Ġ 2 ) Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ToUse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġindex ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Adapter Color ( context : ĠContext , Ġis Land scape : ĠBoolean , Ġindex : ĠInt ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Adapter Index ( context , Ġis Land scape , Ġindex ). take If Ġ{ Ġit Ġ!= Ġ- 1 Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , Ġres Colors [ it ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Adapter Color Name ( context : ĠContext , Ġis Land scape : ĠBoolean , Ġindex : ĠInt ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Adapter Index ( context , Ġis Land scape , Ġindex ). take If Ġ{ Ġit Ġ!= Ġ- 1 Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor Util . getName From Material Color ( context , Ġres Colors [ it ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ---------------- ĊĠĠĠ Ġ// Ġhelper Ġfunctions ĊĠĠĠ Ġ// Ġ---------------- ĊĊĠĠĠ Ġfun Ġfind Matching Color ( context : ĠContext , Ġcolor : ĠInt ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsolid Ġ= ĠColor Util . adjust Alpha ( color , Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġmatching Color Ġ= Ġres Colors . find Ġ{ ĠColor Util . adjust Alpha ( Context Compat . getColor ( context , Ġit ), Ġ 2 5 5 ) Ġ== Ġsolid Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmatching Color ?. let Ġ{ ĠContext Compat . getColor ( context , Ġit ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind Matching Color Index ( context : ĠContext , Ġcolor : ĠInt ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( color Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmatching Color Index Ġ= Ġres Colors . indexOf First Ġ{ ĠContext Compat . getColor ( context , Ġit ) Ġ== Ġcolor Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmatching Color Index ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisplay As Circle View Background ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ== ĠColor Definitions . COLORS _ BW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd : ĠDrawable ? Ġ= ĠVector Drawable Compat . create ( view . context . resources , ĠR . drawable . vector _ bw , Ġview . context . theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN ) Ġview . background Ġ= Ġd Ġelse Ġview . setBackground Drawable ( d ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġview . set Circle Background ( get Main Color ( view . context ), Ġfalse ) ĊĠĠĠ Ġ} Ċ }