package Ġcom . ut rad ia . catalog ue app v 2 . module . product list Ċ Ċ import Ġandroid . app . Activity Ċ import Ġcom . ut rad ia . catalog ue app v 2 . api . Rest Service Ċ import Ġcom . ut rad ia . catalog ue app v 2 . base . U trad ia Application Ċ import Ġcom . ut rad ia . catalog ue app v 2 . constants . Api Constants Ċ import Ġcom . ut rad ia . catalog ue app v 2 . mvp base . Base Presenter Ċ import Ġcom . ut rad ia . catalog ue app v 2 . utils . App Utils Ċ import Ġcom . ut rad ia . catalog ue app v 2 . utils . Preference Manager Ċ import Ġrx . Subscription Ċ import Ġrx . android . schedul ers . Android Schedulers Ċ import Ġrx . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠProduct List Presenter Ġ@ Inject Ġconstructor (): Base Presenter < Product ListView >() Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm App Utils : ĠApp Utils ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Prefs : ĠPreference Manager ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Rest Service : ĠRest Service ĊĊĠĠĠ Ġprivate Ġ Ġvar Ġm Subscription : Subscription ?= null ĊĊĠĠĠ Ġinternal Ġfun Ġcancel All Async () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Ġm Subscription Ġ!= null Ġ&& Ġ! m Subscription !!. is Un subscribed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Subscription !!. unsubscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġinject Dependencies ( context : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( context . application Context Ġas ĠU trad ia Application ). app Component ?. inject ( this ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġfun Ġget Products ( cat _ id : String , offset Ġ: ĠString , hash Map : ĠHashMap < String , String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View ?. show Progress () ĊĠĠĠĠĠĠĠ Ġ//@ Field (" category _ id ") Ġcategory _ id : ĠString , Ġ@ Field (" page _ number ") Ġpage _ number : ĠString ,@ Field (" user _ id ") Ġuser _ id : ĠString ĊĠĠĠĠĠĠĠ Ġhash Map . put (" category _ id ", cat _ id ) ĊĠĠĠĠĠĠĠ Ġhash Map . put (" page _ number ", offset ) ĊĠĠĠĠĠĠĠ Ġhash Map . put (" user _ id ", m Prefs . userId ) ĊĊĊĠĠĠĠĠĠĠ Ġm Subscription Ġ= Ġm Rest Service . get Offers By CategoryId ( hash Map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()). subscribe ({ ĠCheck Number Re ponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Check Number Re ponse . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products Found ( Check Number Re ponse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Check Number Re ponse . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products NotFound ( Check Number Re ponse . error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. onError ( throwable ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġfun Ġget Most Pop ular Items ( most popular _ id : String , cat _ id Ġ: ĠString , page : String , param : HashMap < String , String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View ?. show Progress () ĊĊĠ Ġ/* ĠĠĠĠĠ Ġmost _ popular _ id , Ġcategory _ id , Ġpage _ number */ ĊĊĠĠĠĠĠĠĠ Ġparam [" most _ popular _ id "] Ġ= Ġmost popular _ id ĊĠĠĠĠĠĠĠ Ġparam [" category _ id "] Ġ= Ġcat _ id ĊĠĠĠĠĠĠĠ Ġparam [" page _ number "] Ġ= Ġpage ĊĠĠĠĠĠĠĠ Ġparam [" user _ id "] Ġ= Ġm Prefs . userId ĊĊĠĠĠĠĠĠĠ Ġm Subscription = Ġ Ġm Rest Service . get Most Pop ular Items ( param ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products Found ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( response . success == ĠApi Constants . STATUS _ SUCCESS _ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products NotFound ( response . error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. onError ( throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġinternal Ġfun Ġget Search Offer List ( clientId : String , page : String , keyword : String , param : HashMap < String , String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View ?. show Progress () ĊĠĠĠĠĠĠĠ Ġparam [" page _ number "] Ġ= Ġpage ĊĠĠĠĠĠĠĠ Ġparam [" user _ id "] Ġ= Ġm Prefs . userId ĊĠĠĠĠĠĠĠ Ġparam [" keyword "] Ġ= Ġkeyword ĊĠĠĠĠĠ Ġ// Ġ Ġparam . put (" client _ id ", clientId ) ĊĊĠĠĠĠĠĠĠ Ġm Subscription = Ġ Ġm Rest Service . search Offer List ( param ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products Found ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( response . success == ĠApi Constants . STATUS _ SUCCESS _ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products NotFound ( response . error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. onError ( throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġfun Ġget Search Offer Id ( clientId : String , cat Id : String , page : String , keyword : String , param : HashMap < String , String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View ?. show Progress () ĊĠĠĠĠĠĠĠ Ġparam [" page _ number "] Ġ= Ġpage ĊĠĠĠĠĠĠĠ Ġparam [" user _ id "] Ġ= Ġm Prefs . userId ĊĠĠĠĠĠĠĠ Ġparam [" keyword "] Ġ= Ġkeyword ĊĠĠĠĠĠĠĠ Ġparam [" category _ id "] Ġ= Ġcat Id ĊĠĠĠĠĠĠ Ġ// Ġparam . put (" client _ id ", clientId ) ĊĊĠĠĠĠĠĠĠ Ġm Subscription = Ġ Ġm Rest Service . search Offer ID ( param ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products Found ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( response . success == ĠApi Constants . STATUS _ SUCCESS _ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Products NotFound ( response . error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. onError ( throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġfun ĠaddTo Wish List ( product _ id : String , user _ id Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View ?. show Progress () ĊĠĠĠĠĠĠĠ Ġm Subscription = Ġm Rest Service . addTo Wish List ( user _ id , product _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()). subscribe ({ ĠCheck Number Re ponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Check Number Re ponse . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Added To Wish List ( Check Number Re ponse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Check Number Re ponse . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Wish List Error ( Check Number Re ponse . error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. onError ( throwable ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġfun Ġremove From Wish List ( product _ id : String , user _ id Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm vp View ?. show Progress () ĊĠĠĠĠĠĠĠ Ġm Subscription = Ġm Rest Service . remove From Wish List ( user _ id , product _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()). subscribe ({ ĠCheck Number Re ponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Check Number Re ponse . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Removed Wish List ( Check Number Re ponse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Check Number Re ponse . success Ġ== ĠApi Constants . STATUS _ SUCCESS _ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. on Wish List Error ( Check Number Re ponse . error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is View Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vp View ?. onError ( throwable ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊ Ċ }