package Ġcom . open class rooms . re ale state manager . view model Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . open class rooms . re ale state manager . view . addProperty .* Ċ import Ġcom . open class rooms . re ale state manager . view . addProperty . ActionType . MO DIFY _ PROPERTY Ċ import Ġcom . open class rooms . re ale state manager . view . addProperty . ActionType . NEW _ PROPERTY Ċ import Ġcom . open class rooms . re ale state manager . view . addProperty . Error Source Add Property .* Ċ import Ġcom . open class rooms . re ale state manager . data . Sub Property Ċ import Ġcom . open class rooms . re ale state manager . data . api . model . Geo ApiResponse Ċ import Ġcom . open class rooms . re ale state manager . data . database . Converters Ċ import Ġcom . open class rooms . re ale state manager . data . entity .* Ċ import Ġcom . open class rooms . re ale state manager . data . repository . Agent Repository Ċ import Ġcom . open class rooms . re ale state manager . data . repository . Currency Repository Ċ import Ġcom . open class rooms . re ale state manager . data . repository . Property Repository Ċ import Ġcom . open class rooms . re ale state manager . data . repository . SaveData Repository Ċ import Ġcom . open class rooms . re ale state manager . base . Base ViewModel Ċ import Ġcom . open class rooms . re ale state manager . base . Loading Content Error Ċ import Ġcom . open class rooms . re ale state manager . base . Real StateManager ViewModel Ċ import Ġcom . open class rooms . re ale state manager . utils .* Ċ import Ġcom . open class rooms . re ale state manager . utils . extensions .* Ċ import Ġcom . open class rooms . re ale state manager . view state . Add Property Intent Ċ import Ġcom . open class rooms . re ale state manager . view state . Add Property Result Ċ import Ġcom . open class rooms . re ale state manager . view state . Add Property View Effect Ċ import Ġcom . open class rooms . re ale state manager . view state . Add Property ViewState Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . ob servers . Disposable Observer Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . net . URL Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠMut w ak il - Mo ĠðŁ¤ © Ċ Ġ* ĠAndroid ĠEngineer , Ċ Ġ* ĠBr us se ls Ċ Ġ*/ Ċ class ĠAdd Property ViewModel Ġ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġagent Repository : ĠAgent Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġproperty Repository : ĠProperty Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcurrency Repository : ĠCurrency Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsave Data Repository : ĠSave Data Repository ) ĊĠĠĠ Ġ: ĠBase ViewModel < Add Property ViewState >(), ĠReal StateManager ViewModel < Add Property Intent , ĠAdd Property Result >, ĊĠĠĠĠĠĠĠ ĠBitmap Downloader . Listeners { ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent ViewState Ġ= ĠAdd Property ViewState () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State LD . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġview Effect LD Ġ= ĠMutable LiveData < Add Property View Effect >() ĊĠĠĠ Ġval Ġview Effect : ĠLive Data < Add Property View Effect > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġview Effect LD ĊĊĠĠĠ Ġval Ġcurrency : ĠLive Data < Currency > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcurrency Repository . currency ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdis posable : ĠDis posable ĊĠĠĠ Ġprivate Ġvar Ġinit al Intent Handled Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaction Type : ĠAction Type ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġvar Ġproperty Id : ĠString Ġ= Ġid Generated ĊĠĠĠ Ġprivate Ġvar Ġprevious P ictures Ġ= ĠlistOf < Picture >() ĊĠĠĠ Ġprivate Ġvar Ġprevious A men ities Ġ= ĠlistOf < A men ity >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaddress : ĠAddress ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproperty : ĠProperty ĊĠĠĠ Ġprivate Ġval Ġam en ities Ġ= Ġmutable ListOf < A men ity >() ĊĠĠĠ Ġprivate Ġvar Ġpictures Ġ= Ġmutable ListOf < Picture >() ĊĊĠĠĠ Ġ// Ġdata ĊĠĠĠ Ġprivate Ġval Ġlist Error Inputs Ġ= Ġmutable ListOf < Error Source Add Property >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġneighborhood : ĠString ĊĠĠĠ Ġprivate Ġvar Ġagent Id : ĠString ? Ġ= Ġnull ĊĊĊĠĠĠ Ġ// Coroutine Ġjob ĊĠĠĠ Ġprivate Ġvar Ġadd Property Job : ĠJob ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadd Property Data Job : ĠJob ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch Agents Job : ĠJob ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun Ġaction From Intent ( intent : ĠAdd Property Intent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( intent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Add Property To DB Intent Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceive Property Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type , Ġintent . price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . surface , Ġintent . rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . bed rooms , Ġintent . b ath rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . description , Ġintent . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . neighbor hood , Ġintent . on Market Since , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . is S old , Ġintent . sell Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . amen ities , Ġintent . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Open List Agents Intent Ġ-> Ġfetch Agents From DB () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Initial Intent Ġ-> Ġset ActionType ( intent . action Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Select Agent Intent Ġ-> Ġset Agent Selected ( intent . agent Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Add Picture ToList Intent Ġ-> Ġadd Picture To Property ( intent . picture Url , Ġintent . thumbnail Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Remove Picture From List Intent Ġ-> Ġremove Picture From List ( intent . picture ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Move Picture In List Position Intent Ġ-> Ġmove Picture In List ( intent . from , Ġintent . to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Add Description To Picture Ġ-> Ġadd Description To Picture ( intent . position , Ġintent . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Save Draft Intent Ġ-> Ġsave Property For Later ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type , Ġintent . price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . surface , Ġintent . rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . bed rooms , Ġintent . b ath rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . description , Ġintent . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . neighbor hood , Ġintent . on Market Since , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . is S old , Ġintent . sell Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . amen ities ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Intent . Display Data From DB Ġ-> Ġfetch Existing Property From DB () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresult To ViewState ( result : ĠLoading Content Error < Add Property Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent ViewState Ġ= Ġwhen Ġ( result ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLoading Content Error . Content Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( result . packet ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . List Agents Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġresult . packet . list Agents , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . Property Added To DB Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Saved To DB Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . Picture Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Saved To DB Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpictures Ġ= Ġresult . packet . pictures ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Property Result . Property Added To Draft Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Saved To Draft Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLoading Content Error . Loading Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLoading Content Error . Error Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( result . packet ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . Property Added To DB Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġresult . packet . error Source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . List Agents Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġresult . packet . error Source ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . Property From DB Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġresult . packet . error Source ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresult To View Effect ( result : ĠLoading Content Error < Add Property Result > ){ ĊĠĠĠĠĠĠĠ Ġif ( result Ġis ĠLoading Content Error . Content ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AD raft Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Agents Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( result . packet ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . Property From DB Result Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Effect LD . value Ġ= ĠAdd Property View Effect . Property From DB Effect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . type , Ġresult . packet . price , Ġresult . packet . surface , Ġresult . packet . bed rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . rooms , Ġresult . packet . b ath rooms , Ġresult . packet . description , Ġresult . packet . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . neighbor hood , Ġresult . packet . on Market Since , Ġresult . packet . is S old ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . sell On ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ"", Ġresult . packet . agent ?. id , Ġresult . packet . amen ities , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . agent ?. firstName Ġ?: Ġ"", Ġresult . packet . agent ?. lastName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Property Result . Property From Draft Result Ġ-> Ġview Effect LD . value Ġ= ĠAdd Property View Effect . Property from Draft Effect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . type , Ġresult . packet . price , Ġresult . packet . surface , Ġresult . packet . bed rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . rooms , Ġresult . packet . b ath rooms , Ġresult . packet . description , Ġresult . packet . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . neighbor hood , Ġresult . packet . on Market Since , Ġresult . packet . is S old ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . sell On ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ"", Ġresult . packet . agent ?. id , Ġresult . packet . amen ities , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . agent ?. firstName Ġ?: Ġ"", Ġresult . packet . agent ?. lastName Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . packet . original Available ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠINITIAL ĠINTENT ĊĠĠĠ Ġ// -------------------- ĊĊĠĠĠ Ġprivate Ġfun Ġset ActionType ( action Type : ĠAction Type ){ ĊĠĠĠĠĠĠĠ Ġif (! init al Intent Handled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . action Type Ġ= Ġaction Type ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetData Property () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Saved Property () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit al Intent Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetData Property (){ ĊĠĠĠĠĠĠĠ Ġif ( action Type Ġ== ĠMODIFY _ PROPERTY ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty From Repository Ġ= Ġproperty Repository . property Pick ed !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Ġ= Ġproperty From Repository . property ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġproperty From Repository . address [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Id Ġ= Ġproperty . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagent Id Ġ= Ġproperty . agent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious A men ities Ġ= Ġproperty From Repository . amen ities ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious P ictures Ġ= Ġproperty From Repository . pictures ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠSET ĠDATA ĊĠĠĠ Ġ// -------------------- ĊĊĠĠĠ Ġprivate Ġfun Ġset Agent Selected ( agent Id : ĠString ){ ĊĠĠĠĠĠĠĠ Ġthis . agent Id Ġ= Ġagent Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Picture To Property ( picture Url : ĠString , Ġthumbnail Url : ĠString ? ){ ĊĠĠĠĠĠĠĠ Ġpictures . add ( Picture ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Generated , Ġpicture Url , Ġthumbnail Url , Ġ Ġnull , Ġproperty Id , Ġ"", Ġpictures . size Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġemit Result Picture Modification () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Picture From List ( picture : ĠPicture ){ ĊĠĠĠĠĠĠĠ Ġpictures . remove ( picture ) ĊĠĠĠĠĠĠĠ Ġcreate Order Number P ictures () ĊĠĠĠĠĠĠĠ Ġemit Result Picture Modification () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove Picture In List ( from : ĠInt , Ġto : ĠInt ){ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Photo Ġ= Ġpictures [ from ] ĊĠĠĠĠĠĠĠ Ġpictures . remove At ( from ) ĊĠĠĠĠĠĠĠ Ġpictures . add ( to , Ġfrom Photo ) ĊĠĠĠĠĠĠĠ Ġcreate Order Number P ictures () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Description To Picture ( position : ĠInt , Ġdescription : ĠString ){ ĊĠĠĠĠĠĠĠ Ġpictures [ position ]. description Ġ= Ġdescription ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Order Number P ictures (){ ĊĠĠĠĠĠĠĠ Ġpictures . forEach Indexed Ġ{ Ġindex , Ġpicture Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpicture . order Number Ġ= Ġindex ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġemit Result Picture Modification (){ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ= ĠLoading Content Error . Content ( Add Property Result . Picture Result ( pictures )) ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠADD ĠPROPERTY ĠTO ĠDB ĊĠĠĠ Ġ// -------------------- ĊĊĠĠĠ Ġprivate Ġfun Ġreceive Property Data ( type : ĠString , Ġprice : ĠDouble ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsurface : ĠDouble ?, Ġrooms : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbed rooms : ĠInt ?, Ġb ath rooms : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription : ĠString , Ġaddress : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġneighborhood : ĠString , Ġon Market Since : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis S old : ĠBoolean , Ġsell On : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġam en ities : ĠList < Type Facility >, Ġcontext App : ĠContext ĊĠĠĠ Ġ){ ĊĊĠĠĠĠĠĠĠ Ġfun Ġcheck Errors From User Input (): ĠList < Error Source Add Property >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Errors Ġ= Ġmutable ListOf < Error Source Add Property >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġon Market Date Ġ= Ġon Market Since . toDate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsell Date Ġ= Ġsell On ?. toDate () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( on Market Date Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! on Market Date . is Correct On Market Date ()) Ġlist Errors . add ( IN CORRECT _ ON _ MARK ET _ DATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( is S old ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sell Date Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Market Date Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ! sell Date . is Correct S old Date ( on Market Date )) Ġlist Errors . add ( IN CORRECT _ S OLD _ DATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sell On Ġ== Ġnull ) Ġlist Errors . add ( NO _ S OLD _ DATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! type . is Existing PropertyType ()) Ġlist Errors . add ( NO _ TYPE _ SELECTED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( price Ġ== Ġnull ) Ġlist Errors . add ( NO _ PRICE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( surface Ġ== Ġnull ) Ġlist Errors . add ( NO _ SURFACE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( rooms Ġ== Ġnull ) Ġlist Errors . add ( NO _ RO O MS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( address . isEmpty ()) Ġlist Errors . add ( NO _ ADDRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( agent Id Ġ== Ġnull ) Ġlist Errors . add ( NO _ AGENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpictures . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . description . isBlank ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Errors . add ( MISSING _ DESCRIPTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist Errors ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun ĠsetData From Inputs () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext App ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Ġ= ĠProperty ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġproperty Id , Ġtype Ġ= ĠConverter s . to Type Property ( type ), Ġprice Ġ= Ġprice !!. to E uro ( currency . value !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Ġ= Ġsurface !!. to Sq Meter ( currency . value !! ), Ġrooms Ġ= Ġrooms !! , Ġbed rooms Ġ= Ġbed rooms , Ġb ath rooms Ġ= Ġb ath rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdescription , Ġon Market Since Ġ= Ġon Market Since . toDate () !! , Ġsold Ġ= Ġis S old , Ġsell Date Ġ= Ġ Ġsell On ?. toDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent Ġ= Ġagent Id !! , Ġhas P ictures Ġ= Ġpictures . isNotEmpty (), Ġcreation Date Ġ= Ġto days Date ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . address Ġ= ĠAddress ( property Id Ġ= Ġproperty . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġam en ities . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . amen ities . add ( A men ity ( id Generated , Ġproperty Id , Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . neighbor hood Ġ= Ġneighborhood ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist Error Inputs . clear () ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( Loading Content Error . Loading ()) ĊĠĠĠĠĠĠĠ Ġcheck Errors From User Input (). forEach Ġ{ Ġlist Error Inputs . add ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġif ( list Error Inputs . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetData From Inputs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Address Location ( address ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit Error From Inputs () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Location And Map ( geo Api : ĠGeo ApiResponse ){ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġgeo Api . results ĊĠĠĠĠĠĠĠ Ġif ( results . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Address Component ( geo Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Url Ġ= Ġproperty Repository . getMap Location ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress . latitude . toString (), address . longitude . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). to Url () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( map Url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Bitmap Map ( map Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Error Inputs . add ( ERROR _ FETCH ING _ MAP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit Error From Inputs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Error Inputs . add ( TOO _ MAN Y _ ADDRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit Error From Inputs () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bitmap Downloaded ( bitmap : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaddress . map Icon Url Ġ= Ġbitmap . save To Internal Storage ( context , Ġproperty . id Ġ+ Ġgenerate Name (), ĠType Image . ICON _ MAP ). toString () ĊĠĠĠĠĠĠĠ Ġproperty Repository . upload Map In Network ( bitmap , Ġproperty . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġemit Result Add Property To View () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Error Inputs . add ( ERROR _ FETCH ING _ MAP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit Error From Inputs () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġfetch Address Location ( address : ĠString ){ ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġproperty Repository . getLocation From Address ( address . convert For Api ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( get Observer Geo coding Api ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Observer Geo coding Api (): ĠDis posable Observer < Geo ApiResponse >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠDis posable Observer < Geo ApiResponse >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( geo Api : ĠGeo ApiResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Location And Map ( geo Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Error Inputs . add ( IN CO RECT _ ADDRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit Error From Inputs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Address Component ( geo Api : ĠGeo ApiResponse ){ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġgeo Api . results ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġresults [ 0 ] ĊĠĠĠĠĠĠĠ Ġaddress . latitude Ġ= Ġresult . geometry . location . lat ĊĠĠĠĠĠĠĠ Ġaddress . longitude Ġ= Ġresult . geometry . location . lng ĊĠĠĠĠĠĠĠ Ġaddress . address For Display Ġ= Ġresult . formatted Address ĊĠĠĠĠĠĠĠ Ġvar Ġstreet Number Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġstreet Name Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġresult . address Components . forEach Ġ{ Ġcomponent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . types . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" street _ number " Ġ-> Ġstreet Number Ġ= Ġcomponent . long Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" route " Ġ-> Ġstreet Name Ġ= Ġcomponent . long Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" locality " Ġ-> Ġaddress . city Ġ= Ġcomponent . long Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" administr ative _ area _ level _ 1 " Ġ-> Ġaddress . state Ġ= Ġcomponent . short Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" country " Ġ-> Ġaddress . country Ġ= Ġcomponent . long Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" postal _ code " Ġ-> Ġaddress . postal Code Ġ= Ġcomponent . long Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" neighbor hood " Ġ-> Ġneighborhood Ġ= Ġif ( neighbor hood . isEmpty ()) Ġcomponent . long Name Ġelse Ġneighborhood ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġaddress . ne ighbour hood Ġ= Ġif ( neighbor hood . isEmpty ()) Ġaddress . city Ġelse Ġneighborhood ĊĠĠĠĠĠĠĠ Ġaddress . street Ġ= Ġ"$ street Number Ġ$ street Name " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Bitmap Map ( map Url : ĠURL ){ ĊĠĠĠĠĠĠĠ ĠBitmap Downloader ( this ). execute ( map Url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġemit Result Add Property To View (){ ĊĠĠĠĠĠĠĠ Ġif ( addProperty Job ?. isActive Ġ== Ġtrue ) Ġadd Property Job ?. cancel () ĊĠĠĠĠĠĠĠ Ġif ( addProperty Data Job ?. isActive Ġ== Ġtrue ) Ġadd Property Data Job ?. cancel () ĊĊĠĠĠĠĠĠĠ Ġval Ġnew P ictures Ġ= Ġmutable ListOf < Picture >() ĊĠĠĠĠĠĠĠ Ġval Ġpictures ToUpdate Ġ= Ġmutable ListOf < Picture >() ĊĠĠĠĠĠĠĠ Ġval Ġpicture ToDelete Ġ= Ġmutable ListOf < Picture >() ĊĠĠĠĠĠĠĠ Ġval Ġerror On Property Creation Ġ= Ġmutable ListOf < Error Source Add Property >() ĊĊĠĠĠĠĠĠĠ Ġfun Ġemit Result (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ= Ġif ( error On Property Creation . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ PROPERTY Ġ-> Ġsave Data Repository . sub Property Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMODIFY _ PROPERTY Ġ-> Ġsave Data Repository . save Modified Property ( null , Ġproperty . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoading Content Error . Content ( Add Property Result . Property Added To DB Result ( null )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoading Content Error . Error ( Add Property Result . Property Added To DB Result ( error On Property Creation )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult To ViewState ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Property And Data In DB (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property Data Job Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Repository . create Property And Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty , Ġnew P ictures , Ġpicture ToDelete , Ġpictures ToUpdate , Ġam en ities , Ġaddress , Ġaction Type , Ġprevious A men ities ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġemit Result () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror On Property Creation . add ( UPLOAD _ DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit Result () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġorder P ictures (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( action Type Ġ== ĠMODIFY _ PROPERTY Ġ&& Ġprevious P ictures . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpictures . forEach Ġ{ Ġpicture Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprevious Picture Ġ= Ġprevious P ictures . find { Ġit . id Ġ== Ġpicture . id } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( previous Picture Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpictures ToUpdate . add ( picture ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew P ictures . add ( picture ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious P ictures . forEach Ġ{ picture Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! pictures . any Ġ{ Ġit . id Ġ== Ġpicture . id Ġ}) Ġpicture ToDelete . add ( picture ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew P ictures . addAll ( pictures ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġorder P ictures () ĊĠĠĠĠĠĠĠ Ġcreate Property And Data In DB () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġemit Error From Inputs (){ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ= ĠLoading Content Error . Error ( Add Property Result . Property Added To DB Result ( list Error Inputs )) ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠFETCH ĠAG ENTS ĊĠĠĠ Ġ// -------------------- ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Agents From DB (){ ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( Loading Content Error . Loading ()) ĊĊĠĠĠĠĠĠĠ Ġif ( search Agents Job ?. isActive Ġ== Ġtrue ) Ġsearch Agents Job ?. cancel () ĊĊĠĠĠĠĠĠĠ Ġsearch Agents Job Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġagents : ĠList < Agent >? Ġ= Ġagent Repository . getAll Agents () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ= Ġif ( agents Ġ== Ġnull Ġ|| Ġagents . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Errors Ġ= ĠlistOf ( ERROR _ FETCH ING _ AGENT S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoading Content Error . Error ( Add Property Result . List Agents Result ( null , Ġlist Errors )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoading Content Error . Content ( Add Property Result . List Agents Result ( agents , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult To ViewState ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠSAVE ĠFOR ĠL ATER ĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġprivate Ġfun Ġsave Property For Later ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠString , Ġprice : ĠDouble ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsurface : ĠDouble ?, Ġrooms : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbed rooms : ĠInt ?, Ġb ath rooms : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription : ĠString , Ġaddress : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneighborhood : ĠString , Ġon Market Since : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis S old : ĠBoolean , Ġsell On : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġam en ities : ĠList < Type Facility > ĊĠĠĠ Ġ){ ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( Loading Content Error . Loading ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtemp Property Ġ= ĠSub Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġproperty Id , Ġtype Ġ= Ġtype , Ġprice Ġ= Ġprice , Ġsurface Ġ= Ġsurface , Ġrooms Ġ= Ġrooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbed rooms Ġ= Ġbed rooms , Ġb ath rooms Ġ= Ġb ath rooms , Ġdescription Ġ= Ġdescription , Ġon Market Since Ġ= Ġon Market Since , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis S old Ġ= Ġis S old , Ġsell Date Ġ= Ġsell On , Ġagent Ġ= Ġagent Id , Ġaddress Ġ= Ġaddress , Ġneighborhood Ġ= Ġneighborhood , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpictures Ġ= Ġpictures , Ġam en ities Ġ= Ġam en ities ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġwhen ( action Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ PROPERTY Ġ-> Ġsave Data Repository . sub Property Ġ= Ġtemp Property ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODIFY _ PROPERTY Ġ-> Ġsave Data Repository . save Modified Property ( temp Property , Ġproperty Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ= ĠLoading Content Error . Content ( Add Property Result . Property Added To Draft Result ) ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( result ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠFETCH ĠS AV ED ĠPROPERTY ĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġprivate Ġfun Ġfetch Saved Property (){ ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( Loading Content Error . Loading ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġsaved Property Ġ= Ġwhen ( action Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ PROPERTY Ġ-> Ġsave Data Repository . sub Property ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODIFY _ PROPERTY Ġ-> Ġsave Data Repository . get Saved Modify Property ( property Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġagent : ĠAgent ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġemit Result (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Original Available Ġ= Ġaction Type Ġ== ĠMODIFY _ PROPERTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ Ġ= ĠLoading Content Error . Content ( Add Property Result . Property From Draft Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved Property !!. type , Ġsaved Property . price , Ġsaved Property . surface , Ġsaved Property . rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved Property . bed rooms , Ġsaved Property . b ath rooms , Ġsaved Property . description , Ġsaved Property . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved Property . neighbor hood , Ġsaved Property . on Market Since , Ġsaved Property . is S old , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved Property . sell Date , Ġsaved Property . amen ities , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent , Ġis Original Available ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult To View Effect ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( saved Property Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( action Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMODIFY _ PROPERTY Ġ-> Ġfetch Existing Property From DB () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ PROPERTY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > Ġ= ĠLoading Content Error . Content ( Add Property Result . New Property Result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult To ViewState ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Id Ġ= Ġsaved Property . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagent Id Ġ= Ġsaved Property . agent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagent Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Agents Job Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent Ġ= Ġagent Repository . get Agent ( it )[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit Result () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpictures Ġ= Ġsaved Property . pictures . sorted By Ġ{ Ġpicture Ġ-> Ġpicture . order Number Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit Result Picture Modification () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// -------------------- ĊĠĠĠ Ġ// ĠFETCH ĠEX ISING ĠPROPERTY ĊĠĠĠ Ġ// -------------------- ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Existing Property From DB (){ ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( Loading Content Error . Loading ()) ĊĠĠĠĠĠĠĠ Ġif ( search Agents Job ?. isActive Ġ== Ġtrue ) Ġsearch Agents Job ?. cancel () ĊĊĠĠĠĠĠĠĠ Ġvar Ġagent : ĠAgent ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġemit Result (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠLoading Content Error < Add Property Result > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= ĠLoading Content Error . Content ( Add Property Result . Property From DB Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . type . typeName , Ġproperty . price , Ġproperty . surface , Ġproperty . rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . bed rooms , Ġproperty . b ath rooms , Ġproperty . description , Ġaddress . address For Display , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress . ne ighbour hood , Ġproperty . on Market Since . toString For Display (), Ġproperty . sold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . sell Date ?. toString For Display (), Ġprevious A men ities . map Ġ{ Ġit . type Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent , Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult To View Effect ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfetch Agent (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Agents Job Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent Ġ= Ġagent Repository . get Agent ( agent Id !! )[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit Result () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfetch Agent () ĊĠĠĠĠĠĠĠ Ġfetch Picture Existing Picture From DB () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Picture Existing Picture From DB (){ ĊĠĠĠĠĠĠĠ Ġresult To ViewState ( Loading Content Error . Loading ()) ĊĠĠĠĠĠĠĠ Ġpictures Ġ= Ġprevious P ictures . sorted By Ġ{ Ġit . order Number Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠ Ġemit Result Picture Modification () ĊĊĠĠĠ Ġ} Ċ Ċ }