/* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMIT ĠLicense Ġ< http :// opensource . org / licenses / MIT >. Ċ Ġ* ĠSPDX - License - Identifier : ĠMIT Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 Ġ- Ġ 2 0 2 1 Ġhttps :// github . com / kl app dev Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġ Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġ Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġ Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġ Ġwithout Ġrestriction , Ġincluding Ġwithout Ġ Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġ Ġuse , Ġcopy , Ġ Ġmodify , Ġmerge , Ġ Ġpublish , Ġdistribute , Ġ Ġsublicense , Ġand / or Ġ Ġsell Ċ Ġ* Ġcopies Ġ Ġof Ġ Ġthe ĠSoftware , Ġ Ġand Ġ Ġto Ġ Ġpermit Ġpersons Ġ Ġto Ġ Ġwhom Ġ Ġthe ĠSoftware Ġ Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE Ġ ĠIS ĠPROVIDED Ġ" AS Ġ ĠIS ", ĠWITHOUT ĠWARRANTY Ġ ĠOF ĠANY ĠKIND , Ġ ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , Ġ ĠINCLUDING ĠBUT Ġ ĠNOT Ġ ĠLIMITED ĠTO Ġ ĠTHE Ġ ĠWARRANTIES ĠOF Ġ ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR Ġ ĠA ĠPARTICULAR ĠPURPOSE ĠAND Ġ ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT Ġ ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS Ġ ĠOR ĠCOPYRIGHT Ġ ĠHOLDERS Ġ ĠBE Ġ ĠLIABLE ĠFOR Ġ ĠANY Ġ ĠCLAIM , Ġ ĠDAMAGES ĠOR Ġ ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF Ġ ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE Ġ ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġorg . kl . smart word . event . lesson Ċ Ċ import Ġandroid . view . View Ċ Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . ob servers . Disposable Comp letable Observer Ċ import Ġio . reactivex . ob servers . Disposable Single Observer Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ import Ġorg . kl . smart word . model . Lesson Ċ import Ġorg . kl . smart word . view . activity . Add Lesson Activity Ċ import Ġorg . kl . smart word . util . toast Ċ Ċ class ĠAdd Lesson Listener ( private Ġval Ġactivity : ĠAdd Lesson Activity ) Ġ: ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlesson Dao Ġ= Ġactivity . lesson Dao ĊĠĠĠ Ġprivate Ġval Ġview Validator Ġ= Ġactivity . view Validator ĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= Ġactivity . dis pos ables ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Validator . validate ( activity . name TextView , Ġ" Name Ġis Ġempty ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Validator . validate ( activity . description TextView , Ġ" Description Ġis Ġempty ")) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġactivity . name TextView . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġactivity . description TextView . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck If Exist Lesson ( name , Ġdescription ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck If Exist Lesson ( name : ĠString , Ġdescription : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( lesson Dao . check IfExists ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( object : ĠDis posable Single Observer < Boolean >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( exist : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Validator . error ( activity . name TextView , Ġ" Lesson Ġalready Ġexists ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Lesson ( Lesson (- 1 , Ġname , Ġdescription )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Lesson ( lesson : ĠLess on ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( lesson Dao . add ( lesson ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( object : ĠDis posable Comp letable Observer () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . toast (" Can 't Ġadd Ġlesson : Ġ${ lesson . name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . toast (" Added Ġlesson : Ġ${ lesson . name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} Ċ } Ċ