package Ġcom . dream it . current weather app Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġcom . dream it . current weather app . cities . view . C ities Fragment Ċ import Ġcom . dream it . current weather app . net . Weather Service Ċ import Ġcom . dream it . current weather app . net . get RestClient Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Realm Configuration ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġval Ġrealm : ĠRealm Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠRealm . init ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠRealm Configuration . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" quiz . realm ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete Realm If Migration Needed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. schema Version ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ ĠRealm . setDefault Configuration ( config ) ĊĠĠĠĠĠĠĠ ĠRealm . getDefaultInstance () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġwe athers Service : ĠWeather Service Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġget RestClient () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġload Fragment ( C ities Fragment (), Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġget System Service ( Activity . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcurrent Focus ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ} Ġ?: ĠView ( this ) ĊĊĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( view . window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Fragment ( fragment : ĠFragment , ĠaddTo Back Stack : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( window . current Focus Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( window . current Focus !!. window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . main _ content , Ġfragment , Ġfragment :: class . java . simple Name ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( addTo Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . addTo Back Stack ( fragment . java Class . name ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Fragment Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfragment Transaction . commit Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Fragment Back Stack () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġfm . back Stack Entry Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfm . pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ