/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 8 Ġn sn ik hil Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ns nik . n rs . kot lint est . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Info Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . test . espress o . Id ling Resource Ċ import Ġcom . ns nik . n rs . kot lint est . Build Config Ċ import Ġcom . ns nik . n rs . kot lint est . My Application Ċ import Ġcom . ns nik . n rs . kot lint est . R Ċ import Ġcom . ns nik . n rs . kot lint est . utils . Database Util Ċ import Ġcom . ns nik . n rs . kot lint est . utils . Simple Id ling Resource Ċ import Ġcom . ns nik . n rs . kot lint est . utils . events . Fetch List Event Ċ import Ġcom . ns nik . n rs . kot lint est . viewModel . UserList ViewModel Ċ import Ġcom . ns nik . n rs . kot lint est . views . fragments . dialog . About Dialog Fragment Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Id ling Resource : ĠSimple Id ling Resource ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġinitialize () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( main Toolbar ) ĊĠĠĠĠĠĠĠ Ġif Ġ( check Connection ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this ). get ( UserList ViewModel :: class . java ). fetch Data From Server () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up () Ġ= Ġfind Nav Controller ( R . id . main Nav Host ). navigate Up () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item ?. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . main Menu About Ġ-> ĠAbout Dialog Fragment (). show ( support FragmentManager , Ġ" about ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Connection (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcm Ġ= Ġthis . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ? ĊĠĠĠĠĠĠĠ Ġval Ġactive Network : ĠNetwork Info ? Ġ= Ġcm ?. active Network Info ĊĠĠĠĠĠĠĠ Ġreturn Ġactive Network ?. isConnected Ġ== Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun ĠOn Fetch List Event ( fetch List Event : ĠFetch List Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Util : ĠDatabase Util Ġ= Ġ( this . application Context Ġas ĠMy Application ). database Util ĊĠĠĠĠĠĠĠ Ġfetch List Event . user List . forEach Ġ{ Ġdatabase Util . insert User ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġ@ NonNull ĊĠĠĠ Ġfun ĠgetId ling Resource (): ĠId ling Resource Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Id ling Resource Ġ== Ġnull ) Ġm Id ling Resource Ġ= ĠSimple Id ling Resource () ĊĠĠĠĠĠĠĠ Ġreturn Ġm Id ling Resource Ġas ĠSimple Id ling Resource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġref Watcher Ġ= ĠMy Application . get Ref Watcher ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref Watcher ?. watch ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ