package Ġcom . cy l . music lake . api ĊĊ Ċ import Ġcom . cy l . music lake . api . baidu . B aid u Api ServiceImpl Ċ import Ġcom . cy l . music lake . bean . Music Ċ import Ġcom . cy l . music lake . common . Constants Ċ import Ġcom . cy l . music lake . net . Api Manager Ċ import Ġcom . cy l . music lake . net . Request CallBack Ċ import Ġcom . cy l . music lake . utils . FileUtils Ċ import Ġcom . cy l . music lake . utils . Log Util Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observable On Subscribe Ċ Ċ /** Ċ Ġ* ĠAuthor ĠĠ Ġ: ĠD 2 2 4 3 4 Ċ Ġ* Ġversion Ġ Ġ: Ġ 2 0 1 8 / 3 / 9 Ċ Ġ* Ġfunction Ġ: Ġ æİ¥åı£ æķ°æį® éĽĨ ä¸Ń åĪ° ä¸Ģä¸ª ç±» ä¸Ń ç®¡çĲĨ ãĢĤ Ċ Ġ*/ Ċ Ċ object ĠMusic Api Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Music Api " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æŃĮ è¯į ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmusic ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Ly ric Info ( music : ĠMusic ): ĠObservable < String >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( music . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . BA ID U Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music . ly ric Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB aid u Api ServiceImpl . getB aid u Ly ric ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB aid u Api ServiceImpl . getT ing Song Info ( music ). flatMap Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . ly ric Ġ= Ġresult . ly ric ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB aid u Api ServiceImpl . getB aid u Ly ric ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . LOCAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Api ServiceImpl . getLocal Ly ric Info ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . X IA O J IA ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Api ServiceImpl . getX JL y ric Info ( music ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Api ServiceImpl . get Ly ric Info ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ Ĳ ľç´¢ éŁ³ ä¹Ĳ åħ·ä½ĵ ä¿¡æģ¯ ï¼Ī QQ éŁ³ ä¹Ĳ çļĦ æĴŃæĶ¾ åľ°åĿĢ ä¼ļ åľ¨ ä¸Ģ å®ļçļĦ æĹ¶éĹ´ åĲİ å¤± æķĪ ï¼Ī å¤§ æ¦Ĥ ä¸Ģ å¤© ï¼ī ï¼ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Music Info ( music : ĠMusic ): ĠObservable < Music >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( music . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . BA ID U Ġ-> ĠB aid u Api ServiceImpl . getT ing Song Info ( music ). flatMap Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . create ( Observable On Subscribe < Music > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . ly ric Ġ= Ġresult . ly ric ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . uri Ġ= Ġresult . uri ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music . uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onError ( Throwable ("")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Api ServiceImpl . get Music Url ( music . type !! , Ġmusic . mid !! ). flatMap Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . create ( Observable On Subscribe < Music > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . uri Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music . uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onError ( Throwable ("")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĬłè½½ åĽ¾çīĩ ĊĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġget Music Album Info ( info : ĠString ): ĠObservable < String > Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġreturn ĠB aid u Api ServiceImpl . get Search Pic Info ( info ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĬłè½½ åĽ¾çīĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Music Album Pic ( info : ĠString , Ġsuccess : Ġ( String ?) Ġ-> ĠUnit , Ġfail : Ġ(() Ġ-> ĠUnit ? )? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠApi Manager . request ( Music Api ServiceImpl . get Album Url ( info ), Ġobject Ġ: ĠRequest CallBack < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsuccess ( result : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess . invoke ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġerror ( msg : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e (" get Music Album Pic ", Ġmsg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® è·¯å¾Ħ èİ·åıĸ æľ¬åľ° æŃĮ è¯į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Local Ly ric Info ( path : ĠString ?): ĠObservable < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġly ric Ġ= ĠFileUtils . readFile ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onNext ( ly ric ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onError ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® è·¯å¾Ħ èİ·åıĸ æľ¬åľ° æŃĮ è¯į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget XJ Local Ly ric Info ( path : ĠString ?): ĠObservable < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġly ric Ġ= ĠFileUtils . readFile ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onNext ( ly ric ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onError ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }