/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠNam ĠN gu yen , Ġnam @ ene . im Ċ Ġ* Ċ Ġ* Ġ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 Ġk oh ii . v 1 . sample . ui . list Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . View Compat Ċ import Ġcom . google . android . ex op layer 2 . ui . AspectRatio Frame Layout Ċ import Ġcom . google . android . ex op layer 2 . ui . Player View Ċ import Ġk oh ii . v 1 . core . Common Ċ import Ġk oh ii . v 1 . core . Playback Ċ import Ġk oh ii . v 1 . core . Re binder Ċ import Ġk oh ii . v 1 . ex op layer . K oh ii Ċ import Ġk oh ii . v 1 . sample . R Ċ import Ġk oh ii . v 1 . sample . common . Init Data Ċ import Ġk oh ii . v 1 . sample . ui . list . data . Item Ċ Ċ /** Ċ Ġ* Ġ@ author Ġen e im Ġ( 2 0 1 8 / 0 7 / 0 6 ). Ċ Ġ*/ Ċ class ĠVideo ViewHolder ( ĊĠ Ġparent : ĠViewGroup , ĊĠ Ġprivate Ġval Ġk oh ii : ĠK oh ii , ĊĠ Ġprivate Ġval Ġlistener : ĠOn ClickListener Ċ ) Ġ: ĠBase ViewHolder ( parent , ĠR . layout . holder _ player _ view ), ĊĠĠĠ ĠView . OnClickListener , ĠPlay back . Callback Ġ{ ĊĊĠ Ġinit Ġ{ ĊĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠ Ġ} ĊĊĠ Ġval Ġplayer View Ġ= ĠitemView . findViewById ( R . id . player View ) Ġas ĠPlayer View ĊĠ Ġval Ġplayer Container Ġ= ĠitemView . findViewById ( R . id . player Container ) Ġas ĠAs pect Ratio Frame Layout ĊĠ Ġval Ġtrans View Ġ= Ġplayer View . findViewById ( R . id . exo _ content _ frame ) Ġas ĠView ĊĊĠ Ġvar Ġre binder : ĠRe binder ? Ġ= Ġnull ĊĠ Ġvar Ġplayback : ĠPlay back ? Ġ= Ġnull ĊĠ Ġvar Ġpayload : ĠInit Data ? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun Ġbind ( item : ĠItem ?) Ġ{ ĊĠĠĠ Ġif Ġ( item Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġitem Tag Ġ= Ġ"${ java Class . canonical Name } :: ${ item . content } ::$ adapter Position " ĊĠĠĠĠĠ Ġpayload Ġ= ĠInit Data ( tag Ġ= Ġitem Tag , Ġaspect Ratio Ġ= Ġitem . width Ġ/ Ġitem . height . toFloat ()) ĊĠĠĠĠĠ Ġplayer Container . set AspectRatio ( payload !!. aspect Ratio ) ĊĠĠĠĠĠ Ġre binder Ġ= Ġk oh ii . setUp ( item . content ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtag Ġ= Ġitem Tag ĊĠĠĠĠĠĠĠ Ġpreload Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġrepeat Mode Ġ= ĠCommon . REPEAT _ MODE _ ONE ĊĠĠĠĠĠĠĠ Ġcallbacks Ġ+= Ġthis @ Video ViewHolder ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. bind ( player View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayback Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Loaded ( item View , Ġadapter Position ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠView Compat . set Transition Name ( trans View , Ġitem Tag ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠ Ġif Ġ( v Ġ!= Ġnull Ġ&& Ġpayload Ġ!= Ġnull Ġ&& Ġre binder Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġlistener . on Item Click ( ĊĠĠĠĠĠĠĠĠĠ Ġv , Ġtrans View , Ġadapter Position , ĠPair ( re binder !! , Ġpayload !! ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ