package Ġlt . get pet . get pet . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . functions . Bi Function Ċ import Ġkotlinx . android . synt hetic . main . fragment _ pet _ favorites .* Ċ import Ġlt . get pet . get pet . R Ċ import Ġlt . get pet . get pet . adapters . Favorite P ets ListAdapter Ċ import Ġlt . get pet . get pet . adapters . deleg ates . Favorite P ets Delegate Adapter Ċ import Ġlt . get pet . get pet . data . Pet Ċ import Ġlt . get pet . get pet . navigation . Navigation Manager Ċ import Ġlt . get pet . get pet . persistence . Pet Dao Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠF avorite P ets List Fragment Ġ: ĠBase Fragment (), ĠF avorite P ets Delegate Adapter . Pet Clicked Listener Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġp ets Dao : ĠPet Dao ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġnavigation Manager : ĠNavigation Manager ĊĊĠĠĠ Ġprivate Ġvar Ġsubscription : ĠDis posable ? Ġ= Ġnull ĊĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfavorite P ets ListAdapter : ĠF avorite P ets ListAdapter ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ pet _ favorites , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġfavorite P ets ListAdapter Ġ= ĠF avorite P ets ListAdapter ( context !! , Ġthis ) ĊĊĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġp ets _ recycler _ view . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġfavorite P ets ListAdapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsubscription Ġ= ĠFlow able . zip ( pe ts Dao . get Favorite P ets (), Ġp ets Dao . getP ets With Get Pet Requests (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBi Function Ġ{ Ġfavorite P ets : ĠList < Pet >, Ġp ets With Get Pet Request : ĠList < Pet > Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( favorite P ets , Ġp ets With Get Pet Request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( db Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( ui Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow P ets ( it . first , Ġit . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . w ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Error Ġloading Ġp ets ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pet Clicked ( pet : ĠPet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation Manager . navigate To Pet Profile Activity ( this , Ġpet , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġsubscription ?. dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow P ets ( pe ts : ĠList < Pet >, Ġp ets With Get Pet Request : ĠList < Pet >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite P ets ListAdapter . bind Data ( pe ts , Ġp ets With Get Pet Request ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pe ts . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno _ content . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp ets _ recycler _ view . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno _ content . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp ets _ recycler _ view . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠF avorite P ets List Fragment () ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊĊ