package Ġcom . sle ew ell . sle ew ell . mvp . menu . alarm . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . media . Ring tone Manager Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . ke val p ate l . ring tone picker . Ring tone Picker Dialog Ċ import Ġcom . sle ew ell . sle ew ell . R Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . Alarm Contract Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . Alarm Receiver Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . Alert Receiver Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . data . ListAdapter Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . data . model . Alarm Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . data . view model . Alarm ViewModel Ċ import Ġcom . sle ew ell . sle ew ell . re ve il . presenter . Alarm Presenter Ċ import Ġkotlinx . android . synt hetic . main . custom _ row . view .* Ċ import Ġkotlinx . android . synt hetic . main . day picker _ layout . view .* Ċ import Ġkotlinx . android . synt hetic . main . new _ fragment _ alarm .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠAl arms Fragment Ġ: ĠFragment (), ĠAlarm Contract . View , ĠAdapter View . On ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Alarm ViewModel : ĠAlarm ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠAlarm Contract . Presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbutton Validate Update Alarm : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbutton Validate Save Alarm : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġring tone : ĠUri ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlayout Create : ĠConstraint Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlayout Modify : ĠConstraint Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlayout Home : ĠConstraint Layout ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinstance : ĠAl arms Fragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġto Ġhave Ġthe Ġfragment Ġinstantiate Ġits Ġuser Ġinterface Ġview . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġinflater ĠThe ĠLayoutInflater Ġobject Ġthat Ġcan Ġbe Ġused Ġto Ġinf late Ġany Ġviews Ġin Ġthe Ġfragment . ĊĠĠĠĠ Ġ* Ġ@ param Ġcontainer ĠIf Ġnon - null , Ġthis Ġis Ġthe Ġparent Ġview Ġthat Ġthe Ġfragment 's ĠUI Ġshould Ġbe Ġattached Ġto . ĠThe Ġfragment Ġshould Ġnot Ġadd Ġthe Ġview Ġitself , Ġbut Ġthis Ġcan Ġbe Ġused Ġto Ġgenerate Ġthe ĠLayout Params Ġof Ġthe Ġview . ĠThis Ġvalue Ġmay Ġbe Ġnull . ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState ĠIf Ġnon - null , Ġthis Ġfragment Ġis Ġbeing Ġre - construct ed Ġfrom Ġa Ġprevious Ġsaved Ġstate Ġas Ġgiven Ġhere . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . new _ fragment _ alarm , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġring tone Ġ= ĠRing tone Manager . get Actual Default Ring tone Uri ( context , ĠRing tone Manager . TYPE _ ALARM ) ĊĠĠĠĠĠĠĠ Ġbutton Validate Save Alarm Ġ= Ġroot . findViewById ( R . id . button _ validate _ create ) ĊĠĠĠĠĠĠĠ Ġbutton Validate Update Alarm Ġ= Ġroot . findViewById ( R . id . button _ validate _ modify ) ĊĠĠĠĠĠĠĠ Ġlayout Create Ġ= Ġroot . findViewById ( R . id . layout _ create _ alarm ) ĊĠĠĠĠĠĠĠ Ġlayout Modify Ġ= Ġroot . findViewById ( R . id . layout _ modify _ alarm ) ĊĠĠĠĠĠĠĠ Ġlayout Home Ġ= Ġroot . findViewById ( R . id . layout _ alarm ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfloating ActionButton : ĠFloating ActionButton Ġ= Ġroot . findViewById ( R . id . add _ alarm _ button ) ĊĠĠĠĠĠĠĠ Ġfloating ActionButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Visibility Layouts Create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset Days () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Alarm ( root ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Create Alarm : ĠToolbar Ġ= Ġroot . findViewById ( R . id . toolbar _ create _ alarm ) ĊĠĠĠĠĠĠĠ Ġtoolbar Create Alarm . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Visibility Layouts Alarm () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Modify Alarm : ĠToolbar Ġ= Ġroot . findViewById ( R . id . toolbar _ modify _ alarm ) ĊĠĠĠĠĠĠĠ Ġtoolbar Modify Alarm . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Visibility Layouts Alarm () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠcheckBox All Al arms : ĠCheckBox Ġ= Ġroot . findViewById ( R . id . checkBox All Al arms ) ĊĠĠĠĠĠĠĠ ĠcheckBox All Al arms . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck All Al arms () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġun check All Al arms () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġal arms : ĠMutable List < Uri > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval Ġring tone Mgr Ġ= ĠRing tone Manager ( activity ) ĊĠĠĠĠĠĠĠ Ġring tone Mgr . setType ( Ring tone Manager . TYPE _ ALARM ) ĊĠĠĠĠĠĠĠ Ġval Ġal arms Cursor Ġ= Ġring tone Mgr . cursor ĊĠĠĠĠĠĠĠ Ġval Ġal arms Count Ġ= Ġal arms Cursor . count ĊĠĠĠĠĠĠĠ Ġif Ġ( al arms Count Ġ== Ġ 0 Ġ&& Ġ! al arms Cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġal arms Cursor . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! al arms Cursor . is After Last Ġ&& Ġal arms Cursor . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Position Ġ= Ġal arms Cursor . position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġal arms . add ( ring tone Mgr . get Ring tone Uri ( current Position )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġspinner Create Alarm : ĠButton Ġ= Ġroot . findViewById ( R . id . spinner _ create _ alarm ) ĊĠĠĠĠĠĠĠ Ġspinner Create Alarm . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġring tone Picker Builder Ġ= ĠRing tone Picker Dialog . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . setTitle (" Select Ġring tone ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . add Ring tone Type ( Ring tone Picker Dialog . Builder . TYPE _ ALARM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Positive ButtonText (" SET ĠR ING T ONE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Cancel ButtonText (" CANCEL ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Play Sample While Selection ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . setCurrent Ring tone Uri ( al arms [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Listener Ġ{ Ġring tone Name , Ġring tone Uri Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Create Alarm . text Ġ= Ġring tone Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Ġ= Ġring tone Uri ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġspinner Modify Alarm : ĠButton Ġ= Ġroot . findViewById ( R . id . spinner _ modify _ alarm ) ĊĠĠĠĠĠĠĠ Ġspinner Modify Alarm . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġring tone Picker Builder Ġ= ĠRing tone Picker Dialog . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . setTitle (" Select Ġring tone ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . add Ring tone Type ( Ring tone Picker Dialog . Builder . TYPE _ ALARM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Positive ButtonText (" SET ĠR ING T ONE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Cancel ButtonText (" CANCEL ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Play Sample While Selection ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Ring tone Uri Ġ= ĠRing tone Manager . get Actual Default Ring tone Uri ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. application Context , ĠRing tone Manager . TYPE _ RING T ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . setCurrent Ring tone Uri ( default Ring tone Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . set Listener Ġ{ Ġring tone Name , Ġring tone Uri Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner Modify Alarm . text Ġ= Ġring tone Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Ġ= Ġring tone Uri ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone Picker Builder . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠList Adapter ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView : ĠRecyclerView Ġ= Ġroot . findViewById ( R . id . re cyclerView _ alarm ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġdivider Ġ= ĠDiv ider Item Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . context , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Item Decoration . VERTICAL ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdivider . set Drawable ( context !!. resources . get Drawable ( R . drawable . divider )); ĊĠĠĠĠĠĠĠ Ġre cyclerView . addItem Decoration ( divider ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdelete Selected Button : ĠImageView Ġ= Ġroot . findViewById ( R . id . delete Selected Button ) ĊĠĠĠĠĠĠĠ Ġdelete Selected Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Selected Al arms ( adapter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Alarm ViewModel Ġ= ĠViewModel Provider ( this ). get ( Alarm ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġm Alarm ViewModel . read All Data . observe ( view Lifecycle Owner ) Ġ{ Ġalarm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . setData ( alarm ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Presenter ( Alarm Presenter ( this )) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReset Ġvalues Ġof ĠDay Ġpicker ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreset Days () Ġ{ ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t M . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t T . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t W . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t Th . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t F . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t S . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t Su . isChecked Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġalarm Ġwith Ġspecific s Ġdays . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġday OfWeek ĠDay Ġof Ġthe Ġweek Ġthe Ġalarm Ġneed Ġto Ġbe Ġcreate . ĊĠĠĠĠ Ġ* Ġ@ param Ġcalendar ĠCalendar Ġuse Ġto Ġcreate Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ param Ġtime Picker ĠTime Ġpicker Ġuse Ġto Ġcreate Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ param Ġdays ĠDays Ġthe Ġalarm Ġneed Ġto Ġbe Ġactivated . ĊĠĠĠĠ Ġ* Ġ@ param Ġindex ĠIndex Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Alarm With Day ( ĊĠĠĠĠĠĠĠ Ġday OfWeek : ĠInt , ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġtime Picker : ĠTime Picker , ĊĠĠĠĠĠĠĠ Ġdays : ĠList < Boolean >, ĊĠĠĠĠĠĠĠ Ġindex : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdays Index Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . MON DAY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . T UES DAY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . W ED N ES DAY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . TH UR SD AY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . FR ID AY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . S ATUR DAY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . S UND AY ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġdays Index [ day OfWeek ] ĊĊĠĠĠĠĠĠĠ Ġ// ĠSET ĠCAL END AR Ġsur Ġl ' index Ġday Ġsou h ait Ã© ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 7 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( calendar . get ( Calendar . DAY _ OF _ WEEK ) Ġ== Ġday ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . DAY _ OF _ YEAR , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . HOUR _ OF _ DAY , Ġtime Picker . hour ) ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . MINUTE , Ġtime Picker . minute ) ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . SECOND , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSi Ġc ' est Ġla Ġdate Ġact uelle , Ġon Ġla Ġmet ĠÃł Ġla Ġse ma ine Ġpro cha ine ĊĠĠĠĠĠĠĠ Ġif Ġ( calendar . before ( Calendar . getInstance ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . DAY _ OF _ YEAR , Ġ 7 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpresenter . getTime ( time Picker . hour , Ġtime Picker . minute ) ĊĠĠĠĠĠĠĠ Ġpresenter . save Alarm ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time In Millis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Alarm ViewModel , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox _ create _ vi br ate . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text _ create _ alarm . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġalarm Ġwithout Ġspecific Ġdays . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcalendar Initial ĠCalendar Ġuse Ġto Ġcreate Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ param Ġtime Picker ĠTime Ġpicker Ġuse Ġto Ġcreate Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ param Ġdays ĠDays Ġthe Ġalarm Ġneed Ġto Ġbe Ġactivated . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Alarm Without Day ( ĊĠĠĠĠĠĠĠ Ġcalendar Initial : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġtime Picker : ĠTime Picker , ĊĠĠĠĠĠĠĠ Ġdays : ĠList < Boolean >, ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcalendar . time Ġ= Ġcalendar Initial . time ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . HOUR _ OF _ DAY , Ġtime Picker . hour ) ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . MINUTE , Ġtime Picker . minute ) ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . SECOND , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( calendar . before ( Calendar . getInstance ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . DAY _ OF _ YEAR , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpresenter . getTime ( time Picker . hour , Ġtime Picker . minute ) ĊĠĠĠĠĠĠĠ Ġpresenter . save Alarm ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time In Millis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Alarm ViewModel , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox _ create _ vi br ate . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text _ create _ alarm . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValidate Ġthe Ġsave Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcalendar ĠCalendar Ġuse Ġto Ġsave Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ param Ġtime Picker ĠTime Ġpicker Ġuse Ġto Ġsave Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfunc Validate Save Alarm ( calendar : ĠCalendar , Ġtime Picker : ĠTime Picker ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġchange Visibility Layouts Alarm () ĊĊĠĠĠĠĠĠĠ Ġval Ġdays Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t M . isChecked , Ġ// Ġ 2 Ġ= ĠMON DAY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t T . isChecked , Ġ// Ġ 3 Ġ= ĠT UES DAY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t W . isChecked , Ġ// Ġ 4 Ġ= ĠW ED N ES DAY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t Th . isChecked , Ġ// Ġ 5 Ġ= ĠTH UR SD AY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t F . isChecked , Ġ// Ġ 6 Ġ= ĠFR ID AY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t S . isChecked , Ġ// Ġ 7 Ġ= ĠS ATUR DAY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ create _ layout . t Su . isChecked , Ġ// Ġ 1 Ġ= ĠS UND AY ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( days . contains ( true )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays . forEach Indexed Ġ{ Ġindex , Ġday Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Other Day Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar Other Day . time Ġ= Ġcalendar . time ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( day ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Alarm With Day ( index , Ġcalendar Other Day , Ġtime Picker , Ġdays , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Other Day Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar Other Day . time Ġ= Ġcalendar . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Alarm Without Day ( calendar Other Day , Ġtime Picker , Ġdays ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġroot ĠThe Ġview Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Alarm ( root : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġtime Picker : ĠTime Picker Ġ= Ġroot . findViewById ( R . id . time _ picker _ create _ alarm ) ĊĠĠĠĠĠĠĠ Ġtime Picker . setIs 2 4 Hour View ( true ) ĊĠĠĠĠĠĠĠ Ġtime Picker . hour Ġ= Ġcalendar . get ( Calendar . HOUR _ OF _ DAY ) ĊĠĠĠĠĠĠĠ Ġtime Picker . minute Ġ= Ġcalendar . get ( Calendar . MINUTE ) ĊĊĠĠĠĠĠĠĠ Ġbutton Validate Save Alarm . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunc Validate Save Alarm ( calendar , Ġtime Picker ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSwitch Ġall Ġthe Ġcheck Ġbox Ġof Ġthe Ġal arms Ġto Ġtrue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcheck All Al arms () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Count Ġ= Ġre cyclerView _ alarm . child Count ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġre cyclerView _ alarm . getChild ViewHolder ( re cyclerView _ alarm . getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Alarm . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSwitch Ġall Ġthe Ġcheck Ġbox Ġof Ġthe Ġal arms Ġto Ġfalse . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġun check All Al arms () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Count Ġ= Ġre cyclerView _ alarm . child Count ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġre cyclerView _ alarm . getChild ViewHolder ( re cyclerView _ alarm . getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Alarm . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDelete Ġall Ġthe Ġal arms Ġselected . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġadapter ĠAdapter Ġof Ġthe Ġre cycler Ġview Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdelete Selected Al arms ( adapter : ĠList Adapter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalarm List Ġ= Ġadapter . get Alarm List () ĊĠĠĠĠĠĠĠ Ġval Ġchild Count Ġ= Ġre cyclerView _ alarm . child Count ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġre cyclerView _ alarm . getChild ViewHolder ( re cyclerView _ alarm . getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( holder . item View . row Layout . checkBox Alarm . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Alarm . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Alarm ( alarm List [ i ], Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValidate Ġupdate Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠCurrent Ġalarm Ġthat Ġis Ġupdated . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfunc Validate Update Alarm ( current Alarm : ĠAlarm ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchange Visibility Layouts Alarm () ĊĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . HOUR _ OF _ DAY , Ġtime _ picker _ modify _ alarm . hour ) ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . MINUTE , Ġtime _ picker _ modify _ alarm . minute ) ĊĠĠĠĠĠĠĠ Ġif Ġ( calendar . before ( Calendar . getInstance ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . DATE , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpresenter . getTime ( time _ picker _ modify _ alarm . hour , Ġtime _ picker _ modify _ alarm . minute ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdays Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t M . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t T . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t W . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t Th . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t F . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t S . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t Su . isChecked ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdate Alarm Ġ= ĠAlarm ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time In Millis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . activate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġring tone . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox _ modify _ vi br ate . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text _ modify _ alarm . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . show ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġpresenter . update Alarm ( update Alarm , Ġm Alarm ViewModel ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( current Alarm . activate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Stop Alarm ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Stop Alert ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Start Alarm ( alarm Manager , Ġupdate Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Start Alert ( alarm Manager , Ġupdate Alarm ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠCurrent Ġalarm Ġthat Ġis Ġupdated . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġoverride Ġfun Ġupdate Alarm ( current Alarm : ĠAlarm ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġchange Visibility Layouts Modify () ĊĠĠĠĠĠĠĠ Ġspinner _ modify _ alarm . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRing tone Manager . get Ring tone ( context , ĠUri . parse ( current Alarm . ring tone )). getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcalendar . time In Millis Ġ= Ġcurrent Alarm . time ĊĊĠĠĠĠĠĠĠ Ġtime _ picker _ modify _ alarm . setIs 2 4 Hour View ( true ) ĊĠĠĠĠĠĠĠ Ġval Ġhour Ġ= ĠSimpleDateFormat (" HH "). format ( calendar . time ) ĊĠĠĠĠĠĠĠ Ġval Ġminute Ġ= ĠSimpleDateFormat (" mm "). format ( calendar . time ) ĊĠĠĠĠĠĠĠ Ġtime _ picker _ modify _ alarm . hour Ġ= Ġhour . toInt () ĊĠĠĠĠĠĠĠ Ġtime _ picker _ modify _ alarm . minute Ġ= Ġminute . toInt () ĊĊĠĠĠĠĠĠĠ ĠcheckBox _ modify _ vi br ate . isChecked Ġ= Ġcurrent Alarm . vi br ate ĊĠĠĠĠĠĠĠ Ġval Ġeditable : ĠEdit able Ġ= ĠSp ann able StringBuilder ( current Alarm . label ) ĊĠĠĠĠĠĠĠ Ġedit Text _ modify _ alarm . text Ġ= Ġeditable ĊĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t M . isChecked Ġ= Ġcurrent Alarm . days [ 0 ] ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t T . isChecked Ġ= Ġcurrent Alarm . days [ 1 ] ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t W . isChecked Ġ= Ġcurrent Alarm . days [ 2 ] ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t Th . isChecked Ġ= Ġcurrent Alarm . days [ 3 ] ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t F . isChecked Ġ= Ġcurrent Alarm . days [ 4 ] ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t S . isChecked Ġ= Ġcurrent Alarm . days [ 5 ] ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . t Su . isChecked Ġ= Ġcurrent Alarm . days [ 6 ] ĊĊĠĠĠĠĠĠĠ Ġbutton Validate Update Alarm . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunc Validate Update Alarm ( current Alarm ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvert Ġthe Ġtime Ġto ĠString . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmilli Seconds ĠTime Ġto Ġconvert . ĊĠĠĠĠ Ġ* Ġ@ return ĠTime Ġin Ġa ĠString . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġoverride Ġfun Ġconvert Time ( milli Seconds : ĠLong ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa ĠDate Formatter Ġobject Ġfor Ġdisplaying Ġdate Ġin Ġspecified Ġformat . ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat (" HH : mm ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġcalendar Ġobject Ġthat Ġwill Ġconvert Ġthe Ġdate Ġand Ġtime Ġvalue Ġin Ġmilliseconds Ġto Ġdate . ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcalendar . time In Millis Ġ= Ġmilli Seconds ĊĠĠĠĠĠĠĠ Ġreturn Ġformatter . format ( calendar . time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStart Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġstart . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġstart Alarm ( current Alarm : ĠAlarm , Ġrestart : ĠBoolean ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġupdate Alarm Ġ= ĠAlarm ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . time , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . days , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . ring tone , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . vi br ate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . label , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . show ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġpresenter . update Alarm ( update Alarm , Ġm Alarm ViewModel ) ĊĊĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= Ġrequire Activity (). getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠ Ġinit Start Alarm ( alarm Manager , Ġupdate Alarm , Ġrestart ) ĊĠĠĠĠĠĠĠ Ġinit Start Alert ( alarm Manager , Ġupdate Alarm ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSn oo ze Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġsn oo ze . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsn oo ze Alarm ( current Alarm : ĠAlarm ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= Ġrequire Activity (). getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĊĠĠĠĠĠĠĠ Ġinit Stop Alarm ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit Stop Alert ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsn oo ze Intent Ġ= ĠIntent ( require Context (), ĠAlarm Receiver :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġsn oo ze Bundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġsn oo ze Bundle . put Parcelable (" alarm ", Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠ Ġsn oo ze Intent . putExtra (" ALARM ", Ġsn oo ze Bundle ) ĊĠĠĠĠĠĠĠ Ġpresenter . sn oo ze Alarm ( alarm Manager , Ġsn oo ze Intent , Ġrequire Context (), Ġcurrent Alarm ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStop Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġstop . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġstop Alarm ( current Alarm : ĠAlarm , Ġfrom Notification : ĠBoolean , Ġfrom Switch : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġactive Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! from Switch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Alarm . days . contains ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactive Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġupdate Alarm Ġ= ĠAlarm ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . time , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . days , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . ring tone , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . vi br ate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . label , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . show ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġpresenter . update Alarm ( update Alarm , Ġm Alarm ViewModel ) ĊĊĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= Ġrequire Activity (). getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠ Ġinit Stop Alarm ( alarm Manager , Ġcurrent Alarm , Ġfrom Notification ) ĊĠĠĠĠĠĠĠ Ġinit Stop Alert ( alarm Manager , Ġcurrent Alarm , Ġfrom Notification ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDelete Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġdelete . ĊĠĠĠĠ Ġ* Ġ@ param Ġselected Alarm ĠSelected Ġthe Ġalarm Ġare Ġdelete . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdelete Alarm ( current Alarm : ĠAlarm , Ġselected Alarm : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! selected Alarm ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( R . string . yes ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . delete Alarm ( m Alarm ViewModel , Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Alarm . activate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Stop Alarm ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Stop Alert ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Negative Button ( R . string . no ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ context ?. getString ( R . string . delete Alarm Title )} Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Time ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm . time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ? " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setMessage ( R . string . delete Alarm Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . create (). show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . delete Alarm ( m Alarm ViewModel , Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Alarm . activate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Stop Alarm ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Stop Alert ( alarm Manager , Ġcurrent Alarm , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġpresenter Ġof Ġthe Ġview ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpresenter ĠThe Ġpresenter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġset Presenter ( presenter : ĠAlarm Contract . Presenter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . presenter Ġ= Ġpresenter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPrepare Ġthe Ġstarting Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġalarm Manager ĠAlarm Ġmanager Ġfor Ġthe Ġal arms . ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġstart . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Start Alarm ( alarm Manager : ĠAlarm Manager , Ġcurrent Alarm : ĠAlarm , Ġrestart : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Alarm Ġ= ĠIntent ( context , ĠAlarm Receiver :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle . put Parcelable (" alarm ", Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠ Ġintent Alarm . putExtra (" ALARM ", Ġbundle ) ĊĠĠĠĠĠĠĠ Ġpresenter . start Alarm ( alarm Manager , Ġintent Alarm , Ġrequire Context (), Ġcurrent Alarm , Ġrestart ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPrepare Ġthe Ġstarting Ġof Ġthe Ġalert . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġalarm Manager ĠAlarm Ġmanager Ġfor Ġthe Ġal arms . ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġstart . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Start Alert ( alarm Manager : ĠAlarm Manager , Ġcurrent Alarm : ĠAlarm ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Alert Ġ= ĠIntent ( context , ĠAlert Receiver :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġbundle Alert Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle Alert . put Parcelable (" alarm ", Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠ Ġintent Alert . putExtra (" ALARM ", Ġbundle Alert ) ĊĠĠĠĠĠĠĠ Ġpresenter . start Alert ( alarm Manager , Ġintent Alert , Ġrequire Context (), Ġcurrent Alarm ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPrepare Ġthe Ġstop Ġof Ġthe Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġalarm Manager ĠAlarm Ġmanager Ġfor Ġthe Ġal arms . ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġstop . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Stop Alarm ( ĊĠĠĠĠĠĠĠ Ġalarm Manager : ĠAlarm Manager , ĊĠĠĠĠĠĠĠ Ġcurrent Alarm : ĠAlarm , ĊĠĠĠĠĠĠĠ Ġfrom Notification : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstop Intent Ġ= ĠIntent ( require Context (), ĠAlarm Receiver :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġstop Bundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġstop Bundle . put Parcelable (" alarm ", Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠ Ġstop Intent . putExtra (" ALARM ", Ġstop Bundle ) ĊĠĠĠĠĠĠĠ Ġpresenter . stop Alarm ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalarm Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Intent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Notification ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPrepare Ġthe Ġstop Ġof Ġthe Ġalert . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġalarm Manager ĠAlarm Ġmanager Ġfor Ġthe Ġal arms . ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Alarm ĠAlarm Ġto Ġstop . ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Stop Alert ( ĊĠĠĠĠĠĠĠ Ġalarm Manager : ĠAlarm Manager , ĊĠĠĠĠĠĠĠ Ġcurrent Alarm : ĠAlarm , ĊĠĠĠĠĠĠĠ Ġfrom Notification : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Alert Ġ= ĠIntent ( context , ĠAlert Receiver :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġbundle Alert Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle Alert . put Parcelable (" alarm ", Ġcurrent Alarm ) ĊĠĠĠĠĠĠĠ Ġintent Alert . putExtra (" ALARM ", Ġbundle Alert ) ĊĠĠĠĠĠĠĠ Ġpresenter . stop Alert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalarm Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent Alert , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Alarm , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Notification ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCallback Ġmethod Ġto Ġbe Ġinvoked Ġwhen Ġan Ġitem Ġin Ġthis Ġview Ġhas Ġbeen Ġselected . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġparent ĠThe ĠAdapter View Ġwhere Ġthe Ġselection Ġhappened ĊĠĠĠĠ Ġ* Ġ@ param Ġview ĠThe Ġview Ġwithin Ġthe ĠAdapter View Ġthat Ġwas Ġclicked ĊĠĠĠĠ Ġ* Ġ@ param Ġposition ĠThe Ġposition Ġof Ġthe Ġview Ġin Ġthe Ġadapter ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠThe Ġrow Ġid Ġof Ġthe Ġitem Ġthat Ġis Ġselected ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCallback Ġmethod Ġto Ġbe Ġinvoked Ġwhen Ġthe Ġselection Ġdis appe ars Ġfrom Ġthis Ġview . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġp 0 ĠThe ĠAdapter View Ġthat Ġnow Ġcontains Ġno Ġselected Ġitem . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( p 0 : ĠAdapter View < *> ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChange Ġvisibility Ġof Ġthe Ġholder . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġchange Visibility Holder () Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckBox All Al arms . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġdelete Selected Button . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġval Ġchild Count Ġ= Ġre cyclerView _ alarm . child Count ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġre cyclerView _ alarm . getChild ViewHolder ( re cyclerView _ alarm . getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . delete Button . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Time . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġthe Ġcheck Ġbox ed Ġare Ġnot Ġcheck . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcheck Check List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Count Ġ= Ġre cyclerView _ alarm . child Count ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcheck Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġre cyclerView _ alarm . getChild ViewHolder ( re cyclerView _ alarm . getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( holder . item View . row Layout . checkBox Alarm . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! check ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox All Al arms . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Selected Button . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġre cyclerView _ alarm . getChild ViewHolder ( re cyclerView _ alarm . getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . delete Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . row Layout . checkBox Time . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChange Ġvisibility Ġof Ġthe Ġlayout Ġalarm Ġto Ġcreate Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange Visibility Layouts Create () Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Home . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Modify . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Create . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtoolbar _ create _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtime _ picker _ create _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġrepeat _ create _ text . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġcreate _ alarm _ ring tone . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġspinner _ create _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġcreate _ vi br ate . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ ĠcheckBox _ create _ vi br ate . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġlabel _ create _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ create _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġbutton _ validate _ create . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġre cyclerView _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtoolbar _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġadd _ alarm _ button . hide () ĊĠĠĠĠĠĠĠ Ġtoolbar _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtime _ picker _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġrepeat _ modify _ text . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġmodify _ alarm _ ring tone . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġspinner _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġmodify _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ ĠcheckBox _ modify _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġlabel _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġbutton _ validate _ modify . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ create _ alarm . text . clear () ĊĠĠĠĠĠĠĠ ĠcheckBox _ create _ vi br ate . isChecked Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠRing tone Manager . get Ring tone ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRing tone Manager . get Actual Default Ring tone Uri ( context , ĠRing tone Manager . TYPE _ ALARM ) ĊĠĠĠĠĠĠĠ Ġ). getTitle ( context ) ĊĠĠĠĠĠĠĠ Ġspinner _ create _ alarm . text Ġ= Ġtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChange Ġvisibility Ġof Ġthe Ġlayout Ġalarm Ġto Ġmodify Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange Visibility Layouts Modify () Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Home . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Create . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Modify . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtoolbar _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtime _ picker _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġrepeat _ create _ text . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġcreate _ alarm _ ring tone . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġspinner _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġcreate _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ ĠcheckBox _ create _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġlabel _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġbutton _ validate _ create . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġre cyclerView _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtoolbar _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġadd _ alarm _ button . hide () ĊĠĠĠĠĠĠĠ Ġtoolbar _ modify _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtime _ picker _ modify _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġrepeat _ modify _ text . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġmodify _ alarm _ ring tone . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġspinner _ modify _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġmodify _ vi br ate . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ ĠcheckBox _ modify _ vi br ate . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġlabel _ modify _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ modify _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġbutton _ validate _ modify . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChange Ġvisibility Ġof Ġthe Ġlayout Ġalarm Ġto Ġshow Ġalarm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠR om ane ĠB Ã© zier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange Visibility Layouts Alarm () Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Modify . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Create . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Home . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtoolbar _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtime _ picker _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġrepeat _ create _ text . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġday picker _ create _ layout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġcreate _ alarm _ ring tone . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġspinner _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġcreate _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ ĠcheckBox _ create _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġlabel _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ create _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġre cyclerView _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtoolbar _ alarm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġadd _ alarm _ button . show () ĊĠĠĠĠĠĠĠ Ġtoolbar _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtime _ picker _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġrepeat _ modify _ text . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġday picker _ modify _ layout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġmodify _ alarm _ ring tone . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġspinner _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġmodify _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ ĠcheckBox _ modify _ vi br ate . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġlabel _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġedit Text _ modify _ alarm . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠ Ġ} Ċ }