/* ĠĠ ĠCopyright Ġ 2 0 2 0 ĠSam uel ĠJ ones Ċ Ġ* Ċ Ġ* Ġ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 Ġuk . ac . aber . d cs . m mp . faa . ui . ad option Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . firebase . firestore . Document Reference Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . ad option _ status _ card . view .* Ċ Ċ import Ġuk . ac . aber . d cs . m mp . faa . R Ċ import Ġuk . ac . aber . d cs . m mp . faa . datas ources . DataService Ċ import Ġuk . ac . aber . d cs . m mp . faa . datas ources . dat acl asses . A do ption Process Ċ import Ġuk . ac . aber . d cs . m mp . faa . datas ources . dat acl asses . Cat Ċ Ċ /** Ċ Ġ* ĠA ĠRecyclerView . ViewHolder Ġimplementation Ġthat Ġproduces Ġthe Ġinformation Ġrequired Ġfor Ġthe Ġa do ption Ċ Ġ* Ġstatus Ġview Ġto Ġbe Ġeasy Ġto Ġread Ġand Ġwhen Ġbind Ġis Ġcalled , Ġit Ġrequires Ġan ĠA do ption Process Ġobject Ċ Ġ* Ġthat Ġis Ġprovided Ġas Ġa Ġsnapshot Ġof Ġthe Ġdata , Ġbut Ġis Ġguaranteed Ġat Ġtime Ġof Ġbind Ġbeing Ġcalled . Ċ Ġ*/ Ċ class ĠA do ption Status Card ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġview : ĠView Ġ= ĠitemView ĊĠĠĠ Ġprivate Ġval Ġcat Name : ĠTextView Ġ= Ġview . findViewById ( R . id . ad option Status Card Title ) ĊĠĠĠ Ġprivate Ġval Ġcat Image : ĠImageView Ġ= Ġview . findViewById ( R . id . ad option Status Card Cat Image ) ĊĠĠĠ Ġprivate Ġval Ġa do ption Info : ĠTextView Ġ= Ġview . findViewById ( R . id . ad option Status A do ption Info ) ĊĠĠĠ Ġprivate Ġval Ġa do ption Status Icon : ĠImageView Ġ= Ġview . findViewById ( R . id . ad option Status Status Icon ) ĊĠĠĠ Ġlateinit Ġvar Ġa do ption Process : ĠA do ption Process ĊĠĠĠ Ġlateinit Ġvar Ġcat : ĠCat ĊĊĠĠĠ Ġfun Ġbind ( model : ĠA do ption Process ) Ġ{ ĊĠĠĠĠĠĠĠ Ġa do ption Process Ġ= Ġmodel ĊĠĠĠĠĠĠĠ Ġrequest Cat Info And Bind ( model . cat !! ) ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġmodel . status !! ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus [" accepted "] Ġas ĠBoolean Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa do ption Info . setText ( R . string . ad option _ success ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . resources . get Drawable ( R . drawable . ic _ done _ all _ green _ 2 4 dp , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus [" pending "] Ġas ĠBoolean Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa do ption Info . text Ġ= Ġstatus [" pending Reason "]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . resources . get Drawable ( R . drawable . ic _ access _ alarm _ yellow _ 2 4 dp , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMust Ġhave Ġbeen Ġrejected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa do ption Info . text Ġ= Ġstatus [" rejected Reason "]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . resources . get Drawable ( R . drawable . ic _ highlight _ off _ red _ 2 4 dp , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġa do ption Status Icon . setImage Drawable ( drawable ) ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Parcelable (" ad option Process ", Ġmodel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate ( R . id . ad option Status Info View Fragment , Ġbundle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwhite Ġ= ĠContext Compat . getColor ( view . context !! , ĠR . color . white ) ĊĠĠĠĠĠĠĠ Ġif Ġ( DataService . INSTANCE . dark Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . ad option Process Card . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . context !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . dark Card Background ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcat Name . setTextColor ( white ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa do ption Info . setTextColor ( white ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Cat Info And Bind ( cat Reference : ĠDocument Reference ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcat Reference . get (). add On Success Listener Ġ{ Ġdocument Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcat Ġ= Ġdocument . toObject ( Cat :: class . java ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcat Name . text Ġ= Ġcat . cat Name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( cat . picture Url ). into ( cat Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ