package Ġcom . there al blue pand ab ear . pix ap encil . adapters Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . there al blue pand ab ear . pix ap encil . R Ċ import Ġcom . there al blue pand ab ear . pix ap encil . converters . Json Converter Ċ import Ġcom . there al blue pand ab ear . pix ap encil . listeners . Color Picker Listener Ċ import Ġcom . there al blue pand ab ear . pix ap encil . models . Color Palette Ċ import Ġcom . there al blue pand ab ear . pix ap encil . view holders . Color Picker ViewHolder Ċ Ċ class ĠColor Picker Adapter ( private Ġval Ġdata : ĠColor Palette , Ġprivate Ġval Ġcaller : ĠColor Picker Listener ?, Ġprivate Ġval Ġis Palette Mode : ĠBoolean Ġ= Ġtrue , Ġprivate Ġval Ġis Preview Mode : ĠBoolean Ġ= Ġfalse ) Ġ: ĠRecyclerView . Adapter < Color Picker ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcolor Data Ġ= ĠlistOf < Int >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcolor Data Ġ= ĠJson Converter . convert Json String ToList Of Int ( data . color Palette Color Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠColor Picker ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColor Picker ViewHolder ( LayoutInflater . from ( parent . context ). inflate ( R . layout . color _ picker _ layout , Ġparent , Ġfalse ) Ġas ĠView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠColor Picker ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . color View . background Tint List Ġ= ĠColor State List . valueOf ( color Data [ position ]) ĊĊĠĠĠĠĠĠĠ Ġholder . color View . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( color Data [ position ] Ġ!= ĠColor . TRANSP ARENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaller !!. on Color Long T apped ( data , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Palette Mode Ġ&& Ġ! is Preview Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( color Data [ position ] Ġ== ĠColor . TRANSP ARENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . color View . setBackground Resource ( R . drawable . ic _ baseline _ add _ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . color View . background . setColor Filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . GRAY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPort er D uff . Mode . DST _ OVER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . color View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( color Data [ position ] Ġ!= ĠColor . TRANSP ARENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaller ?. on Color T apped ( color Data [ position ], Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaller ?. on Color Added ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller ?. on Color T apped ( color Data [ position ], Ġholder . color View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcolor Data . size ĊĠĠĠ Ġ} Ċ }