Maybe last commit

- updated docs and improved readability
- added recordings
This commit is contained in:
Giulia
2018-09-21 18:06:05 +02:00
parent 898e25fcf3
commit 75ebc025a3
23 changed files with 59 additions and 68 deletions

View File

@@ -50,8 +50,6 @@ dependencies {
// YOUTUBE VIDEO // YOUTUBE VIDEO
//compile 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64:4.3' //Winzozz 64
//compile 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86:4.3' //Linuzuzz 32
//compile files('lib/SWT_linux32.jar') //compile files('lib/SWT_linux32.jar')
//compile files('lib/SWT_linux64.jar') //compile files('lib/SWT_linux64.jar')
compile files('lib/SWT_win64.jar') compile files('lib/SWT_win64.jar')

View File

@@ -21,19 +21,19 @@ import static spark.Spark.post;
public class DialogFlowWebHook { public class DialogFlowWebHook {
/** /**
* Un logger per vedere le cose piu' easy * Un logger per ottenere messaggi sull'esecuzione del programma
*/ */
private static final Logger LOG = LoggerFactory.getLogger("WebHook"); private static final Logger LOG = LoggerFactory.getLogger("WebHook");
/** /**
* Stringa che viene usata se l'azione esiste ma lancia un qualche tipo di errore * Stringa che viene usata se l'azione esiste ma lancia un qualche tipo di errore
*/ */
public static final String ACTION_ERROR = "Purtroppo chi mi ha programmato e' un pirla, non posso fare cio' che hai chiesto"; public static final String ACTION_ERROR = "L'azione non è eseguibile";
/** /**
* Errore che viene mostrato all'utente se l'azione inviata non corrisponde a nessuna di quelle inserite * Errore che viene mostrato all'utente se l'azione inviata non corrisponde a nessuna di quelle inserite
*/ */
public static final String ERROR = "Non mi hanno imparato abbastanza per fare questo"; public static final String ERROR = "Non posso eseguire nessuna azione di questo tipo";
/** /**
* L'eventuale path successiva all'url dichiarato nel Webhook di Dialog-Flow * L'eventuale path successiva all'url dichiarato nel Webhook di Dialog-Flow
@@ -70,7 +70,7 @@ public class DialogFlowWebHook {
/** /**
* Aggiunge un'azione ad una specifica richiesta di Dialog-Flow * Aggiunge un'azione ad una specifica richiesta di Dialog-Flow
* @param actionId il nome dell'azione che viene passata da Dialog-Flow * @param actionId il nome dell'azione che viene passata da Dialog-Flow
* @param action l'azione da fare (e' consigliato usare le espressioni lambda) * @param action l'azione da fare
*/ */
public void addOnAction(String actionId, Action action) { this.actions.put(actionId, action); } public void addOnAction(String actionId, Action action) { this.actions.put(actionId, action); }
@@ -136,7 +136,7 @@ public class DialogFlowWebHook {
*/ */
public interface Action { public interface Action {
/** /**
* Fai l'azione desiderata. * Fa l'azione desiderata.
* Se ritorna una stringa allora il testo viene cambiato. Se ritorna null non cambia il testo * Se ritorna una stringa allora il testo viene cambiato. Se ritorna null non cambia il testo
* *
* @param params una mappa contenente tutti i parametri impostati da dialogflow * @param params una mappa contenente tutti i parametri impostati da dialogflow

View File

@@ -212,5 +212,4 @@ public class Fitbit {
return String.format("%02d:%02d", hour, minu); return String.format("%02d:%02d", hour, minu);
} }
// Device dev = auth.run(BASIC_URL + "devices.json", Device.class);
} }

View File

@@ -21,12 +21,12 @@ public class Hue {
private static final Logger LOG = LoggerFactory.getLogger("Hue"); private static final Logger LOG = LoggerFactory.getLogger("Hue");
/** /**
* La luminopsita' massima a cui si puo' arrivare * La luminosita' massima a cui si puo' arrivare
*/ */
private static final int MAX_BRIGHTNESS = 254; private static final int MAX_BRIGHTNESS = 254;
/** /**
* Una mappa che ad ogni colore (in lingua ita) assegna il proprio valore in hue * Una mappa che ad ogni colore (in italiano) assegna il proprio valore in hue
*/ */
private static final Map<String, Double[]> COLORS = new HashMap<>(); private static final Map<String, Double[]> COLORS = new HashMap<>();
@@ -45,7 +45,7 @@ public class Hue {
*/ */
private final AtomicDouble brightness = new AtomicDouble(0); private final AtomicDouble brightness = new AtomicDouble(0);
// Riempimento della mappa con i vari colori // Riempimento della mappa con i colori
static { static {
COLORS.put("giall[oae]", new Double[]{0.45, 0.45}); COLORS.put("giall[oae]", new Double[]{0.45, 0.45});
COLORS.put("ross[oae]", new Double[]{0.7, 0.25}); COLORS.put("ross[oae]", new Double[]{0.7, 0.25});
@@ -60,7 +60,7 @@ public class Hue {
} }
/** /**
* Cerca le luci Philips Hue a ll'indirizzo <a href="http://172.30.1.138/api/C0vPwqjJZo5Jt9Oe5HgO6sBFFMxgoR532IxFoGmx/lights/">http://172.30.1.138/api/C0vPwqjJZo5Jt9Oe5HgO6sBFFMxgoR532IxFoGmx/lights/</a> * Cerca le luci Philips Hue all'indirizzo <a href="http://172.30.1.138/api/C0vPwqjJZo5Jt9Oe5HgO6sBFFMxgoR532IxFoGmx/lights/">http://172.30.1.138/api/C0vPwqjJZo5Jt9Oe5HgO6sBFFMxgoR532IxFoGmx/lights/</a>
* @throws NullPointerException se non trova nessun bridge * @throws NullPointerException se non trova nessun bridge
*/ */
public Hue () throws NullPointerException { this("172.30.1.138", "C0vPwqjJZo5Jt9Oe5HgO6sBFFMxgoR532IxFoGmx"); } public Hue () throws NullPointerException { this("172.30.1.138", "C0vPwqjJZo5Jt9Oe5HgO6sBFFMxgoR532IxFoGmx"); }
@@ -118,7 +118,7 @@ public class Hue {
public void turnOff() { on(false); } public void turnOff() { on(false); }
/** /**
* Ritorna la liminosita' attuale delle luci controllate * Ritorna la luminosita' attuale delle luci controllate
* @return il valore e' compreso tra 0 e 100 * @return il valore e' compreso tra 0 e 100
*/ */
public double getCurrentBrightness() { return brightness.doubleValue(); } public double getCurrentBrightness() { return brightness.doubleValue(); }
@@ -163,7 +163,7 @@ public class Hue {
public void increaseBrightness() { increaseBrightness(25); } public void increaseBrightness() { increaseBrightness(25); }
/** /**
* Dinuisce la luminosita' delle luci controllate della percentuale che viene passata * Diminuisce la luminosita' delle luci controllate della percentuale che viene passata
* @param percentage la percentuale di diminuzione della luminosita' * @param percentage la percentuale di diminuzione della luminosita'
*/ */
public void decreaseBrightness(int percentage) { public void decreaseBrightness(int percentage) {
@@ -175,7 +175,7 @@ public class Hue {
} }
/** /**
* Dinuisce la luminosita' delle luci controllate del 25% * Diminuisce la luminosita' delle luci controllate del 25%
*/ */
public void decreaseBrightness() { decreaseBrightness(25); } public void decreaseBrightness() { decreaseBrightness(25); }
@@ -192,7 +192,7 @@ public class Hue {
/** /**
* Invia una richiesta a tutte le luci hue con l'attributo selezionato ed il suo valore<br> * Invia una richiesta a tutte le luci hue con l'attributo selezionato ed il suo valore<br>
* Con esso invia anche una transition:20 in modo che sia piu fluido il cambiamento se si mette true al terzo parametro * Con esso invia anche un valore di transizione in modo che sia piu fluido il cambiamento se si mette true al terzo parametro
* @param attribute l'attributo da modificare * @param attribute l'attributo da modificare
* @param value il valore da inserire * @param value il valore da inserire
* @param transition se includere la transizione o meno * @param transition se includere la transizione o meno

View File

@@ -7,7 +7,7 @@ import de.fh_zwickau.informatik.sensor.model.devices.DeviceList;
import support.ZWaySimpleCallback; import support.ZWaySimpleCallback;
/** /**
* Sensore che permette di registrare vari dati dell'ambiente * Sensore che permette di registrare vari dati dell'ambiente (noi utilizziamo solo la luminosità)
*/ */
public class Sensor { public class Sensor {
@@ -35,7 +35,8 @@ public class Sensor {
*/ */
private DeviceList allZWaveDevices; private DeviceList allZWaveDevices;
/** /**
* I device che vengono selezionati e filtrati dall'utente (ovvero quelli che verranno usati per prendere i dati) * I device che vengono selezionati e filtrati dall'utente
* (ovvero quelli che verranno usati per prendere i dati)
*/ */
private DeviceList devices; private DeviceList devices;

View File

@@ -1,20 +1,20 @@
package device.fitbitdata; package device.fitbitdata;
/** /**
* Calsse che serve ad avere una data collegata al dato preso dal fitbit * Classe che serve ad avere una data collegata al dato preso dal fitbit
*/ */
public abstract class FitbitData { public abstract class FitbitData {
private long millisec = 0; private long millisec = 0;
/** /**
* Setta la data collegato al dato preso dal fitbit * Setta la data collegata al dato preso dal fitbit
* @param millisec la data in millisecondi * @param millisec la data in millisecondi
*/ */
public void setDate(long millisec) { this.millisec = millisec; } public void setDate(long millisec) { this.millisec = millisec; }
/** /**
* Ricevi la data collegata al dato richiesto dal fitbit * Ricevi la data collegata al dato richiesto dal fitbit
* @return la data in millisec * @return la data in millisecondi
*/ */
public long getDate() { return this.millisec; } public long getDate() { return this.millisec; }
} }

View File

@@ -7,7 +7,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Classe per vedere il dato del battito cardiaco * Classe per vedere le informazioni sul battito cardiaco
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class HeartRate extends FitbitData { public class HeartRate extends FitbitData {

View File

@@ -11,7 +11,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Classe per i dati del sonno dell'utente * Classe per recuperare i dati del sonno dell'utente
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class Sleep { public class Sleep {

View File

@@ -48,7 +48,7 @@ public class Steps extends FitbitData {
/** /**
* Prendi i dati specifici dei passi * Prendi i dati specifici dei passi
* @return una lista contenente una mappa con delle ore e minuti ad un valore del * @return una lista contenente una mappa con delle ore e minuti ad un valore dei passi
*/ */
public List<Map<String, Object>> getStepsData() { return stepsData; } public List<Map<String, Object>> getStepsData() { return stepsData; }
} }

View File

@@ -20,7 +20,7 @@ import java.util.regex.Pattern;
public class SeniorAssistant { public class SeniorAssistant {
/** /**
* Un Logger per capire meglio quali pezzi vengono eseguiti e quali no. * Un Logger per seguire l'esecuzione del programma.
*/ */
public static final Logger LOG = LoggerFactory.getLogger("SeniorAssistant"); public static final Logger LOG = LoggerFactory.getLogger("SeniorAssistant");
@@ -93,7 +93,7 @@ public class SeniorAssistant {
/** /**
* Prende gli argomenti nel formato "^-(?&lt;name&gt;[a-zA-Z]+)(::)?(?&lt;argument&gt;.*)$" e li inserisce in una mappa. * Prende gli argomenti nel formato "^-(?&lt;name&gt;[a-zA-Z]+)(::)?(?&lt;argument&gt;.*)$" e li inserisce in una mappa.
* Se l'argomento non e' nel formato giusto lo ignora. * Se l'argomento non e' nel formato giusto lo ignora.
* @param args un'array di stringhe contente i vari argomenti * @param args un array di stringhe contenente i vari argomenti
* @return una mappa con key il nome dell'argomento (la parte prima del :: e dopo il meno) e come valore il valore di esso (la parte dopo ::) * @return una mappa con key il nome dell'argomento (la parte prima del :: e dopo il meno) e come valore il valore di esso (la parte dopo ::)
*/ */
private static Map<String, String> getArgsMap(String[] args) { private static Map<String, String> getArgsMap(String[] args) {
@@ -110,7 +110,7 @@ public class SeniorAssistant {
} }
/** /**
* Funzione creata per gli argomenti che vengono passati in modo da evitare millemila try and catch * Funzione creata per gli argomenti che vengono passati in modo da evitare troppi try and catch
* @param num la stringa da trasformare in numero * @param num la stringa da trasformare in numero
* @return il numero trasformato, null se fallisce * @return il numero trasformato, null se fallisce
*/ */

View File

@@ -37,7 +37,7 @@ public class VariousThreads {
private final AtomicInteger cooldown = new AtomicInteger(0); private final AtomicInteger cooldown = new AtomicInteger(0);
/** /**
* La variabile per far partire della musica da Youtube * La variabile per far partire della musica
*/ */
private final Audio audio; private final Audio audio;
@@ -45,7 +45,7 @@ public class VariousThreads {
* Costruttore * Costruttore
*/ */
public VariousThreads() { public VariousThreads() {
audio = new AudioFile(); // se si vuole solamente questo e non YT audio = new AudioFile(); // se si vuole solamente far partire una traccia tra quelle fornite e non Youtube
// audio = System.getProperty("os.name").startsWith("Windows")? new Musich():new AudioFile(); // audio = System.getProperty("os.name").startsWith("Windows")? new Musich():new AudioFile();
} }
@@ -131,10 +131,10 @@ public class VariousThreads {
} }
/** /**
* Gestione delle luci in modo che cambiano la luminosita' in base ai dati ricevuti dal sensore<br> * Gestione delle luci in modo che cambino la luminosita' in base ai dati ricevuti dal sensore<br>
* Se l'utente pero' cambia il valore delle luci di sua volonta', il processo non modifichera' le luci per almeno un'ora. * Se l'utente pero' cambia il valore delle luci di sua volonta', il processo non modifichera' le luci per almeno un'ora.
* @param lights le luci da controllare * @param lights le luci da controllare
* @param sensor i sensori da cui porendere i dati * @param sensor i sensori da cui prendere i dati
*/ */
public void startHueAutoBrightness(final Hue lights, final Sensor sensor) { public void startHueAutoBrightness(final Hue lights, final Sensor sensor) {
final int minute = 1; final int minute = 1;
@@ -213,7 +213,7 @@ public class VariousThreads {
/** /**
* Controlla che ad una certa ora si siano fatti abbastanza passi, ed in caso contrario avvisa tramite un messaggio vocale.<br> * Controlla che ad una certa ora si siano fatti abbastanza passi, ed in caso contrario avvisa tramite un messaggio vocale.<br>
* E' possibile trasformarlo in controlla ogni X se si sono fatti dei movimenti o meno. *
* @param database da dove vediamo se si sono fatti abbastanza passi * @param database da dove vediamo se si sono fatti abbastanza passi
*/ */
public void startCheckSteps(final Database database) { public void startCheckSteps(final Database database) {
@@ -252,7 +252,7 @@ public class VariousThreads {
* ovvero se sono minori del minimo esso diventera' il minimo, stessa cosa con il massimo. * ovvero se sono minori del minimo esso diventera' il minimo, stessa cosa con il massimo.
* @param hour l'ora corrente (valore da 0 a 23) * @param hour l'ora corrente (valore da 0 a 23)
* @param minutes i minuti correnti (valore da 0 a 59) * @param minutes i minuti correnti (valore da 0 a 59)
* @param sensorBright la liminosita' segnata dal sensore (valore da 0 a 100) * @param sensorBright la luminosita' segnata dal sensore (valore da 0 a 100)
* @param minBrightness la luminosita' minima che si vuole avere (valore da 0 a 100) * @param minBrightness la luminosita' minima che si vuole avere (valore da 0 a 100)
* @return un valore indicante quanta luminosita' si ha bisogno nell'ora indicata e con la luminosita' indicata * @return un valore indicante quanta luminosita' si ha bisogno nell'ora indicata e con la luminosita' indicata
*/ */
@@ -273,7 +273,7 @@ public class VariousThreads {
} }
/** /**
* Restuisce un thread che se fatto partire, esegue il runnable in un sub-thread alll'ora indicata ogni giorno<br> * Restuisce un thread che se fatto partire, esegue il runnable in un sub-thread all'ora indicata ogni giorno<br>
* Il sotto thread lanciato avra' lo stesso nome, ma con un trattino e la data di lancio a seguito<br> * Il sotto thread lanciato avra' lo stesso nome, ma con un trattino e la data di lancio a seguito<br>
* Se il thread viene interrotto non fa piu' partire il runnable e si ferma * Se il thread viene interrotto non fa piu' partire il runnable e si ferma
* @param runnable il runnable da lanciare * @param runnable il runnable da lanciare

View File

@@ -24,7 +24,7 @@ import java.util.Arrays;
public class AuthFitbit { public class AuthFitbit {
/** /**
* Un logger per rendere le cose semplici in caso di casini * Un logger per rendere più semplice il debug
*/ */
private static final Logger LOG = LoggerFactory.getLogger("Fitbit Auth"); private static final Logger LOG = LoggerFactory.getLogger("Fitbit Auth");
@@ -43,7 +43,7 @@ public class AuthFitbit {
private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/seniorAssistant"); private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/seniorAssistant");
/** /**
* OAuth 2 scope.<br> * OAuth2 scope.<br>
* Nel nostro caso sono le varie categorie dove si trovano le informazioni di cui abbiamo bisogno * Nel nostro caso sono le varie categorie dove si trovano le informazioni di cui abbiamo bisogno
*/ */
private static final String SCOPE[] = new String[]{"activity","heartrate","sleep","settings"}; private static final String SCOPE[] = new String[]{"activity","heartrate","sleep","settings"};

View File

@@ -8,12 +8,12 @@ public class OAuth2ClientCredentials {
/** /**
* Il valore dell' "API Key". * Il valore dell' "API Key".
*/ */
public static final String API_KEY = "22CSTL"; //maybe togliere le virgolette public static final String API_KEY = "22CSTL";
/** /**
* Il valore dell' "API Secret" * Il valore dell' "API Secret"
*/ */
public static final String API_SECRET = "ea2452013abd35609940ce5601960a08"; //maybe togliere le virgolette public static final String API_SECRET = "ea2452013abd35609940ce5601960a08";
/** /**
* La porta per il "Callback URL". * La porta per il "Callback URL".

View File

@@ -6,7 +6,7 @@ package support.audio;
public interface Audio { public interface Audio {
/** /**
* Fa partire una audio in base al nome di essa.<br> * Fa partire una traccia audio in base al nome di essa.<br>
* Se un audio era gia' stato fatto partire esso viene fermato<br> * Se un audio era gia' stato fatto partire esso viene fermato<br>
* Il nome puo' variare in base all'implementazione: nome di file o nome da cercare su internet... * Il nome puo' variare in base all'implementazione: nome di file o nome da cercare su internet...
* @param name la stringa per far partire la canzone * @param name la stringa per far partire la canzone
@@ -22,7 +22,7 @@ public interface Audio {
void playRandom(String name); void playRandom(String name);
/** /**
* Ferma l'ultimo che e' stato fatto partire * Ferma l'ultimo audio che e' stato fatto partire
*/ */
void stop(); void stop();
} }

View File

@@ -27,7 +27,7 @@ public class AudioFile implements Audio {
private AudioStream lastIn = null; private AudioStream lastIn = null;
/** /**
* Serve per crearsi una mapp di tutte le canzoni * Serve per crearsi una mappa di tutte le canzoni
*/ */
private final static Map<String, File> files = getAllFiles(PATH_AUDIO); private final static Map<String, File> files = getAllFiles(PATH_AUDIO);

View File

@@ -26,7 +26,6 @@ public class Musich implements Audio {
private static final String API_URL = "https://www.googleapis.com/youtube/v3/search?"; private static final String API_URL = "https://www.googleapis.com/youtube/v3/search?";
/** /**
* La key necessaria per prendere i dati da youtube<br> * La key necessaria per prendere i dati da youtube<br>
* Tra l'altro l'ho presa a caso... quindi boh.
*/ */
private static final String KEY = "AIzaSyAYcQcX9P5btBTfgdwWwETNh_7jV20cQp0"; private static final String KEY = "AIzaSyAYcQcX9P5btBTfgdwWwETNh_7jV20cQp0";
@@ -44,11 +43,9 @@ public class Musich implements Audio {
*/ */
public Musich() { public Musich() {
/* /*
* Viene mandato questo errore in console, pero' boh... solo ogni tanto: * Viene mandato questo errore in console:
* Exception "java.lang.ClassNotFoundException: com/intellij/codeInsight/editorActions/FoldingData"while constructing DataFlavor for: application/x-java-jvm-local-objectref; class=com.intellij.codeInsight.editorActions.FoldingData * Exception "java.lang.ClassNotFoundException: com/intellij/codeInsight/editorActions/FoldingData"while constructing DataFlavor for: application/x-java-jvm-local-objectref; class=com.intellij.codeInsight.editorActions.FoldingData
* A volte ne tira tante, a volte nessuna.
* Sta' di fatto che per quanto ne so non compromette il funzionamento. * Sta' di fatto che per quanto ne so non compromette il funzionamento.
* Al massimo usare un logger che dice di ignorare questo errore nel log
*/ */
NativeInterface.initialize(); NativeInterface.initialize();
NativeInterface.open(); NativeInterface.open();
@@ -56,7 +53,7 @@ public class Musich implements Audio {
} }
/** /**
* Serve ad avere una lista di id dei video che corrispondono alle keyword indicate nella ricerca * Serve ad avere una lista di id dei video che corrispondono alle keywords indicate nella ricerca
* @param search la ricerca da fare su youtube * @param search la ricerca da fare su youtube
* @param maxResult quanti risultati si vuole avere * @param maxResult quanti risultati si vuole avere
* @return una lista di id dei video che corrispondono alla ricerca * @return una lista di id dei video che corrispondono alla ricerca
@@ -87,7 +84,7 @@ public class Musich implements Audio {
} }
/** /**
* Serve ad avere una lista di id dei video che corrispondono alle keyword indicate nella ricerca<br> * Serve ad avere una lista di id dei video che corrispondono alle keywords indicate nella ricerca<br>
* La lista conterra' i primi 5 id dei video trovati. * La lista conterra' i primi 5 id dei video trovati.
* @param search la ricerca da fare su youtube * @param search la ricerca da fare su youtube
* @return una lista di id dei video che corrispondono alla ricerca * @return una lista di id dei video che corrispondono alla ricerca
@@ -97,8 +94,8 @@ public class Musich implements Audio {
} }
/** /**
* Dato l'id di un video viene fatta partire un frame contenente il video richiesto<br> * Dato l'id di un video viene fatto partire un frame contenente il video richiesto<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh. * Come al solito, youtube potrebbe far partire una pubblicita'.
* @param videoId l'id del video da far vedere * @param videoId l'id del video da far vedere
* @param seconds da quanti secondi bisogna far partire il video * @param seconds da quanti secondi bisogna far partire il video
*/ */
@@ -127,8 +124,8 @@ public class Musich implements Audio {
} }
/** /**
* Dato l'id di un video viene fatta partire un frame contenente il video richiesto<br> * Dato l'id di un video viene fatto partire un frame contenente il video richiesto<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh. * Come al solito, youtube potrebbe far partire una pubblicita'.
* @param videoId l'id del video da far vedere * @param videoId l'id del video da far vedere
*/ */
public void play(final String videoId) { public void play(final String videoId) {
@@ -136,8 +133,8 @@ public class Musich implements Audio {
} }
/** /**
* Serve a far partire un video a caso tra quelli che corrispondono alle keyword indicate nella ricerca<br> * Serve a far partire un video a caso tra quelli che corrispondono alle keywords indicate nella ricerca<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh. * Come al solito, youtube potrebbe far partire una pubblicita'.
* @param search la ricerca da fare su youtube * @param search la ricerca da fare su youtube
* @param maxResult fra quanti risultati deve scegliere * @param maxResult fra quanti risultati deve scegliere
*/ */
@@ -146,9 +143,9 @@ public class Musich implements Audio {
} }
/** /**
* Serve a far partire un video a caso tra quelli che corrispondono alle keyword indicate nella ricerca<br> * Serve a far partire un video a caso tra quelli che corrispondono alle keywords indicate nella ricerca<br>
* Esso scegliera' fra i primi 5 risultati<br> * Esso scegliera' fra i primi 5 risultati<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh. * Come al solito, youtube potrebbe far partire una pubblicita'.
* @param search la ricerca da fare su youtube * @param search la ricerca da fare su youtube
*/ */
public void playRandom(String search) { public void playRandom(String search) {
@@ -158,7 +155,7 @@ public class Musich implements Audio {
/** /**
* Ferma il video che e' in riprduzione in questo momento.<br> * Ferma il video che e' in riprduzione in questo momento.<br>
* Se non ce ne sono, amen... non fa nulla. * Se non ce ne sono non fa nulla.
*/ */
public void stop() { public void stop() {
if(currentThread != null) { if(currentThread != null) {

View File

@@ -31,7 +31,7 @@ public interface Database {
* Inserisce nuovi dati del paziente nel database. * Inserisce nuovi dati del paziente nel database.
* @param dateMilliSec la data che si vuole inserire in millisec * @param dateMilliSec la data che si vuole inserire in millisec
* @param heartRate il battito cardiaco * @param heartRate il battito cardiaco
* @return vero se ha inserito o i dati esistevano gia' falso se non ce l'ha fatta * @return vero se ha inserito o i dati esistevano gia', falso se non ce l'ha fatta
*/ */
boolean updateHeart(long dateMilliSec, double heartRate); boolean updateHeart(long dateMilliSec, double heartRate);
/** /**
@@ -64,9 +64,9 @@ public interface Database {
List<Steps> getStepDataOfLast(int days); List<Steps> getStepDataOfLast(int days);
/** /**
* Prendi il Thread che automaticamente gestisce l'inserimento dei dati orari (per ora solo il battito cardiaco)<br> * Prende il Thread che automaticamente gestisce l'inserimento dei dati orari (per ora solo il battito cardiaco)<br>
* Se per caso c'e' un fallimento riprova ad inserire i dati ogni x minuti, indicati dal terzo parametro<br> * Se per caso c'e' un fallimento riprova ad inserire i dati ogni x minuti, indicati dal terzo parametro<br>
* @param database il database in cui inserirlo * @param database il database in cui inserire i dati
* @param fitbit la classe che contiene i dati aggiornati * @param fitbit la classe che contiene i dati aggiornati
* @param retryMinutes ogni quanti minuti deve riprovare ad inviare la richiesta * @param retryMinutes ogni quanti minuti deve riprovare ad inviare la richiesta
* @return un Thread * @return un Thread
@@ -99,7 +99,7 @@ public interface Database {
/** /**
* Prendi il Thread che automaticamente gestisce l'inserimento dei dati giornalieri, esso fara' i tentativi alle 23<br> * Prendi il Thread che automaticamente gestisce l'inserimento dei dati giornalieri, esso fara' i tentativi alle 23<br>
* Se per caso c'e' un fallimento riprova ad inserire i dati ogni x minuti, indicati dal terzo parametro<br> * Se per caso c'e' un fallimento riprova ad inserire i dati ogni x minuti, indicati dal terzo parametro<br>
* @param database il database in cui inserirlo * @param database il database in cui inserire i dati
* @param fitbit la classe che contiene i dati aggiornati * @param fitbit la classe che contiene i dati aggiornati
* @param retryMinutes ogni quanti minuti deve riprovare ad inviare la richiesta * @param retryMinutes ogni quanti minuti deve riprovare ad inviare la richiesta
* @return un Thread da far partire * @return un Thread da far partire

View File

@@ -18,7 +18,7 @@ import java.util.List;
public class LocalDB implements Database { public class LocalDB implements Database {
/** /**
* Il percorso di dove trovare il database, strutturato in: &lt;interfaccia&gt;:&lt;implementazione&gt;:&lt;percorso vero e proprio&gt; * Il percorso dove trovare il database, strutturato in: &lt;interfaccia&gt;:&lt;implementazione&gt;:&lt;percorso vero e proprio&gt;
*/ */
public static final String DB_LOCATION = "jdbc:sqlite:"; public static final String DB_LOCATION = "jdbc:sqlite:";
@@ -90,10 +90,6 @@ public class LocalDB implements Database {
public List<HeartRate> getHeartDataOfLast(int days) { public List<HeartRate> getHeartDataOfLast(int days) {
try { try {
int dayToSubtract = 15; int dayToSubtract = 15;
// Calendar calendar = Calendar.getInstance();
// calendar.setTimeInMillis(System.currentTimeMillis());
// calendar.add(Calendar.DATE, -dayToSubtract);
// long time = calendar.getTimeInMillis();
long time = System.currentTimeMillis() - (dayToSubtract * 24 * 60 * 1000); // meno 24 ore per 60 secondi per 100 millisec long time = System.currentTimeMillis() - (dayToSubtract * 24 * 60 * 1000); // meno 24 ore per 60 secondi per 100 millisec
ResultSet result = conn.createStatement().executeQuery("SELECT * FROM heart WHERE day>='" + new Timestamp(time) + "'"); ResultSet result = conn.createStatement().executeQuery("SELECT * FROM heart WHERE day>='" + new Timestamp(time) + "'");

View File

@@ -29,12 +29,12 @@ public class RemoteDB implements Database {
*/ */
public final String base_url; public final String base_url;
/** /**
* L'username del nostro vecchio * L'username dell'utente
*/ */
public final String username; public final String username;
/** /**
* Inseredolo username e basta l'indirizzo a cui tentera' la connesione e' <a href="http://127.0.0.1:5000/api/">http://127.0.0.1:5000/api/</a> * Inseredo lo username e basta l'indirizzo a cui tentera' la connesione e' <a href="http://127.0.0.1:5000/api/">http://127.0.0.1:5000/api/</a>
* @param username il nome utente assiociato per aggiornare i dati * @param username il nome utente assiociato per aggiornare i dati
*/ */
public RemoteDB(String username) { public RemoteDB(String username) {
@@ -42,7 +42,7 @@ public class RemoteDB implements Database {
} }
/** /**
* Costruttore che ha bisogno sia delo username che del url dper la connesione * Costruttore che ha bisogno sia dello username che dell'url per la connesione
* @param username il nome utente assiociato per aggiornare i dati * @param username il nome utente assiociato per aggiornare i dati
* @param base_url l'url a cui si punta per aggiornare/leggere i dati * @param base_url l'url a cui si punta per aggiornare/leggere i dati
*/ */

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.