package Ġcom . e ug en ics . nasa _ pod . ui . fragments Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġco il . load Ċ import Ġcom . e ug en ics . nasa _ pod . Build Config Ċ import Ġcom . e ug en ics . nasa _ pod . databinding . Fragment Earth Binding Ċ import Ġcom . e ug en ics . nasa _ pod . util . Constants Ċ import Ġcom . e ug en ics . nasa _ pod . util . Network Result Ċ import Ġcom . e ug en ics . nasa _ pod . view models . Earth ViewModel Ċ import Ġcom . google . android . material . datepicker . Calendar Constraints Ċ import Ġcom . google . android . material . datepicker . Material DatePicker Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ @ Android EntryPoint Ċ class ĠEarth Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Earth Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠFragment Earth Binding ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠEarth ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Earth Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Earth ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġset Observer s () ĊĊĠĠĠĠĠĠĠ Ġbinding . earth Button View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Validator Ġ= ĠviewModel . get Dates Validator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Constraints Ġ= ĠCalendar Constraints . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Validator ( date Validator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Picker Ġ= ĠMaterial DatePicker . Builder . date Picker () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setSelection ( Material DatePicker . today In Utc Milliseconds ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Calendar Constraints ( date Constraints . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Picker . add On Positive Button ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . time In Millis Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getP ictures ( c . time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Picker . show ( require Activity (). support FragmentManager , Ġ" date Picker ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġprivate Ġfun Ġset Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . earth Data . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNetwork Result . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat ( Constants . DATE _ PATTERN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . time Ġ= ĠdateFormat . parse ( it . data ?. get ( 0 )?. date ) Ġ?: ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image TextView . text Ġ= Ġit . data ?. get ( 0 )?. date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠimageUrl Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// api . nasa . gov / EP IC / archive / natural /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ c . get ( Calendar . YEAR )}" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ ${ c . get ( Calendar . MONTH )+ 1 }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ ${ c . get ( Calendar . DAY _ OF _ MONTH )}" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ png /${ it . data ?. get ( 0 )?. image }. png ? api _ key =" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Config . API _ KEY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . e ath ImageView . load ( imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" EAR TH " ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEarth Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }