/* Ċ Ġ* ĠCopyright Ġ( C ) ĠĠ 2 0 2 0 ĠMe Uu S 9 0 Ċ Ġ* Ċ Ġ* Ġ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 . network . cle ver . data . repository . item Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . me u us . base . network . Network Bound Resource Ċ import Ġcom . me u us . base . network . Resource Ċ import Ġcom . me u us . base . utility . Query Ċ import Ġcom . me u us . base . utility . Single Live Event Ċ import Ġcom . network . cle ver . constant . AppConfig Ċ import Ġcom . network . cle ver . data . datasource . model . item . Music ListModel Ċ import Ġcom . network . cle ver . data . repository . Base Repository Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠMusic Repository Ċ @ Inject Ċ constructor () Ġ: ĠBase Repository < Query >() Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġwork ( live Data : ĠMutable LiveData < Query >): ĠSingle Live Event < Resource > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Bound Resource < Music ListModel , ĠMusic ListModel >( live Data . value ?. bound Type !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo Network Job () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyoutube API . getM us ics ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . value ?. params ?. get ( 0 ) Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" snippet ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Config . apiKey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Network Error ( errorMessage : ĠString ?, ĠerrorCode : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e (" Network - Error : Ġ$ errorMessage ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Fetch Failed ( failed Message : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e (" Fetch - Failed : Ġ$ failed Message ") ĊĠĠĠĠĠĠĠ Ġ}. getAs Single Live Event () ĊĠĠĠ Ġ} Ċ }