package Ġprojects . k yle . led controller . Color Picker ĊĊ Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Floating ActionButton Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ Ċ import Ġcom . m adr apps . pi ko lo . H SL Color Picker Ċ import Ġcom . m adr apps . pi ko lo . listeners . Simple Color Selection Listener ĊĊ Ċ import Ġprojects . k yle . led controller . Kotlin . Led Data ViewModel Ċ import Ġprojects . k yle . led controller . R ĊĊ Ċ class ĠColor Picker Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdata Handler : ĠLed Data ViewModel ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġcolor : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġthis . color Ġ= Ġdata Handler !!. getData ( context !! ). value !!. primary Color ĊĊĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġinflater . inflate ( R . layout . fragment _ color _ picker , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġcolor Button Ġ= Ġv . findViewById ( R . id . color _ picker _ button ) Ġas ĠFloating ActionButton ĊĠĠĠĠĠĠĠ Ġcolor Button . get Background (). setColor Filter ( this . color , ĠPort er D uff . Mode . MULTI PLY ) ĊĊĠĠĠĠĠĠĠ Ġcolor Button . setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Handler !!. set Values ( color , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Color ĠSaved ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġcolor Picker Ġ= Ġv . findViewById ( R . id . color _ picker ) Ġas ĠH SL Color Picker ĊĠĠĠĠĠĠĠ Ġcolor Picker . setColor Selection Listener ( object Ġ: ĠSimple Color Selection Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Color Selected ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Button . get Background (). setColor Filter ( color , ĠPort er D uff . Mode . MULTI PLY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Color Picker Fragment . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġcolor Picker . setColor ( this . color ) ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Handler Ġ= ĠViewModel Providers . of ( activity !! ). get ( Led Data ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( cast Exception : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠThe Ġactivity Ġdoes Ġnot Ġimplement Ġthe Ġlistener . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }// ĠRequired Ġempty Ġpublic Ġconstructor