/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 . google . android . fhir . demo Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . google . android . fhir . Fhir Engine Ċ import Ġcom . google . android . fhir . demo . databinding . Patient Detail Binding Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġrepresenting Ġa Ġsingle ĠPatient Ġdetail Ġscreen . ĠThis Ġfragment Ġis Ġcontained Ġin Ġa Ċ Ġ* Ġ[ MainActivity ]. Ċ Ġ*/ Ċ class ĠPatient Details Fragment Ġ: ĠFragment () Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġfhir Engine : ĠF hir Engine ĊĠ Ġprivate Ġlateinit Ġvar Ġpatient Details ViewModel : ĠPatient Details ViewModel ĊĠ Ġprivate Ġval Ġargs : ĠPatient Details Fragment Args Ġby Ġnav Args () ĊĠ Ġprivate Ġvar Ġ_ binding : ĠPatient Detail Binding ? Ġ= Ġnull ĊĠ Ġprivate Ġval Ġbinding ĊĠĠĠ Ġget () Ġ= Ġ_ binding !! ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġset Has Options Menu ( true ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView Ġ{ ĊĠĠĠ Ġ_ binding Ġ= ĠPatient Detail Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġfhir Engine Ġ= ĠF hir Application . fhir Engine ( require Context ()) ĊĠĠĠ Ġpatient Details ViewModel Ġ= ĊĠĠĠĠĠ ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠ ĠPatient Details ViewModel Factory ( require Activity (). application , Ġfhir Engine , Ġargs . patient Id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. get ( Patient Details ViewModel :: class . java ) ĊĠĠĠ Ġval Ġadapter Ġ= ĠPatient Details RecyclerView Adapter (:: on Add Scre ener Click ) ĊĠĠĠ Ġbinding . recycler . adapter Ġ= Ġadapter ĊĠĠĠ Ġ( require Activity () Ġas ĠAppCompatActivity ). support ActionBar ?. apply Ġ{ ĊĠĠĠĠĠ Ġtitle Ġ= Ġ" Patient ĠCard " ĊĠĠĠĠĠ Ġset Display Home As Up Enabled ( true ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġpatient Details ViewModel . live Patient Data . observe ( view Lifecycle Owner ) Ġ{ Ġadapter . submit List ( it ) Ġ} ĊĠĠĠ Ġpatient Details ViewModel . get Patient Detail Data () ĊĠĠĠ Ġ( activity Ġas ĠMainActivity ). set Drawer Enabled ( false ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġon Add Scre ener Click () Ġ{ ĊĠĠĠ Ġfind Nav Controller () ĊĠĠĠĠĠ Ġ. navigate ( ĊĠĠĠĠĠĠĠ ĠPatient Details Fragment Directions . action Patient Details To Screen Encounter Fragment ( ĊĠĠĠĠĠĠĠĠĠ Ġargs . patient Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠ Ġinflater . inflate ( R . menu . details _ options _ menu , Ġmenu ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ ĠNav Host Fragment . find Nav Controller ( this ). navigate Up () ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . menu _ patient _ edit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller () ĊĠĠĠĠĠĠĠĠĠ Ġ. navigate ( Patient Details Fragment Directions . navigate To Edit Patient ( args . patient Id )) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠ Ġ} Ċ } Ċ