package Ġcodes . side . and color picker . alpha Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . graphics . Shader Ċ import Ġandroid . graphics . drawable . Bitmap Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . graphics . drawable . Layer Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġcodes . side . and color picker . R Ċ import Ġcodes . side . and color picker . model . Color Ċ import Ġcodes . side . and color picker . model . factory . Color Factory Ċ import Ġcodes . side . and color picker . view . picker . Color Seek Bar Ċ Ċ // ĠTODO : ĠMin imize Ġresource Ġreads Ċ // ĠTODO : ĠMake Ġbg _ tr ansparency _ pattern Ġprogram matic Ċ // ĠTODO : ĠThink Ġon Ġmaking Ġthat Ġnon - abstract Ċ // ĠTODO : ĠThink Ġon Ġadding ĠAlpha Color Ġlayer Ċ abstract Ġclass ĠAlpha Color Picker Seek Bar < C Ġ: ĠColor > Ġ@ Jvm Over loads Ġconstructor ( ĊĠ Ġcolor Factory : ĠColor Factory < C >, ĊĠ Ġcontext : ĠContext , ĊĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠ Ġdef Style : ĠInt Ġ= ĠR . attr . seek Bar Style Ċ ) Ġ: ĊĠ ĠColor Seek Bar < C >( ĊĠĠĠ Ġcolor Factory , ĊĠĠĠ Ġcontext , ĊĠĠĠ Ġattrs , ĊĠĠĠ Ġdef Style ĊĠ Ġ) Ġ{ ĊĊĠ Ġ// ĠTODO : ĠHandle Ġrounded Ġcorners ĊĠ Ġoverride Ġfun Ġon Setup Progress Drawable Layers ( layers : ĠArray < Drawable >): ĠArray < Drawable > Ġ{ ĊĠĠĠ Ġval Ġlayer List Ġ= Ġlayers . to Mutable List () ĊĊĠĠĠ Ġval Ġoptions Ġ= ĠBitmap Factory . Options (). also Ġ{ ĊĠĠĠĠĠ Ġit . in Mutable Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap Factory . decode Resource ( ĊĠĠĠĠĠ Ġresources , ĊĠĠĠĠĠ ĠR . drawable . bg _ tr ansparency _ tile _ horizontal , ĊĠĠĠĠĠ Ġoptions ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġpattern Drawable Ġ= ĠBitmap Drawable ( ĊĠĠĠĠĠ Ġresources , ĊĠĠĠĠĠ Ġbitmap ĊĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠ Ġit . set Tile Mode XY ( ĊĠĠĠĠĠĠĠ ĠShader . Tile Mode . REPEAT , ĊĠĠĠĠĠĠĠ ĠShader . Tile Mode . CLAMP ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// val Ġid Ġ= ĠScale Drawable ( ĊĠĠĠ Ġ// Ġ Ġpattern Drawable , ĊĠĠĠ Ġ// Ġ ĠGr avity . FILL _ HORIZONTAL , ĊĠĠĠ Ġ// ĠĠ 1 f , ĊĠĠĠ Ġ// ĠĠ 0 . 5 f ĊĠĠĠ Ġ// ) ĊĊĠĠĠ Ġlayer List . add ( ĊĠĠĠĠĠ Ġpattern Drawable ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġlayer List . add ( ĊĠĠĠĠĠ ĠGradient Drawable (). also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . orientation Ġ= ĠGradient Drawable . Orientation . LEFT _ RIGHT ĊĠĠĠĠĠĠĠ Ġit . corner Radius Ġ= ĊĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension Pixel Offset ( R . dim en . ac p _ seek _ progress _ corner _ radius ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toFloat () ĊĠĠĠĠĠĠĠ Ġit . shape Ġ= ĠGradient Drawable . RECT ANGLE ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠMake Ġstroke Ġconfigurable ĊĠĠĠĠĠĠĠ Ġ// it . set Stroke ( ĊĠĠĠĠĠĠĠ Ġ// ĠĠ 4 , ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠColor . rgb ( ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ 1 9 2 , ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ 1 9 2 , ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ 1 9 2 ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreturn Ġlayer List . to Typed Array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Refresh Progress Drawable ( progress Drawable : ĠLayer Drawable ) Ġ{ ĊĠĠĠ Ġ( progress Drawable . get Drawable ( 1 ) Ġas ĠGradient Drawable ). colors Ġ= ĊĠĠĠĠĠ Ġint ArrayOf ( ĊĠĠĠĠĠĠĠ Ġandroid . graphics . Color . TRANSP ARENT , ĊĠĠĠĠĠĠĠ Ġcolor Converter . convertTo Opaque Color Int ( internal Pick ed Color ) ĊĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Refresh Thumb ( thumb Color ing Draw ables : ĠSet < Drawable >) Ġ{ ĊĠĠĠ Ġthumb Color ing Draw ables . forEach Ġ{ ĊĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠGradient Drawable Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġpaint Thumb Stroke ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠLayer Drawable Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġpaint Thumb Stroke ( it . get Drawable ( 0 ) Ġas ĠGradient Drawable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġpaint Thumb Stroke ( drawable : ĠGradient Drawable ) Ġ{ ĊĠĠĠ Ġdrawable . set Stroke ( ĊĠĠĠĠĠ Ġthumb Stroke Width Px , ĊĠĠĠĠĠ Ġcolor Converter . convertTo Color Int ( internal Pick ed Color ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ