package Ġro . pub . acs . poll ution checker . city _ info Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġro . pub . acs . poll ution checker . R Ċ import Ġro . pub . acs . poll ution checker . database . History Database Ċ import Ġro . pub . acs . poll ution checker . database . Se ar ched City Ċ import Ġro . pub . acs . poll ution checker . databinding . Fragment City Info Binding Ċ import Ġro . pub . acs . poll ution checker . utils . Helper ĊĊ Ċ class ĠCity Info Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠFragment City Info Binding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĠR . layout . fragment _ city _ info , Ġcontainer , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġrequire NotNull ( this . activity ). application ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠCity Info Fragment Args . from Bundle ( require Arguments ()) ĊĠĠĠĠĠĠĠ Ġval ĠdataSource Ġ= ĠHistory Database . getInstance ( application ). history Database Dao ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠCity Info ViewModel Factory ( dataSource ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcity Info ViewModel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĠviewModel Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). get ( City Info ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġbinding . city Info ViewModel Ġ= Ġcity Info ViewModel ĊĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġfind Nav Controller () ĊĠĠĠĠĠĠĠ Ġbinding . nav Controller Ġ= Ġnav Controller ĊĊĠĠĠĠĠĠĠ Ġcity Info ViewModel . navigate To History . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCity Info Fragment Directions . action City Info Fragment To History Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Info ViewModel . done Navig ating () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( arguments . search Id Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Info ViewModel . retrieve City Info ( arguments . search Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Info ViewModel . sear ched City ?. observe ( view Lifecycle Owner , Ġ{ Ġsearched City Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sear ched City Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( image Id , Ġcolor Id , Ġtext Id ) Ġ= ĠHelper . get Rating ( sear ched City . a qi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . setImage Resource ( image Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . a qi . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rating . setText ( text Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sear ched City Ġ= Ġsearched City ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Info ViewModel . reset City Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearched City Ġ= ĠS ear ched City ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġarguments . city , Ġregion Ġ= Ġarguments . region , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Ġ= Ġarguments . country , Ġa qi Ġ= Ġarguments . a qi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpm 2 5 Ġ= Ġarguments . pm 2 5 , Ġpm 1 0 Ġ= Ġarguments . pm 1 0 , Ġo 3 Ġ= Ġarguments . o 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno 2 Ġ= Ġarguments . no 2 , Ġso 2 Ġ= Ġarguments . so 2 , Ġco Ġ= Ġarguments . co ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Info ViewModel . insert City ( sear ched City ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( image Id , Ġcolor Id , Ġtext Id ) Ġ= ĠHelper . get Rating ( sear ched City . a qi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . setImage Resource ( image Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . a qi . set BackgroundColor ( Context Compat . getColor ( require Context (), Ġcolor Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rating . setText ( text Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sear ched City Ġ= Ġsearched City ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . directions History Ġ= ĠCity Info Fragment Directions . action City Info Fragment To History Fragment () ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} Ċ }