package Ġcom . r ish i . dash 3 . adapters Ċ Ċ // import Ġcom . r ish i . dash 3 . services . Not if Service Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . r ish i . dash 3 . R Ċ import Ġcom . r ish i . dash 3 . activ ties . Course Info Ċ import Ġcom . r ish i . dash 3 . models . Each Course Ċ import Ġcom . r ish i . dash 3 . models . Settings Ċ import Ġcom . r ish i . dash 3 . utils . restart Not if Service Ċ import Ġio . realm . Realm Ċ import Ġkotlinx . android . synt hetic . main . course _ list _ card . view .* ĊĊ Ċ class ĠClasses Adapter ( val Ġcontext : ĠContext , Ġval Ġcls ses : Mutable List < Each Course >, Ġval Ġrealm : ĠRealm ) Ġ: ĠRecyclerView . Adapter < Classes Adapter . Each ViewHolder > (){ ĊĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġp 1 : ĠInt ): ĠEach ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . course _ list _ card , parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ ĠEach ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcls ses . size Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( p 0 : ĠEach ViewHolder , Ġpos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcls Ġ= Ġcls ses [ pos ] ĊĠĠĠĠĠĠĠ Ġp 0 . setData ( cls , Ġpos ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinner Ġclass ĠEach ViewHolder ( item View : View ): ĠRecyclerView . ViewHolder ( item View ){ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcr se Cl ss : ĠEach Course ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcr se Pos : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( cls ses . size Ġ>= Ġcr se Pos ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCourse Info :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" name ", cls ses [ cr se Pos ]. crs ename ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" code ", cls ses [ cr se Pos ]. cr se code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" slot ", cls ses [ cr se Pos ]. def Slot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context ," C ant Ġopen ĠInfo Ġscreen ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . btn Bin . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle (" Warning !! ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// set Ġmessage Ġfor Ġalert Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setMessage (" Are Ġyou Ġsure Ġyou Ġwant Ġto Ġdelete Ġ\" ${ cr se Cl ss ?. crs ename }\" Ġcourse ? ĠThis Ġcannot Ġbe Ġund one !") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// perform ing Ġpositive Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Positive Button (" Delete "){ _, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( cls ses . contains ( cr se Cl ss )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcr se Ġ= Ġrealm . where ( Each Course :: class . java ). equalTo (" cr se code ", Ġcr se Cl ss ?. cr se code ). findFirst () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcr se ?. cr se Cls ses ?. delete All From Realm () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcr se ?. delete From Realm () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . commit Transaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Removed ( cr se Pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( cr se Pos , cls ses . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// context . start Service ( Intent ( context , ĠNot if Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Toast . makeText ( context , Ġ" Deleted Ġat , ĠSize Ġ" Ġ+ Ġcls ses . size , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( realm . where ( Settings :: class . java ). findFirst () !!. send Not if ) Ġrestart Not if Service ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context ," C ant Ġdelete Ġcourse ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// perform ing Ġcancel Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Negative Button (" Cancel "){ _ Ġ, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context ," Delete Ġaborted ", Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe ĠAlertDialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Dialog : ĠAlertDialog Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġother Ġdialog Ġproperties ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . set Canceled On Touch Outside ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠsetData ( cls : ĠEach Course ?, Ġpos : Int ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . card Title . text Ġ= Ġcls !!. crs ename ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . cr se Cl ss Ġ= Ġcls ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . cr se Pos Ġ= Ġpos ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ