package Ġandroid . client . za if . tar u . za if client . adapters Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . client . za if . tar u . za if client . R Ċ import Ġandroid . client . za if . tar u . za if client . activities . Base Activity Ċ import Ġandroid . client . za if . tar u . za if client . activities . Detail Activity Ċ import Ġandroid . client . za if . tar u . za if client . models . Currency Pair Ċ import Ġandroid . client . za if . tar u . za if client . utils . Constants Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġjava . util . ArrayList Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġm iz uk ami Ġon Ġ 2 0 1 8 / 0 1 / 2 2 . Ċ Ġ*/ Ċ class ĠCurrency Pairs Adapter < T >( re cyclerView : ĠRecyclerView , Ġboxes : ĠArrayList < T >, Ġactivity : ĠActivity ) Ġ: ĠAbstract RecyclerView Footer Adapter < T >( re cyclerView , Ġboxes , Ġnull ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm LayoutInflater : ĠLayoutInflater ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Activity : ĠActivity ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm DataList : ĠArrayList < T >? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Activity Ġ= Ġactivity ĊĠĠĠĠĠĠĠ Ġm DataList Ġ= Ġboxes ĊĠĠĠĠĠĠĠ Ġm LayoutInflater Ġ= Ġactivity . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype : ĠInt ĊĠĠĠĠĠĠĠ Ġif Ġ( m DataList Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠLIST _ TYPE _ FO OTER ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( m DataList ! ![ position ] Ġis ĠCurrency Pair ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠLIST _ TYPE _ ITEM ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠLIST _ TYPE _ HEADER ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtype ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv : ĠView ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLIST _ TYPE _ ITEM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Ġ= Ġm LayoutInflater !!. inflate ( R . layout . list _ currency _ pair _ layout , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCurrency Pairs Adapter . ViewHolder ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLIST _ TYPE _ FO OTER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Ġ= Ġm LayoutInflater !!. inflate ( R . layout . list _ progress _ bar , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProgress ViewHolder ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġtype æ¯ İ ãģ® ViewHolder çĶŁæĪĲ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( getItem ViewType ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLIST _ TYPE _ FO OTER Ġ-> Ġon Bind Footer View ( holder , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġon Bind Basic Item View ( holder , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġãĥ ĺ ãĥĥ ãĥĢ ãĥ¼ ĊĠĠĠ Ġoverride Ġfun Ġon Bind Basic Item View ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain holder Ġ= Ġholder Ġas ĠViewHolder ĊĠĠĠĠĠĠĠ Ġif Ġ( m DataList ! ![ position ] Ġ== Ġnull Ġ|| Ġm DataList ! ![ position ] Ġ! is ĠCurrency Pair ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcurrency Pair Ġ= Ġm DataList ! ![ position ] Ġas ĠCurrency Pair Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġmain holder . name TextView !!. setText ( currency Pair . name ) ĊĊĠĠĠĠĠĠĠ Ġmain holder . price TextView !!. setText ( currency Pair . last Price . toString ()) ĊĊĠĠĠĠĠĠĠ Ġmain holder . frame Layout !!. setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Activity Ġ== Ġnull ) Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity !!. getApplicationContext (), ĠDetail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// intent . putExtra ( Constants . ARG _ TAG , ĠMainActivity . TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" currency Pair ", Ġcurrency Pair . currency Pair ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity !!. startActivity For Result ( intent , ĠConstants . REQUEST ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Items ( new DataSet Items : ĠArrayList < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm DataList !!. addAll ( new DataSet Items ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Activity Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm LayoutInflater Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm DataList Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠviewHolder ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġclass ĠViewHolder ( v : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( v ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġname TextView : ĠTextView ? Ġ= Ġv . findViewById ( R . id . name ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġprice TextView : ĠTextView ? Ġ= Ġv . findViewById ( R . id . price ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġframe Layout : ĠRelative Layout ? Ġ= Ġv . findViewById ( R . id . frame ) Ġas ĠRelative Layout ĊĠĠĠ Ġ} Ċ } Ċ