package edu.toronto.whimper.DataProcessor;
import java.util.ArrayList;
import java.util.Date;
import edu.toronto.whimper.Utils;
import edu.toronto.whimper.GeneralObjects.MyLocation;
import edu.toronto.whimper.GeneralObjects.NoiseSample;
import edu.toronto.whimper.GeneralObjects.Range;
import android.database.Cursor;
public class DBManager {
public static boolean insertNoiseSample(DBAdapter db, String datetime, double noise, double latitude, double longitude, double altitude)
{
db.open();
long id = db.insertNoiseSample(datetime, noise, latitude, longitude, altitude);
if(id == -1) return false;
db.close();
return true;
}
public static boolean insertDumpNoiseSample(DBAdapter db)
{
//---add dump data---
db.open();
ArrayList<MyLocation> l = Utils.getdumpLocations();
double noise = 120;
for (MyLocation var : l)
{
long id = db.insertNoiseSample(Utils.getNowDateTime(), noise, (double)var.getLatitude() , (double)var.getLongitude(), 0.0);
if(id == -1) return false;
noise ++;
}
db.close();
return true;
}
// change algorithm considering that hours are in military time
public static ArrayList<NoiseSample> getNoiseSampleByRange(ArrayList<NoiseSample> samples, Range range, boolean isNight)
{
ArrayList<NoiseSample> results = new ArrayList<NoiseSample>();
for (NoiseSample sample : samples)
{
String dateSt = sample.getDate();
Date date = Utils.getDateTime(dateSt);
int hour = date.getHours();
if(hour >= range.getFrom() && hour <= range.getTo())
{
results.add(sample);
}
}
return results;
}
public static ArrayList<NoiseSample> getAllNoiseSamples(DBAdapter db)
{
//---get all
db.open();
Cursor c = db.getAllNoiseSamples();
ArrayList<NoiseSample> noises = new ArrayList<NoiseSample>(c.getCount());
if(c.getCount()>0)
{
if (c.moveToFirst())
{
do {
String date = c.getString(1);
double noise = c.getDouble(2);
double lati = c.getDouble(3);
double longi = c.getDouble(4);
//double alti = c.getDouble(5);
noises.add(new NoiseSample(date, noise, new MyLocation(lati, longi)));
} while (c.moveToNext());
}
}
else
{
}
db.close();
return noises;
}
}
|