package Ġcom . ep ite ch . vl cre m ote . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . widget . Swipe Refresh Layout Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġcom . ep ite ch . vl cre m ote . R Ċ import Ġcom . ep ite ch . vl cre m ote . adapters . Playlist RecyclerView Adapter Ċ import Ġcom . ep ite ch . vl cre m ote . models . Playlist Item Ċ import Ġcom . ep ite ch . vl cre m ote . models . Playlist Root Ċ import Ġcom . ep ite ch . vl cre m ote . services . Remote Service Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . fragment _ playlist . view .* Ċ Ċ /** Ċ * ĠCreated Ġby Ġin iter worker Ġon Ġ 0 5 / 0 2 / 1 8 . Ċ */ Ċ Ċ class ĠPlay List Fragment Ġ: ĠTab Fragment () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġswipe Refresh Layout : ĠSw ipe Refresh Layout ĊĠĠĠ Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġval ĠTAG : ĠString Ġ= Ġ" Play List Fragment " ĊĠĠĠ Ġvar Ġremote Service : ĠRemote Service ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠPlay List Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPlay List Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsw iper ĊĠĠĠĠĠĠĠ Ġswipe Refresh Layout Ġ= Ġinflater !!. inflate ( R . layout . fragment _ playlist , Ġcontainer , Ġfalse ) Ġas ĠSw ipe Refresh Layout ĊĠĠĠĠĠĠĠ Ġswipe Refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġre cycler ĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġswipe Refresh Layout . item list _ recycler ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġrefresh () ĊĠĠĠĠĠĠĠ Ġreturn Ġswipe Refresh Layout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Success ( playlist : ĠPlaylist Root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= ĠPlaylist RecyclerView Adapter ( playlist . children ! ![ 0 ] !! , Ġthis :: handle Click Item ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Error ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġt . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Click Item ( item : ĠPlaylist Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġremote Service ?. v lc Service !!. play Elem ( remote Service !!. connection . basic Token (), Ġitem . id . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Dispose Ġ{ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Complete Ġ{ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . new Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġrefresh () Ġ}, Ġthis :: handleError ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : Ġmake Ġsomething Ġmore Ġsafe Ġand Ġefficient ĊĠĠĠ Ġoverride Ġfun Ġrefresh () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" start Ġrefresh ...") ĊĠĠĠĠĠĠĠ Ġremote Service ?. v lc Service !!. get VL CP lay list ( remote Service !!. connection . basic Token ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Dispose Ġ{ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Complete Ġ{ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . new Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: handle Success , Ġthis :: handleError ) ĊĠĠĠ Ġ} Ċ }