package Ġru . y oom oney . tech . mo ira . dsl . triggers . schedule Ċ Ċ import Ġorg . json . JSONObject Ċ import Ġru . y oom oney . tech . mo ira . dsl . triggers . Mo ira Dsl Ċ import Ġru . y oom oney . tech . mo ira . dsl . triggers . json . Json Ċ import Ġru . y oom oney . tech . mo ira . dsl . triggers . json . json Ċ import Ġjava . time . DayOfWeek Ċ import Ġjava . time . Local Time Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . time . temporal . Ch rono Field Ċ import Ġjava . time . temporal . Ch rono Unit Ċ import Ġjava . util . TimeZone Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠA Ġconfiguration Ġof Ġwatch Ġtime Ġfor Ġyour Ġtrigger . ĠAll Ġnotifications Ġwill Ġbe Ġdisabled Ġif Ġthey Ġsent Ġout Ġof Ġwatch Ġtime . Ċ Ġ*/ Ċ class ĠSchedule ( ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġstart Ġof Ġwatch Ġtime Ġperiod Ġof Ġeach Ġday . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ[ start ] Ġcan Ġbe Ġgreater Ġthan Ġ[ end ]. ĠIt Ġmeans Ġthat Ġyour Ġwatch Ġtime Ġwill Ġbe : Ġfrom Ġ[ start ] Ġof Ġone Ġday Ġto Ġ[ end ] Ġof ĊĠĠĠĠ Ġ* Ġnext Ġday . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġstart : ĠLocal Time Ġ= ĠLocal Time . MIN , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġend Ġof Ġwatch Ġtime Ġperiod Ġof Ġeach Ġday . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ[ start ] Ġcan Ġbe Ġgreater Ġthan Ġ[ end ]. ĠIt Ġmeans Ġthat Ġyour Ġwatch Ġtime Ġwill Ġbe : Ġfrom Ġ[ start ] Ġof Ġone Ġday Ġto Ġ[ end ] Ġof ĊĠĠĠĠ Ġ* Ġnext Ġday . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġend : ĠLocal Time Ġ= ĠLocal Time . MAX . tr uncated To ( Ch rono Unit . MIN UTES ), ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTime Ġzone Ġoffset Ġof Ġwatch Ġtime Ġperiod . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġtime Zone Offset : ĠZone Offset Ġ= ĠZone Offset . of Total Seconds ( 0 ), ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġdays Ġwith Ġinformation Ġabout Ġenabled / disabled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġdays : ĠList < Day > Ġ= ĠDay OfWeek . values (). map Ġ{ ĠDay ( it ) Ġ} Ċ ) Ġ: ĠJson Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠtoJson (): ĠJSONObject Ġ= Ġjson Ġ{ ĊĠĠĠĠĠĠĠ Ġ" start Offset " Ġto Ġstart . get ( Ch rono Field . MINUTE _ OF _ DAY ) ĊĠĠĠĠĠĠĠ Ġ" end Offset " Ġto Ġend . get ( Ch rono Field . MINUTE _ OF _ DAY ) ĊĠĠĠĠĠĠĠ Ġ" tz Offset " Ġto ĠTimeUnit . SECONDS . to Minutes ( time Zone Offset . total Seconds . to Long ()) ĊĠĠĠĠĠĠĠ Ġ" days " Ġto Ġdays ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilder Ġfor Ġ[ Schedule ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Mo ira Dsl ĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdisabled Days : ĠMutable Set < DayOfWeek > Ġ= Ġmutable Set Of () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWatch Ġtime Ġperiod . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠWatch Ġtime Ġis Ġdefined Ġby Ġpair Ġof Ġlocal Ġtime Ġinstances . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠAll Ġday Ġby Ġdefault . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġwatch Time : ĠPair < Local Time , ĠLocal Time > Ġ= ĠLocal Time . MIN Ġto ĠLocal Time . MAX . tr uncated To ( Ch rono Unit . MIN UTES ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠZone Ġoffset Ġof Ġwatch Ġtime Ġperiod . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠSystem Ġdefault Ġby Ġdefault . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġzone Offset : ĠZone Offset Ġ= ĠZone Offset . of Hours ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . MILLISECONDS . to Hours ( TimeZone . getDefault (). raw Offset . to Long ()). toInt () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDis ables Ġthis Ġday Ġfor Ġwatching . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun ĠDay OfWeek . unary Minus () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled Days Ġ+= Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġwatch Ġtime Ġperiod . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun ĠString . range To ( end : ĠString ): ĠPair < Local Time , ĠLocal Time > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Time . parse ( this , ĠDateTime Formatter . ISO _ LOCAL _ TIME ). tr uncated To ( Ch rono Unit . MIN UTES ) Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Time . parse ( end , ĠDateTime Formatter . ISO _ LOCAL _ TIME ). tr uncated To ( Ch rono Unit . MIN UTES ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġa Ġschedule . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġas Schedule () Ġ= ĠSchedule ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġwatch Time . first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġwatch Time . second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Zone Offset Ġ= Ġzone Offset , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdays Ġ= ĠDay OfWeek . values (). map Ġ{ ĠDay ( it , Ġit Ġ! in Ġdisabled Days ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ