package Ġcom . robert . android . lost pe ts . presentation . ui . activities Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . text . Input Filter Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback Ċ import Ġcom . google . android . gms . maps . model . Camera Position Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġcom . robert . android . lost pe ts . R Ċ import Ġcom . robert . android . lost pe ts . domain . model . Ad Ċ import Ġcom . robert . android . lost pe ts . domain . model . User Ċ import Ġcom . robert . android . lost pe ts . domain . model . types . Pet Status Ċ import Ġcom . robert . android . lost pe ts . domain . model . types . Sex Ċ import Ġcom . robert . android . lost pe ts . network . Service Generator Ċ import Ġcom . robert . android . lost pe ts . presentation . ui . activities . base . Abstract Activity Ċ import Ġcom . robert . android . lost pe ts . presentation . ui . adapters . Ads ListAdapter Ċ import Ġcom . robert . android . lost pe ts . presentation . ui . fragments . Scroll able Map Fragment Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . activity _ ad _ detail .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar .* Ċ import Ġorg . jetbrains . ank o . intent For Ċ Ċ /** Ċ Ġ* ĠActivity Ġque Ġext ien de Ġla Ġclase ĠAbstract Activity . ĠEs Ġel Ġcontrol ador Ġque Ġse Ġenc arga Ġde Ġman e jar Ġla Ċ Ġ* Ġv ista Ġcorrespon di ente Ġal Ġdet alle Ġde Ġlos Ġan unc ios Ġde Ġmas cot as Ġper did as . Ċ Ġ* Ċ Ġ* Ġ@ author ĠRobert ĠE ne Ċ Ġ* Ġ@ see Ġcom . robert . android . lost pe ts . presentation . ui . activities . base . Abstract Activity Ċ Ġ*/ Ċ class ĠAd Detail Activity Ġ: ĠAbstract Activity (), ĠOn Map Ready Callback , ĊĠĠĠĠĠĠĠ ĠScroll able Map Fragment . On Touch Listener Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER Ġ= Ġ" Ad Detail Activity :: User " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD Ġ= Ġ" Ad Detail Activity :: Ad " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCH AT _ REQUEST _ CODE Ġ= Ġ 1 8 4 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAM ERA _ POSITION _ ZO OM Ġ= Ġ 1 5 F ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm User : ĠUser ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Ad : ĠAd ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Map : ĠGoogle Map ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ ad _ detail ) ĊĠĠĠĠĠĠĠ Ġload Extras () ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( map : ĠGoogle Map ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Map Ġ= Ġmap Ġas ĠGoogle Map ĊĠĠĠĠĠĠĠ Ġm Map . map Type Ġ= ĠGoogle Map . MAP _ TYPE _ NORMAL ĊĠĠĠĠĠĠĠ Ġm Map . ui Settings . is Zoom Controls Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Map . ui Settings . is Comp ass Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Map . ui Settings . isIn door Level Picker Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Map . ui Settings . is Map Toolbar Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Map . ui Settings . set All Gest ures Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmarker Title Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . map _ marker _ title _ ad _ detail ), Ġm Ad . pet . name ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlast Spot ted Coords Ġ= Ġcom . google . android . gms . maps . model . LatLng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Ad . last Spot ted Coords . latitude , Ġm Ad . last Spot ted Coords . longitude ) ĊĠĠĠĠĠĠĠ Ġm Map . add Marker ( Marker Options (). position ( last Spot ted Coords ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( marker Title )). show Info Window () ĊĊĠĠĠĠĠĠĠ Ġval Ġcamera Position Ġ= ĠCamera Position . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. target ( last Spot ted Coords ). zoom ( CAMERA _ POSITION _ ZO OM ). build () ĊĠĠĠĠĠĠĠ Ġm Map . animate Camera ( Camera Update Factory . new Camera Position ( camera Position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch () Ġ{ ĊĠĠĠĠĠĠĠ Ġad Detail ScrollView . request Dis allow Intercept Touch Event ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Extras () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( intent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm User Ġ= Ġget Parcelable Extra ( USER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Ad Ġ= Ġget Parcelable Extra ( AD ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . setTitle ( R . string . ad _ detail _ activity _ toolbar _ title ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġimg Url Ġ= Ġ"${ Service Generator . API _ BASE _ URL }${ m Ad . photo }" ĊĠĠĠĠĠĠĠ ĠPic asso . get (). load ( img Url ). into ( update Ad Pet ImageView ) ĊĊĠĠĠĠĠĠĠ Ġpet Status EditText . filters Ġ= Ġpet Status EditText . filters Ġ+ ĠInput Filter . All Caps () ĊĠĠĠĠĠĠĠ Ġif Ġ( m Ad . pet Status Ġ== ĠPet Status . FOUND ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpet Status EditText . setText ( getString ( R . string . ad _ pet _ status _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpet Status EditText . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . color Success )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeeling Pet Status ImageView . setImage Resource ( R . drawable . ic _ smile ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpet Status EditText . setText ( getString ( R . string . ad _ pet _ status _ lost )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpet Status EditText . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . color D anger )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeeling Pet Status ImageView . setImage Resource ( R . drawable . ic _ sad ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcode EditText . setText ( m Ad . code ) ĊĠĠĠĠĠĠĠ Ġupdate Ad Ob servations EditText . setText ( m Ad . observations ) ĊĠĠĠĠĠĠĠ Ġad Date EditText . setText ( Ads ListAdapter . format Ad Long Date ( m Ad . date )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmap Fragment Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Fragment ById ( R . id . map Fragment ) Ġas ĠScroll able Map Fragment ĊĠĠĠĠĠĠĠ Ġmap Fragment . setOn Touch Listener ( this ) ĊĠĠĠĠĠĠĠ Ġmap Fragment . getMap Async ( this ) ĊĊĠĠĠĠĠĠĠ Ġad Reward EditText . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( getString ( R . string . ad _ reward ), Ġm Ad . reward )) ĊĊĠĠĠĠĠĠĠ Ġad Pet Name EditText . setText ( m Ad . pet . name ) ĊĠĠĠĠĠĠĠ Ġupdate Ad Pet Type EditText . setText ( m Ad . pet . type ) ĊĠĠĠĠĠĠĠ Ġupdate Ad Pet Race EditText . setText ( m Ad . pet . race ) ĊĊĠĠĠĠĠĠĠ Ġsex EditText . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Ad . pet . sex Ġ== ĠS ex . M ALE ) ĠgetString ( R . string . ad _ detail _ pet _ sex _ male ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠgetString ( R . string . ad _ detail _ pet _ sex _ female )) ĊĊĠĠĠĠĠĠĠ Ġupdate Ad Pet Colour EditText . setText ( m Ad . pet . colour ) ĊĠĠĠĠĠĠĠ Ġupdate Ad Pet Micro chip Id EditText . setText ( m Ad . pet . micro chip Id ) ĊĊĠĠĠĠĠĠĠ ĠfirstName EditText . setText ( m Ad . user . firstName ) ĊĠĠĠĠĠĠĠ ĠlastName EditText . setText ( m Ad . user . lastName ) ĊĠĠĠĠĠĠĠ Ġemail EditText . setText ( m Ad . user . email ) ĊĠĠĠĠĠĠĠ Ġphone EditText . setText ( m Ad . user . phone ) ĊĊĠĠĠĠĠĠĠ Ġsend Email Button . isEnabled Ġ= Ġm User Ġ!= Ġm Ad . user ĊĠĠĠĠĠĠĠ Ġcall Button . isEnabled Ġ= Ġm User Ġ!= Ġm Ad . user ĊĠĠĠĠĠĠĠ Ġchat Button . isEnabled Ġ= Ġm User Ġ!= Ġm Ad . user ĊĊĠĠĠĠĠĠĠ Ġsend Email Button . setOnClickListener Ġ{ ĠonClick Email () Ġ} ĊĠĠĠĠĠĠĠ Ġcall Button . setOnClickListener Ġ{ ĠonClick Phone () Ġ} ĊĠĠĠĠĠĠĠ Ġchat Button . setOnClickListener Ġ{ ĠonClick Chat () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Email () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ SEND TO , ĠUri . parse (" mailto :${ m Ad . user . email } ")) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . resolve Activity ( package Manager ) Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Phone () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ DI AL , ĠUri . parse (" tel :${ m Ad . user . phone } ")) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . resolve Activity ( package Manager ) Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Chat () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent For < MainActivity >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . CHAT _ FROM _ OUT SIDE Ġto ĠMainActivity . CHAT _ FROM _ OUT SIDE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . USER _ TO _ CHAT Ġto Ġm Ad . user ) ĊĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ } Ċ