/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġk oma _ mj Ċ Ġ* Ċ Ġ* Ġ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 . k oma . video . search Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . PopupMenu Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . k oma . video . R Ċ import Ġcom . k oma . video . data . en ities . Video Entry Ċ import Ġcom . k oma . video . play . Play Activity Ċ import Ġcom . k oma . video . util . G lide App Ċ Ċ class ĠSearch Adapter Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Search Adapter . Search VH >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdata Ġ= ĠArrayList < Video Entry >() ĊĊĠĠĠ Ġprivate Ġvar Ġkey Word Ġ= Ġ"" ĊĊĠĠĠ Ġfun Ġupdate Data ( new Data : ĠList < Video Entry >, Ġnew Key Word : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġkey Word Ġ= Ġnew Key Word ĊĊĠĠĠĠĠĠĠ Ġdata . clear () ĊĠĠĠĠĠĠĠ Ġdata . addAll ( new Data ) ĊĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSearch VH Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch VH ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . video _ item , Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch VH , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvideo Entry Ġ= Ġdata [ position ] ĊĊĠĠĠĠĠĠĠ Ġbind ( holder , Ġvideo Entry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind ( holder : ĠSearch Adapter . Search VH , Ġentry : ĠVideo Entry ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide App . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( Color Drawable ( Color . GRAY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thumbnail ( 0 . 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( entry . uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . image ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsp ann able StringBuilder Ġ= ĠSp ann able StringBuilder ( entry . displayName ) ĊĠĠĠĠĠĠĠ Ġval Ġforeground Color Span Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFore ground Color Span ( Context Compat . getColor ( context , ĠR . color . color Accent )) ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġentry . displayName . toLowerCase (). indexOf ( key Word ) ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġstart Ġ+ Ġkey Word . length ĊĠĠĠĠĠĠĠ Ġsp ann able StringBuilder . set Span ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforeground Color Span , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġholder . name . text Ġ= Ġsp ann able StringBuilder ĊĊĠĠĠĠĠĠĠ Ġholder . duration . text Ġ= Ġentry . format Duration ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠSearch VH ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage : ĠImageView ĊĠĠĠĠĠĠĠ Ġval Ġduration : ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠTextView ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= ĠitemView . findViewById ( R . id . iv _ video ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠitemView . findViewById ( R . id . tv _ name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= ĠitemView . findViewById ( R . id . tv _ duration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( item View . findViewById ( R . id . iv _ more ) Ġas ĠImageView ). setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . iv _ more Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Menu Ġ= ĠPopup Menu ( view . context , Ġview ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Menu . menu Inflater . inflate ( R . menu . item _ video _ menu , Ġpopup Menu . menu ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Menu . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠPlay Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Play Activity . KEY _ MEDIA _ ID , Ġdata [ adapter Position ]. id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }