package Ġcom . pand ul ape ter . be agle . app Demo . feature . shared Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġcom . pand ul ape ter . be agle . app Demo . databinding . View AppBar Binding Ċ import Ġcom . pand ul ape ter . be agle . app Demo . utils . visible Ċ import Ġcom . pand ul ape ter . be agle . utils . extensions . in flater Ċ Ċ class ĠApp Bar View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠApp Bar Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠView AppBar Binding . inflate ( in flater , Ġthis , Ġtrue ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġis Lift On Scroll Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġtyped Value Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠ Ġcontext . theme . resolve Attribute ( android . R . attr . window Background , Ġtyped Value , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( typed Value . type Ġ>= ĠTyped Value . TYPE _ FIRST _ COLOR _ INT Ġ&& Ġtyped Value . type Ġ<= ĠTyped Value . TYPE _ LAST _ COLOR _ INT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( typed Value . data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup (@ String Res Ġtitle ResourceId : ĠInt , Ġis Root : ĠBoolean , Ġactivity : ĠFragment Activity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . title Ġ= Ġcontext . getString ( title ResourceId ) ĊĠĠĠĠĠĠĠ Ġbinding . back Button . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisible Ġ= Ġ! is Root ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġactivity . on Back Pressed () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Top Inset ( top Inset : ĠInt ) Ġ= Ġbinding . toolbar Container . run Ġ{ ĊĠĠĠĠĠĠĠ Ġpost Ġ{ Ġset Padding ( padding Left , Ġtop Inset , Ġpadding Right , Ġpadding Bottom ) Ġ} ĊĠĠĠ Ġ} Ċ }