package Ġio . n ich ij ou . o ops . widget Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . annotation . Nullable Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Registry Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Content Layout Ċ import Ġio . n ich ij ou . o ops . O ops Life And Live Ċ import Ġio . n ich ij ou . o ops . O ops ViewModel Ċ import Ġio . n ich ij ou . o ops . ext . activity Ċ Ċ @ Suppress Lint (" Restricted Api ") Ċ class ĠO ops Sn ackBar Content Layout Ġ: ĠSn ackbar Content Layout , ĠO ops Life And Live Ġ{ ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġ@ Nullable Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Color ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset BackgroundColor ( color ) ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġthis . parent ĊĠĠĠĠĠĠĠ Ġif Ġ( parent Ġ!= Ġnull Ġ&& Ġparent Ġis ĠSn ackbar . Snackbar Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent . set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbinding Live () Ġ{ ĊĠĠĠĠĠĠĠ Ġo vm . sn ackBar BackgroundColor . observe ( this , ĠObserver ( this :: update Color )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġo vm Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this . activity ()). get ( O ops ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm View Lifecycle Registry : ĠLifecycle Registry Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠLifecycle Registry ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Lifecycle (): ĠLifecycle Ġ= Ġm View Lifecycle Registry ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġbinding Live () ĊĠĠĠĠĠĠĠ Ġm View Lifecycle Registry . handle Lifecycle Event ( Lifecycle . Event . ON _ START ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Window Focus Changed ( has Window Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Window Focus Changed ( has Window Focus ) ĊĠĠĠĠĠĠĠ Ġif Ġ( has Window Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View Lifecycle Registry . handle Lifecycle Event ( Lifecycle . Event . ON _ RE SU ME ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View Lifecycle Registry . handle Lifecycle Event ( Lifecycle . Event . ON _ PAUSE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġm View Lifecycle Registry . handle Lifecycle Event ( Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠ Ġ} Ċ }