/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠF antasy ĠF ang Ċ Ġ* Ċ Ġ* Ġ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 . f antasy 1 0 2 2 . fancy trend app . presentation . trend Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Display Metrics Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup ĊĊ Ċ import Ġcom . f antasy 1 0 2 2 . fancy trend app . R Ċ import Ġcom . f antasy 1 0 2 2 . fancy trend app . presentation . trend . F ancy Trend Adapter . Item ViewHolder Ċ import Ġcom . f antasy 1 0 2 2 . fancy trend view . F ancy Trend View Ċ Ċ import Ġjava . util . ArrayList ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġf antasy 1 0 2 2 Ġon Ġ 2 0 1 7 / 2 / 1 7 . Ċ Ġ*/ Ċ Ċ class ĠF ancy Trend Adapter ( private Ġval Ġcontext : ĠContext , Ġprivate Ġvar Ġtrend ItemList : ĠMutable List < List < String >>, Ġprivate Ġvar Ġrows : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġon ItemClickListener : ĠOn ItemClickListener ) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < F ancy Trend Adapter . Item ViewHolder >() Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= ĠF ancy Trend Adapter :: class . java . simple Name ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( v : ĠView , Ġtrend : ĠString , Ġposition : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠF ancy Trend Adapter . Item ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ trend , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠItem ViewHolder ( view , Ġon ItemClickListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠF ancy Trend Adapter . Item ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdisplay Metrics Ġ= Ġcontext . resources . display Metrics ĊĠĠĠĠĠĠĠ Ġval Ġheight Pixels : ĠInt ĊĠĠĠĠĠĠĠ Ġif Ġ( has NavigationBar ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Pixels Ġ= Ġdisplay Metrics . height Pixels Ġ+ Ġget NavigationBar Height ( context ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Pixels Ġ= Ġdisplay Metrics . height Pixels ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Log . d ( TAG , Ġ" height Pixels :" Ġ+ Ġheight Pixels ); ĊĠĠĠĠĠĠĠ Ġwhen Ġ( rows ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġholder . google Trend View . layout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . height Ġ= Ġheight Pixels ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . google Trend View . layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġholder . google Trend View . layout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . height Ġ= Ġheight Pixels Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . google Trend View . layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġholder . google Trend View . layout Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . height Ġ= Ġheight Pixels Ġ/ Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . google Trend View . layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . google Trend View . start All Animation ( trend ItemList [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġtrend ItemList . size ĊĊĠĠĠ Ġclass ĠItem ViewHolder ( item View : ĠView , Ġprivate Ġval Ġlistener : ĠOn ItemClickListener ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġ@ BindView ( R . id . google Trend View ) ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġgoogle Trend View : ĠF ancy Trend View ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Trend View Ġ= ĠitemView . findViewById < View >( R . id . google Trend View ) Ġas ĠF ancy Trend View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Trend View . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ}// B utter Kn ife . bind ( this , ĠitemView ); ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Click ( v , Ġgoogle Trend View . now Text , Ġlayout Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate All List ( trend ItemList : ĠMutable List < List < String >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . trend ItemList Ġ= Ġtrend ItemList ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Single List ( trend List : ĠList < String >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" update Single List Ġposition :$ position Ġtrend List :$ trend List ") ĊĠĠĠĠĠĠĠ Ġtrend ItemList . add ( position , Ġtrend List ) ĊĠĠĠĠĠĠĠ Ġnotify Item Changed ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Row Number ( rows : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . rows Ġ= Ġrows ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// TODO : Add Ġto Ġextension ĊĠĠĠ Ġprivate Ġfun Ġget NavigationBar Height ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġcontext . resources ĊĠĠĠĠĠĠĠ Ġval Ġresource Id Ġ= Ġresources . getIdentifier (" navigation _ bar _ height ", Ġ" dim en ", Ġ" android ") ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( resourceId Ġ> Ġ 0 ) Ġresources . get Dimension Pixel Size ( resourceId ) Ġelse Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas NavigationBar ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġcontext . resources ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġresources . getIdentifier (" config _ show NavigationBar ", Ġ" bool ", Ġ" android ") ĊĠĠĠĠĠĠĠ Ġreturn Ġid Ġ> Ġ 0 Ġ&& Ġresources . getBoolean ( id ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ