package com.eveningoutpost.dexdrip.ImportedLibraries.dexcom;
import com.eveningoutpost.dexdrip.ImportedLibraries.dexcom.records.EGVRecord;
import com.eveningoutpost.dexdrip.ImportedLibraries.dexcom.records.GlucoseDataSet;
import com.eveningoutpost.dexdrip.ImportedLibraries.dexcom.records.SensorRecord;
import java.util.Date;
import java.util.TimeZone;
// This code and this particular library are from the NightScout android uploader
// Check them out here: https://github.com/nightscout/android-uploader
// Some of this code may have been modified for use in this project
public class Utils {
public static Date receiverTimeToDate(long delta) {
int currentTZOffset = TimeZone.getDefault().getRawOffset();
long epochMS = 1230768000000L; // Jan 01, 2009 00:00 in UTC
long milliseconds = epochMS - currentTZOffset;
long timeAdd = milliseconds + (1000L * delta);
TimeZone tz = TimeZone.getDefault();
if (tz.inDaylightTime(new Date())) timeAdd = timeAdd - (1000 * 60 * 60);
return new Date(timeAdd);
}
public static String getTimeString(long timeDeltaMS) {
long minutes = (timeDeltaMS / 1000) / 60;
long hours = minutes / 60;
long days = hours / 24;
long weeks = days / 7;
minutes= minutes - hours * 60;
hours = hours - days * 24;
days= days - weeks * 7;
String timeAgoString = "";
if (weeks > 0) {
timeAgoString += weeks + " weeks ";
}
if (days > 0) {
timeAgoString += days + " days ";
}
if (hours > 0) {
timeAgoString += hours + " hours ";
}
if (minutes >= 0) {
timeAgoString += minutes + " min ";
}
return (timeAgoString.equals("") ? "--" : timeAgoString + "ago");
}
public static GlucoseDataSet[] mergeGlucoseDataRecords(EGVRecord[] egvRecords,
SensorRecord[] sensorRecords) {
int egvLength = egvRecords.length;
int sensorLength = sensorRecords.length;
int smallerLength = egvLength < sensorLength ? egvLength : sensorLength;
GlucoseDataSet[] glucoseDataSets = new GlucoseDataSet[smallerLength];
for (int i = 1; i <= smallerLength; i++) {
glucoseDataSets[smallerLength - i] = new GlucoseDataSet(egvRecords[egvLength - i], sensorRecords[sensorLength - i]);
}
return glucoseDataSets;
}
public static String bytesToHex(byte[] bytes) {
char[] hexArray = "0123456789ABCDEF".toCharArray();
char[] hexChars = new char[bytes.length * 3];
for ( int j = 0; j < bytes.length; j++ ) {
int v = bytes[j] & 0xFF;
hexChars[j * 3] = hexArray[v >>> 4];
hexChars[j * 3 + 1] = hexArray[v & 0x0F];
hexChars[j * 3 + 2] = " ".toCharArray()[0];
}
return new String(hexChars);
}
}