package Ġcom . alam kan ak . week view . sample Ċ Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . prom ic x . week view . DateTime Interpreter Ċ import Ġcom . prom ic x . week view . Month Loader Ċ import Ġcom . prom ic x . week view . Week View Ċ import Ġcom . prom ic x . week view . Week View Event Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ abstract Ġclass ĠBase Activity Ġ: ĠAppCompatActivity (), ĠWeek View . Event ClickListener , ĠMonth Loader . Month ChangeListener , ĠWeek View . Event Long Press Listener , ĠWeek View . Empty View Long Press Listener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Week ViewType Ġ= ĠTYPE _ TH REE _ DAY _ VIEW ĊĠĠĠ Ġvar Ġweek View : ĠWeek View ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ base ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġa Ġreference Ġfor Ġthe Ġweek Ġview Ġin Ġthe Ġlayout . ĊĠĠĠĠĠĠĠ Ġweek View Ġ= ĠfindViewById ( R . id . week View ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġa Ġtoast Ġmessage Ġabout Ġthe Ġtouched Ġevent . ĊĠĠĠĠĠĠĠ Ġweek View !!. setOn Event ClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġweek Ġview Ġhas Ġinfinite Ġscrolling Ġh orizontally . ĠWe Ġhave Ġto Ġprovide Ġthe Ġevents Ġof Ġa ĊĠĠĠĠĠĠĠ Ġ// Ġmonth Ġevery Ġtime Ġthe Ġmonth Ġchanges Ġon Ġthe Ġweek Ġview . ĊĠĠĠĠĠĠĠ Ġweek View !!. month ChangeListener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġlong Ġpress Ġlistener Ġfor Ġevents . ĊĠĠĠĠĠĠĠ Ġweek View !!. event Long Press Listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġlong Ġpress Ġlistener Ġfor Ġempty Ġview ĊĠĠĠĠĠĠĠ Ġweek View !!. empty View Long Press Listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġup Ġa Ġdate Ġtime Ġinterpreter Ġto Ġinterpret Ġhow Ġthe Ġdate Ġand Ġtime Ġwill Ġbe Ġformatted Ġin ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġweek Ġview . ĠThis Ġis Ġoptional . ĊĠĠĠĠĠĠĠ Ġsetup DateTime Interpreter ( false ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠ Ġsetup DateTime Interpreter ( id Ġ== ĠR . id . action _ week _ view ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ today Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. goTo Today () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ day _ view Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Week ViewType Ġ!= ĠTYPE _ DAY _ VIEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . isChecked Ġ= Ġ! item . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Week ViewType Ġ= ĠTYPE _ DAY _ VIEW ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. numberOf Visible Days Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠL ets Ġchange Ġsome Ġdimensions Ġto Ġbest Ġfit Ġthe Ġview . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. column Gap Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 8 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 2 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. event Text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 2 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ three _ day _ view Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Week ViewType Ġ!= ĠTYPE _ TH REE _ DAY _ VIEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . isChecked Ġ= Ġ! item . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Week ViewType Ġ= ĠTYPE _ TH REE _ DAY _ VIEW ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. numberOf Visible Days Ġ= Ġ 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠL ets Ġchange Ġsome Ġdimensions Ġto Ġbest Ġfit Ġthe Ġview . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. column Gap Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 8 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 2 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. event Text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 2 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ week _ view Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Week ViewType Ġ!= ĠTYPE _ WEEK _ VIEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . isChecked Ġ= Ġ! item . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Week ViewType Ġ= ĠTYPE _ WEEK _ VIEW ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. numberOf Visible Days Ġ= Ġ 7 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠL ets Ġchange Ġsome Ġdimensions Ġto Ġbest Ġfit Ġthe Ġview . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. column Gap Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 2 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 0 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek View !!. event Text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 0 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġup Ġa Ġdate Ġtime Ġinterpreter Ġwhich Ġwill Ġshow Ġshort Ġdate Ġvalues Ġwhen Ġin Ġweek Ġview Ġand Ġlong ĊĠĠĠĠ Ġ* Ġdate Ġvalues Ġotherwise . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshort Date ĠTrue Ġif Ġthe Ġdate Ġvalues Ġshould Ġbe Ġshort . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsetup DateTime Interpreter ( short Date : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweek View !!. dateTime Interpreter Ġ= Ġobject Ġ: ĠDateTime Interpreter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinterpret Date ( date : ĠCalendar ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweek day Name Format Ġ= ĠSimpleDateFormat (" EEE ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġweek day Ġ= Ġweek day Name Format . format ( date . time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat (" dd ", ĠLocale . getDefault ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAll Ġandroid Ġapi Ġlevel Ġdo Ġnot Ġhave Ġa Ġstandard Ġway Ġof Ġgetting Ġthe Ġfirst Ġletter Ġof ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġweek Ġday Ġname . ĠHence Ġwe Ġget Ġthe Ġfirst Ġchar Ġprogram matically . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDetails : Ġhttp :// stackoverflow . com / questions / 1 6 9 5 9 5 0 2 / get - one - letter - abbre viation - of - week - day - of - a - date - in - java # answer - 1 6 9 5 9 6 5 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( short Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek day Ġ= Ġweek day [ 0 ]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"${ weekday . toUpperCase () }\ n \ n ${ format . format ( date . time )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinterpret Time ( hour : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( hour Ġ> Ġ 1 1 ) Ġ( hour Ġ- Ġ 1 2 ). toString () Ġ+ Ġ" ĠPM " Ġelse Ġif Ġ( hour Ġ== Ġ 0 ) Ġ" 1 2 ĠAM " Ġelse Ġ"$ hour ĠAM " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Event Title ( time : ĠCalendar ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠString . format (" Event Ġof Ġ% 0 2 d :% 0 2 d Ġ% s /% d ", Ġtime !!. get ( Calendar . HOUR _ OF _ DAY ), Ġtime . get ( Calendar . MINUTE ), Ġtime . get ( Calendar . MONTH ) Ġ+ Ġ 1 , Ġtime . get ( Calendar . DAY _ OF _ MONTH )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Event Click ( event : ĠWeek View Event , Ġevent Rect : ĠRect F ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Clicked Ġ" Ġ+ Ġevent . name !! , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Event Long Press ( event : ĠWeek View Event , Ġevent Rect : ĠRect F ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Long Ġpressed Ġevent : Ġ" Ġ+ Ġevent . name !! , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Empty View Long Press ( time : ĠCalendar ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Empty Ġview Ġlong Ġpressed : Ġ" Ġ+ Ġget Event Title ( time ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTYPE _ DAY _ VIEW Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTYPE _ TH REE _ DAY _ VIEW Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTYPE _ WEEK _ VIEW Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ } Ċ