package Ġcom . d ario br ux . pokemon . app . ui . info Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . DataSource Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . engine . G lide Exception Ċ import Ġcom . bump tech . glide . request . RequestListener Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġcom . d ario br ux . pokemon . app . R Ċ import Ġcom . d ario br ux . pokemon . app . data . models . Contact Data Ċ import Ġcom . d ario br ux . pokemon . app . data . models . Pokemon Ċ import Ġcom . d ario br ux . pokemon . app . other . extensions .* Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . android . synt hetic . main . info _ fragment .* Ċ import Ġkotlinx . android . synt hetic . main . main _ activity .* Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠD ario ĠB ru z ze se Ġon Ġ 2 2 / 1 0 / 2 0 2 0 . Ċ Ġ* Ċ Ġ*/ Ċ Ċ @ Android EntryPoint Ċ class ĠInfo Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġpokemon Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġpokemon : ĠPokemon ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġcontact Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġcontact : ĠContact Data ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe ĠViewModel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠInfo ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpokemon Ġ= Ġrequire Arguments (). get Serializable (" pokemon ") Ġas ? ĠPokemon ĊĠĠĠĠĠĠĠ Ġcontact Ġ= Ġrequire Arguments (). get Serializable (" contact ") Ġas ? ĠContact Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . info _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Pokemon Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Contact Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġthe Ġinfo Ġof Ġthe Ġcontact . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Contact Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer Root ?. setBackground Resource ( R . color . gray ) ĊĠĠĠĠĠĠĠ Ġif Ġ( contact !!. picture Ġ== Ġnull Ġ|| Ġcontact !!. picture ?. isEmpty () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumb ?. to G one () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( require Context ()). as Bitmap (). fit Center (). load ( Uri . parse ( contact !!. picture )). disk Cache Strategy ( Disk Cache Strategy . ALL ). into ( thumb ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard ?. animate ()?. scale X ( 1 f )?. scale Y ( 1 f )?. set Duration ( 2 0 0 )?. start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtxt Name ?. text Ġ= Ġcontact !!. displayName ?. capitalize ( Locale . getDefault ()) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( contact !!. phone Numbers Ġ== Ġnull Ġ|| Ġcontact !!. phone Numbers ?. isEmpty () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Experience ?. to G one () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Experience ?. text Ġ= Ġcontact !!. phone Numbers ?. join ToString ( separator Ġ= Ġ"\ n ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtxt Height ?. to G one () ĊĠĠĠĠĠĠĠ Ġtxt Weight ?. to G one () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġthe Ġinfo Ġof Ġthe Ġpokemon . ĊĠĠĠĠ Ġ* ĠOb serve Ġthe ĠViewModel ĠLive Data Ġproperty Ġto Ġget Ġthe Ġinfo Ġof Ġthe ĊĠĠĠĠ Ġ* Ġpokemon Ġand Ġrefresh Ġthe Ġlayout . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Pokemon Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġtxt Name ?. text Ġ= Ġpokemon !!. name . capitalize ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ ĠviewModel . get Pokemon Data ( pokemon !!. name , Ġpokemon !!. url Ġ?: Ġ""). observe ( this . view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpokemon Data Ġ= Ġit . data Ġ?: Ġreturn @ observe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Experience ?. text Ġ= ĠgetString ( R . string . base _ experience , Ġpokemon Data . base Experience ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Height ?. text Ġ= ĠgetString ( R . string . height , Ġpokemon Data . height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Weight ?. text Ġ= ĠgetString ( R . string . weight , Ġpokemon Data . weight ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( require Context ()). as Bitmap (). load ( pokemon !!. url Picture ). listener ( object Ġ: ĠRequest Listener < Bitmap > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( e : ĠG lide Exception ?, Ġmodel : ĠAny ?, Ġtarget : ĠTarget < Bitmap > ?, Ġis First Resource : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e (" Image Ġloading Ġfailed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWhen Ġthe Ġbitmap Ġis Ġloaded , ĠI Ġget Ġthe Ġdom inant Ġcolor Ġof Ġthe Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġand Ġuse Ġit Ġas Ġbackground Ġcolor . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( bitmap : ĠBitmap ?, Ġmodel : ĠAny ?, Ġtarget : ĠTarget < Bitmap > ?, ĠdataSource : ĠDataSource ?, Ġis First Resource : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Ġ?: Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . get Dominant Color ( Context Compat . getColor ( require Context (), ĠR . color . white )) Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard ?. set Card BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Color Ġ= Ġrequire Activity (). to MainActivity ()?. main Container Root ?. background ?. to Color Drawable ()?. color Ġ?: Ġreturn @ get Dominant Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Root ?. animate BackgroundColor ( start Color , Ġcolor . change Alpha ( 1 9 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard ?. animate ()?. scale X ( 1 f )?. scale Y ( 1 f )?. set Duration ( 2 0 0 )?. start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). into ( thumb ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }