From 8647649a6de9d2c5d7640bf51f847a729d14a58e Mon Sep 17 00:00:00 2001 From: Giacomo Date: Wed, 22 Aug 2018 19:23:10 +0200 Subject: [PATCH] Added Steps --- SeniorAssistant.iml | 30 ++++++++++++--------- src/main/java/Main.java | 3 +-- src/main/java/manage/AuthFITBIT.java | 15 ++++++----- src/main/java/manage/FITBITData/FitBit.java | 17 ++++++------ src/main/java/manage/FITBITData/Steps.java | 25 +++++++++++++++++ 5 files changed, 61 insertions(+), 29 deletions(-) diff --git a/SeniorAssistant.iml b/SeniorAssistant.iml index 306ea4c..405022e 100644 --- a/SeniorAssistant.iml +++ b/SeniorAssistant.iml @@ -1,13 +1,19 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 6878c2b..bc2c900 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,5 +1,4 @@ -import manage.AuthFITBIT; -import manage.FITBITData.*; +import manage.FITBITData.FitBit; public class Main { public static void main(String[] args) throws Exception { diff --git a/src/main/java/manage/AuthFITBIT.java b/src/main/java/manage/AuthFITBIT.java index df47eac..bf6e266 100644 --- a/src/main/java/manage/AuthFITBIT.java +++ b/src/main/java/manage/AuthFITBIT.java @@ -1,12 +1,20 @@ package manage; +import java.io.IOException; +import java.util.Arrays; + import com.fasterxml.jackson.databind.ObjectMapper; import com.google.api.client.auth.oauth2.AuthorizationCodeFlow; import com.google.api.client.auth.oauth2.BearerToken; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; -import com.google.api.client.http.*; +import com.google.api.client.http.BasicAuthentication; +import com.google.api.client.http.GenericUrl; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.http.HttpRequestFactory; +import com.google.api.client.http.HttpResponse; +import com.google.api.client.http.HttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.GenericJson; import com.google.api.client.json.JsonFactory; @@ -14,11 +22,6 @@ import com.google.api.client.json.JsonObjectParser; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.store.DataStoreFactory; import com.google.api.client.util.store.FileDataStoreFactory; -import manage.FITBITData.Device; - -import java.io.IOException; - -import java.util.*; public class AuthFITBIT { diff --git a/src/main/java/manage/FITBITData/FitBit.java b/src/main/java/manage/FITBITData/FitBit.java index 436e541..86666ee 100644 --- a/src/main/java/manage/FITBITData/FitBit.java +++ b/src/main/java/manage/FITBITData/FitBit.java @@ -1,12 +1,12 @@ package manage.FITBITData; -import manage.AuthFITBIT; - import java.io.IOException; import java.util.Calendar; import java.util.HashMap; import java.util.Map; +import manage.AuthFITBIT; + public class FitBit { public static final String BASIC_URL = "https://api.fitbit.com/"; @@ -14,7 +14,7 @@ public class FitBit { private static final long MINUTE = 60000; /* 5 minutes in millisec */ private final AuthFITBIT auth; - private final Map latestRequest = new HashMap<>(); + private final Map, Long> latestRequest = new HashMap<>(); private final Calendar calendar = Calendar.getInstance(); private HeartRate heart = null; @@ -32,15 +32,14 @@ public class FitBit { } /* passi */ - //https://api.fitbit.com/1/user/-/activities/steps/date/today.json public int getSteps() throws IOException { if(shouldUpdateFor(Steps.class)) { long currentMillisec = System.currentTimeMillis(); - - steps = auth.run(BASIC_URL + "1" + USER + "activities/steps/date/today.json", Steps.class); - latestRequest.put(steps.getClass(), currentMillisec); + + steps = auth.run(BASIC_URL + "1" + USER + "activities/steps/date/today/1w.json", Steps.class); + latestRequest.put(steps.getClass(), currentMillisec); } - return 0; + return steps.getSteps(); } /* battito */ @@ -71,7 +70,7 @@ public class FitBit { return sleep.getMinutesAsleep(); } - private boolean shouldUpdateFor(Class type) { + private boolean shouldUpdateFor(Class type) { try { long current = System.currentTimeMillis(); long latest = latestRequest.get(type); diff --git a/src/main/java/manage/FITBITData/Steps.java b/src/main/java/manage/FITBITData/Steps.java index f71461f..7d92a82 100644 --- a/src/main/java/manage/FITBITData/Steps.java +++ b/src/main/java/manage/FITBITData/Steps.java @@ -1,5 +1,30 @@ package manage.FITBITData; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) public class Steps { + private int steps=0; + + @JsonProperty("activities-steps") + public void setSteps(Map[] array) { + SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd"); + Date now = new Date(); + String strDate = sdfDate.format(now); + + for(Map map : array) + if(map.get("dateTime").equals(strDate)) + steps = Integer.parseInt(map.get("value"))+1; + } + + public int getSteps() { + return steps; + } + }