package Ġcom . tek food s . features . leave appl yn ew Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . android . vol ley . Auth Failure Error Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . Vol ley Error Ċ import Ġcom . android . vol ley . toolbox . JsonObject Request Ċ import Ġcom . tek food s . My Singleton Ċ import Ġcom . tek food s . R Ċ import Ġcom . tek food s . app . Network Constant Ċ import Ġcom . tek food s . app . Pref Ċ import Ġcom . tek food s . app . types . Frag Type Ċ import Ġcom . tek food s . app . utils . App Utils Ċ import Ġcom . tek food s . base . Base Response Ċ import Ġcom . tek food s . base . presentation . Base Activity Ċ import Ġcom . tek food s . base . presentation . Base Fragment Ċ import Ġcom . tek food s . features . add Att end ence . api . add att end ence api . Add Att end ence Repo Provider Ċ import Ġcom . tek food s . features . add Att end ence . api . le av et yt pe api . Leave Type Repo Provider Ċ import Ġcom . tek food s . features . add Att end ence . model . Approval Leave Response Model Ċ import Ġcom . tek food s . features . add Att end ence . model . Get Report To F CM Response Ċ import Ġcom . tek food s . features . add Att end ence . model . Leave _ list _ Response Ċ import Ġcom . tek food s . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . tek food s . features . leave appl yn ew . adapter . Adapter Applied Leave List Ċ import Ġcom . tek food s . features . leave appl yn ew . model . Approval Reject Req Model Ċ import Ġcom . tek food s . widgets . App Custom EditText Ċ import Ġcom . tek food s . widgets . App Custom TextView Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util . HashMap Ċ Ċ class ĠAppro val P end Frag : ĠBase Fragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠmContext : ĠContext ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrv Approval Pending List : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġno Data : ĠApp Custom TextView ĊĠĠĠ Ġvar Ġapplied Leave List : ĠArrayList < Leave _ list _ Response > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar ĠuserId Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġremark Ġ= Ġ"" ĊĊĠĠĠ Ġprivate Ġvar Ġadapter applied Leave List : ĠAdapter Applied Leave List ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress _ wheel : Ġcom . pn ik osis . material ish progress . Progress Wheel ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . frag _ apro val _ pending , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ){ ĊĠĠĠĠĠĠĠ Ġrv Approval Pending List Ġ= Ġview . findViewById ( R . id . rv _ all _ approval _ pending _ list ) ĊĠĠĠĠĠĠĠ Ġno Data Ġ= Ġview . findViewById ( R . id . tv _ no _ data ) ĊĠĠĠĠĠĠĠ Ġrv Approval Pending List . layout Manager Ġ= ĠLinearLayoutManager ( mContext ) ĊĠĠĠĠĠĠĠ ĠuserId = Leave Home . user _ uid ĊĊĠĠĠĠĠĠĠ Ġprogress _ wheel Ġ= Ġview . findViewById ( R . id . progress _ wheel ) ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! App Utils . is Online ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Approval Pending List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Approval Pending List (){ ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ Ġapplied Leave List . clear () ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠLeave Type Repo Provider . leave TypeList Repo Provider () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Approval Leave List ( userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠAppro val Leave Response Model ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Data . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplied Leave List Ġ= Ġresponse . leave _ list !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( applied Leave List Ġ!= Ġnull Ġ&& Ġapplied Leave List . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclicked UserId = response . user _ id _ leave _ applied !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Adapter ( clicked UserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ data _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ data _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Adapter ( clicked UserId : String ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġlist : ArrayList < Leave _ list _ Response > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. applied Leave List . size - 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( applied Leave List . get ( i ). approve _ status Ġ== false Ġ&& Ġapplied Leave List . get ( i ). reject _ status == false ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( applied Leave List . get ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( list . size > 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv Approval Pending List . adapter Ġ= ĠAdapter Applied Leave List ( mContext , Ġlist !! , Ġclicked UserId , Ġobject Ġ: ĠClick on Status Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠOn Approved click ( obj : ĠLeave _ list _ Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Open Remark (" APPRO VE ", Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠOn Reject click ( obj : ĠLeave _ list _ Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Open Remark (" RE JECT ", Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Data . visibility Ġ= ĠView . VISIBLE Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ data _ found )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġdialog Open Remark ( status : String , obj : ĠLeave _ list _ Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Dialog Ġ= ĠDialog ( mContext ) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . getWindow () !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . set ContentView ( R . layout . dialog _ remarks ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Header Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ remark _ header TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġval Ġdialog _ remark Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ remark ) Ġas ĠApp Custom EditText ĊĠĠĠĠĠĠĠ Ġdialog Header . text Ġ= ĠApp Utils . hi FirstName Text ()+" !" ĊĠĠĠĠĠĠĠ Ġval Ġdialog Yes Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ remark _ ok ) Ġas ĠApp Custom TextView ĊĊĠĠĠĠĠĠĠ Ġdialog Yes . setOnClickListener ({ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremark Ġ= Ġ Ġdialog _ remark . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Call OnClick ( status , obj ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsimple Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapi Call OnClick ( status : String , obj : Leave _ list _ Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġreq Ġ: ĠAppro val Reject Req Model Ġ= ĠAppro val Reject Req Model () ĊĠĠĠĠĠĠĠ Ġreq . user _ id = userId ĊĠĠĠĠĠĠĠ Ġreq . current _ status = status ĊĠĠĠĠĠĠĠ Ġreq . Approve _ User = Pref . user _ id ĊĠĠĠĠĠĠĠ Ġreq . approval _ date _ time = App Utils . getCurrent DateTime () ĊĠĠĠĠĠĠĠ Ġreq . applied _ date _ time = obj . applied _ date _ time ĊĠĠĠĠĠĠĠ Ġreq . appro ver _ remarks = Ġremark ĊĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠLeave Type Repo Provider . leave TypeList Repo Provider () ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . post Approval Reject click ( req ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠBase Response ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Device To ker Of Applied User ( status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Approval Pending List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 3 5 0 0 ) */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" ERROR ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Device To ker Of Applied User ( leave _ status : String ){ ĊĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠAdd Att end ence Repo Provider . add Att end ence Repo () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Report To F CM Info ( userId , Pref . session _ token . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠGet Report To F CM Response ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Leave App r Re j ct F CM Not i User ( response . device _ token !! , leave _ status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" Apply ĠLeave ĠResponse ĠERROR ======== => Ġ" Ġ+ Ġerror . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( ex : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Leave App r Re j ct F CM Not i User ( user _ fc m Token : String , leave _ status : String ){ ĊĠĠĠĠĠĠĠ Ġif Ġ( user _ fc m Token Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Body Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Body . put (" body ", Ġ" Leave ĠStatus Ġ: Ġ"+ leave _ status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Body . put (" flag ", Ġ" flag _ status ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Body . put ( ĠĠĠ Ġ" applied _ user _ id ", userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . put (" data ", Ġnotification Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Array . put ( 0 , Ġuser _ fc m Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . put (" registration _ ids ", Ġjson Array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Custom Notification ( jsonObject , leave _ status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsend Custom Notification ( notification : ĠJSONObject , leave _ status : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Request : ĠJsonObject Request Ġ= Ġobject Ġ: ĠJsonObject Request (" https :// fc m . googleapis . com / fc m / send ", Ġnotification , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠResponse . Listener < JSONObject ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( response : ĠJSONObject ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsimple Dialog Ġ= ĠDialog ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . getWindow () !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . set ContentView ( R . layout . dialog _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Header Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header _ TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog _ yes _ no _ header TV Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ yes _ no _ header TV . text Ġ= ĠApp Utils . hi FirstName Text ()+" !" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmsg ="" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( leave _ status . equals (" APPRO VE ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg =" APPRO VED " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg =" RE JECT ED " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Header . text Ġ= Ġ" Leave Ġstatus Ġupdated Ġas Ġ: Ġ"+ msg ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Yes Ġ= Ġsimple Dialog . findViewById ( R . id . tv _ message _ ok ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Yes . setOnClickListener ({ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠResponse . Error Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError Response ( error : ĠVol ley Error ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( Auth Failure Error :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Headers (): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams : ĠMutable Map < String , ĠString > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" Authorization "] Ġ= Ġ" key = AAAA Io Wf C pc : AP A 9 1 b EM OP yf js y zi PC 1 WY Ji PH jz dm TQ Jm A OK P 0 f M 2 4 i XI 9 B gr my h H 4 u LY 6 Jd - 6 Lp jp 8 mv S dp Sp - zm 2 0 Ap TO YQ 3 E an 4 m 6 Lic J 5 Co ECS _ v 5 u 2 PU Aw A 8 E 6 FL su 2 ZC 6 _ Wx u SY n TTL zl Ui 4 E " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" Content - Type "] Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMy Singleton . getInstance ( mContext ) !!. addTo Request Queue ( jsonObject Request ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( v ?. id ){ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }