package Ġcom . d mb ary she v . bd . presenter Ċ Ċ import Ġcom . d mb ary she v . bd . model . view _ model . User VM Ċ import Ġcom . d mb ary she v . bd . network . Response Answer Ċ import Ġcom . d mb ary she v . bd . presenter . common . Base Presenter Ċ import Ġcom . d mb ary she v . bd . view . calendar . IC al endar View Ċ import Ġcom . pro l ific interactive . material calendar view . Calendar Day Ċ import Ġrx . Observable Ċ import Ġjava . util .* Ċ Ċ class ĠCalendar Presenter Ġ: ĠBase Presenter < IC al endar View , ĠUser VM >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Users : ĠList < User VM > Ġby Ġlazy Ġ{ Ġm View !!. get Users () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Answer ( answer : ĠMutable List < User VM > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm View ?. show Data ( answer Ġ?: Ġreturn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Dn Observable (): ĠObservable < Response Answer < User VM >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Network Observable (): ĠObservable < Response Answer < User VM >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next Network ( response Answer : ĠResponse Answer < User VM >) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError Network ( e : ĠThrowable ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Birth days By Date ( day : ĠInt , Ġmonth : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm View ?. show Data ( m Users . filter Ġ{ Ġit . b date Ġ!= Ġnull Ġ&& Ġit . b date !!. size Ġ> Ġ 1 Ġ&& Ġit . b date ! ![ 0 ] Ġ== Ġday Ġ&& Ġit . b date ! ![ 1 ] Ġ== Ġmonth Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Events (): ĠCollection < Calendar Day > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcalendar Days : ĠMutable List < Calendar Day > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġm View ?. get Users () ĊĠĠĠĠĠĠĠ Ġusers ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . b date Ġ!= Ġnull Ġ&& Ġit . b date !!. size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . DAY _ OF _ MONTH , Ġit . b date ! ![ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . MONTH , Ġit . b date ! ![ 1 ] Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar Days . add ( Calendar Day ( calendar )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcalendar Days ĊĠĠĠ Ġ} Ċ }