package Ġcom . coding wit ht ashi . daily pr ayer . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . coding wit ht ashi . daily pr ayer . R Ċ import Ġcom . coding wit ht ashi . daily pr ayer . adapter . Notification Adapter Ċ import Ġcom . coding wit ht ashi . daily pr ayer . model . Pr ayer Notification Ċ import Ġcom . coding wit ht ashi . daily pr ayer . utils . Common Utils Ċ import Ġcom . coding wit ht ashi . daily pr ayer . utils . Pr ayer Preference Ċ import Ġcom . coding wit ht ashi . daily pr ayer . utils . Preference Const Ċ import Ġcom . coding wit ht ashi . daily pr ayer . utils . Swipe ToDelete Callback Ċ import Ġcom . coding wit ht ashi . daily pr ayer . view model . Notification ViewModel Ċ import Ġcom . google . android . material . dialog . Material AlertDialog Builder Ċ import Ġcom . google . android . material . text view . Material TextView Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList ĊĊ Ċ class ĠNotification Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġnotification Msg : ĠMaterial TextView ; ĊĠĠ Ġlateinit Ġvar Ġre cyclerView : RecyclerView ; ĊĠĠĠ Ġlateinit Ġvar Ġrelative Layout : Relative Layout ; ĊĠĠĠ Ġlateinit Ġvar Ġnotification Adapter : Notification Adapter ĊĠĠĠ Ġlateinit Ġvar Ġnotification List : ĠList < Pr ayer Notification > ĊĠĠĠ Ġprivate Ġval Ġnotification ViewModel : ĠNotification ViewModel Ġby Ġactivity ViewModels (); ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġ Ġinflater . inflate ( R . layout . fragment _ notification , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġnotification Msg Ġ= Ġview . findViewById ( R . id . notification _ text ); ĊĠĠĠĠĠĠĠ Ġrelative Layout Ġ= Ġview . findViewById ( R . id . notification _ container ) ĊĠĠĠĠĠĠĠ Ġnotification Msg . visibility = ĠView . VISIBLE ; ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġview . findViewById ( R . id . re cyclerView ) ĊĠĠĠĠĠĠĠ Ġnotification List Ġ= Ġempty List () ĊĊĊĊĠĠĠĠĠĠĠ Ġval Ġswipe Handler Ġ= Ġobject Ġ: ĠSw ipe ToDelete Callback ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġre cyclerView . adapter Ġas ĠNotification Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification ViewModel . delete Notification ( notification List [ view Holder . adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . remove At ( view Holder . adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĠCommon Utils . display Short Message ( it ," Deleted ") Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( notification List . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Msg . visibility = ĠView . VISIBLE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġitem Touch Helper Ġ= ĠItem Touch Helper ( swipe Handler ) ĊĠĠĠĠĠĠĠ Ġitem Touch Helper . attach To RecyclerView ( re cyclerView ) ĊĊĠĠĠĠĠĠĠ Ġnotification ViewModel . notifications . observe ( view Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . size > 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification List Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Msg . visibility = ĠView . GONE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// mutable ListOf Pr ayer Notification Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Adapter Ġ= Notification Adapter ( notification List Ġas ĠArrayList < Pr ayer Notification >) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Divider Item Decoration ( context , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġnotification Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Msg . visibility = ĠView . VISIBLE ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĠPr ayer Preference . set Context ( it ) Ġ}; ĊĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= ĠPr ayer Preference . get Preference (). getBoolean ( Preference Const . IS _ NOTIFICATION _ OPEN _ FIRST , false ); ĊĠĠĠĠĠĠĠ Ġif (! pref ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPr ayer Preference . get Preference (). edit (). put Boolean ( Preference Const . IS _ NOTIFICATION _ OPEN _ FIRST , true ). apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial AlertDialog Builder ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Notification ĠPage ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" We Ġwill Ġsend Ġnotification Ġhere . Ġsuch Ġas Ġ\ n 1 . If Ġnew Ġpr ayer Ġis Ġadded Ġ\ n 2 . New ĠFeature Ġreleased Ġ\ n 3 . Any ĠUpdate Ġ\ n Team ĠT ib et an ĠPr ayer ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Ok ay ") Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }