/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 Ġ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 . overlay Ċ Ċ import Ġandroid . view . LayoutInflater . from Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView . Adapter Ċ import Ġk oh ii . v 1 . core . Common Ċ 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 . data . Video Ċ import Ġk oh ii . v 1 . sample . svg . G lide App Ċ Ċ internal Ġclass ĠVideo Items Adapter ( ĊĠ Ġprivate Ġval Ġvideos : ĠList < Video >, ĊĠ Ġprivate Ġval Ġk oh ii : ĠK oh ii , ĊĠ Ġval Ġshould Bind Video : Ġ( Re binder ?) Ġ-> ĠBoolean , ĊĠ Ġval Ġon Video Click : Ġ( Int , ĠRe binder ) Ġ-> ĠUnit Ċ ) Ġ: ĠAdapter < Base ViewHolder >(), ĠBase ViewHolder . OnClickListener Ġ{ ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġset Has Stable Ids ( true ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Item Click ( ĊĠĠĠ ĠitemView : ĠView , ĊĠĠĠ Ġtrans View : ĠView ?, ĊĠĠĠ Ġadapter Pos : ĠInt , ĊĠĠĠ ĠitemId : ĠLong , ĊĠĠĠ Ġpayload : ĠAny ? ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġon Video Click ( adapter Pos , Ġpayload Ġas ĠRe binder ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠ Ġview Type : ĠInt ĊĠ Ġ): ĠBase ViewHolder Ġ= ĠVideo Item Holder ( ĊĠĠĠĠĠ Ġfrom ( parent . context ), ĊĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠ Ġthis ĊĠ Ġ) ĊĊĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠ Ġreturn Ġposition . to Long () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠ Ġreturn ĠInt . MAX _ VALUE Ġ/ Ġ 2 ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠ Ġholder : ĠBase ViewHolder , ĊĠĠĠ Ġposition : ĠInt ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġitem Ġ= Ġvideos [ position Ġ% Ġvideos . size ] ĊĠĠĠ Ġif Ġ( holder Ġis ĠVideo Item Holder ) Ġ{ ĊĠĠĠĠĠ Ġholder . video Data Ġ= Ġitem ĊĠĠĠĠĠ Ġholder . video Title . text Ġ= Ġitem . title ĊĠĠĠĠĠ Ġholder . video Info . text Ġ= Ġitem . description ĊĊĠĠĠĠĠ ĠG lide App . with ( holder . item View ) ĊĠĠĠĠĠĠĠĠĠ Ġ. load ( require NotNull ( holder . video Image )) ĊĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . thumbnail ) ĊĊĠĠĠĠĠ Ġif Ġ( should Bind Video ( holder . re binder )) Ġ{ ĊĠĠĠĠĠĠĠ Ġk oh ii . setUp ( require NotNull ( holder . video File )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġrequire NotNull ( holder . video Tag ) ĊĠĠĠĠĠĠĠĠĠ Ġrepeat Mode Ġ= ĠCommon . REPEAT _ MODE _ ONE ĊĠĠĠĠĠĠĠĠĠ Ġart work Hint Listener Ġ= Ġholder ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind ( holder . player View Container ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Attached To Window ( holder : ĠBase ViewHolder ) Ġ{ ĊĠĠĠ Ġsuper . on View Attached To Window ( holder ) ĊĠĠĠ Ġholder . on Attached () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Detached From Window ( holder : ĠBase ViewHolder ) Ġ{ ĊĠĠĠ Ġsuper . on View Detached From Window ( holder ) ĊĠĠĠ Ġholder . on Detached () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Re cyc led ( holder : ĠBase ViewHolder ) Ġ{ ĊĠĠĠ Ġsuper . on View Re cyc led ( holder ) ĊĠĠĠ Ġif Ġ( holder Ġis ĠVideo Item Holder ) Ġ{ ĊĠĠĠĠĠ Ġk oh ii . cancel ( holder . player View Container ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġholder . on Re cyc led ( true ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Failed To Re cycle View ( holder : ĠBase ViewHolder ): ĠBoolean Ġ{ ĊĠĠĠ Ġholder . on Re cyc led ( false ) ĊĠĠĠ Ġif Ġ( holder Ġis ĠVideo Item Holder ) Ġ{ ĊĠĠĠĠĠ Ġk oh ii . cancel ( holder . player View Container ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} Ċ } Ċ