package Ġjp . study plus . android . sdk . record Ċ Ċ import Ġandroidx . annotation . Int Range Ċ import Ġorg . json . JSONObject Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠStudy plus ãģ« æĬķ ç¨ ¿ ãģĻãĤĭ åŃ¦ ç¿ Ĵ è¨ĺ éĮ² Ċ Ġ* Ċ Ġ* Ġ@ param Ġduration ĠĠĠĠĠ Ġ åŃ¦ ç¿ Ĵ æĻĤéĸĵ ( s ), ĠMAX Ġ 8 6 4 0 0 Ġ( 2 4 h ) Ċ Ġ* Ġ@ param Ġamount ĠĠĠĠĠĠĠ Ġ åŃ¦ ç¿ Ĵ éĩı Ċ Ġ* Ġ@ param Ġcomment ĠĠĠĠĠĠ Ġ åŃ¦ ç¿ Ĵ ãģ«éĸ¢ãģĻãĤĭ ãĤ³ ãĥ¡ãĥ³ãĥĪ Ċ Ġ* Ġ@ param Ġrecorded Time Ġ Ġ åŃ¦ ç¿ Ĵ ãĤĴ çµĤ ãģĪ ãģŁ æĹ¥ æĻĤ Ċ Ġ* Ġ@ since Ġ 2 . 5 . 0 Ċ Ġ* Ġ@ throws ĠIllegalArgumentException Ġduration Ġexceeds Ġ 2 4 h Ċ Ġ*/ Ċ data Ġclass ĠStudy Record Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġ@ Int Range ( from Ġ= Ġ 0 L , Ġto Ġ= ĠD URATION _ RANGE _ MAX _ 2 4 H ) ĊĠĠĠ Ġval Ġduration : ĠInt , ĊĠĠĠ Ġval Ġamount : ĠStudy Record Amount ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġcomment : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġrecorded Time : ĠOffset DateTime Ġ= ĠOffset DateTime . now () Ċ ) Ġ{ ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġ@ Int Range ( from Ġ= Ġ 0 L , Ġto Ġ= ĠD URATION _ RANGE _ MAX _ 2 4 H ) ĊĠĠĠĠĠĠĠ Ġduration : ĠInt , ĊĠĠĠĠĠĠĠ Ġamount : ĠStudy Record Amount ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġcomment : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġrecorded Time : ĠCalendar ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġduration Ġ= Ġduration , ĊĠĠĠĠĠĠĠ Ġamount Ġ= Ġamount , ĊĠĠĠĠĠĠĠ Ġcomment Ġ= Ġcomment , ĊĠĠĠĠĠĠĠ Ġrecorded Time Ġ= Ġrecorded Time . to Instant (). at Offset ( Zone Offset . UTC ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinternal Ġval Ġjson : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( duration Ġ> ĠD URATION _ RANGE _ MAX _ 2 4 H ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" duration Ġmust Ġbe Ġ 2 4 Ġhours Ġor Ġless ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" record _ datetime ", Ġrecorded Time . format ( DateTime Formatter . ISO _ OFFSET _ DATE _ TIME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" duration ", Ġduration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment ?. let Ġ{ Ġput (" comment ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount ?. let Ġ{ Ġstudy Record Amount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudy Record Amount . amount Total ?. let Ġ{ Ġput (" amount ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudy Record Amount . start Position ?. let Ġ{ Ġput (" start _ position ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudy Record Amount . end Position ?. let Ġ{ Ġput (" end _ position ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠD URATION _ RANGE _ MAX _ 2 4 H Ġ= Ġ 2 4 L Ġ* Ġ 6 0 L Ġ* Ġ 6 0 L ĊĠĠĠ Ġ} Ċ Ċ } Ċ