/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 , ĠCh is wick ĠForest Ċ Ġ* Ċ Ġ* Ġ Ġ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 . pi j . z work out . work out Ċ Ċ import Ġactivity starter . Activity Starter Ċ import Ġactivity starter . Arg Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . view .* Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . widget . toast Ċ import Ġcom . pi j . Text Watcher Adapter Ċ import Ġcom . pi j . update Enabled Ċ import Ġcom . pi j . update Text Ċ import Ġcom . pi j . z work out . R Ċ import Ġcom . pi j . z work out . list . Work outs Activity Ċ import Ġdagger . android . support . D agger Fragment Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġkotlinx . android . synt hetic . main . activity _ work out _ detail .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ work out .* Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġrepresenting Ġa Ġsingle ĠWork out Ġdetail Ġscreen . Ċ Ġ* ĠThis Ġfragment Ġis Ġeither Ġcontained Ġin Ġa Ġ[ Work outs Activity ] Ċ Ġ* Ġin Ġtwo - pane Ġmode Ġ( on Ġtable ts ) Ġor Ġa Ġ[ Work out Detail Activity ] Ċ Ġ* Ġon Ġhand sets . Ċ Ġ*/ Ċ class ĠWork out Detail Fragment Ġ: ĠD agger Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsubscriptions Ġ= ĠComposite Disposable () ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġfragment Ġargument Ġrepresenting Ġthe Ġitem ĠID Ġthat Ġthis Ġfragment ĊĠĠĠĠ Ġ* Ġrepresents . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Arg ( optional Ġ= Ġtrue ) ĊĠĠĠ Ġvar ĠitemId : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar ĠviewModel : ĠWork out ViewModel ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġadapter : ĠE ff ort s Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ work out , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Starter . fill ( this , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġname . add TextChanged Listener ( Text Watcher Adapter Ġ{ ĠviewModel . name ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġdescription . add TextChanged Listener ( Text Watcher Adapter Ġ{ ĠviewModel . description ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġlist . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġsubscriptions . add ( viewModel . model (). subscribe ({ Ġdisplay ( it ) Ġ}, Ġ{ Ġit . printStackTrace (); Ġactivity ?. toast (" bad Ġcall !") ?. show () Ġ})) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( itemId Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . create Work out () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . load ( itemId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay ( model : ĠModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel . show Error ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( work out _ detail , Ġthis , ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġproperty Value Ġ= Ġmodel . edit Eff ort Property ĊĠĠĠĠĠĠĠ Ġproperty Value ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSte ady State Power Property Ġ-> Ġ" P JC Ġasked Ġto Ġedit Ġ'$ power ' Ġat Ġ$ index " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Unsupported Ġproperty : Ġ$ this " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( work out _ detail , Ġmessage , ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġempty . setText ( if Ġ( model . in Progress ) ĠR . string . detail _ loading Ġelse ĠR . string . detail _ empty ) ĊĠĠĠĠĠĠĠ Ġname . update Text ( model . name ) ĊĠĠĠĠĠĠĠ Ġtoolbar _ layout ?. title Ġ= Ġmodel . name ĊĠĠĠĠĠĠĠ Ġname . update Enabled (! model . name Is ReadOnly ) ĊĠĠĠĠĠĠĠ Ġdescription . update Text ( model . description ) ĊĠĠĠĠĠĠĠ Ġlist . isVisible Ġ= Ġmodel . eff ort s . isNotEmpty () ĊĠĠĠĠĠĠĠ Ġempty . isVisible Ġ= Ġmodel . eff ort s . isEmpty () ĊĠĠĠĠĠĠĠ Ġadapter . set Items ( model . eff ort s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscriptions . clear () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . work out _ menu , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġitem Ġselection ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ add Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add Eff ort () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( itemId : ĠString ?): ĠWork out Detail Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠitemId ?. let Ġ{ ĠWork out Detail Fragment Starter . newInstance ( it ) Ġ} Ġ?: ĠWork out Detail Fragment Starter . newInstance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ