/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 . ĠAnd rÃ© ĠM ion Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . and rem ion . movie . app . movie . list . databinding Ċ Ċ import Ġandroid . databinding . Binding Adapter Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . and rem ion . movie . R Ċ import Ġcom . and rem ion . movie . data . entity . Movie Ċ import Ġjava . util .* Ċ Ċ object ĠView Binding Adapters Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" list Adapter ", Ġ" list Callback ", Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġfun Ġset Movie Adapter ( re cyclerView : ĠRecyclerView , Ġitems : ĠList < Movie > ?, Ġlist Callback : ĠMovie ListAdapter . Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter : ĠMovie ListAdapter ĊĠĠĠĠĠĠĠ Ġif Ġ( re cyclerView . adapter Ġ== Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup RecyclerView ( re cyclerView ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMovie ListAdapter ( list Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġre cyclerView . adapter Ġas ĠMovie ListAdapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitems ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDue Ġto ĠList Adapter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthis Ġensure Ġthe Ġcomparison Ġoccurs Ġafter Ġthe Ġempty Ġlist Ġhave Ġbeen Ġset . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSo Ġwe Ġcall Ġto List (). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" textColor ") ĊĠĠĠ Ġfun Ġset TextColor ( textView : ĠTextView , Ġrelease : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( release ?. toInt () Ġ== ĠCalendar . getInstance (). get ( Calendar . YEAR )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Release Ġ= ĠContext Compat . getColor ( textView . context , ĠR . color . color Release ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setTextColor ( color Release ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Accent Ġ= ĠContext Compat . getColor ( textView . context , ĠR . color . color Accent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setTextColor ( color Accent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup RecyclerView ( re cyclerView : ĠRecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnum Columns Ġ= Ġre cyclerView . resources . getInteger ( R . integer . grid _ column _ count ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠGrid LayoutManager ( re cyclerView . context , Ġnum Columns ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . set Has Fixed Size ( true ) ĊĠĠĠ Ġ} Ċ } Ċ