package Ġcom . um ut . demo flickr app . network . Service Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . squareup . otto . Bus Ċ import Ġcom . squareup . otto . Subscribe Ċ import Ġcom . um ut . demo flickr app . network . App Event . ApiError Ċ import Ġcom . um ut . demo flickr app . network . App Event . App Events Ċ import Ġcom . um ut . demo flickr app . Model . Photo Info Parent Ċ import Ġcom . um ut . demo flickr app . Model . Photos Parent Ċ import Ġcom . um ut . demo flickr app . ui . Activity . Photo Gal ery Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response ĊĊ Ċ class ĠPhoto Service ( ĊĠĠĠ Ġprivate Ġval Ġm Bus : ĠBus , ĊĠĠĠ Ġprivate Ġval Ġsearch Image RestApi : ĠSearch Photos RestApi . Get SearchResult , ĊĠĠĠ Ġprivate Ġval Ġrecent Images RestApi : ĠRecent Photos RestApi . Get Recent Images , ĊĠĠĠ Ġprivate Ġval Ġphoto Info RestApi : ĠPhoto Info RestApi . Get Photo Info Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Auth Service " ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġget Se ar ched Images ( event : ĠApp Events . Search Image Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Image RestApi . get Search Images Results ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto Gal ery . API _ KEY , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" json ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . per Page , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . page ĊĠĠĠĠĠĠĠ Ġ). enqueue ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCallback < Photos Parent > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Photos Parent >, Ġresponse : ĠResponse < Photos Parent >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ON ĠRESP ONSE Ġsearch Ġphoto : Ġ" Ġ+ Ġresponse . is Successful () Ġ+ Ġ" Ġ- Ġresponse code : Ġ" Ġ+ Ġresponse . code () Ġ+ Ġ" Ġ- Ġresponse :" Ġ+ Ġresponse . message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" CALL ĠURL Ġ: Ġ" Ġ+ Ġcall . request (). url ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( App Events . Search Image Response ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( ApiError ( response . code (), Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Photos Parent >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ON ĠFAILURE : Ġ" Ġ+ Ġt . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( ApiError ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġget Recent Images ( event : ĠApp Events . Recent Images Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrecent Images RestApi . get Recent Images Result ( Photo Gal ery . API _ KEY , Ġ" json ", Ġ 1 , Ġevent . per Page , Ġevent . page ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCallback < Photos Parent > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Photos Parent >, Ġresponse : ĠResponse < Photos Parent >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ON ĠRESP ONSE Ġrecent Ġphotos : Ġ" Ġ+ Ġresponse . is Successful () Ġ+ Ġ" Ġ- Ġresponse code : Ġ" Ġ+ Ġresponse . code () Ġ+ Ġ" Ġ- Ġresponse :" Ġ+ Ġresponse . message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" CALL ĠURL Ġ: Ġ" Ġ+ Ġcall . request (). url ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( App Events . Recent Images Response ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( ApiError ( response . code (), Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Photos Parent >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ON ĠFAILURE : Ġ" Ġ+ Ġt . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( ApiError ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġget Photo Info ( event : ĠApp Events . Photo Info Request ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" SERVICE ĠPH OTO ĠID : Ġ" Ġ+ Ġevent . photo Id ) ĊĠĠĠĠĠĠĠ Ġphoto Info RestApi . get Photo Info ( Photo Gal ery . API _ KEY , Ġ" json ", Ġ 1 , Ġevent . photo Id ). enqueue ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCallback < Photo Info Parent > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Photo Info Parent >, Ġresponse : ĠResponse < Photo Info Parent >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ON ĠRESP ONSE Ġphoto Info : Ġ" Ġ+ Ġresponse . is Successful () Ġ+ Ġ" Ġ- Ġresponse code : Ġ" Ġ+ Ġresponse . code () Ġ+ Ġ" Ġ- Ġresponse :" Ġ+ Ġresponse . message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" CALL ĠURL Ġ: Ġ" Ġ+ Ġcall . request (). url ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( App Events . Photo Info Response ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( ApiError ( response . code (), Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Photo Info Parent >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ON ĠFAILURE : Ġ" Ġ+ Ġt . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bus . post ( ApiError ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ