package Ġcom . example . im . presenter Ċ Ċ import Ġcn . b mob . v 3 . B mob Query Ċ import Ġcn . b mob . v 3 . B mob User Ċ import Ġcn . b mob . v 3 . exception . B mob Exception Ċ import Ġcn . b mob . v 3 . listener . Find Listener Ċ import Ġcom . example . im . contract . Add Friend Contr at Ċ import Ġcom . example . im . data . Add Friend Item Ċ import Ġcom . example . im . data . db . IM Date base Ċ import Ġcom . example . im . ui . activity . Add Friend Activity Ċ import Ġcom . hy ph enate . chat . EM Client Ċ import Ġorg . jetbrains . ank o . do Async Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ ĠM lo ong Ċ Ġ* Ġdate ĠĠ 2 0 1 9 / 6 / 2 9 Ġ 1 1 : 1 8 Ċ Ġ*/ Ċ class ĠAdd Friend Presenter ( val Ġview : ĠAdd Friend Activity ) Ġ: ĠAdd Friend Contr at . Presenter Ġ{ ĊĊĠĠĠ Ġval Ġadd Friend Items Ġ= Ġmutable ListOf < Add Friend Item >() ĊĊĠĠĠ Ġoverride Ġfun Ġsearch ( key : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ Ġquery Ġ= ĠB mob Query < B mob User >() ĊĠĠĠĠĠĠĠ Ġquery . add Where Contains (" username ", key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Where Not EqualTo (" username ", EM Client . getInstance (). currentUser ) ĊĠĠĠĠĠĠĠ Ġquery . find Objects ( object Ġ: ĠFind Listener < B mob User > (){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdone ( p 0 : ĠMutable List < B mob User > ?, Ġp 1 : ĠB mob Exception ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 1 Ġ== Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¤ĦçĲĨ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĽå»º Add Friend Item çļĦ éĽĨåĲĪ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Contr ats Ġ= ĠIM Date base . instance . getAll Contacts () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 0 ?. forEach Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ¯Ķ å¯¹ æĺ¯åĲ¦ ä»¥åıĬ æ·»åĬł è¿ĩ å¥½ åıĭ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġis Added Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( contact Ġin Ġall Contr ats ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contact . name Ġ== Ġit . username ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Added Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd Friend Item Ġ= ĠAdd Friend Item ( it . username , it . createdAt , is Added ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Friend Items . add ( add Friend Item ) ĊĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ Ġview . on Search Success () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . on Search Success () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġview . on Search Failed () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} Ċ }