package Ġcom . rival dy . id . cock tail . ui . dr ink _ detail Ċ Ċ import Ġandroidx . activity . view Models Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . rival dy . id . base . base . Base Activity Ċ import Ġcom . rival dy . id . cock tail . R Ċ import Ġcom . rival dy . id . cock tail . databinding . Activity Dr ink Detail Binding Ċ import Ġcom . rival dy . id . core . data . model . api . detail _ dr ink . Detail Dr ink Data Ċ import Ġcom . rival dy . id . core . data . model . api . dr ink . Dr ink Data Ċ import Ġcom . rival dy . id . core . data . network . Data Resource Ċ import Ġcom . rival dy . id . core . utils . Util Exceptions . handle ApiError Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ @ Android EntryPoint Ċ class ĠD rink Detail Activity Ġ: ĠBase Activity < Activity Dr ink Detail Binding >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdrink Detail ViewModel Ġby Ġview Models < Dr ink Detail ViewModel >() ĊĠĠĠ Ġprivate Ġvar Ġextra Dr ink : ĠD rink Data ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget View Binding () Ġ= ĠActivity Dr ink Detail Binding . inflate ( layout Inflater ) ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( binding . app Bar . toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Show Title Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Dr ink Ġ= Ġintent . get Parcelable Extra ( EXTRA _ DR INK ) ĊĠĠĠĠĠĠĠ Ġif Ġ( extra Dr ink Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrink Detail ViewModel . get Detail ById Api Call ( extra Dr ink ?. id Dr ink Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġdrink Detail ViewModel . dr ink Detail . observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData Resource . Loading Ġ-> Ġshow Loading ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData Resource . Success Ġ-> Ġshow Detail ( it . value . dr inks ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData Resource . Failure Ġ-> Ġshow Failure ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Detail ( dr inks : ĠList < Detail Dr ink Data > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Loading ( false ) ĊĠĠĠĠĠĠĠ Ġif Ġ( dr inks Ġ!= Ġnull Ġ&& Ġdr inks . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrink Ġ= Ġdr inks [ 0 ] Ġ// Ġbecause Ġresponse Ġlookup Ġby Ġid Ġis Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( binding . root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( dr ink . str Dr ink Thumb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . color . color Divider High ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . dr ink Image IV ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dr ink Title TV . text Ġ= Ġdrink . str Dr ink ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dr ink Info TV . text Ġ= ĠgetString ( R . string . str _ info , Ġdrink . str Category , Ġdrink . str Al co h olic , Ġdrink . str G lass ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . description TV . text Ġ= Ġdrink . str Instructions ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Failure ( failure : ĠData Resource . Failure ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Loading ( false ) ĊĠĠĠĠĠĠĠ Ġhandle ApiError ( failure ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ DR INK Ġ= Ġ" EXTRA _ DR INK " ĊĠĠĠ Ġ} Ċ } Ċ