package Ġio . tel eres o . android . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . annotation . Id Res Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġio . tel eres o . android .* Ċ Ċ open Ġclass ĠRemote Floating ActionButton Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= ĠR . attr . floating ActionButton Style Ċ ) Ġ: ĠFloating ActionButton ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġ@ Id Res ĊĠĠĠ Ġprivate Ġvar Ġres Id : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġch ane Listener Ġ= Ġobject Ġ: ĠRemote Changes Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Remote Update () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ{ Ġres Id ?. let Ġ{ Ġset Image Resource ( it ) Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . theme . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Remote Floating ActionButton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġ 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ResourceId ( R . style able . Remote Floating ActionButton _ android _ src , Ġ 0 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Id Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ResourceId ( R . style able . Remote Floating ActionButton _ src Compat , Ġ 0 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Id Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġres Id ?. let Ġ{ Ġset Image Resource ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Image Resource ( res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . res Id Ġ= Ġres Id ĊĠĠĠĠĠĠĠ Ġset Remote Image Resource ( res Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġadd ChangeListener ( ch ane Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠĠĠĠĠ Ġremove ChangeListener ( ch ane Listener ) ĊĠĠĠ Ġ} ĊĊ Ċ }