package Ġutilities . adapters . setup Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . esp . library . R Ċ import Ġcom . esp . library . ex ceed erse sp . ESP _ LIB _ Base Activity Ċ import Ġcom . esp . library . ex ceed erse sp . Single Controller . Comp Root Ċ import Ġcom . esp . library . utilities . common .* Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġutilities . data . apis . ESP _ LIB _ API s Ċ import Ġutilities . data . applic ants . ESP _ LIB _ Firebase Token DAO Ċ import Ġutilities . data . setup . ESP _ LIB _ Organization Person a Dao Ċ import Ġutilities . data . setup . ESP _ LIB _ Person a DAO Ċ import Ġutilities . data . setup . ESP _ LIB _ Token DAO Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠESP _ LIB _ List Person a DAO Adapter ( per so ans : ĠList < ESP _ LIB _ Organization Person a Dao . Person as >, Ġinternal Ġvar Ġsection : ĠESP _ LIB _ Organization Person a Dao , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠESP _ LIB _ Base Activity , Ġprivate Ġval Ġperson as : ĠESP _ LIB _ Token DAO ) Ġ: Ġandroidx . recyclerview . widget . RecyclerView . Adapter < ESP _ LIB _ List Person a DAO Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" List Person a DAO Adapter " ĊĠĠĠ Ġinternal Ġvar Ġm User : ĠRefresh Token ĊĠĠĠ Ġinternal Ġvar Ġpref : ĠESP _ LIB _ Shared Preference ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠESP _ LIB _ Base Activity ĊĠĠĠ Ġinternal Ġvar Ġp Dialog : ĠAlertDialog ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġpers o ans : ĠList < ESP _ LIB _ Organization Person a Dao . Person as > Ġ= ĠArrayList () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . per so ans Ġ= Ġpers o ans ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm User Ġ= Ġcontext Ġas ĠRefresh Token ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠClass CastException (" lis n ter " Ġ+ Ġ" Ġmust Ġimplement Ġon ĠActivity ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpref Ġ= ĠESP _ LIB _ Shared Preference ( context ) ĊĠĠĠĠĠĠĠ Ġp Dialog Ġ= ĠESP _ LIB _ Shared . getInstance (). set Progress Dialog ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠRefresh Token Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠStatus Change ( update : ĠESP _ LIB _ Person a DAO ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( v : ĠView ) Ġ: Ġandroidx . recyclerview . widget . RecyclerView . ViewHolder ( v ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġcard View : ĠLinearLayout ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġorganization : ĠTextView ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġorganization _ role : ĠTextView ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġuser _ type : ĠImageView ĊĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard View Ġ= ĠitemView . findViewById ( R . id . cards ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorganization Ġ= ĠitemView . findViewById ( R . id . organization ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorganization _ role Ġ= ĠitemView . findViewById ( R . id . organization _ role ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser _ type Ġ= ĠitemView . findViewById ( R . id . user _ type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv : ĠView ĊĠĠĠĠĠĠĠ Ġv Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . esp _ lib _ repe ater _ org _ list , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( v ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġperson a DAO Ġ= Ġpers o ans [ position ] ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( persona DAO . type . toLowerCase (). equals (" app ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . organization _ role . text Ġ= Ġcontext . getString ( R . string . esp _ lib _ text _ applicant ) Ġ+ Ġ" Ġ- Ġ" Ġ+ Ġsection . name ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . organization _ role . text Ġ= Ġcontext . getString ( R . string . esp _ lib _ text _ as sess or ) Ġ+ Ġ" Ġ- Ġ" Ġ+ Ġsection . name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠG lide . with ( context ). load ( persona DAO . im ager Url ). placeholder ( R . drawable . esp _ lib _ drawable _ default _ profile _ picture ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . esp _ lib _ drawable _ default _ profile _ picture ). into ( holder . user _ type ) ĊĠĠĠĠĠĠĠ Ġholder . organization . text Ġ= Ġperson a DAO . name ĊĊĊĠĠĠĠĠĠĠ Ġholder . card View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperson a DAO 1 Ġ= ĠESP _ LIB _ Person a DAO () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson a DAO 1 . refresh _ token Ġ= Ġperson as . refresh _ token ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson a DAO 1 . id Ġ= Ġperson a DAO . id . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// m User . Status Change ( persona DAO 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Custom Logs . display Logs ( TAG Ġ+ Ġ" Ġperson a DAO . id : Ġ" Ġ+ Ġperson a DAO 1 . id Ġ+ Ġ" Ġperson a DAO . get Org Id (): Ġ" Ġ+ Ġsection . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Locales ( section . supported Locales ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Person a Id ( persona DAO 1 . id !!. toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Organization Id ( section . id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( persona DAO . type ?. toLowerCase (). equals (" app ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Selected UserRole ( ESP _ LIB _ Enums . applicant . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Selected UserRole ( ESP _ LIB _ Enums . as sess or . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Firebase Token ( persona DAO 1 . id ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ}// End ĠH older ĠClass ĊĊĠĠĠ Ġprivate Ġfun Ġpost Firebase Token ( persona Id : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġstart _ loading _ animation () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġfirebase Token DAO Ġ= ĠESP _ LIB _ Firebase Token DAO () ĊĠĠĠĠĠĠĠ Ġfirebase Token DAO . fb Token Id Ġ= Ġpref . firebase Id ĊĠĠĠĠĠĠĠ Ġfirebase Token DAO . persona Id Ġ= Ġpref . persona Id ĊĠĠĠĠĠĠĠ Ġfirebase Token DAO . token Ġ= Ġpref . firebase Token ĊĠĠĠĠĠĠĠ Ġfirebase Token DAO . organization Id Ġ= Ġpref . organization Id ĊĠĠĠĠĠĠĠ Ġfirebase Token DAO . deviceId Ġ= ĠESP _ LIB _ Shared . getInstance (). get DeviceId ( context ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠComp Root ()?. getService ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfirebase _ call Ġ= Ġap is ?. post Firebase Token ( firebase Token DAO ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase _ call ?. enqueue ( object Ġ: ĠCallback < ESP _ LIB _ Firebase Token DAO > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < ESP _ LIB _ Firebase Token DAO >, Ġresponse : ĠResponse < ESP _ LIB _ Firebase Token DAO > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop _ loading _ animation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response ?. body () Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body (). status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf bid Ġ= Ġresponse . body (). data Ġas ĠDouble ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Firebase Id ( fb id . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperson a DAO 1 Ġ= ĠESP _ LIB _ Person a DAO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson a DAO 1 . refresh _ token Ġ= Ġperson as . refresh _ token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson a DAO 1 . id Ġ= Ġperson a Id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm User . Status Change ( persona DAO 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Custom Logs . display Logs ( TAG Ġ+ Ġ" Ġperson a DAO . id : Ġ" Ġ+ Ġ"$ persona Id " Ġ+ Ġ" Ġperson a DAO . get Org Id (): Ġ" Ġ+ Ġsection . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Locales ( section . supported Locales ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Shared . getInstance (). show Alert Message ( context . getString ( R . string . esp _ lib _ text _ error ), Ġresponse . body (). errorMessage , Ġcontext ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Shared . getInstance (). show Alert Message ( context . getString ( R . string . esp _ lib _ text _ error ), Ġcontext . getString ( R . string . esp _ lib _ text _ some _ thing _ w ent _ wrong ), Ġcontext ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < ESP _ LIB _ Firebase Token DAO >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Custom Logs . display Logs ("$ TAG Ġ${ t . printStackTrace () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop _ loading _ animation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Shared . getInstance (). show Alert Message ( context . getString ( R . string . esp _ lib _ text _ error ), Ġcontext . getString ( R . string . esp _ lib _ text _ some _ thing _ w ent _ wrong ), Ġcontext ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop _ loading _ animation () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠESP _ LIB _ Shared . getInstance (). show Alert Message ( context . getString ( R . string . esp _ lib _ text _ error ), Ġcontext . getString ( R . string . esp _ lib _ text _ some _ thing _ w ent _ wrong ), Ġcontext ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart _ loading _ animation () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! p Dialog !!. is Showing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Dialog !!. show () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop _ loading _ animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p Dialog !!. is Showing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Dialog !!. dismiss () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpers o ans . size ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getItem Id ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠRefresh List () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ