package Ġcom . v ictor dev . poke group . Adapters čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . graphics . Type face č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget . ImageView č Ċ import Ġandroid . widget . LinearLayout č Ċ import Ġandroid . widget . TextView č Ċ import Ġandroidx . recyclerview . widget . RecyclerView č Ċ import Ġcom . v ictor dev . poke group . Model Serial izado . Pokemon Entry č Ċ import Ġcom . v ictor dev . poke group . R č Ċ import Ġcom . v ictor dev . poke group . Views . Detail Pokemon č Ċ import Ġcom . v ictor dev . poke group . utils . Item Animation č Ċ import Ġcom . v ictor dev . poke group . utils . Utils č Ċ import Ġjava . util . regex . Pattern čĊčĊ čĊčĊčĊč Ċ class ĠRe cycler Po ke dex Holder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ čĊčĊĠĠĠ Ġ// inst ancia Ġde Ġcont roles čĊĠĠĠ Ġval Ġimagen : ĠImageView Ġ= ĠitemView . findViewById ( R . id . imagen ) čĊĠĠĠ Ġval Ġimg poke Ball : ĠImageView Ġ= ĠitemView . findViewById ( R . id . img poke Ball ) čĊĠĠĠ Ġval Ġnombre : ĠTextView Ġ= ĠitemView . findViewById ( R . id . nombre ) čĊĠĠĠ Ġval Ġtext Region es : ĠTextView Ġ= ĠitemView . findViewById ( R . id . text Region es ) čĊĠĠĠ Ġval Ġm arg en : ĠLinearLayout Ġ= ĠitemView . findViewById ( R . id . m arg en ) čĊčĊĠĠĠ Ġ// adapters čĊĠĠĠ Ġclass ĠRe cycler Po ke dex Adapter ( čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpoke dex : ĠList < Pokemon Entry >, čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġctx : ĠContext , čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ Ġanimation _ type : ĠInt , čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ Ġregion : ĠString , čĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġselected Positions : ĠMutable List < Int > čĊĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ: ĠRecyclerView . Adapter < Recycler Po ke dex Holder >() Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinflater : ĠLayoutInflater Ġ= ĠLayoutInflater . from ( ctx ) čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġutil : ĠUtils Ġ= ĠUtils () čĊčĊĠĠĠĠĠĠĠ Ġ// se Ġobt iene Ġt ama Ã±o Ġde Ġdat o Ġseg un Ġtipo čĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpoke dex . size čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRe cycler Po ke dex Holder Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġinflater . inflate ( R . layout . item _ pokemon , Ġparent , Ġfalse ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRe cycler Po ke dex Holder ( item View ) čĊčĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") čĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRe cycler Po ke dex Holder , Ġposition : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġholder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Animation ( view . item View , Ġposition ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// f uent es čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog ox Ġ= ĠType face . createFrom Asset ( ctx . assets , Ġ" font / F red ok a . ttf ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm medium Ġ= ĠType face . createFrom Asset ( ctx . assets , Ġ" font / Mont serrat Medium . ttf ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . nombre . type face Ġ= Ġlog ox čĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . text Region es . type face Ġ= Ġm medium čĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . nombre . text Ġ= Ġpoke dex [ position ]. pokemon _ species . name . capitalize () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . text Region es . text Ġ= Ġ" Region Ġ$ region " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= Ġget last Numbers ( poke dex [ position ]. pokemon _ species . url ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġutil . fon do Url ( ctx ," ${ util . decrypt ( util . PRE FI JO _ IMG )} $ number . png ", holder . imagen ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġir Opc iones App ( Detail Pokemon :: class . java , number , region ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual iza UI X No Save ( number . toInt (), holder . img poke Ball ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( position Ġ== Ġitem Count Ġ- 1 ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m arg en . visibility Ġ= ĠView . VISIBLE čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġactual iza UI X No Save ( id _ sub _ serv icio : ĠInt , Ġimg poke Ball : ĠImageView ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Index Ġ= Ġselected Positions . indexOf ( id _ sub _ serv icio ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selectedIndex Ġ> Ġ- 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg poke Ball . visibility Ġ= ĠView . VISIBLE čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg poke Ball . visibility Ġ= ĠView . GONE čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// func ion Ġde Ġir Ġa Ġactiv idad Ġsin Ġcerr ar Ġhome čĊĠĠĠĠĠĠĠ Ġfun Ġir Opc iones App ( act : ĠClass <* >, d ta 1 : String , d ta 2 : String ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġctx Ġas ĠActivity čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( ctx , Ġact ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" data 1 ", d ta 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" data 2 ", d ta 2 ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( intent ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . override Pending Transition ( R . anim . fade _ in _ tr ns , ĠR . anim . fade _ out _ tr ns ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Attached To RecyclerView ( re cyclerView : ĠRecyclerView ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll StateChanged ( re cyclerView : ĠRecyclerView , ĠnewState : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon _ attach Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Scroll StateChanged ( re cyclerView , ĠnewState ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Attached To RecyclerView ( re cyclerView ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlast Position Ġ= Ġ- 1 čĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġon _ attach Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Animation ( view : ĠView , Ġposition : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ> Ġlast Position ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem Animation . animate ( view , Ġif Ġ( on _ attach ) Ġposition Ġelse Ġ- 1 , Ġanimation _ type ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Position Ġ= Ġposition čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġget last Numbers ( number : String ): String { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlast Four Digits Ġ= Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( number . length Ġ> Ġ 4 ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Four Digits Ġ= Ġnumber . substring ( number . length Ġ- Ġ 8 ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Four Digits Ġ= Ġnumber čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠPattern . compile ("[ ^ 0 - 9 ]") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp . matcher ( last Four Digits ). replaceAll ("") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊč Ċ }