package Ġcom . sample . android . goals . util Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . text . format . Date Utils Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . palette . graphics . Palette Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . swiper ef resh layout . widget . Swipe Refresh Layout Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . bump tech . glide . request . target . Bitmap ImageView Target Ċ import Ġcom . bump tech . glide . request . transition . Transition Ċ import Ġcom . sample . android . goals . R Ċ import Ġcom . sample . android . goals . ui . Main Adapter Ċ import Ġcom . sample . android . goals . view models . Detail ViewModel Ċ Ċ object ĠBinding Utils Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" imageUrl ") ĊĠĠĠ Ġfun Ġbind Image ( card View : ĠCard View , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( card View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions (). center Crop ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( object Ġ: ĠBitmap ImageView Target ( card View . findViewById ( R . id . image _ poster )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( bitmap : ĠBitmap , Ġtransition : ĠTransition < in ĠBitmap > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Resource Ready ( bitmap , Ġtransition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPalette . from ( bitmap ). generate Ġ{ Ġpalette Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġpalette !!. get V ibr ant Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard View . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . black _ trans luc ent _ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard View . findViewById < View >( R . id . title _ background ). set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" refresh ing ") ĊĠĠĠ Ġfun Ġ< T > Ġset Swipe Refresh Layout ( view : ĠSw ipe Refresh Layout , Ġresource : ĠResource < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . is Refresh ing Ġ= Ġresource Ġis ĠResource . Loading ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" show Loading ") ĊĠĠĠ Ġfun Ġ< T > Ġshow Loading ( view : ĠProgress Bar , Ġresource : ĠResource < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( resource Ġis ĠResource . Loading ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" show Data ") ĊĠĠĠ Ġfun Ġ< T > Ġshow Data ( re cyclerView : ĠRecyclerView , Ġresource : ĠResource < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( resource Ġis ĠResource . Failure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( re cyclerView . adapter Ġas ĠMain Adapter ). submit List ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" show Data ") ĊĠĠĠ Ġfun Ġ< T > Ġshow Data ( view : ĠView , Ġresource : ĠResource < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( resource Ġis ĠResource . Success ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" show Error ") ĊĠĠĠ Ġfun Ġ< T > Ġshow Error ( view : ĠView , Ġresource : ĠResource < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( resource Ġis ĠResource . Failure ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" visible G one ") ĊĠĠĠ Ġfun Ġvisible G one ( view : ĠView , Ġvisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" imageUrl ") ĊĠĠĠ Ġfun Ġbind Image ( imageView : ĠImageView , ĠimageUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( imageView . context ). load ( imageUrl ). into ( imageView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" de scriptive _ date ") ĊĠĠĠ Ġfun Ġset Descript ive Date ( view : ĠTextView , Ġtimestamp : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġrelative Date Ġ= ĠDate Utils . get Relative TimeSpan String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . SECOND _ IN _ M ILL IS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . FORMAT _ AB BRE V _ REL ATIVE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġview . text Ġ= Ġrelative Date ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" android : max ") ĊĠĠĠ Ġfun Ġset ProgressBar Max ( view : ĠProgress Bar , Ġvalue : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . max Ġ= Ġvalue . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" android : progress ") ĊĠĠĠ Ġfun Ġset ProgressBar Progress ( view : ĠProgress Bar , Ġvalue : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . progress Ġ= Ġvalue . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" sum ") ĊĠĠĠ Ġfun Ġset Sum Text ( textView : ĠTextView , Ġresource : ĠResource < Detail ViewModel . Detail Wrapper > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( resource Ġis ĠResource . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġresource . data ?. week Sum Text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" rules ") ĊĠĠĠ Ġfun Ġset Rules Text ( textView : ĠTextView , Ġresource : ĠResource < Detail ViewModel . Detail Wrapper > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( resource Ġis ĠResource . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġresource . data ?. saving Rules ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }