package Ġcom . tran sc enden soft . he db anz . presentation . user details Ċ Ċ import Ġcom . tran sc enden soft . he db anz . data . exception . H ed ban z ApiException Ċ import Ġcom . tran sc enden soft . he db anz . data . network . ret rofit . No Connectivity Exception Ċ import Ġcom . tran sc enden soft . he db anz . data . source . Data Policy Ċ import Ġcom . tran sc enden soft . he db anz . domain . entity . Friend Ċ import Ġcom . tran sc enden soft . he db anz . domain . inter actor . friends . Add Friend Ċ import Ġcom . tran sc enden soft . he db anz . domain . inter actor . friends . Get Friend ForUser Ċ import Ġcom . tran sc enden soft . he db anz . presentation . base . Base Presenter Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ 2 0 1 7 . ĠAnd ri i ĠCh ern y sh Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ*/ Ċ /** Ċ Ġ* ĠPres enter Ġfrom ĠM VP Ġpattern , Ġthat Ġcontains Ċ Ġ* Ġmethods Ġshow Ġuser Ġdetails . ĠSending Ġfriend Ġrequest Ċ Ġ* Ċ Ġ* Ġ@ author ĠAnd ri i ĠCh ern y sh . ĠE - mail : Ġit ch erry 9 7 @ gmail . com Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠDevelop ed Ġby Ġ< u > Tran sc enden soft </ u > Ċ Ġ*/ Ċ class ĠUser Details Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġm Add Friend Interactor : ĠAdd Friend , ĊĠĠĠĠĠĠĠ Ġval Ġget Friend ForUser Interactor : ĠGet Friend ForUser Ċ ) Ġ: ĠBase Presenter < Friend , ĠUser Details Contract . View >(), ĊĠĠĠĠĠĠĠ ĠUser Details Contract . Presenter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġupdate View () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( model . login . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Friend Info () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Friend State () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Add Friend Interactor . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Friend Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġview ()?. show Loading Dialog () ĊĠĠĠĠĠĠĠ Ġget Friend ForUser Interactor . execute ( model . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. hide Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . is Accepted Ġ= Ġit . is Accepted ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . is Pending Ġ= Ġit . is Pending ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Friend State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. hide Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Friend State () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! model . is Accepted Ġ&& Ġ! model . is Pending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. show Is Friend ( false ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( model . is Accepted Ġ&& Ġ! model . is Pending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. show Is Friend ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! model . is Accepted Ġ&& Ġmodel . is Pending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. show Sent Friend Request () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. show Is Friend ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Friend () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd Friend Param Ġ= ĠAdd Friend . Param ( Data Policy . API , Ġmodel . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ()?. show Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Add Friend Interactor . execute ( add Friend Param , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview () :: show Add Friend Success , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis :: process Add Friend Error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Add Friend Error ( err : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( err ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNo Connectivity Exception Ġ-> Ġview (). show Internet Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠH ed ban z ApiException Ġ-> ĠTim ber . e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Code : Ġ${ err . server ErrorCode } ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠMessage : Ġ${ err . server ErrorMessage }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġview (). show ServerError () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }