package Ġit . se phi ro th . android . library . bottomnavigation Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . animation . De cel erate Interpolator Ċ import Ġandroidx . core . view . View Compat Ċ import Ġit . se phi ro th . android . library . bot ton navigation . R Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġa less andro Ġon Ġ 4 / 3 / 1 6 Ġat Ġ 1 0 : 5 5 ĠPM . Ċ Ġ* ĠProject : ĠMaterial Bottom Navigation Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ @ Suppress Lint (" View Constructor ") Ċ internal Ġclass ĠBottom Navigation Fixed Item View ( parent : ĠBottom Navigation , Ġexpanded : ĠBoolean , Ġmenu : ĠMenu Parser . Menu ) Ġ: ĊĠĠĠĠĠĠĠ ĠBottom Navigation Item View Abstract ( parent , Ġexpanded , Ġmenu ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġicon Size : ĠInt ĊĊĠĠĠ Ġprivate Ġvar Ġcenter Y : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . post Invalidate On Animation ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġinterpol ator Ġ= ĠDec el erate Interpolator () ĊĠĠĠ Ġprivate Ġvar Ġtext Width : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġprivate Ġval Ġanimation Duration : ĠLong ĊĠĠĠ Ġprivate Ġval Ġcolor Active : ĠInt ĊĠĠĠ Ġprivate Ġval Ġcolor Inactive : ĠInt ĊĠĠĠ Ġprivate Ġval Ġcolor Disabled : ĠInt ĊĊĠĠĠ Ġprivate Ġval Ġpadding Top Active : ĠInt ĊĠĠĠ Ġprivate Ġval Ġpadding Top Inactive : ĠInt ĊĊĠĠĠ Ġprivate Ġvar Ġpadding Bottom Item : ĠInt ĊĊĠĠĠ Ġprivate Ġval Ġpadding Horizontal : ĠInt ĊĠĠĠ Ġprivate Ġval Ġtext Size Inactive : ĠInt ĊĠĠĠ Ġprivate Ġvar Ġcanvas Text Scale : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġprivate Ġvar Ġicon Translation : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . post Invalidate On Animation ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġtext Center X : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġtext Center Y : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcenter X : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġtext X : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġprivate Ġvar Ġtext Y : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġvar Ġtext Scale : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcanvas Text Scale ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas Text Scale Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . post Invalidate On Animation ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresources ĊĠĠĠĠĠĠĠ Ġthis . padding Top Active Ġ= Ġres . get Dimension Pixel Size ( R . dim en . bb n _ fixed _ item _ padding _ top _ active ) ĊĠĠĠĠĠĠĠ Ġthis . padding Top Inactive Ġ= Ġres . get Dimension Pixel Size ( R . dim en . bb n _ fixed _ item _ padding _ top _ inactive ) ĊĠĠĠĠĠĠĠ Ġthis . padding Bottom Item Ġ= Ġres . get Dimension Pixel Size ( R . dim en . bb n _ fixed _ item _ padding _ bottom ) ĊĠĠĠĠĠĠĠ Ġthis . padding Horizontal Ġ= Ġres . get Dimension Pixel Size ( R . dim en . bb n _ fixed _ item _ padding _ horizontal ) ĊĠĠĠĠĠĠĠ Ġthis . text Size Inactive Ġ= Ġres . get Dimension Pixel Size ( R . dim en . bb n _ fixed _ text _ size _ inactive ) ĊĠĠĠĠĠĠĠ Ġthis . icon Size Ġ= Ġres . get Dimension Pixel Size ( R . dim en . bb n _ fixed _ item _ icon _ size ) ĊĊĠĠĠĠĠĠĠ Ġthis . animation Duration Ġ= Ġmenu . item Animation Duration . to Long () ĊĠĠĠĠĠĠĠ Ġthis . color Active Ġ= Ġmenu . getColor Active () ĊĠĠĠĠĠĠĠ Ġthis . color Inactive Ġ= Ġmenu . getColor Inactive () ĊĠĠĠĠĠĠĠ Ġthis . color Disabled Ġ= Ġmenu . getColor Disabled () ĊĠĠĠĠĠĠĠ Ġthis . center Y Ġ= Ġpadding Top Active ĊĠĠĠĠĠĠĠ Ġthis . canvas Text Scale Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġthis . icon Translation Ġ= Ġ 0 f Ċ // ĠĠĠĠĠĠĠ Ġthis . canvas Text Scale Ġ= Ġif Ġ( expanded ) ĠTEXT _ SCALE _ ACTIVE Ġelse Ġ 1 f Ċ // ĠĠĠĠĠĠĠ Ġthis . icon Translation Ġ= Ġ( if Ġ( expanded ) Ġ 0 Ġelse Ġpadding Top Inactive Ġ- Ġpadding Top Active ). toFloat () ĊĊĠĠĠĠĠĠĠ Ġthis . text Paint . color Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġthis . text Paint . hint ing Ġ= ĠPaint . HINT ING _ ON ĊĠĠĠĠĠĠĠ Ġthis . text Paint . is Linear Text Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthis . text Paint . is Sub pixel Text Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthis . text Paint . text Size Ġ= Ġtext Size Inactive . toFloat () ĊĠĠĠĠĠĠĠ Ġthis . text Paint . color Ġ= Ġif Ġ( expanded ) Ġcolor Active Ġelse Ġcolor Inactive ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Enabled ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setEnabled ( enabled ) ĊĠĠĠĠĠĠĠ Ġthis . text Paint . color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Expanded ) Ġif Ġ( enabled ) Ġcolor Active Ġelse Ġcolor Disabled Ġelse Ġif Ġ( enabled ) Ġcolor Inactive Ġelse Ġcolor Disabled ĊĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġicon ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Layout On Animation ( 1 f , Ġis Expanded ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Status Changed ( expanded : ĠBoolean , Ġsize : ĠInt , Ġanimate : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Layout On Animation ( 1 f , Ġexpanded ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Layout On Animation ( fraction : ĠFloat , Ġexpanded : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġenabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġval Ġdst Color Ġ= Ġif Ġ( enabled ) Ġif Ġ( expanded ) Ġcolor Active Ġelse Ġcolor Inactive Ġelse Ġcolor Disabled ĊĠĠĠĠĠĠĠ Ġval Ġsrc Color Ġ= Ġif Ġ( enabled ) Ġif Ġ( expanded ) Ġcolor Inactive Ġelse Ġcolor Active Ġelse Ġcolor Disabled ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġevaluator . evaluate ( fraction , Ġsrc Color , Ġdst Color ) Ġas ĠInt ĊĊĠĠĠĠĠĠĠ Ġicon ?. setColor Filter ( color , ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠ Ġicon ?. alpha Ġ= ĠColor . alpha ( color ) ĊĠĠĠĠĠĠĠ Ġtext Paint . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ ĠView Compat . post Invalidate On Animation ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġleft : ĠInt , Ġtop : ĠInt , Ġright : ĠInt , Ġbottom : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Layout ( changed , Ġleft , Ġtop , Ġright , Ġbottom ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġthis . icon ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . icon Ġ= Ġitem !!. get Icon ( context ) !!. mutate () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Expanded ) Ġif Ġ( isEnabled ) Ġcolor Active Ġelse Ġcolor Disabled Ġelse Ġif Ġ( isEnabled ) Ġcolor Inactive Ġelse Ġcolor Disabled ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . icon !!. setColor Filter ( color , ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . icon !!. setBounds ( 0 , Ġ 0 , Ġicon Size , Ġicon Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . icon !!. alpha Ġ= ĠColor . alpha ( color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( changed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġright Ġ- Ġleft ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter X Ġ= Ġ( w Ġ- Ġicon Size ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon ?. setBounds ( center X , Ġcenter Y , Ġcenter X Ġ+ Ġicon Size , Ġcenter Y Ġ+ Ġicon Size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( text Dirty Ġ|| Ġchanged ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Dirty Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmeasure Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġheight ĊĊĠĠĠĠĠĠĠ Ġtext Width Ġ= Ġtext Paint . measure Text ( item !!. title ) ĊĠĠĠĠĠĠĠ Ġtext X Ġ= Ġpadding Horizontal Ġ+ Ġ( width Ġ- Ġpadding Horizontal Ġ* Ġ 2 Ġ- Ġtext Width ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġtext Y Ġ= Ġ( height Ġ- Ġpadding Bottom Item ). toFloat () ĊĠĠĠĠĠĠĠ Ġtext Center X Ġ= Ġwidth Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġtext Center Y Ġ= Ġheight Ġ- Ġpadding Bottom Item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġcanvas . translate ( 0 f , Ġicon Translation ) ĊĠĠĠĠĠĠĠ Ġicon ?. draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġdraw Badge ( canvas ) ĊĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĊĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġcanvas . scale ( canvas Text Scale , Ġcanvas Text Scale , Ġtext Center X . toFloat (), Ġtext Center Y . toFloat ()) ĊĊĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem !!. title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Paint ) ĊĊĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Item Icon ( new Icon Ġ: ĠDrawable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= Ġnew Icon . mutate () ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Expanded ) Ġif Ġ( isEnabled ) Ġcolor Active Ġelse Ġcolor Disabled Ġelse Ġif Ġ( isEnabled ) Ġcolor Inactive Ġelse Ġcolor Disabled ĊĠĠĠĠĠĠĠ Ġthis . icon !!. setColor Filter ( color , ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠ Ġthis . icon !!. alpha Ġ= ĠColor . alpha ( color ) ĊĠĠĠĠĠĠĠ Ġicon ?. setBounds ( center X , Ġcenter Y , Ġcenter X Ġ+ Ġicon Size , Ġcenter Y Ġ+ Ġicon Size ) ĊĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Item Title ( new Title Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . item !!. title Ġ= Ġnew Title ĊĠĠĠĠĠĠĠ Ġmeasure Text () ĊĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTEXT _ SCALE _ ACTIVE Ġ= Ġ 1 . 1 6 6 6 6 6 6 6 6 7 f ĊĠĠĠ Ġ} Ċ Ċ } Ċ