package Ġcom . reci _ p . reci _ p . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Rating Bar Ċ import Ġandroid . widget . TextView Ċ import Ġcom . facebook . draw ee . backends . pipeline . F resco Ċ import Ġcom . facebook . draw ee . view . Simple Draw ee View Ċ import Ġcom . google . firebase . Firebase App Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġcom . ram otion . fold ing cell . Fold ing Cell Ċ import Ġcom . reci _ p . reci _ p . R Ċ import Ġcom . reci _ p . reci _ p . data . Recipe Ċ import Ġcom . reci _ p . reci _ p . helpers . DataManager Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠEric ĠMar shall Ġon Ġ 1 1 / 2 7 / 1 7 Ċ Ġ*/ Ċ class ĠSmall Recipe ListAdapter ( val Ġdata : ĠMutable List < Recipe >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠonClick Edit Ġ: Ġ( Recipe ) Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . Adapter < Small Recipe ListAdapter . Recipe ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġctx : ĠContext ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup ?, Ġview Type : ĠInt ): ĠRecipe ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ctx Ġ== Ġnull ) Ġctx Ġ= Ġparent ?. context ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent ?. context ). inflate ( R . layout . recipe _ flip _ small , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠRecipe ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecipe ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrecipe Ġ= Ġdata ! ![ position ] ĊĊĠĠĠĠĠĠĠ Ġholder . img . setImage URI ("") ĊĠĠĠĠĠĠĠ Ġif Ġ( recipe . photo Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Re ci - P ", Ġ" HERE Ġ${ recipe . photo }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl String Ġ= Ġ" gs ://${ Firebase App . getInstance () !!. options !!. storage Bucket }/${ recipe . photo }" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Storage . getInstance (). getReference From Url ( url String ). download Url . add On Success Listener Ġ{ Ġuri Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Re ci - P ", Ġ" URI : Ġ${ uri . toString () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . img . setImage URI ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image _ un fold . setImage URI ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Re ci - P ", Ġ" Error Ġgetting ĠURI Ġfor Ġimage : Ġ${ exception . localized Message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . detail . text Ġ= Ġdata [ position ]. cook Time ĊĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġdata [ position ]. title ĊĠĠĠĠĠĠĠ Ġholder . recipe Desc Un fold . text Ġ= Ġrecipe . description ĊĊĠĠĠĠĠĠĠ Ġholder . action Button . text Ġ= Ġ" Save " ĊĠĠĠĠĠĠĠ Ġholder . action Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Recipe Ġ= ĠRecipe ( Firebase Auth . getInstance (). currentUser !!. uid , ĠUUID . randomUUID (). toString (), Ġrecipe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Manager . create Recipe ( new Recipe , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . action Button . text Ġ= Ġ" Saved " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . save Btn Un fold . text Ġ= Ġ" Saved " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . view . findViewById < Fold ing Cell >( R . id . recipe _ fold ing _ cell ). toggle ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . recipe Title Un fold . text Ġ= Ġrecipe . title ĊĊĠĠĠĠĠĠĠ ĠData Manager . getUser ( recipe . creator , Ġsave Ġ= Ġtrue ) Ġ{ Ġowner Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( owner Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . recipe Author Un fold . text Ġ= Ġowner . displayName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . recipe Author Un fold . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . view . findViewById < Fold ing Cell >( R . id . recipe _ fold ing _ cell ). toggle ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . rating Un fold . rating Ġ= Ġrecipe . rating ĊĠĠĠĠĠĠĠ Ġholder . cook Time Un fold . text Ġ= Ġrecipe . cook Time ĊĠĠĠĠĠĠĠ Ġholder . prep Time Un fold . text Ġ= Ġrecipe . prep Time ĊĊĠĠĠĠĠĠĠ Ġholder . ingredient Holder Un fold . removeAll Views () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġrecipe . ingredients ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( holder . view . context ). inflate ( R . layout . ingredient , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . ingredient _ text ). text Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . ingredient Holder Un fold . addView ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . instruction Holder Un fold . removeAll Views () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġrecipe . instructions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( holder . view . context ). inflate ( R . layout . instruction , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . instruction _ text ). text Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . instruction Holder Un fold . addView ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( recipe . owner Ġ== ĠFirebase Auth . getInstance (). currentUser !!. uid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . save Btn Un fold . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . save Btn Un fold . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Recipe Ġ= ĠRecipe ( Firebase Auth . getInstance (). currentUser !!. uid , ĠUUID . randomUUID (). toString (), Ġrecipe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Manager . create Recipe ( new Recipe , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . save Btn Un fold . text Ġ= Ġ" Saved " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . edit Btn Un fold . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Edit ( recipe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠRecipe ViewHolder ( val Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimg Ġ= Ġview . findViewById < Simple Draw ee View >( R . id . recipe Small _ photo ) ĊĠĠĠĠĠĠĠ Ġval Ġdetail Ġ= Ġview . findViewById < TextView >( R . id . recipe Small _ detail ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġview . findViewById < TextView >( R . id . recipe Small _ title ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Button Ġ= Ġview . findViewById < Button >( R . id . recipe Small _ action Button ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġimage _ un fold Ġ= Ġview . findViewById < Simple Draw ee View >( R . id . imageView _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġrecipe Title Un fold Ġ= Ġview . findViewById < TextView >( R . id . recipe Large _ title _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġrecipe Desc Un fold Ġ= Ġview . findViewById < TextView >( R . id . recipe Large _ description _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġrecipe Author Un fold Ġ= Ġview . findViewById < TextView >( R . id . recipe Large _ author _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġrating Un fold Ġ= Ġview . findViewById < Rating Bar >( R . id . rating Bar _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġcook Time Un fold Ġ= Ġview . findViewById < TextView >( R . id . recipe Large _ cook _ time _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġprep Time Un fold Ġ= Ġview . findViewById < TextView >( R . id . recipe Large _ prep _ time _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġingredient Holder Un fold Ġ= Ġview . findViewById < LinearLayout >( R . id . recipe Large _ ingredients _ holder _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġinstruction Holder Un fold Ġ= Ġview . findViewById < LinearLayout >( R . id . recipe Large _ instructions _ holder _ un fold ) ĊĠĠĠĠĠĠĠ Ġvar Ġsave Btn Un fold Ġ= Ġview . findViewById < Button >( R . id . recipe Large _ btn _ save ) ĊĠĠĠĠĠĠĠ Ġvar Ġedit Btn Un fold Ġ= Ġview . findViewById < Button >( R . id . recipe Large _ btn _ edit ) ĊĠĠĠ Ġ} Ċ }