package Ġcom . task . ui . component . news Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . task . data . remote . dto . News Item Ċ import Ġcom . task . data . remote . dto . News Model Ċ import Ġcom . task . ui . base . Presenter Ċ import Ġcom . task . ui . base . listeners . Base Callback Ċ import Ġcom . task . ui . base . listeners . Recycler Item Listener Ċ import Ġcom . task . use case . News UseCase Ċ import Ġcom . task . utils . Object Util Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAh med El ta her Ġon Ġ 5 / 1 2 / 2 0 1 6 Ċ Ġ*/ Ċ Ċ class ĠHome Presenter Ġ@ Inject Ċ constructor ( private Ġval Ġnews UseCase : ĠNews UseCase ) Ġ: ĠPres enter < Home Contract . View >(), ĠHome Contract Ċ . Presenter , ĠRe cycler Item Listener Ġ{ ĊĠĠĠ Ġvar Ġnews Model : ĠNews Model ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Recycler Item Listener (): ĠRe cycler Item Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget View ()?. navigate To Details Screen ( news Model ?. news Items ! ![ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcallback Ġ= Ġobject Ġ: ĠBase Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( news Model : ĠNews Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. decrement Count ing Id ling Resource () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Home Presenter . news Model Ġ= Ġnews Model ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnews Items : ĠList < News Item >? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Object Util . isNull ( news Model )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews Items Ġ= Ġnews Model . news Items ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Object Util . isNull ( news Items ) Ġ&& Ġ! news Items !!. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. initialize News List ( news Model . news Items !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow List ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow List ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. set Loader Visibility ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Fail () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. decrement Count ing Id ling Resource () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow List ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. set Loader Visibility ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize ( extras : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . initialize ( extras ) ĊĠĠĠĠĠĠĠ Ġget News () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget News () Ġ{ ĊĠĠĠĠĠĠĠ Ġget View ()?. set Loader Visibility ( true ) ĊĠĠĠĠĠĠĠ Ġget View ()?. set No Data Visibility ( false ) ĊĠĠĠĠĠĠĠ Ġget View ()?. set List Visibility ( false ) ĊĠĠĠĠĠĠĠ Ġget View ()?. increment Count ing Id ling Resource () ĊĠĠĠĠĠĠĠ Ġnews UseCase . get News ( callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun Subscribe () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Search Click ( news Title : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnews Ġ= Ġnews Model !!. news Items ĊĠĠĠĠĠĠĠ Ġif Ġ(! news Title . isEmpty () Ġ&& Ġ! news . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Item Ġ= Ġnews UseCase . search By Title ( news , Ġnews Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( news Item Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. navigate To Details Screen ( news Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. show Search Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. show Search Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow List ( isVisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget View ()?. set No Data Visibility (! isVisible ) ĊĠĠĠĠĠĠĠ Ġget View ()?. set List Visibility ( isVisible ) ĊĠĠĠ Ġ} Ċ } Ċ