/* Ċ Ġ* ĠBSD Ġ 3 - Clause ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ ĠS age ĠB ion etwork s . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ġmodification , Ċ Ġ* Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ 1 . Ġ ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis Ċ Ġ* Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ 2 . Ġ ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ġand / or Ċ Ġ* Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ċ Ġ* Ġ 3 . Ġ ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder ( s ) Ġnor Ġthe Ġnames Ġof Ġany Ġcontributors Ċ Ġ* Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ġfrom Ġthis Ġsoftware Ġwithout Ċ Ġ* Ġspecific Ġprior Ġwritten Ġpermission . ĠNo Ġlicense Ġis Ġgranted Ġto Ġthe Ġtrade marks Ġof Ċ Ġ* Ġthe Ġcopyright Ġhold ers Ġeven Ġif Ġsuch Ġmarks Ġare Ġincluded Ġin Ġthis Ġsoftware . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " Ċ Ġ* ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE Ċ Ġ* ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE Ċ Ġ* ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE Ċ Ġ* ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL Ċ Ġ* ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR Ċ Ġ* ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER Ċ Ġ* ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , Ċ Ġ* ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE Ċ Ġ* ĠOF ĠTHIS ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ Ċ package Ġorg . sage b ion etwork s . research . mp ower . rem inders Ċ Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . content . Context Ċ import Ġorg . sage b ion etwork s . research . mp ower . R . string Ċ import Ġorg . sage b ion etwork s . research . mp ower . research . Mp Identifier Ċ import Ġorg . sage b ion etwork s . research . mp ower . research . Study Bur st Configuration Ċ import Ġorg . sage b ion etwork s . research . s ag ere search . rem inders . Mp Reminder Alarm Receiver Ċ import Ġorg . sage b ion etwork s . research . s ag ere search . rem inders . Reminder Ċ import Ġorg . sage b ion etwork s . research . s ag ere search . rem inders . Reminder Manager Ċ import Ġorg . sage b ion etwork s . research . s ag ere search . rem inders . Reminder Schedule Ignore Rule Ċ import Ġorg . sage b ion etwork s . research . s ag ere search . rem inders . Reminder Schedule Rules Ċ import Ġorg . th reet en . bp . LocalDateTime Ċ Ċ val ĠRE M IND ER _ CODE _ RUN _ TASK Ġ= Ġ 1 0 0 1 Ċ val ĠRE M IND ER _ ACTION _ RUN _ TASK Ġ= Ġ" REM IND ER _ ACTION _ RUN _ TASK " Ċ Ċ val ĠRE M IND ER _ CODE _ ST UD Y _ BUR ST Ġ= Ġ 1 0 0 2 Ċ val ĠRE M IND ER _ ACTION _ ST UD Y _ BUR ST Ġ= Ġ" REM IND ER _ ACTION _ ST UD Y _ BUR ST " Ċ Ċ class ĠM p Reminder Manager ( context : ĠContext ): ĠRem inder Manager ( context ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ property Ġreminder Alarm Receiver Ġthe Ġreceiver Ġto Ġassociate Ġwith Ġthis Ġmanager ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġreminder Alarm Receiver : ĠClass < *> ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠM p Reminder Alarm Receiver :: class . java ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRes chedules Ġall Ġrem inders Ġbased Ġon Ġthe Ġpreviously Ġscheduled Ġones ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġcan Ġbe Ġapp , Ġactivity , Ġor Ġserver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġre schedule All Rem inders ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel All Rem inders ( context ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschedule Reminder ( context , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠS chedules Ġthe Ġstudy Ġburst Ġrem inders ĊĠĠĠĠ Ġ* Ġ Ġ@ param Ġcontext Ġcan Ġbe Ġapp Ġor Ġactivity ĊĠĠĠĠ Ġ* Ġ Ġ@ param Ġfirst Study Bur st Scheduled On Ġthe Ġscheduled On Ġfrom Ġthe Ġear liest Ġstudy Ġburst Ġschedule ĊĠĠĠĠ Ġ* Ġ Ġ@ param Ġreminder Time Ġthe ĠLocalDateTime Ġrepresenting Ġthe Ġhour / minute Ġof Ġwhen Ġthe Ġdaily Ġreminder Ġhappens ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Study Bur st Reminder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Study Bur st Scheduled On : ĠLocalDateTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreminder Time : ĠLocalDateTime ): ĠRem inder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġm de ph illi ps Ġ 1 0 / 2 5 / 1 8 Ġthis Ġneeds Ġto Ġbe Ġsupported Ġby Ġbridge Ġapp Ġconfig ĊĠĠĠĠĠĠĠ Ġval Ġstudy Config Ġ= ĠStudy Bur st Configuration () ĊĊĠĠĠĠĠĠĠ Ġval Ġignore Start Ġ= Ġfirst Study Bur st Scheduled On . plus Days ( study Config . numberOf Days . to Long ()) ĊĠĠĠĠĠĠĠ Ġval Ġignore End Ġ= Ġfirst Study Bur st Scheduled On . plus Days ( study Config . repeat Interval In Days ) ĊĠĠĠĠĠĠĠ Ġval Ġignore Repeat Interval Ġ= Ġstudy Config . repeat Interval In Days ĊĠĠĠĠĠĠĠ Ġval Ġignore Alarm Rules Ġ= ĠRem inder Schedule Ignore Rule ( ignore Start , Ġignore End , Ġignore Repeat Interval ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreminder Schedule Rules Ġ= ĠRem inder Schedule Rules ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreminder Time , ĠAlarm Manager . INTERVAL _ DAY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Alarm Rules , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreminder Ġ= ĠRem inder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM p Identifier . ST UD Y _ BUR ST _ REM IND ER , ĠRE M IND ER _ ACTION _ ST UD Y _ BUR ST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRE M IND ER _ CODE _ ST UD Y _ BUR ST , Ġreminder Schedule Rules , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( string . reminder _ title _ study _ burst )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġreminder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġthe Ġstudy Ġburst Ġreminder Ġis Ġscheduled , Ġfalse Ġotherwise ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Study Bur st Reminder Scheduled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Reminder Scheduled ( Mp Identifier . ST UD Y _ BUR ST _ REM IND ER ) ĊĠĠĠ Ġ} Ċ }