/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠLi am ĠN ie hus - St aab Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . nie hus st . party q . services Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . nie hus st . party q . network . Status Ċ import Ġcom . nie hus st . party q . network . models . api . Item Ċ import Ġcom . nie hus st . party q . network . models . api . SearchResult Ċ import Ġcom . nie hus st . party q . network . models . api . Tracks Ċ Ċ object ĠSearch Result Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ status Ġ= ĠMutable LiveData ( Status . NO _ ACTION ) ĊĠĠĠ Ġval Ġstatus : ĠLive Data < Status > Ġ= Ġ_ status ĊĊĠĠĠ Ġprivate Ġval Ġ_ search Result S ongs Ġ= ĠMutable LiveData < List < Item >>( listOf ()) ĊĠĠĠ Ġval Ġsearch Result S ongs : ĠLive Data < List < Item >> Ġ= Ġ_ search Result S ongs ĊĊĠĠĠ Ġvar Ġsearch Result : ĠTrack s ? Ġ= Ġnull Ġ// ĠProvides Ġinfo Ġabout ĠAPI Ġpaging ĊĊĠĠĠ Ġfun Ġupdate SearchResults ( res : ĠSearch Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġget Ġjust Ġthe Ġtrack Ġitems . ĠFilter Ġout Ġduplicate ĠURIs ĊĠĠĠĠĠĠĠ Ġsearch Result Ġ= Ġres . tracks ĊĠĠĠĠĠĠĠ Ġvar Ġsongs Ġ= Ġres . tracks ?. items Ġ?: ĠlistOf () ĊĠĠĠĠĠĠĠ Ġsongs Ġ= Ġsongs . distinct By Ġ{ Ġit . uri Ġ} ĊĠĠĠĠĠĠĠ Ġ_ search Result S ongs . post Value ( songs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetStatus ( status : ĠStatus ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ status . post Value ( status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Search () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ search Result S ongs . post Value ( listOf ()) ĊĠĠĠĠĠĠĠ Ġ_ status . post Value ( Status . NO _ ACTION ) ĊĠĠĠ Ġ} Ċ } Ċ