package Ġnet . sa os hy ant . Life . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Coordinator Layout Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Default Item Animator Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . toolbox . String Request Ċ import Ġnet . sa os hy ant . Life . R Ċ import Ġnet . sa os hy ant . Life . app . Database Handler Ċ import Ġnet . sa os hy ant . Life . app . Feed Items . Notification Feed Item Ċ import Ġnet . sa os hy ant . Life . app . Feed List Adapters . Notification Adapter Ċ import Ġnet . sa os hy ant . Life . app . My Application Ċ import Ġnet . sa os hy ant . Life . app . refresh Layout . Refresh Layout Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util .* ĊĊ Ċ class ĠNotification Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġnotification List Ġ= ĠArrayList < Notification Feed Item >() ĊĠĠĠ Ġprivate Ġvar Ġm Adapter : ĠNotification Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġrefresh Layout : ĠRefresh Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcoord inator Layout : ĠCoord inator Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġview Ġ= Ġfalse ĊĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . layout _ recycler ) ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" notification " ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= ĠfindViewById < RecyclerView >( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġcoord inator Layout Ġ= ĠfindViewById ( R . id . coordinator Layout ) ĊĠĠĠĠĠĠĠ Ġrefresh Layout Ġ= ĠfindViewById ( R . id . refresh Layout ) ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠNotification Adapter ( this , Ġnotification List , Ġcoord inator Layout !! ) ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġval Ġm LayoutManager Ġ= ĠLinearLayoutManager ( application ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġm LayoutManager ĊĠĠĠĠĠĠĠ Ġre cyclerView . addItem Decoration ( android . support . v 7 . widget . Divider Item Decoration ( this , ĠLinearLayoutManager . VERTICAL )) ĊĠĠĠĠĠĠĠ Ġre cyclerView . item Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġm Adapter ĊĊĊĠĠĠĠĠĠĠ Ġrefresh Layout !!. on Refresh Listener Ġ= Ġobject Ġ: ĠRefresh Layout . On Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Refresh () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Notification Data () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad More () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh Layout !!. is Need Load More Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! view ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout !!. set Refresh ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Notification Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb 1 Ġ= ĠDatabase Handler ( application Context ) ĊĠĠĠĠĠĠĠ Ġval Ġuser : ĠHashMap < String , ĠString > ĊĠĠĠĠĠĠĠ Ġuser Ġ= Ġdb 1 . user Details ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġparams [" tag "] Ġ= Ġ" notification " ĊĠĠĠĠĠĠĠ Ġparams [" id "] Ġ= Ġuser [" id No "] !! ĊĠĠĠĠĠĠĠ Ġparams [" code "] Ġ= Ġuser [" code "] !! ĊĠĠĠĠĠĠĠ Ġval Ġstr Req Ġ= Ġobject Ġ: ĠString Request ( Request . Method . POST , Ġ" http :// sa os hy ant . net / Life / get Notification Data . php ", ĠResponse . Listener Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// response Ġfrom Ġthe Ġserver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Response Ġ: ", Ġresponse ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Obj Ġ= ĠJSONObject ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! response Obj . isNull (" user ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeed Array Ġ= Ġresponse Obj . get JSONArray (" user ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġfeed Array . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeed Obj Ġ= Ġfeed Array . get ( i ) Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feed Obj . getString (" userId ") Ġ== Ġuser [" id No "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠNotification Feed Item () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . id Ġ= Ġfeed Obj . getString (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . userId Ġ= Ġfeed Obj . getString (" userId ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . name Ġ= Ġfeed Obj . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . profile Pic Ġ= Ġfeed Obj . getString (" profile Pic ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . my Follow Status Ġ= Ġfeed Obj . getBoolean (" My Follow Status ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . post Id Ġ= Ġfeed Obj . getString (" post Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . prg Following Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification List . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( notification List . size Ġ== Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem 1 Ġ= ĠNotification Feed Item () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem 1 . id Ġ= Ġ" ad ad " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification List . add ( item 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout !!. set Refresh ing ( false ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout !!. set Refresh ing ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠToast . makeText ( getApplicationContext (), Ġ" Error 2 : Ġ" Ġ+ Ġe . getMessage (), ĠToast . LENGTH _ LONG ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout !!. set Refresh ing ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( coordinator Layout !! , ĠR . string . error con ection , ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠLog . e ( TAG , Ġ" Error 1 : Ġ" Ġ+ Ġerror . getMessage ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Params (): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . e ( TAG , Ġ" Post ing Ġparams : Ġ" Ġ+ Ġparams . toString ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMy Application . instance !!. addTo Request Queue ( str Req ) ĊĊĠĠĠ Ġ} ĊĊ Ċ }// ĠRequired Ġempty Ġpublic Ġconstructor Ċ