package Ġcom . k vs . s amsung health reporter . model . session Ċ Ċ import Ġcom . google . gson . annotations .* Ċ import Ġcom . k vs . s amsung health reporter . S amsung Health Write Exception Ċ import Ġcom . k vs . s amsung health reporter . model . Common Ċ import Ġcom . k vs . s amsung health reporter . model . Time Ċ import Ġcom . s amsung . android . sdk . health data .* Ċ import Ġjava . util .* Ċ Ċ class ĠHeart Rate Ġ: ĊĠĠĠ ĠSession < Heart Rate . Read Result , ĠHeart Rate . Aggregate Result , ĠHeart Rate . Insert Result > Ġ{ ĊĠĠĠ Ġdata Ġclass ĠRead Result ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġuuid : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠpackageName : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdevice Uuid : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcustom : ĠString ?, ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠcreateTime : ĠLong , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġupdate Time : ĠLong , ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠstartTime : ĠLong , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtime Offset : ĠLong , ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠendTime : ĠLong , ĊĠĠĠĠĠĠĠ Ġval Ġrate : ĠRate , ĊĠĠĠĠĠĠĠ Ġval Ġbeat Count : ĠBe at Count , ĊĠĠĠĠĠĠĠ Ġval Ġbin ning Data : ĠBin ning Data ?, ĊĠĠĠĠĠĠĠ Ġval Ġcomment : ĠString ?, ĊĠĠĠ Ġ) Ġ: ĠSession . Read Result Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRate ( val Ġvalue : ĠFloat , Ġval Ġunit : ĠString ) ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠBe at Count ( val Ġvalue : ĠInt , Ġval Ġunit : ĠString ) ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠBin ning Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġraw : ĠList < Raw >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin : ĠMin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax : ĠMax ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠRaw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SerializedName (" heart _ rate ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Expose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheart Rate : ĠFloat ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SerializedName (" heart _ rate _ min ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Expose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheart Rate Min : ĠFloat ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SerializedName (" heart _ rate _ max ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Expose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheart Rate Max : ĠFloat ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SerializedName (" start _ time ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Expose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠstartTime : ĠLong ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SerializedName (" end _ time ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Expose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠendTime : ĠLong ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġclass ĠMin ( val Ġvalue : ĠLong , Ġval Ġunit : ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġclass ĠMax ( val Ġvalue : ĠLong , Ġval Ġunit : ĠString ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠAggregate Result ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtime : ĠTime , ĊĠĠĠĠĠĠĠ Ġval Ġrate : ĠRate ĊĠĠĠ Ġ) Ġ: ĊĠĠĠĠĠĠĠ ĠSession . Aggregate Result Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavg : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunit : ĠString ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠInsert Result ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠpackageName : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠstartDate : ĠDate , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtime Offset : ĠLong , ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠendDate : ĠDate , ĊĠĠĠĠĠĠĠ Ġval Ġheart Rate : ĠFloat , ĊĠĠĠĠĠĠĠ Ġval Ġbeat Count : ĠInt ĊĠĠĠ Ġ) Ġ: ĠSession . Insert Result ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠCommon . Factory < Heart Rate > Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠB PM _ UNIT Ġ= Ġ" bpm " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCOUNT _ UNIT Ġ= Ġ" count " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠA LI AS _ MIN _ HE ART _ RATE Ġ= Ġ" heart _ rate _ min " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠA LI AS _ MAX _ HE ART _ RATE Ġ= Ġ" heart _ rate _ max " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠA LI AS _ AVG _ HE ART _ RATE Ġ= Ġ" heart _ rate _ avg " ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Read Data ( data : ĠHealth Data ): ĠHeart Rate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHeart Rate (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbin ning Data Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . get Blob ( Health Constants . Heart Rate . BIN NING _ DATA ) Ġ!= Ġnull ) ĠRead Result . Bin ning Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHealth Data Util . get Structured DataList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . get Blob ( Health Constants . Heart Rate . BIN NING _ DATA ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRead Result . Bin ning Data . Raw :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRead Result . Bin ning Data . Min ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . MIN ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB PM _ UNIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRead Result . Bin ning Data . Max ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . MAX ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB PM _ UNIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Result Ġ= ĠRead Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString ( Health Constants . Heart Rate . UUID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString ( Health Constants . Heart Rate . PACKAGE _ NAME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString ( Health Constants . Heart Rate . DEVICE _ UUID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString ( Health Constants . Heart Rate . CUSTOM ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . CREATE _ TIME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . UPDATE _ TIME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . START _ TIME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . TIME _ OFFSET ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getLong ( Health Constants . Heart Rate . END _ TIME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRead Result . Rate ( data . get Float ( Health Constants . Heart Rate . HE ART _ RATE ), ĠB PM _ UNIT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRead Result . Beat Count ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getInt ( Health Constants . Heart Rate . HE ART _ BE AT _ COUNT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOUNT _ UNIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbin ning Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString ( Health Constants . Heart Rate . COMMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Aggregate Data ( data : ĠHealth Data , Ġtime Group : ĠTime . Group ): ĠHeart Rate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHeart Rate (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaggregate Result Ġ= ĠAggregate Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime ( data . getString ( time Group . alias ), Ġtime Group ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAggregate Result . Rate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . get Float ( ALIAS _ MIN _ HE ART _ RATE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . get Float ( ALIAS _ MAX _ HE ART _ RATE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . get Float ( ALIAS _ AVG _ HE ART _ RATE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB PM _ UNIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠHealth Constants . Heart Rate . HE ALTH _ DATA _ TYPE ĊĠĠĠ Ġoverride Ġvar Ġread Result : ĠRead Result ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġaggregate Result : ĠAggregate Result ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġinsert Result : ĠInsert Result ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġconstructor () ĊĊĠĠĠ Ġconstructor ( insert Result : ĠInsert Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . insert Result Ġ= Ġinsert Result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġas Original ( health DataStore : ĠHealth DataStore ): ĠHealth Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinsert Result Ġ= Ġthis . insert Result Ġ?: Ġthrow ĠSamsung Health Write Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Insert Ġresult Ġwas Ġnull , Ġnothing Ġto Ġwrite Ġin ĠSamsung ĠHealth " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdevice Uuid Ġ= ĠHealth Device Manager ( health DataStore ). local Device . uuid ĊĠĠĠĠĠĠĠ Ġreturn ĠHealth Data (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Device Ġ= Ġdevice Uuid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Health Constants . Heart Rate . DEVICE _ UUID , Ġdevice Uuid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Health Constants . Heart Rate . PACKAGE _ NAME , Ġinsert Result . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Long ( Health Constants . Heart Rate . START _ TIME , Ġinsert Result . startDate . time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Long ( Health Constants . Heart Rate . TIME _ OFFSET , Ġinsert Result . time Offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Long ( Health Constants . Heart Rate . END _ TIME , Ġinsert Result . endDate . time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Float ( Health Constants . Heart Rate . HE ART _ RATE , Ġinsert Result . heart Rate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( Health Constants . Heart Rate . HE ART _ BE AT _ COUNT , Ġinsert Result . beat Count ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }