package Ġme . ibr ah im sn . lib Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . content . res . Xml Resource Parser Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroidx . annotation . Xml Res Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġme . ibr ah im sn . lib . Constants . ICON _ ATTRIBUTE Ċ import Ġme . ibr ah im sn . lib . Constants . ITEM _ TAG Ċ import Ġme . ibr ah im sn . lib . Constants . TITLE _ ATTRIBUTE Ċ Ċ class ĠBottom Bar Parser ( private Ġval Ġcontext : ĠContext , Ġ@ Xml Res Ġres : ĠInt ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġparser : ĠXml Resource Parser Ġ= Ġcontext . resources . get Xml ( res ) ĊĊĠĠĠ Ġfun Ġparse (): ĠList < Bottom Bar Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitems : ĠMutable List < Bottom Bar Item > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar ĠeventType : ĠInt ? ĊĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠeventType Ġ= Ġparser . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( eventType Ġ== ĠXml Resource Parser . START _ TAG Ġ&& Ġparser . name Ġ== ĠITEM _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . add ( get Tab Config ( parser )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( eventType Ġ!= ĠXml Resource Parser . END _ DOCUMENT ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġitems ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Tab Config ( parser : ĠXml Resource Parser ): ĠBottom Bar Item Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattribute Count Ġ= Ġparser . attribute Count ĊĠĠĠĠĠĠĠ Ġvar Ġitem Text : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġitem Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ 0 Ġuntil Ġattribute Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( parser . getAttribute Name ( index )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠICON _ ATTRIBUTE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Drawable Ġ= ĠContext Compat . get Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser . getAttribute Resource Value ( index , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTITLE _ ATTRIBUTE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Text Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( parser . getAttribute Resource Value ( index , Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( not Found Exception : ĠResources . NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser . getAttribute Value ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( item Drawable Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠThrowable (" Item Ġicon Ġcan Ġnot Ġbe Ġnull !") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠBottom Bar Item ( item Text Ġ?: Ġ"", Ġitem Drawable , Ġalpha Ġ= Ġ 0 ) ĊĠĠĠ Ġ} Ċ } Ċ