package Ġuk . co . jo ep al mer . rock android template . ui . posts Ċ Ċ 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 Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . resource . drawable . Drawable Transition Options Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġkotlinx . android . synt hetic . main . fragment _ posts _ detail .* Ċ import Ġuk . co . jo ep al mer . core . type . Post Ċ import Ġuk . co . jo ep al mer . core . type . User Ċ import Ġuk . co . jo ep al mer . rock android template . R ĊĊ Ċ class ĠPost Details Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠPosts ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Adapter : ĠComments Adapter ĊĠĠĠ Ġprivate Ġvar Ġuser : ĠUser ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpost : ĠPost ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe ĠViewModel Ġto Ġuse Ġactivity Ġscope Ġto Ġmake Ġit Ġsimple Ġto Ġtransfer Ġdata Ġbetween Ġfragments ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġactivity ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this ). get ( Posts ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠException (" Invalid ĠActivity ") ĊĠĠĠĠĠĠĠ Ġview Adapter Ġ= ĠComments Adapter () ĊĊĠĠĠĠĠĠĠ Ġuser Ġ= ĠviewModel . getCurrent Post ()?. second ĊĠĠĠĠĠĠĠ Ġpost Ġ= ĠviewModel . getCurrent Post ()?. first ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ġ!= Ġnull Ġ&& Ġpost Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpost ?. id ?. let Ġ{ ĠviewModel . request Comments ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . comments . observe ( this , ĠObserver Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Adapter . set Items ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsetup Comments List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ posts _ detail , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Comments List () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomments _ list . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġview Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate View () Ġ{ ĊĠĠĠĠĠĠĠ Ġpost _ title . text Ġ= Ġpost ?. title Ġ?: ĠgetString ( R . string . missing _ title ) ĊĠĠĠĠĠĠĠ Ġpost _ author . text Ġ= Ġuser ?. name Ġ?: ĠgetString ( R . string . anonymous ) ĊĠĠĠĠĠĠĠ Ġpost _ body . text Ġ= Ġpost ?. body Ġ?: ĠgetString ( R . string . post _ body _ error ) ĊĠĠĠĠĠĠĠ Ġpost ?. userId . let Ġ{ Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load (" https :// api . ador able . io / avatars /$ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( Drawable Transition Options . with Cross Fade ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. circle Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( picture _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ