package Ġcom . kos ala am Inc . kos ala am . feature . main . pr ayer Room Fragment . hotel Info Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . kos ala am Inc . kos ala am . R Ċ import Ġcom . kos ala am Inc . kos ala am . databinding . Activity Hotel Info Binding Ċ import Ġcom . kos ala am Inc . kos ala am . databinding . Activity Restaurant Info Binding Ċ import Ġcom . kos ala am Inc . kos ala am . feature . main . pr ayer Room Fragment . Image Rv Adapter Ċ import Ġcom . kos ala am Inc . kos ala am . feature . main . pr ayer Room Fragment . Pr ayer Room Fragment Ċ import Ġcom . kos ala am Inc . kos ala am . feature . main . pr ayer Room Fragment . restaurant Info . Restaurant Info Activity Ċ import Ġnet . da um . mf . map . api . Map PO I Item Ċ import Ġnet . da um . mf . map . api . Map Point Ċ import Ġnet . da um . mf . map . api . MapView Ċ Ċ class ĠHot el Info Activity Ġ: ĠAppCompatActivity (){ ĊĠĠĠ Ġvar Ġimages Ġ: ĠArrayList < String >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġmap View Ġ: ĠMap View ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġmap View Container Ġ: ĠRelative Layout ĊĠĠĠ Ġprivate Ġvar Ġheart Status Ġ: ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġvar Ġid Num Ġ: ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġuuid Ġ: ĠString ? Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding Ġ: ĠActivity Hotel Info Binding ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠHot el Info ViewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this ). get ( Hotel Info ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView < Activity Hotel Info Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĠR . layout . activity _ hotel _ info ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġthis @ Hotel Info Activity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhotel Info Vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinit ClickListener () ĊĠĠĠĠĠĠĠ Ġmap View Ġ= ĠMap View ( this ) ĊĠĠĠĠĠĠĠ Ġbinding !!. rl Restaurant Info Map view . addView ( map View ) ĊĠĠĠĠĠĠĠ ĠviewModel . hotel Data . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" pr ayer Room Info ", it . name . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View !!. set Map Center Point ( Map Point . map Point With Geo Coord ( it . latitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . longitude ), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmarker Ġ= ĠMap PO I Item () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker . apply { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Name Ġ= Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Type = ĠMap PO I Item . Marker Type . Red Pin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Point Ġ= ĠMap Point . map Point With Geo Coord ( it . latitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Custom Image Anchor ( 0 . 5 f , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . is Lik ed == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. iv Restaurant Info Heart . setImage Resource ( R . drawable . info _ heart _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheart Status = true ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. iv Restaurant Info Heart . setImage Resource ( R . drawable . info _ heart _ default ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheart Status = false ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Hotel inf om ation ", it . images Id ?. size . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . images Id != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . images Id !!. size !! Ġ> 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. it . images Id !!. size !! - 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages ?. add ( it . images Id !!. get ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Adapter Ġ= ĠImage Rv Adapter ( this , it . images Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. rv Gallery . adapter = image Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View !!. add PO I Item ( marker ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Open Time Insert . text Ġ= Ġit . opening Hours ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Name . text Ġ= Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Address . text Ġ= Ġit . address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Address 2 . text Ġ= Ġit . address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAff inity Ġnone ? ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . is M us lim Friendly == null Ġ|| Ġit . is M us lim Friendly == false ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. cl Restaurant Info Affinity . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 8 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 9 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 1 0 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 4 3 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 4 4 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. cl Room Equip . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Room Equip . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 4 1 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. view 4 2 Restaurant Info . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . pr ay Supp lies !!. is K oran == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Q uran . setTextColor ( Color . parse Color ("# f 1 f 1 f 5 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Q uran . background Ġ= Ġget Drawable ( R . drawable . login _ default back ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Q uran . setTextColor ( Color . parse Color ("# 9 9 9 9 9 9 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Q uran . background Ġ= Ġget Drawable ( R . drawable . pr ayer _ uncheck _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . pr ay Supp lies !!. is Mat == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Pr ayer Mat . setTextColor ( Color . parse Color ("# f 1 f 1 f 5 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Pr ayer Mat . background Ġ= Ġget Drawable ( R . drawable . login _ default back ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Pr ayer Mat . setTextColor ( Color . parse Color ("# 9 9 9 9 9 9 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Pr ayer Mat . background Ġ= Ġget Drawable ( R . drawable . pr ayer _ uncheck _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . pr ay Supp lies !!. is Q ib la == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Comp ass . setTextColor ( Color . parse Color ("# f 1 f 1 f 5 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Comp ass . background Ġ= Ġget Drawable ( R . drawable . login _ default back ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Comp ass . setTextColor ( Color . parse Color ("# 9 9 9 9 9 9 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room Comp ass . background Ġ= Ġget Drawable ( R . drawable . pr ayer _ uncheck _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . pr ay Supp lies !!. is W ashing Room == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room W ashing Room . setTextColor ( Color . parse Color ("# f 1 f 1 f 5 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room W ashing Room . background Ġ= Ġget Drawable ( R . drawable . login _ default back ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room W ashing Room . setTextColor ( Color . parse Color ("# 9 9 9 9 9 9 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Pr ayer Room W ashing Room . background Ġ= Ġget Drawable ( R . drawable . pr ayer _ uncheck _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Cert ify . text Ġ= Ġ" M us lim ĠFriend ly " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . phoneNumber == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Phone Num . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Phone Num . text Ġ= Ġit . phoneNumber ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . is Par king Log == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Par k Ab le Insert . text Ġ= Ġ" Available " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. tv Restaurant Info Par k Ab le Insert . text Ġ= Ġ" Unavailable " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . get Hotel Info ( id Num !! ) ĊĠĠĠĠĠĠĠ ĠviewModel . like Data . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it == true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheart Status = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. iv Restaurant Info Heart . setImage Resource ( R . drawable . info _ heart _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheart Status = false ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding !!. iv Restaurant Info Heart . setImage Resource ( R . drawable . info _ heart _ default ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding !!. rl Restaurant Info Map view . remove View ( map View ) ĊĠĠĠĠĠĠĠ ĠPr ayer Room Fragment . pageNum -- ĊĠĠĠĠĠĠĠ Ġsuper . finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ClickListener (){ ĊĠĠĠĠĠĠĠ Ġbinding !!. iv Restaurant Info Back Arrow . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding !!. iv Restaurant Info Heart . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( heart Status == false ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . hotel Like ( id Num ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . hotel Like Cancel ( id Num ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }