package Ġcom . pk j . learn . fm random dog . ui . generated og Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . pk j . learn . fm random dog . Dog App Ċ import Ġcom . pk j . learn . fm random dog . R Ċ import Ġkotlinx . android . synt hetic . main . generate _ dog _ fragment .* Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠGenerate Dog Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠGenerate Dog ViewModel ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĊĠĠĠĠĠĠĠ Ġ( require Activity (). application Ġas ĠDog App ). app Component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . generate _ dog _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġsetup Observer () ĊĠĠĠĠĠĠĠ Ġsetup Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġgenerate _ btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate _ btn . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getRandom Dog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer (){ ĊĠĠĠĠĠĠĠ ĠviewModel . response . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( it . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( image ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . isLoading . observe ( Ġview Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate _ btn . isEnabled Ġ= Ġ! it ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ } Ċ