package Ġio . case y . mus ik cube . remote . ui . play queue . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . simple city apps . recyclerview _ fast scroll . views . Fast Scroll RecyclerView Ċ import Ġio . case y . mus ik cube . remote . R Ċ import Ġio . case y . mus ik cube . remote . service . websocket . model . IM et adata Proxy Ċ import Ġio . case y . mus ik cube . remote . service . websocket . model . IT rack Ċ import Ġio . case y . mus ik cube . remote . ui . play queue . adapter . Play Queue Adapter Ċ import Ġio . case y . mus ik cube . remote . ui . play queue . constant . Play Queue Ċ import Ġio . case y . mus ik cube . remote . ui . shared . activity . IT itle Provider Ċ import Ġio . case y . mus ik cube . remote . ui . shared . extension . get Layout Id Ċ import Ġio . case y . mus ik cube . remote . ui . shared . extension . setup Default RecyclerView Ċ import Ġio . case y . mus ik cube . remote . ui . shared . fragment . Base Fragment Ċ import Ġio . case y . mus ik cube . remote . ui . shared . mixin . Item ContextMenu Mixin Ċ import Ġio . case y . mus ik cube . remote . ui . shared . mixin . Metadata Proxy Mixin Ċ import Ġio . case y . mus ik cube . remote . ui . shared . mixin . Playback Mixin Ċ import Ġio . case y . mus ik cube . remote . ui . shared . model . Default Sl iding Window Ċ import Ġio . case y . mus ik cube . remote . ui . shared . model . IT rack List Sl iding Window Ċ import Ġio . case y . mus ik cube . remote . ui . shared . view . Empty ListView Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ Ċ class ĠPlay Queue Fragment : ĠBase Fragment (), ĠI Title Provider Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġoffline Queue : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdata : ĠMetadata Proxy Mixin ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġplayback : ĠPlay back Mixin ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtracks : ĠDefault Sl iding Window ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠPlay Queue Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġempty View : ĠEmpty ListView ĊĊĠĠĠ Ġoverride Ġval Ġtitle : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠgetString ( R . string . play _ queue _ title ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponent . inject ( this ) ĊĠĠĠĠĠĠĠ Ġdata Ġ= Ġmixin ( Metadata Proxy Mixin ()) ĊĠĠĠĠĠĠĠ Ġplayback Ġ= Ġmixin ( Playback Mixin ( playback Events )) ĊĠĠĠĠĠĠĠ Ġmixin ( Item ContextMenu Mixin ( app Compat Activity , Ġnull , Ġthis )) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ= ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( this . get Layout Id (), Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Factory Ġ= Ġplayback . service . playlist Query Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffline Queue Ġ= Ġplayback . service . playlist Query Factory . offline () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= ĠfindViewById < Fast Scroll RecyclerView >( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracks Ġ= ĠDefault Sl iding Window ( re cyclerView , Ġdata . provider , Ġquery Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracks . setInitial Position ( extras . getInt ( Play Queue . Extra . PLAY ING _ INDEX , Ġ- 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracks . setOn Metadata Loaded Listener ( sl iding WindowListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠPlay Queue Adapter ( tracks , Ġplayback , Ġprefs , Ġadapter Listener ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Default RecyclerView ( re cyclerView , Ġadapter ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View Ġ= ĠfindViewById ( R . id . empty _ list _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . capability Ġ= ĠEmpty ListView . Capability . Offline Ok ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . empty Message Ġ= ĠgetString ( R . string . play _ queue _ empty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . alternate View Ġ= Ġre cyclerView ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġthis . tracks . pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . tracks . resume () Ġ/* Ġneeds Ġto Ġhappen Ġbefore Ġ*/ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( offline Queue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracks . re query () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Init Observable s () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( data . provider . observe State (). subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ Ġstates Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( states . first Ġ== ĠI Metadata Proxy . State . Connected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtracks . re query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . update ( states . first , Ġadapter . item Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġadapter Listener Ġ= Ġobject : ĠPlay Queue Adapter . EventListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( position : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayback . service . play At ( position ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Action Clicked ( view : ĠView , Ġvalue : ĠI Track ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmixin ( Item ContextMenu Mixin :: class . java )?. show For Track ( value , Ġview ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġplayback Events Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( adapter . item Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracks . re query () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsl iding WindowListener Ġ= Ġobject Ġ: ĠI Track List Sl iding Window . On Metadata Loaded Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Re loaded ( count : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . update ( data . provider . state , Ġcount ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Metadata Loaded ( offset : ĠInt , Ġcount : ĠInt ) Ġ= ĠUnit ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Play Queue Fragment " ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( playing Index : ĠInt ): ĠPlay Queue Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlay Queue Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( Play Queue . Extra . PLAY ING _ INDEX , Ġplaying Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }