package Ġcom . example . kh j _ pc . ga on n uri . Activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 7 . app . ActionBar Drawer Toggle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġcom . example . kh j _ pc . ga on n uri . Adapter . Board RecyclerView Adapter Ċ import Ġcom . example . kh j _ pc . ga on n uri . Adapter . Detail View Page Adapter Ċ import Ġcom . example . kh j _ pc . ga on n uri . Data . Board Ċ import Ġcom . example . kh j _ pc . ga on n uri . Listener . Detail Navigation Listener Ċ import Ġcom . example . kh j _ pc . ga on n uri . Data . Single Room Result Ċ import Ġcom . example . kh j _ pc . ga on n uri . R Ċ import Ġkotlinx . android . synt hetic . main . activity _ detail .* Ċ import Ġcom . example . kh j _ pc . ga on n uri . Service . Post Service Ċ import Ġcom . example . kh j _ pc . ga on n uri . Service . Room Service Ċ import Ġcom . example . kh j _ pc . ga on n uri . Util . Ret rofit Util Ċ import Ġcom . example . kh j _ pc . ga on n uri . Util . Shared Preference Util Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ detail .* Ċ import Ġkotlinx . android . synt hetic . main . content _ detail .* Ċ import Ġkotlinx . android . synt hetic . main . content _ board .* Ċ import Ġkotlinx . android . synt hetic . main . nav _ header _ main . view .* Ċ import Ġorg . jetbrains . ank o . toast Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠDetail Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġboards Ġ: ĠArrayList < Board > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġimg Url Ġ: ĠArrayList < String > Ġ= ĠArrayList () ĊĊĠĠĠ Ġlateinit Ġvar Ġid Ġ: ĠString ĊĠĠĠ Ġlateinit Ġvar Ġroom Ġ: ĠSingle Room Result ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ: ĠString Ġ= ĠDetail Activity :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ detail ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( detail _ toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġid Ġ= Ġintent . getString Extra (" id ") ĊĠĠĠĠĠĠĠ Ġset Navigation Drawer () ĊĠĠĠĠĠĠĠ Ġset Listeners () ĊĠĠĠĠĠĠĠ Ġload Top Three () ĊĠĠĠĠĠĠĠ Ġload Data () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Navigation Drawer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġdetail _ drawer Layout , Ġdetail _ toolbar , ĠR . string . navigation _ drawer _ open , ĠR . string . navigation _ drawer _ close ) ĊĠĠĠĠĠĠĠ Ġdetail _ drawer Layout . add Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĠĠĠĠĠĠĠ Ġval Ġnavigation Listener Ġ: ĠDetail Navigation Listener Ġ= ĠDetail Navigation Listener ( this , Ġdetail _ drawer Layout ) ĊĠĠĠĠĠĠĠ Ġnavigation Listener . id Ġ= Ġthis . id ĊĠĠĠĠĠĠĠ Ġdetail _ nav _ view . set Navigation ItemSelected Listener ( navigation Listener ) ĊĠĠĠĠĠĠĠ Ġdetail _ nav _ view . getHeader View ( 0 ). name . text Ġ= ĠShared Preference Util . get Preference ( application Context , Ġ" name ") !! ĊĠĠĠĠĠĠĠ Ġdetail _ nav _ view . getHeader View ( 0 ). id Text . text Ġ= ĠShared Preference Util . get Preference ( application Context , Ġ" username ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Top Three () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpost Service Ġ: ĠPost Service Ġ= ĠRet rofit Util . get Login Ret rofit ( application Context ). create ( Post Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġvar Ġcall Ġ: ĠCall < ArrayList < Board >> Ġ= Ġpost Service . get Top Three ( id ) ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < ArrayList < Board >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < ArrayList < Board >> ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġt . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < ArrayList < Board >> ?, Ġresponse : ĠResponse < ArrayList < Board >> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response !!. body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" code Ġ: Ġ${ response . code () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( response . code ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboards Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset RecyclerView () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" error Ġcode Ġ: Ġ${ response . code () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" ë¶ Ī ëŁ¬ Ġìĺ ¬ ĠìĿ¸ ê¸° Ġê² Į ìĭľ ê¸ ĢìĿ´ ĠìĹĨ ìĬµëĭĪëĭ¤ .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġhome _ button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent : ĠIntent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Detail ViewPager (){ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġimg Url . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġs Ġ: ĠString Ġ= Ġimg Url [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġurl Ġ: ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( s . contains (" http ") Ġ|| Ġs . contains (" HTTP ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" http :// 1 3 . 1 2 5 . 1 0 3 . 2 3 7 : 2 3 0 0 2 / images /$ s " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg Url . set ( i , Ġurl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdetail _ view pager . adapter Ġ= ĠDetail View Page Adapter ( img Url , Ġthis ) ĊĠĠĠĠĠĠĠ Ġdetail _ tab layout . setup With ViewPager ( detail _ view pager , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠBoard RecyclerView Adapter ( this , Ġboards ) ĊĠĠĠĠĠĠĠ Ġboard _ recyclerview . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġboard _ recyclerview . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( detail _ drawer Layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetail _ drawer Layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠĠĠĠĠ Ġload Top Three () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġroom Service Ġ: ĠRoom Service Ġ= ĠRet rofit Util . get Login Ret rofit ( application Context ). create ( Room Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġvar Ġcall Ġ: ĠCall < Single Room Result > Ġ= Ġroom Service . get Single Room Info ( id ) ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Single Room Result > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Single Room Result >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġt . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Single Room Result >, Ġresponse : ĠResponse < Single Room Result >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( response . code ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroom Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Url Ġ= ĠArrayList ( room . images ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( room . title . length Ġ> Ġ 7 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquest Name . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquest Name . text Size Ġ= Ġ 3 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquest Name . text Ġ= Ġroom . title ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Detail ViewPager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" íķ´ ëĭ¹ íķĺëĬĶ Ġid ê°Ģ ĠìĹĨ ìĬµëĭĪëĭ¤ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Server ĠError !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }