package Ġcom . robert . android . lost pe ts . presentation . ui . adapters Ċ Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Card View Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . Input Filter Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . robert . android . lost pe ts . R Ċ import Ġcom . robert . android . lost pe ts . domain . model . Ad Ċ import Ġcom . robert . android . lost pe ts . domain . model . User Ċ import Ġcom . robert . android . lost pe ts . domain . model . types . Ad Status Ċ import Ġcom . robert . android . lost pe ts . domain . model . types . Pet Status Ċ import Ġcom . robert . android . lost pe ts . network . Service Generator Ċ import Ġcom . robert . android . lost pe ts . presentation . ui . fragments . Update Ad Fragment Ċ import Ġcom . squareup . pic asso . Memory Policy Ċ import Ġcom . squareup . pic asso . Network Policy Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġjava . text . DateFormat Ċ import Ġjava . util . Date Ċ import Ġjava . util . Locale Ċ import Ġkotlinx . android . synt hetic . main . card _ ad _ item . view .* Ċ Ċ /** Ċ Ġ* ĠCl ase Ġadapter Ġque Ġse Ġtiene Ġla ĠfunciÃ³n Ġde Ġmostrar Ġlos Ġan unc ios Ġde Ġmas cot as Ġper did as . Ċ Ġ* Ċ Ġ* Ġ@ author ĠRobert ĠE ne Ċ Ġ*/ Ċ class ĠA ds ListAdapter ( ĊĠĠĠ Ġprivate Ġval Ġitems : ĠList < Ad >, ĊĠĠĠ Ġprivate Ġval Ġuser : ĠUser , ĊĠĠĠ Ġprivate Ġval Ġfragment Manager : ĠFragment Manager ?, ĊĠĠĠ Ġprivate Ġval Ġitem Click : Ġ( Ad ) Ġ-> ĠUnit Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Ads ListAdapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠM Ã© todo Ġque Ġdev uel ve Ġuna Ġfecha Ġbas Ã¡n dose Ġen Ġun Ġformato Ġl argo . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdate Ġla Ġfecha Ġque Ġse Ġform ate a . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġformat Ad Long Date ( date : ĠDate ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠDate Format ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get DateTime Instance ( DateFormat . LONG , ĠDate Format . SHORT , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġformatter . format ( date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠM Ã© todo Ġque Ġdev uel ve Ġuna Ġfecha Ġbas Ã¡n dose Ġen Ġun Ġformato Ġc orto . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdate Ġla Ġfecha Ġque Ġse Ġform ate a . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġformat Ad Short Date ( date : ĠDate ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠDate Format ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getDate Instance ( DateFormat . LONG , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġformatter . format ( date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠM Ã© todo Ġque Ġdev uel ve Ġuna Ġhora Ġbas Ã¡n dose Ġen Ġun Ġformato Ġc orto . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdate Ġla Ġfecha Ġpara Ġla Ġque Ġse Ġform ate a Ġla Ġhora . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġformat Ad Short Time ( date : ĠDate ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠDate Format ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTime Instance ( DateFormat . SHORT , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġformatter . format ( date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCl ase Ġque Ġse Ġenc arga Ġde Ġgener ar Ġla Ġv ista Ġ( card view ) Ġpara Ġcada Ġuno Ġde Ġlos Ġan unc ios Ġde ĊĠĠĠĠ Ġ* Ġmas cot as Ġper did as . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠRobert ĠE ne ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠViewHolder ( ĊĠĠĠĠĠĠĠ Ġcard View : ĠCard View , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser : ĠUser , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġfragment Manager : ĠFragment Manager ?, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġitem Click : Ġ( Ad ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( card View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠM Ã© todo Ġque Ġse Ġenc arga Ġde Ġen l azar Ġlos Ġdetal les Ġde Ġun Ġdetermin ado Ġan unc io Ġde Ġmas co ta ĊĠĠĠĠĠĠĠĠ Ġ* Ġper d ida Ġa Ġla Ġcorrespon di ente Ġv ista Ġ( card view ). ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġad Ġel Ġan unc io Ġde Ġla Ġmas co ta Ġper d ida . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġuser Ġel Ġusuario Ġal Ġque Ġpert ene ce Ġel Ġcorrespon di ente Ġan unc io . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbind Ad ( ad : ĠAd , Ġuser : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( ad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠitemView . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg Url Ġ= Ġ"${ Service Generator . API _ BASE _ URL }$ photo " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( img Url ). memory Policy ( Memory Policy . NO _ CACHE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. network Policy ( Network Policy . NO _ CACHE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ pet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( item View . ad Pet ImageView ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad . ad Status Ġ== ĠAd Status . DISABLED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . color D anger Light )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . color Secondary Text )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . pet Status EditText . filters Ġ= ĠitemView . pet Status EditText . filters Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Filter . All Caps () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pet Status Ġ== ĠPet Status . FOUND ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . pet Status EditText . setText ( context . getString ( R . string . ad _ pet _ status _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . pet Status EditText . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . color Success )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . fe el ing Pet Status ImageView . setImage Resource ( R . drawable . ic _ smile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . pet Status EditText . setText ( context . getString ( R . string . ad _ pet _ status _ lost )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . pet Status EditText . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . color D anger )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . fe el ing Pet Status ImageView . setImage Resource ( R . drawable . ic _ sad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . code EditText . setText ( code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . ad Date EditText . setText ( format Ad Long Date ( date )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . ad Pet Name EditText . setText ( pet . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . ad Reward EditText . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( context . getString ( R . string . ad _ reward ), Ġreward )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad . user Ġ== Ġuser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . update Ad Card Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . update Ad Card Button . setOnClickListener Ġ{ ĠonClick Edit Ad ( ad ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . update Ad Card Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ Ġitem Click ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠonClick Edit Ad ( ad : ĠAd ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġfragment Manager !!. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . fragment Content , ĠUpdate Ad Fragment . newInstance ( user , Ġad )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . card _ ad _ item , Ġparent , Ġfalse ) Ġas ĠCard View ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view , Ġuser , Ġfragment Manager , Ġitem Click ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Ad ( items [ position ], Ġuser ) ĊĠĠĠ Ġ} Ċ } Ċ