package Ġsoftware . or ping ton . ro z klad mp k . route Details Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . eth anh ua . skeleton . Skeleton Ċ import Ġcom . eth anh ua . skeleton . Skeleton Screen Ċ import Ġkotlinx . android . synt hetic . main . error _ view . view .* Ċ import Ġkotlinx . android . synt hetic . main . route _ directions .* Ċ import Ġsoftware . or ping ton . ro z klad mp k . R Ċ import Ġsoftware . or ping ton . ro z klad mp k . utils . after Measured Ċ Ċ class ĠRoute Directions Fragment Ġ: ĠFragment (), ĠRoute Details Contract . Directions View Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠRoute Directions Adapter ĊĠĠĠ Ġprivate Ġvar Ġpresenter : ĠRoute Details Contract . Presenter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshared Preferences : ĠSharedPreferences ĊĠĠĠ Ġ// ĠTODO ? Ġclear Ġpresenter Ġwhen Ġfragment Ġdies ĊĊĠĠĠ Ġoverride Ġfun Ġattach Presenter ( new Presenter : ĠRoute Details Contract . Presenter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= Ġnew Presenter ĊĠĠĠĠĠĠĠ Ġpresenter !!. attach Directions View ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . route _ directions , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter ?. detach Directions View () ĊĠĠĠĠĠĠĠ ĠprogressBar Handler . remove Callbacks And Messages ( null ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠRoute Directions Adapter ( context !! , Ġpresenter !! ) ĊĠĠĠĠĠĠĠ Ġshared Preferences Ġ= Ġcontext !!. get SharedPreferences (" PRE F ", ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠĠĠĠĠ Ġroute Directions _ recyclerview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġthis @ Route Directions Fragment . adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġerror Layout . try Again Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter ?. load Route Directions () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġpresenter ?. load Route Directions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Route Directions ( route Directions : ĠList < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavour ite Directions : ĠSet < Int >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidx To Highlight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . set Items ( route Directions ) ĊĠĠĠĠĠĠĠ Ġadapter . set F avour ites ( fav our ite Directions ) ĊĠĠĠĠĠĠĠ Ġif Ġ( idx To Highlight Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroute Directions _ recyclerview . after Measured Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight Direction ( idx To Highlight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġskeleton Screen : ĠS keleton Screen ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠprogressBar Handler Ġ= ĠHandler () ĊĠĠĠ Ġoverride Ġfun Ġshow ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġroute Directions _ recyclerview ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġerror Layout ?. visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġval Ġrunnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskeleton Screen Ġ= ĠS keleton ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind ( route Directions _ recyclerview ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. adapter ( adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . layout . route _ directions _ skeleton _ list _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠprogressBar Handler . post Delayed ( run nable , Ġ 5 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġroute Directions _ recyclerview ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġerror Layout ?. visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ ĠprogressBar Handler . remove Callbacks And Messages ( null ) ĊĠĠĠĠĠĠĠ Ġskeleton Screen ?. hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreport That Something W ent Wrong () Ġ{ ĊĠĠĠĠĠĠĠ Ġroute Directions _ recyclerview ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġerror Layout ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhighlight Direction ( direction Idx : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . setItem To Highlight ( direction Idx ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget F avour ite Key ( route ID : ĠString , Ġstop Name : ĠString , Ġis Bus : ĠBoolean ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvehicle Ġ= Ġif ( is Bus ) Ġ" bus " Ġelse Ġ" tr am " ĊĠĠĠĠĠĠĠ Ġreturn Ġ" fav _${ route ID }_${ stop Name }_${ vehicle }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget F avour ite Directions ( route ID : ĠString , Ġstop Name : ĠString , Ġis Bus : ĠBoolean ): ĠSet < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġget F avour ite Key ( route ID , Ġstop Name , Ġis Bus ) ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . getString Set ( key , Ġset Of ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset F avour ite Directions ( ĊĠĠĠĠĠĠĠ Ġroute ID : ĠString , ĊĠĠĠĠĠĠĠ Ġstop Name : ĠString , ĊĠĠĠĠĠĠĠ Ġis Bus : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġfavour ites : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġfavour ites Indices : ĠSet < Int > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġget F avour ite Key ( route ID , Ġstop Name , Ġis Bus ) ĊĠĠĠĠĠĠĠ Ġshared Preferences ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString Set ( key , Ġfavour ites ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠĠĠĠĠ Ġadapter . set F avour ites ( fav our ites Indices ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠRoute Directions Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoute Directions Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }