package Ġuk . co . sentinel web . c uer . app . orche strator . memory . inter actor Ċ Ċ import Ġuk . co . sentinel web . c uer . app . db . repository . Playlist Item Database Repository Ċ import Ġuk . co . sentinel web . c uer . app . orche strator . Orche strator Contract Ċ import Ġuk . co . sentinel web . c uer . app . orche strator . memory . Playlist Memory Repository . Companion . LOCAL _ SEARCH _ PLAY LIST Ċ import Ġuk . co . sentinel web . c uer . app . util . prefs . General Preferences Ċ import Ġuk . co . sentinel web . c uer . app . util . prefs . General Preferences Wrapper Ċ import Ġuk . co . sentinel web . c uer . domain . Image Domain Ċ import Ġuk . co . sentinel web . c uer . domain . Playlist Domain Ċ import Ġuk . co . sentinel web . c uer . domain . Playlist Domain . Playlist Type Domain . APP Ċ import Ġuk . co . sentinel web . c uer . domain . Playlist Stat Domain Ċ import Ġuk . co . sentinel web . c uer . domain . Search Local Domain Ċ import Ġuk . co . sentinel web . c uer . domain . ext . de serial ise Search Local Ċ Ċ class ĠLocal Search Play ist Interactor Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġplaylist Item Database Repository : ĠPlaylist Item Database Repository , ĊĠĠĠ Ġprivate Ġval Ġprefs Wrapper : ĠGeneral Preferences Wrapper Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġsearch (): ĠSearch Local Domain ? Ġ= ĊĠĠĠĠĠĠĠ Ġprefs Wrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString ( General Preferences . LAST _ LOCAL _ SEARCH , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġde serial ise Search Local ( it ) Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Playlist (): ĠPlaylist Domain ? Ġ= ĊĠĠĠĠĠĠĠ Ġsearch () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġmap To Filter ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist Item Database Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load List ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take If Ġ{ Ġit . is Successful Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmake Search Header () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. copy ( items Ġ= Ġit . map Indexed Ġ{ Ġi , Ġplaylist Item Ġ-> Ġplaylist Item . copy () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmap To Filter ( search Domain : ĠSearch Local Domain ) Ġ= ĠO rche strator Contract . Search Filter ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġsearch Domain . text , ĊĠĠĠĠĠĠĠ Ġis W atched Ġ= Ġsearch Domain . is W atched , ĊĠĠĠĠĠĠĠ Ġis New Ġ= Ġsearch Domain . isNew , ĊĠĠĠĠĠĠĠ Ġis Live Ġ= Ġsearch Domain . is Live , ĊĠĠĠĠĠĠĠ Ġplaylist Ids Ġ= Ġif Ġ( search Domain . play lists . isEmpty ()) Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġsearch Domain . play lists . map NotNull Ġ{ Ġit . id Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġmake Search Header (): ĠPlaylist Domain Ġ= ĠPlaylist Domain ( ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠLOCAL _ SEARCH _ PLAY LIST , ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġmap Title (), ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠAPP , ĊĠĠĠĠĠĠĠ ĠcurrentIndex Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠ Ġstar red Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġimage Ġ= ĠImage Domain ( url Ġ= Ġ" gs :// c uer - 2 7 5 0 2 0 . app spot . com / playlist _ header / pex els - no elle - otto - 9 0 6 0 5 5 . jpg "), ĊĠĠĠĠĠĠĠ Ġconfig Ġ= ĠPlaylist Domain . Playlist Config Domain ( play able Ġ= Ġfalse , Ġeditable Ġ= Ġfalse ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġmap Title () Ġ= ĊĠĠĠĠĠĠĠ Ġ" Local ĠSearch : Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . text Ġ+ Ġit . play lists . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ" Ġ" Ġ+ Ġit . map Ġ{ Ġit . title Ġ} Ġelse Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġmake Search Items Stats (): ĠPlaylist Stat Domain Ġ= ĠPlaylist Stat Domain ( ĊĠĠĠĠĠĠĠ Ġplaylist Id Ġ= ĠLOCAL _ SEARCH _ PLAY LIST , ĊĠĠĠĠĠĠĠ Ġitem Count Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠ Ġw atched ItemCount Ġ= Ġ- 1 ĊĠĠĠ Ġ) Ċ }