package Ġcom . element ary . tasks . core . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . Int Range Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . AppCompat CheckBox Ċ import Ġandroidx . appcompat . widget . AppCompat EditText Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . widget . do On TextChanged Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . element ary . tasks . core . data . models . Reminder Ċ import Ġcom . element ary . tasks . core . data . models . Reminder Group Ċ import Ġcom . element ary . tasks . core . utils . Time Util . to G mt Ċ import Ġcom . element ary . tasks . core . views . Action View Ċ import Ġcom . element ary . tasks . core . views . Attachment View Ċ import Ġcom . element ary . tasks . core . views . Before Picker View Ċ import Ġcom . element ary . tasks . core . views . DateTime View Ċ import Ġcom . element ary . tasks . core . views . Ex clusion Picker View Ċ import Ġcom . element ary . tasks . core . views . Group View Ċ import Ġcom . element ary . tasks . core . views . Led Picker View Ċ import Ġcom . element ary . tasks . core . views . L oud ness Picker View Ċ import Ġcom . element ary . tasks . core . views . Me lo dy View Ċ import Ġcom . element ary . tasks . core . views . Priority Picker View Ċ import Ġcom . element ary . tasks . core . views . Repeat Limit View Ċ import Ġcom . element ary . tasks . core . views . Repeat View Ċ import Ġcom . element ary . tasks . core . views . T une Extra View Ċ import Ġcom . element ary . tasks . core . views . Window Type View Ċ import Ġcom . github . n az 0 1 3 . cal end are xt . new Calendar Ċ import Ġcom . github . n az 0 1 3 . cal end are xt . set Hour OfDay Ċ import Ġcom . github . n az 0 1 3 . cal end are xt . set Minute Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Coroutine Start Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . util .* Ċ Ċ fun ĠList < String >. append (): ĠString Ġ{ ĊĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠ Ġfor Ġ( string Ġin Ġthis ) Ġ{ ĊĠĠĠ ĠstringBuilder . append ( string ) ĊĠ Ġ} ĊĠ Ġreturn ĠstringBuilder . toString () Ċ } Ċ Ċ fun ĠlistOf NotEmpty ( var arg Ġitems : ĠString ?): ĠList < String > Ġ= Ġitems . filter NotNull (). filter NotEmpty () Ċ Ċ fun ĠList < String ?> . filter NotEmpty () Ġ= Ġfilter NotNull (). filter Ġ{ Ġit . isNotEmpty () Ġ} Ċ Ċ fun ĠString . normalize Summary (): ĠString Ġ{ ĊĠ Ġreturn Ġif Ġ( length Ġ> ĠConfig s . MAX _ REM IND ER _ SUM MARY _ LENGTH ) Ġ{ ĊĠĠĠ Ġsubstring ( 0 , ĠConfig s . MAX _ REM IND ER _ SUM MARY _ LENGTH ) ĊĠ Ġ} Ġelse Ġ{ ĊĠĠĠ Ġthis ĊĠ Ġ} Ċ } Ċ Ċ fun ĠFragment . startActivity ( clazz : ĠClass <* >, Ġintent : Ġ(( Intent ) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠ Ġrequire Activity (). startActivity ( clazz , Ġintent ) Ċ } Ċ Ċ fun ĠActivity . startActivity ( clazz : ĠClass <* >, Ġintent : Ġ(( Intent ) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠ ĠstartActivity ( Intent ( this , Ġclazz ). also Ġ{ Ġintent ?. invoke ( it ) Ġ}) Ċ } Ċ Ċ fun ĠActivity . finish With ( clazz : ĠClass <* >, Ġintent : Ġ(( Intent ) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠ ĠstartActivity ( Intent ( this , Ġclazz ). also Ġ{ Ġintent ?. invoke ( it ) Ġ}) ĊĠ Ġfinish () Ċ } Ċ Ċ @ Color Int Ċ fun ĠInt . adjust Alpha (@ Int Range ( from Ġ= Ġ 0 , Ġto Ġ= Ġ 1 0 0 ) Ġfactor : ĠInt ): ĠInt Ġ{ ĊĠ Ġval Ġalpha Ġ= Ġ 2 5 5 f Ġ* Ġ( factor . toFloat () Ġ/ Ġ 1 0 0 f ) ĊĠ Ġval Ġred Ġ= Ġandroid . graphics . Color . red ( this ) ĊĠ Ġval Ġgreen Ġ= Ġandroid . graphics . Color . green ( this ) ĊĠ Ġval Ġblue Ġ= Ġandroid . graphics . Color . blue ( this ) ĊĠ Ġreturn Ġandroid . graphics . Color . arg b ( alpha . toInt (), Ġred , Ġgreen , Ġblue ) Ċ } Ċ Ċ // ĠCheck Ġif ĠColor Ġis ĠDark Ċ fun ĠInt . is Color Dark (): ĠBoolean Ġ{ ĊĠ Ġval Ġdark ness Ġ= Ġ 1 Ġ- Ġ( 0 . 2 9 9 Ġ* Ġandroid . graphics . Color . red ( this ) Ġ+ Ġ 0 . 5 8 7 ĊĠĠĠ Ġ* Ġandroid . graphics . Color . green ( this ) Ġ+ Ġ 0 . 1 1 4 ĊĠĠĠ Ġ* Ġandroid . graphics . Color . blue ( this )) Ġ/ Ġ 2 5 5 ĊĠ ĠTim ber . d (" is Color Dark : Ġ$ dark ness ") ĊĠ Ġreturn Ġdark ness Ġ>= Ġ 0 . 5 Ċ } Ċ Ċ // ĠCheck Ġof Ġopacity Ġof ĠColor Ċ fun ĠInt . is Almost Transparent (): ĠBoolean Ġ{ ĊĠ Ġreturn Ġthis Ġ< Ġ 2 5 Ċ } Ċ Ċ fun ĠFragment . color Of (@ Color Res Ġcolor : ĠInt ) Ġ= ĠContext Compat . getColor ( require Context (), Ġcolor ) Ċ Ċ fun ĠAppCompatActivity . color Of (@ Color Res Ġcolor : ĠInt ) Ġ= ĠContext Compat . getColor ( this , Ġcolor ) Ċ Ċ fun ĠContext . color Of (@ Color Res Ġcolor : ĠInt ) Ġ= ĠContext Compat . getColor ( this , Ġcolor ) Ċ Ċ fun ĠView . color Of (@ Color Res Ġcolor : ĠInt ) Ġ= ĠContext Compat . getColor ( context , Ġcolor ) Ċ Ċ fun ĠAppCompat EditText . on TextChanged ( f : Ġ( String ?) Ġ-> ĠUnit ) Ġ{ ĊĠ Ġdo On TextChanged Ġ{ Ġtext , Ġ_, Ġ_, Ġ_ Ġ-> Ġf . invoke ( text ?. toString ()) Ġ} Ċ } Ċ Ċ fun ĠView . in flater () Ġ= ĠLayoutInflater . from ( context ) Ċ Ċ fun ĠActivity . toast ( message : ĠString , Ġduration : ĠInt Ġ= ĠToast . LENGTH _ SHORT ) Ġ{ ĊĠ ĠToast . makeText ( this , Ġmessage , Ġduration ). show () Ċ } Ċ Ċ fun ĠActivity . toast (@ String Res Ġmessage : ĠInt , Ġduration : ĠInt Ġ= ĠToast . LENGTH _ SHORT ) Ġ{ ĊĠ ĠToast . makeText ( this , Ġmessage , Ġduration ). show () Ċ } Ċ Ċ fun ĠFragment . toast ( message : ĠString , Ġduration : ĠInt Ġ= ĠToast . LENGTH _ SHORT ) Ġ{ ĊĠ ĠToast . makeText ( require Context (), Ġmessage , Ġduration ). show () Ċ } Ċ Ċ fun ĠFragment . toast (@ String Res Ġmessage : ĠInt , Ġduration : ĠInt Ġ= ĠToast . LENGTH _ SHORT ) Ġ{ ĊĠ ĠToast . makeText ( require Context (), Ġmessage , Ġduration ). show () Ċ } Ċ Ċ fun Ġ< T > ĠViewModel . mutable LiveData Of () Ġ= ĠMutable LiveData < T >() Ċ Ċ fun ĠFile . copy InputStream ToFile ( inputStream : ĠInputStream ) Ġ{ ĊĠ ĠinputStream . use Ġ{ Ġinput Ġ-> ĊĠĠĠ Ġthis . output Stream (). use Ġ{ Ġfile Out Ġ-> ĊĠĠĠĠĠ Ġinput . copy To ( file Out ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun Ġ< View T Ġ: ĠView > ĠView . bind View (@ Id Res Ġid Res : ĠInt ): ĠLazy < View T > Ġ{ ĊĠ Ġreturn Ġlazy Un Synchron ized Ġ{ ĊĠĠĠ ĠfindViewById ( id Res ) ĊĠ Ġ} Ċ } Ċ Ċ fun Ġ< View T Ġ: ĠView > ĠActivity . bind View (@ Id Res Ġid Res : ĠInt ): ĠLazy < View T > Ġ{ ĊĠ Ġreturn Ġlazy Un Synchron ized Ġ{ ĊĠĠĠ ĠfindViewById ( id Res ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠDate ?. to Hm (): ĠTime Util . HM Ġ{ ĊĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠ Ġcalendar . time In Millis Ġ= ĠSystem . currentTimeMillis () ĊĠ Ġif Ġ( this Ġ!= Ġnull ) Ġcalendar . time Ġ= Ġthis ĊĠ Ġval Ġhour Ġ= Ġcalendar . get ( Calendar . HOUR _ OF _ DAY ) ĊĠ Ġval Ġminute Ġ= Ġcalendar . get ( Calendar . MINUTE ) ĊĠ Ġreturn ĠTime Util . HM ( hour , Ġminute ) Ċ } Ċ Ċ fun ĠTime Util . HM . toDate (): ĠDate Ġ= Ġnew Calendar () ĊĠ Ġ. set Hour OfDay ( hour ) ĊĠ Ġ. set Minute ( minute ) ĊĠ Ġ. time Ċ Ċ fun ĠView . isVisible (): ĠBoolean Ġ= Ġvisibility Ġ== ĠView . VISIBLE Ċ Ċ fun ĠView . isNot Visible (): ĠBoolean Ġ= Ġvisibility Ġ== ĠView . IN VISIBLE Ċ Ċ fun ĠView . is G one (): ĠBoolean Ġ= Ġvisibility Ġ== ĠView . GONE Ċ Ċ fun ĠView . transparent () Ġ{ ĊĠ Ġvisibility Ġ= ĠView . IN VISIBLE Ċ } Ċ Ċ fun ĠView . hide () Ġ{ ĊĠ Ġvisibility Ġ= ĠView . GONE Ċ } Ċ Ċ fun ĠView . show () Ġ{ ĊĠ Ġvisibility Ġ= ĠView . VISIBLE Ċ } Ċ Ċ fun ĠView . visible G one ( value : ĠBoolean ) Ġ{ ĊĠ Ġif Ġ( value Ġ&& Ġ! isVisible ()) Ġshow () ĊĠ Ġelse Ġif Ġ(! value Ġ&& Ġ! is G one ()) Ġhide () Ċ } Ċ Ċ fun ĠView . visible In visible ( value : ĠBoolean ) Ġ{ ĊĠ Ġif Ġ( value Ġ&& Ġ! isVisible ()) Ġshow () ĊĠ Ġelse Ġif Ġ(! value Ġ&& Ġ! isNot Visible ()) Ġtransparent () Ċ } Ċ Ċ fun Ġ< T > Ġlazy Un Synchron ized ( initializer : Ġ() Ġ-> ĠT ): ĠLazy < T > Ġ= ĊĠ Ġlazy ( Lazy Thread Safety Mode . NONE , Ġinitializer ) Ċ Ċ suspend Ġfun Ġ< T > Ġwith UI Context ( block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠT ) ĊĠ Ġ: ĠT Ġ= Ġwith Context ( Dispatch ers . Main , Ġblock ) Ċ Ċ fun Ġlaunch Default ( start : ĠCor outine Start Ġ= ĠCor outine Start . DEFAULT , Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit ) ĊĠ Ġ: ĠJob Ġ= ĠGlobal Scope . launch ( Dispatch ers . Default , Ġstart , Ġblock ) Ċ Ċ fun Ġlaunch Io ( start : ĠCor outine Start Ġ= ĠCor outine Start . DEFAULT , Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit ) ĊĠ Ġ: ĠJob Ġ= ĠGlobal Scope . launch ( Dispatch ers . IO , Ġstart , Ġblock ) Ċ Ċ fun ĠEditText . on Changed ( function : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠ Ġthis . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġfunction . invoke ( s . toString (). trim ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠ Ġ} ĊĠ Ġ}) Ċ } Ċ Ċ fun ĠLong . to G mt () Ġ= Ġto Calendar (). to G mt () Ċ Ċ fun ĠLong . to Calendar () Ġ= Ġnew Calendar ( this ) Ċ Ċ fun ĠLong . days After (): ĠInt Ġ{ ĊĠ Ġval Ġdays Ġ= Ġ( System . currentTimeMillis () Ġ- Ġthis ) Ġ/ ĠAlarm Manager . INTERVAL _ DAY ĊĠ Ġreturn Ġdays . toInt () Ċ } Ċ Ċ fun ĠLong . hours After (): ĠInt Ġ{ ĊĠ Ġval Ġhours Ġ= Ġ( System . currentTimeMillis () Ġ- Ġthis ) Ġ/ ĠAlarm Manager . INTERVAL _ HOUR ĊĠ Ġreturn Ġhours . toInt () Ċ } Ċ Ċ fun ĠT une Extra View . Extra . from Reminder ( reminder : ĠRem inder ): ĠT une Extra View . Extra Ġ{ ĊĠ Ġthis . use Global Ġ= Ġreminder . use Global ĊĠ Ġthis . vi br ate Ġ= Ġreminder . vi br ate ĊĠ Ġthis . repeat Notification Ġ= Ġreminder . repeat Notification ĊĠ Ġthis . notify By Voice Ġ= Ġreminder . notify By Voice ĊĠ Ġthis . unlock Ġ= Ġreminder . unlock ĊĠ Ġthis . auto Ġ= Ġreminder . auto ĊĠ Ġreturn Ġthis Ċ } Ċ Ċ fun ĠT une Extra View . Extra . to Reminder ( reminder : ĠRem inder ): ĠRem inder Ġ{ ĊĠ Ġreminder . use Global Ġ= Ġthis . use Global ĊĠ Ġreminder . vi br ate Ġ= Ġthis . vi br ate ĊĠ Ġreminder . repeat Notification Ġ= Ġthis . repeat Notification ĊĠ Ġreminder . notify By Voice Ġ= Ġthis . notify By Voice ĊĠ Ġreminder . unlock Ġ= Ġthis . unlock ĊĠ Ġreminder . auto Ġ= Ġthis . auto ĊĠ Ġreturn Ġreminder Ċ } Ċ Ċ fun ĠRem inder . copy Extra ( reminder : ĠRem inder ) Ġ{ ĊĠ Ġthis . use Global Ġ= Ġreminder . use Global ĊĠ Ġthis . vi br ate Ġ= Ġreminder . vi br ate ĊĠ Ġthis . repeat Notification Ġ= Ġreminder . repeat Notification ĊĠ Ġthis . notify By Voice Ġ= Ġreminder . notify By Voice ĊĠ Ġthis . aw ake Ġ= Ġreminder . aw ake ĊĠ Ġthis . unlock Ġ= Ġreminder . unlock ĊĠ Ġthis . auto Ġ= Ġreminder . auto Ċ } Ċ Ċ fun ĠAppCompat EditText . bind Property ( value : ĠString , Ġlistener : Ġ(( String ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . setText ( value ) ĊĠ Ġthis . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( s Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener . invoke ( s . toString ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠ Ġ} ĊĠ Ġ}) Ċ } Ċ Ċ fun ĠAppCompat CheckBox . bind Property ( value : ĠBoolean , Ġlistener : Ġ(( Boolean ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . isChecked Ġ= Ġvalue ĊĠ Ġthis . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> Ġlistener . invoke ( isChecked ) Ġ} Ċ } Ċ Ċ fun ĠRepeat View . bind Property ( value : ĠLong , Ġlistener : Ġ(( Long ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . repeat Ġ= Ġvalue ĊĠ Ġthis . on Repeat ChangeListener Ġ= Ġobject Ġ: ĠRepeat View . On Repeat ChangeListener Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonChanged ( repeat : ĠLong ) Ġ{ ĊĠĠĠĠĠ ĠTim ber . d (" on Changed : Ġ$ repeat ") ĊĠĠĠĠĠ Ġlistener . invoke ( repeat ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun ĠBefore Picker View . bind Property ( value : ĠLong , Ġlistener : Ġ(( Long ) Ġ-> ĠUnit )? ) Ġ{ ĊĠ Ġthis . set Before ( value ) ĊĠ Ġthis . on Before Changed Listener Ġ= Ġobject Ġ: ĠBefore Picker View . On Before Changed Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonChanged ( before M ills : ĠLong ) Ġ{ ĊĠĠĠĠĠ Ġlistener ?. invoke ( before M ills ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun ĠDateTime View . bind Property ( value : ĠString , Ġlistener : Ġ(( String ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . set DateTime ( value ) ĊĠ Ġthis . on Date ChangeListener Ġ= Ġobject Ġ: ĠDateTime View . On Date ChangeListener Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonChanged ( m ills : ĠLong ) Ġ{ ĊĠĠĠĠĠ Ġlistener . invoke ( Time Util . get G mt From DateTime ( m ills )) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun ĠPriority Picker View . bind Property ( value : ĠInt , Ġlistener : Ġ(( Int ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . priority Ġ= Ġvalue ĊĠ Ġthis . on Priority Ch ane Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠAction View . bind Property ( value : ĠString , Ġlistener : Ġ(( String ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . number Ġ= Ġvalue ĊĠ Ġthis . set Listener ( object Ġ: ĠAction View . On ActionListener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon StateChanged ( has Action : ĠBoolean , Ġtype : ĠInt , Ġphone : ĠString ) Ġ{ ĊĠĠĠĠĠ Ġlistener . invoke ( phone ) ĊĠĠĠ Ġ} ĊĠ Ġ}) Ċ } Ċ Ċ fun ĠMe lo dy View . bind Property ( value : ĠString , Ġlistener : Ġ(( String ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . file Ġ= Ġvalue ĊĠ Ġthis . on File Update Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠAttachment View . bind Property ( value : ĠString , Ġlistener : Ġ(( String ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . content Ġ= Ġvalue ĊĠ Ġthis . on File Update Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠGroup View . bind Property ( value : ĠRem inder Group , Ġlistener : Ġ(( Reminder Group ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . reminder Group Ġ= Ġvalue ĊĠ Ġthis . on Group Update Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠL oud ness Picker View . bind Property ( value : ĠInt , Ġlistener : Ġ(( Int ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . set Volume ( value ) ĊĠ Ġthis . on Level Update Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠRepeat Limit View . bind Property ( value : ĠInt , Ġlistener : Ġ(( Int ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . set Limit ( value ) ĊĠ Ġthis . on Level Update Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠWindow Type View . bind Property ( value : ĠInt , Ġlistener : Ġ(( Int ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . window Type Ġ= Ġvalue ĊĠ Ġthis . on Type Ch ane Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } ĊĊ Ċ fun ĠLed Picker View . bind Property ( value : ĠInt , Ġlistener : Ġ(( Int ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . led Ġ= Ġvalue ĊĠ Ġthis . on Led ChangeListener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it ) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠT une Extra View . bind Property ( value : ĠRem inder , Ġlistener : Ġ(( Reminder ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . extra Ġ= ĠT une Extra View . Extra (). from Reminder ( value ) ĊĠ Ġthis . on Extra Update Listener Ġ= Ġ{ ĊĠĠĠ Ġlistener . invoke ( it . to Reminder ( value )) ĊĠ Ġ} Ċ } Ċ Ċ fun ĠEx clusion Picker View . bind Property ( v 1 : ĠList < Int >, Ġv 2 : ĠString , Ġv 3 : ĠString , Ġlistener : Ġ(( List < Int >, ĠString , ĠString ) Ġ-> ĠUnit )) Ġ{ ĊĠ Ġthis . set Hours ( v 1 ) ĊĠ Ġthis . set Range Hours ( v 2 , Ġv 3 ) ĊĠ Ġthis . on Ex clusion Update Listener Ġ= Ġ{ Ġa 1 , Ġa 2 , Ġa 3 Ġ-> ĊĠĠĠ Ġlistener . invoke ( a 1 , Ġa 2 , Ġa 3 ) ĊĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠCalendar . map ( func : Ġ( Calendar ) Ġ-> ĠT ): ĠT Ġ{ ĊĠ Ġreturn Ġfunc . invoke ( this ) Ċ }