package com.eveningoutpost.dexdrip.ShareModels;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.provider.BaseColumns;
import android.util.Log;
import com.activeandroid.Model;
import com.activeandroid.annotation.Column;
import com.activeandroid.annotation.Table;
import com.google.gson.annotations.Expose;
/**
* Created by stephenblack on 3/16/15.
*/
@Table(name = "ShareGlucose", id = BaseColumns._ID)
public class ShareGlucose extends Model {
public Context mContext;
@Expose
@Column(name = "DT")
public String DT;
@Expose
@Column(name = "ST")
public String ST;
@Expose
@Column(name = "Trend")
public double Trend;
@Expose
@Column(name = "Value")
public double Value;
@Expose
@Column(name = "WT")
public String WT;
public void processShareData(Context context) {
Log.d("SHARE", "Share Data being processed!"); // TODO maybe set this up??
// mContext = context;
// Log.d("SHARE", "Timestamp before parsing: " + WT);
// Log.d("SHARE", "Timestamp before parsing: " + WT.replaceAll("[^\\d.]", ""));
//
// double timestamp = (Double.parseDouble(WT.replaceAll("[^\\d.]", "")));
// Log.d("SHARE", "Timestamp: " + timestamp);
// if (!Bg.alreadyExists(timestamp)) {
// Log.d("SHARE", "Data looks new!!");
// Bg bg = new Bg();
// bg.direction = slopeDirection();
// bg.battery = Integer.toString(getBatteryLevel());
// bg.bgdelta = calculateDelta(timestamp, Value);
// bg.datetime = timestamp;
// bg.sgv = Integer.toString((int) Value);
// bg.save();
// DataCollectionService.newDataArrived(mContext, true);
// Log.d("SHARE", "Share Data Processed Successfully!");
// } else {
// Log.d("SHARE", "A Bg Value similar to this timestamp already exists.");
// }
}
public String slopeDirection() {
switch((int) Trend) {
case 1:
return "DoubleUp";
case 2:
return "SingleUp";
case 3:
return "FortyFiveUp";
case 4:
return "Flat";
case 5:
return "FortyFiveDown";
case 6:
return "SingleDown";
case 7:
return "DoubleDown";
default:
return "";
}
}
public int getBatteryLevel() {
Intent batteryIntent = mContext.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
if(level == -1 || scale == -1) {
return 50;
}
return (int)(((float)level / (float)scale) * 100.0f);
}
public double calculateDelta(double timestamp, double currentValue) {
// Bg bg = Bg.mostRecentBefore(timestamp);
// if (bg != null && Math.abs(bg.datetime - timestamp) < (60*1000*15)) {
// return (bg.sgv_double() - currentValue);
// } else {
return 0;
// }
}
}