package Ġcom . cr az yle g end . kotlin extensions . calendar Ċ Ċ import Ġandroid . Manifest . permission . READ _ CAL END AR Ċ import Ġandroid . content . Content U ris Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Calendar Contract Ċ import Ġandroidx . annotation . Requires Permission Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġcr azy Ġon Ġ 1 1 / 1 1 / 1 9 Ġto Ġlong Ġlive Ġand Ġpro sper Ġ! Ċ Ġ*/ Ċ Ċ val Ġinsert Calendar Intent : ĠIntent ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠIntent ( Intent . ACTION _ INSERT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setData ( Calendar Contract . Events . CONTENT _ URI ) ĊĠĠĠ Ġ} ĊĊ Ċ fun ĠContext . view Event On Specific Date ( CAL END AR _ EVENT _ TIME : ĠLong , Ġsegment : ĠString Ġ= Ġ" time ") Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠCalendar Contract . CONTENT _ URI . build Up on (). append Path ( segment ) ĊĠĠĠ ĠContent U ris . append Id ( builder , ĠCAL END AR _ EVENT _ TIME ) ĊĠĠĠ Ġval Ġuri Ġ= Ġbuilder . build () ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setData ( uri ) ĊĠĠĠ ĠstartActivity ( intent ) Ċ } Ċ Ċ @ Requires Permission ( READ _ CAL END AR ) Ċ fun ĠContext . getEvent Ids (): ĠArrayList < Long > Ġ{ ĊĠĠĠ Ġval Ġevent IdList Ġ= ĠArrayList < Long >() ĊĊĠĠĠ Ġval ĠEVENT _ PRO JECTION : ĠArray < String > Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Contract . Events ._ ID , Ġ// Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Contract . Events . TITLE Ġ Ġ// Ġ 1 ĊĠĠĠ Ġ) ĊĠĠĠ Ġval ĠPRO JECTION _ EVENT _ ID _ INDEX Ġ= Ġ 0 ĊĊĠĠĠ Ġcontent Resolver . query ( Calendar Contract . Events . CONTENT _ URI , ĠEVENT _ PRO JECTION , Ġ"", ĠarrayOf (), Ġnull )?. use Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( it . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġfield Ġvalues ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Id Ġ= Ġit . getLong ( PRO JECTION _ EVENT _ ID _ INDEX ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent IdList . add ( eventId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġevent IdList Ċ } Ċ Ċ @ Requires Permission ( READ _ CAL END AR ) Ċ fun ĠContext . getEvent Titles (): ĠArrayList < String > Ġ{ ĊĠĠĠ Ġval Ġevent IdList Ġ= ĠArrayList < String >() ĊĊĠĠĠ Ġval ĠEVENT _ PRO JECTION : ĠArray < String > Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Contract . Events ._ ID , Ġ// Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Contract . Events . TITLE Ġ Ġ// Ġ 1 ĊĠĠĠ Ġ) ĊĠĠĠ Ġval ĠPRO JECTION _ TITLE _ INDEX Ġ= Ġ 1 ĊĊĠĠĠ Ġcontent Resolver . query ( Calendar Contract . Events . CONTENT _ URI , ĠEVENT _ PRO JECTION , Ġ"", ĠarrayOf (), Ġnull )?. use Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( it . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġfield Ġvalues ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġit . getString ( PRO JECTION _ TITLE _ INDEX ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent IdList . add ( title ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġevent IdList Ċ } ĊĊ Ċ fun ĠContext . open Calendar Intent ByID ( eventId : ĠLong ) Ġ{ ĊĠĠĠ Ġval Ġuri : ĠUri Ġ= ĠContent U ris . with App ended Id ( Calendar Contract . Events . CONTENT _ URI , Ġevent Id ) ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setData ( uri ) ĊĠĠĠ ĠstartActivity ( intent ) Ċ } Ċ Ċ fun ĠContext . update Event ByID ( eventId : ĠLong , Ġextras : ĠIntent . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġval Ġuri : ĠUri Ġ= ĠContent U ris . with App ended Id ( Calendar Contract . Events . CONTENT _ URI , Ġevent Id ) ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ EDIT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setData ( uri ) ĊĠĠĠ Ġintent . extras () ĊĠĠĠ ĠstartActivity ( intent ) Ċ } ĊĊ Ċ val ĠCalendar . era ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . ERA ) Ċ val ĠCalendar . year ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . YEAR ) Ċ val ĠCalendar . month ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . MONTH ) Ċ val ĠCalendar . week OfYear ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . WEEK _ OF _ YEAR ) Ċ val ĠCalendar . week OfMonth ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . WEEK _ OF _ MONTH ) Ċ val ĠCalendar . day OfYear ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . DAY _ OF _ YEAR ) Ċ val ĠCalendar . day OfMonth ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . DAY _ OF _ MONTH ) Ċ val ĠCalendar . day OfWeek ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . DAY _ OF _ WEEK ) Ċ val ĠCalendar . day OfWeek In Month ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . DAY _ OF _ WEEK _ IN _ MONTH ) Ċ val ĠCalendar . hour ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . HOUR ) Ċ val ĠCalendar . hour OfDay ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . HOUR _ OF _ DAY ) Ċ val ĠCalendar . minute ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . MINUTE ) Ċ val ĠCalendar . second ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . SECOND ) Ċ val ĠCalendar . milli second ĊĠĠĠ Ġget () Ġ= Ġget ( Calendar . MILLI SECOND ) ĊĊĊ