wear something is painting

This commit is contained in:
AdrianLxM 2016-11-18 01:01:42 +01:00
parent b93273d706
commit 70c3969f85
13 changed files with 211 additions and 27 deletions

View file

@ -82,7 +82,8 @@ public class WearPlugin implements PluginBase {
} }
if(basals){ if(basals){
//TODO send basals ctx.startService(new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BASALS));
} }
if(status){ if(status){

View file

@ -40,12 +40,15 @@ public class WatchUpdaterService extends WearableListenerService implements
public static final String ACTION_RESEND = WatchUpdaterService.class.getName().concat(".Resend"); public static final String ACTION_RESEND = WatchUpdaterService.class.getName().concat(".Resend");
public static final String ACTION_OPEN_SETTINGS = WatchUpdaterService.class.getName().concat(".OpenSettings"); public static final String ACTION_OPEN_SETTINGS = WatchUpdaterService.class.getName().concat(".OpenSettings");
public static final String ACTION_SEND_STATUS = WatchUpdaterService.class.getName().concat(".SendStatus"); public static final String ACTION_SEND_STATUS = WatchUpdaterService.class.getName().concat(".SendStatus");
public static final String ACTION_SEND_BASALS = WatchUpdaterService.class.getName().concat(".SendBasals");
private GoogleApiClient googleApiClient; private GoogleApiClient googleApiClient;
public static final String WEARABLE_DATA_PATH = "/nightscout_watch_data"; public static final String WEARABLE_DATA_PATH = "/nightscout_watch_data";
public static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend"; public static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend";
private static final String OPEN_SETTINGS_PATH = "/openwearsettings"; private static final String OPEN_SETTINGS_PATH = "/openwearsettings";
private static final String NEW_STATUS_PATH = "/sendstatustowear"; private static final String NEW_STATUS_PATH = "/sendstatustowear";
public static final String BASAL_DATA_PATH = "/nightscout_watch_basal";
boolean wear_integration = false; boolean wear_integration = false;
@ -107,6 +110,8 @@ public class WatchUpdaterService extends WearableListenerService implements
sendNotification(); sendNotification();
} else if (ACTION_SEND_STATUS.equals(action)) { } else if (ACTION_SEND_STATUS.equals(action)) {
sendStatus(); sendStatus();
} else if (ACTION_SEND_BASALS.equals(action)) {
sendBasals();
} else { } else {
sendData(); sendData();
} }
@ -236,6 +241,75 @@ public class WatchUpdaterService extends WearableListenerService implements
entries.putDataMapArrayList("entries", dataMaps); entries.putDataMapArrayList("entries", dataMaps);
new SendToDataLayerThread(WEARABLE_DATA_PATH, googleApiClient).execute(entries); new SendToDataLayerThread(WEARABLE_DATA_PATH, googleApiClient).execute(entries);
} }
sendBasals();
sendStatus();
}
private void sendBasals() {
if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); }
long startTime = System.currentTimeMillis() - (long)(60000 * 60 * 5.5);
ArrayList<DataMap> basals = new ArrayList<>();
//TODO: Adrian: replace fake data
long from = startTime;
long to = (System.currentTimeMillis()+ startTime)/2;
double amount = 0.5;
double afterwards = 0.8;
basals.add(basalMap(from, to, amount, afterwards));
from = to;
to = System.currentTimeMillis();
amount = 0.8;
basals.add(basalMap(from, to, amount, amount));
ArrayList<DataMap> temps = new ArrayList<>();
from = (long)(startTime + (1/8d)*(to - startTime));
double fromBasal = 0.5;
to = (long)(startTime + (2/8d)*(to - startTime));
double toBasal = 0.5;
amount = 3;
temps.add(tempDatamap(from, fromBasal, to, toBasal, amount));
from = (long)(startTime + (6/8d)*(to - startTime));
fromBasal = 0;
to = (long)(startTime + (7/8d)*(to - startTime));
toBasal = 0;
amount = 0;
temps.add(tempDatamap(from, fromBasal, to, toBasal, amount));
DataMap dm = new DataMap();
dm.putDataMapArrayList("basals", basals);
dm.putDataMapArrayList("temps", temps);
new SendToDataLayerThread(BASAL_DATA_PATH, googleApiClient).execute(dm);
}
private DataMap tempDatamap(long startTime, double startBasal, long to, double toBasal, double amount) {
DataMap dm = new DataMap();
dm.putLong("starttime", startTime);
dm.putDouble("startBasal", startBasal);
dm.putLong("endtime", to);
dm.putDouble("endbasal", toBasal);
dm.putDouble("amount", amount);
return dm;
}
private DataMap basalMap(long startTime, long endTime, double amount, double afterwards) {
DataMap dm = new DataMap();
dm.putLong("starttime", startTime);
dm.putLong("endtime", endTime);
dm.putDouble("amount", amount);
dm.putDouble("afterwards", afterwards);
return dm;
} }

View file

@ -35,8 +35,9 @@ android {
} }
dependencies { dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.ustwo.android:clockwise-wearable:1.0.2' compile 'com.ustwo.android:clockwise-wearable:1.0.2'
compile 'com.google.android.support:wearable:1.1.0' compile 'com.google.android.support:wearable:1.1.0'
compile 'com.google.android.gms:play-services-wearable:7.3.0' compile 'com.google.android.gms:play-services-wearable:7.3.0'
compile files('libs/hellocharts-library-1.5.5.jar')
} }

Binary file not shown.

View file

@ -37,7 +37,7 @@ import com.ustwo.clockwise.WatchShape;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import lecho.lib.hellocharts.util.Utils; import lecho.lib.hellocharts.util.ChartUtils;
import lecho.lib.hellocharts.view.LineChartView; import lecho.lib.hellocharts.view.LineChartView;
/** /**
@ -63,8 +63,9 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
public LineChartView chart; public LineChartView chart;
public double datetime; public double datetime;
public ArrayList<BgWatchData> bgDataList = new ArrayList<>(); public ArrayList<BgWatchData> bgDataList = new ArrayList<>();
public ArrayList<TempWatchData> tempWatchDataList = new ArrayList<>();
public PowerManager.WakeLock wakeLock; public PowerManager.WakeLock wakeLock;
// related to manual layout // related endTime manual layout
public View layoutView; public View layoutView;
private final Point displaySize = new Point(); private final Point displaySize = new Point();
private int specW, specH; private int specW, specH;
@ -264,6 +265,20 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
showAgeAndStatus(); showAgeAndStatus();
mRelativeLayout.measure(specW, specH);
mRelativeLayout.layout(0, 0, mRelativeLayout.getMeasuredWidth(),
mRelativeLayout.getMeasuredHeight());
invalidate();
setColor();
}
//basals and temps
bundle = intent.getBundleExtra("basals");
if (layoutSet && bundle != null) {
DataMap dataMap = DataMap.fromBundle(bundle);
wakeLock.acquire(500);
loadBasalsAndTemps(dataMap);
mRelativeLayout.measure(specW, specH); mRelativeLayout.measure(specW, specH);
mRelativeLayout.layout(0, 0, mRelativeLayout.getMeasuredWidth(), mRelativeLayout.layout(0, 0, mRelativeLayout.getMeasuredWidth(),
mRelativeLayout.getMeasuredHeight()); mRelativeLayout.getMeasuredHeight());
@ -273,6 +288,23 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
} }
} }
private void loadBasalsAndTemps(DataMap dataMap) {
ArrayList<DataMap> temps = dataMap.getDataMapArrayList("temps");
if (temps != null) {
tempWatchDataList = new ArrayList<>();
for (DataMap temp : temps) {
TempWatchData twd = new TempWatchData();
twd.startTime = temp.getLong("starttime");
twd.startBasal = temp.getDouble("startBasal");
twd.endTime = temp.getLong("endtime");
twd.endBasal = temp.getDouble("endbasal");
twd.amount = temp.getDouble("amount");
tempWatchDataList.add(twd);
}
}
//TODO Adrian: also load temps
}
private void showAgeAndStatus() { private void showAgeAndStatus() {
if( mTimestamp != null){ if( mTimestamp != null){
@ -407,8 +439,8 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
if (getCurrentWatchMode() == WatchMode.INTERACTIVE) { if (getCurrentWatchMode() == WatchMode.INTERACTIVE) {
mRelativeLayout.setBackgroundColor(Color.WHITE); mRelativeLayout.setBackgroundColor(Color.WHITE);
if (sgvLevel == 1) { if (sgvLevel == 1) {
mSgv.setTextColor(Utils.COLOR_ORANGE); mSgv.setTextColor(ChartUtils.COLOR_ORANGE);
mDelta.setTextColor(Utils.COLOR_ORANGE); mDelta.setTextColor(ChartUtils.COLOR_ORANGE);
} else if (sgvLevel == 0) { } else if (sgvLevel == 0) {
mSgv.setTextColor(Color.BLACK); mSgv.setTextColor(Color.BLACK);
mDelta.setTextColor(Color.BLACK); mDelta.setTextColor(Color.BLACK);
@ -427,7 +459,7 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
mTime.setTextColor(Color.BLACK); mTime.setTextColor(Color.BLACK);
statusView.setTextColor(Color.BLACK); statusView.setTextColor(Color.BLACK);
if (chart != null) { if (chart != null) {
highColor = Utils.COLOR_ORANGE; highColor = ChartUtils.COLOR_ORANGE;
midColor = Color.BLUE; midColor = Color.BLUE;
lowColor = Color.RED; lowColor = Color.RED;
singleLine = false; singleLine = false;
@ -471,7 +503,7 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
.setVibrate(vibratePattern); .setVibrate(vibratePattern);
NotificationManager mNotifyMgr = (hNotificationManager) getApplicationContext().getSystemService(getApplicationContext().NOTIFICATION_SERVICE); NotificationManager mNotifyMgr = (hNotificationManager) getApplicationContext().getSystemService(getApplicationContext().NOTIFICATION_SERVICE);
mNotifyMgr.notify(missed_readings_alert_id, notification.build());*/ mNotifyMgr.notify(missed_readings_alert_id, notification.build());*/
ListenerService.requestData(this); // attempt to recover missing data ListenerService.requestData(this); // attempt endTime recover missing data
} }
} }
@ -520,9 +552,9 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
if(bgDataList.size() > 0) { //Dont crash things just because we dont have values, people dont like crashy things if(bgDataList.size() > 0) { //Dont crash things just because we dont have values, people dont like crashy things
int timeframe = Integer.parseInt(sharedPrefs.getString("chart_timeframe", "5")); int timeframe = Integer.parseInt(sharedPrefs.getString("chart_timeframe", "5"));
if (singleLine) { if (singleLine) {
bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, pointSize, midColor, timeframe); bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, tempWatchDataList, pointSize, midColor, timeframe);
} else { } else {
bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, pointSize, highColor, lowColor, midColor, timeframe); bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, tempWatchDataList, pointSize, highColor, lowColor, midColor, timeframe);
} }
chart.setLineChartData(bgGraphBuilder.lineData()); chart.setLineChartData(bgGraphBuilder.lineData());

View file

@ -59,7 +59,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferen
public double datetime; public double datetime;
public ArrayList<BgWatchData> bgDataList = new ArrayList<>(); public ArrayList<BgWatchData> bgDataList = new ArrayList<>();
public PowerManager.WakeLock wakeLock; public PowerManager.WakeLock wakeLock;
// related to manual layout // related endTime manual layout
public View layoutView; public View layoutView;
private final Point displaySize = new Point(); private final Point displaySize = new Point();
private int specW, specH; private int specW, specH;
@ -327,7 +327,7 @@ protected abstract void setColorDark();
.setVibrate(vibratePattern); .setVibrate(vibratePattern);
NotificationManager mNotifyMgr = (NotificationManager) getApplicationContext().getSystemService(getApplicationContext().NOTIFICATION_SERVICE); NotificationManager mNotifyMgr = (NotificationManager) getApplicationContext().getSystemService(getApplicationContext().NOTIFICATION_SERVICE);
mNotifyMgr.notify(missed_readings_alert_id, notification.build());*/ mNotifyMgr.notify(missed_readings_alert_id, notification.build());*/
ListenerService.requestData(this); // attempt to recover missing data ListenerService.requestData(this); // attempt endTime recover missing data
} }
} }
@ -376,9 +376,9 @@ protected abstract void setColorDark();
if(bgDataList.size() > 0) { //Dont crash things just because we dont have values, people dont like crashy things if(bgDataList.size() > 0) { //Dont crash things just because we dont have values, people dont like crashy things
int timeframe = Integer.parseInt(sharedPrefs.getString("chart_timeframe", "5")); int timeframe = Integer.parseInt(sharedPrefs.getString("chart_timeframe", "5"));
if (singleLine) { if (singleLine) {
bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, pointSize, midColor, timeframe); bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, new ArrayList<TempWatchData>(), pointSize, midColor, timeframe);
} else { } else {
bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, pointSize, highColor, lowColor, midColor, timeframe); bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, new ArrayList<TempWatchData>(), pointSize, highColor, lowColor, midColor, timeframe);
} }
chart.setLineChartData(bgGraphBuilder.lineData()); chart.setLineChartData(bgGraphBuilder.lineData());

View file

@ -1,6 +1,8 @@
package info.nightscout.androidaps; package info.nightscout.androidaps;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -22,6 +24,7 @@ import lecho.lib.hellocharts.model.Viewport;
* Created by stephenblack on 11/15/14. * Created by stephenblack on 11/15/14.
*/ */
public class BgGraphBuilder { public class BgGraphBuilder {
public List<TempWatchData> tempWatchDataList;
private int timespan; private int timespan;
public double end_time; public double end_time;
public double start_time; public double start_time;
@ -43,7 +46,7 @@ public class BgGraphBuilder {
private List<PointValue> lowValues = new ArrayList<PointValue>(); private List<PointValue> lowValues = new ArrayList<PointValue>();
public Viewport viewport; public Viewport viewport;
public BgGraphBuilder(Context context, List<BgWatchData> aBgList, int aPointSize, int aMidColor, int timespan) { public BgGraphBuilder(Context context, List<BgWatchData> aBgList, List<TempWatchData> tempWatchDataList, int aPointSize, int aMidColor, int timespan) {
end_time = new Date().getTime() + (1000 * 60 * 6 * timespan); //Now plus 30 minutes padding (for 5 hours. Less if less.) end_time = new Date().getTime() + (1000 * 60 * 6 * timespan); //Now plus 30 minutes padding (for 5 hours. Less if less.)
start_time = new Date().getTime() - (1000 * 60 * 60 * timespan); //timespan hours ago start_time = new Date().getTime() - (1000 * 60 * 60 * timespan); //timespan hours ago
this.bgDataList = aBgList; this.bgDataList = aBgList;
@ -56,9 +59,10 @@ public class BgGraphBuilder {
this.lowColor = aMidColor; this.lowColor = aMidColor;
this.highColor = aMidColor; this.highColor = aMidColor;
this.timespan = timespan; this.timespan = timespan;
this.tempWatchDataList = tempWatchDataList;
} }
public BgGraphBuilder(Context context, List<BgWatchData> aBgList, int aPointSize, int aHighColor, int aLowColor, int aMidColor, int timespan) { public BgGraphBuilder(Context context, List<BgWatchData> aBgList, List<TempWatchData> tempWatchDataList, int aPointSize, int aHighColor, int aLowColor, int aMidColor, int timespan) {
end_time = new Date().getTime() + (1000 * 60 * 6 * timespan); //Now plus 30 minutes padding (for 5 hours. Less if less.) end_time = new Date().getTime() + (1000 * 60 * 6 * timespan); //Now plus 30 minutes padding (for 5 hours. Less if less.)
start_time = new Date().getTime() - (1000 * 60 * 60 * timespan); //timespan hours ago start_time = new Date().getTime() - (1000 * 60 * 60 * timespan); //timespan hours ago
this.bgDataList = aBgList; this.bgDataList = aBgList;
@ -70,6 +74,7 @@ public class BgGraphBuilder {
this.lowColor = aLowColor; this.lowColor = aLowColor;
this.midColor = aMidColor; this.midColor = aMidColor;
this.timespan = timespan; this.timespan = timespan;
this.tempWatchDataList = tempWatchDataList;
} }
public LineChartData lineData() { public LineChartData lineData() {
@ -87,6 +92,34 @@ public class BgGraphBuilder {
lines.add(inRangeValuesLine()); lines.add(inRangeValuesLine());
lines.add(lowValuesLine()); lines.add(lowValuesLine());
lines.add(highValuesLine()); lines.add(highValuesLine());
double minChart = lowMark;
double maxChart = highMark;
for ( BgWatchData bgd:bgDataList) {
if(bgd.sgv > maxChart){
maxChart = bgd.sgv;
}
if(bgd.sgv < minChart){
minChart = bgd.sgv;
}
}
double maxBasal = 0.8; //TODO Adrian keine Konstante!
double maxTemp = maxBasal;
for (TempWatchData twd: tempWatchDataList) {
if(twd.amount > maxTemp){
maxTemp = twd.amount;
}
}
double factor = (maxChart-minChart)/maxTemp;
// in case basal is the highest, don't paint it totally at the top.
factor = Math.min(factor, ((maxChart-minChart)/maxTemp)*(2/3d));
lines.add(tempValuesLine((float) minChart, factor));
return lines; return lines;
} }
@ -123,6 +156,28 @@ public class BgGraphBuilder {
return inRangeValuesLine; return inRangeValuesLine;
} }
public Line tempValuesLine(float offset, double factor) {
List<PointValue> lineValues = new ArrayList<PointValue>();
for (TempWatchData twd: tempWatchDataList) {
lineValues.add(new PointValue(fuzz(twd.startTime), offset + (float)(factor*twd.startBasal)));
lineValues.add(new PointValue(fuzz(twd.startTime), offset +(float)(factor*twd.amount)));
lineValues.add(new PointValue(fuzz(twd.endTime), offset + (float)(factor*twd.amount)));
lineValues.add(new PointValue(fuzz(twd.endTime), offset + (float)(factor*twd.endBasal)));
}
Line valueLine = new Line(lineValues);
valueLine.setHasPoints(false);
valueLine.setColor(Color.BLUE);
valueLine.setStrokeWidth(1);
return valueLine;
}
private void addBgReadingValues() { private void addBgReadingValues() {
if(singleLine) { if(singleLine) {
for (BgWatchData bgReading : bgDataList) { for (BgWatchData bgReading : bgDataList) {
@ -214,7 +269,7 @@ public class BgGraphBuilder {
SimpleDateFormat longTimeFormat = new SimpleDateFormat(is24? "HH:mm" : "h:mm a"); SimpleDateFormat longTimeFormat = new SimpleDateFormat(is24? "HH:mm" : "h:mm a");
xAxisValues.add(new AxisValue(fuzz(timeNow), (longTimeFormat.format(timeNow)).toCharArray())); xAxisValues.add(new AxisValue(fuzz(timeNow), (longTimeFormat.format(timeNow)).toCharArray()));
//Add whole hours to the axis (as long as they are more than 15 mins away from the current time) //Add whole hours endTime the axis (as long as they are more than 15 mins away from the current time)
for (int l = 0; l <= 24; l++) { for (int l = 0; l <= 24; l++) {
double timestamp = endHour - (60000 * 60 * l); double timestamp = endHour - (60000 * 60 * l);
if((timestamp - timeNow < 0) && (timestamp > start_time)) { if((timestamp - timeNow < 0) && (timestamp > start_time)) {

View file

@ -31,7 +31,7 @@ public class BgWatchData implements Comparable<BgWatchData>{
@Override @Override
public int compareTo(BgWatchData that) { public int compareTo(BgWatchData that) {
// reverse order to get latest first // reverse order endTime get latest first
if(this.timestamp < that.timestamp) return 1; if(this.timestamp < that.timestamp) return 1;
if(this.timestamp > that.timestamp) return -1; if(this.timestamp > that.timestamp) return -1;
return 0; return 0;

View file

@ -41,7 +41,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
public final float CIRCLE_WIDTH = 10f; public final float CIRCLE_WIDTH = 10f;
public final int BIG_HAND_WIDTH = 16; public final int BIG_HAND_WIDTH = 16;
public final int SMALL_HAND_WIDTH = 8; public final int SMALL_HAND_WIDTH = 8;
public final int NEAR = 2; //how near do the hands have to be to activate overlapping mode public final int NEAR = 2; //how near do the hands have endTime be endTime activate overlapping mode
public final boolean ALWAYS_HIGHLIGT_SMALL = false; public final boolean ALWAYS_HIGHLIGT_SMALL = false;
//variables for time //variables for time
@ -326,7 +326,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
wakeLock.acquire(30000); wakeLock.acquire(30000);
/*Preparing the layout just on every minute tick: /*Preparing the layout just on every minute tick:
* - hopefully better battery life * - hopefully better battery life
* - drawback: might update the minutes since last reading up to one minute late*/ * - drawback: might update the minutes since last reading up endTime one minute late*/
prepareLayout(); prepareLayout();
prepareDrawTime(); prepareDrawTime();
invalidate(); //redraw the time invalidate(); //redraw the time

View file

@ -5,7 +5,7 @@ import android.view.LayoutInflater;
import com.ustwo.clockwise.WatchMode; import com.ustwo.clockwise.WatchMode;
import lecho.lib.hellocharts.util.Utils; import lecho.lib.hellocharts.util.ChartUtils;
public class Home extends BaseWatchFace { public class Home extends BaseWatchFace {
@ -65,9 +65,9 @@ public class Home extends BaseWatchFace {
mRelativeLayout.setBackgroundColor(Color.WHITE); mRelativeLayout.setBackgroundColor(Color.WHITE);
mLinearLayout.setBackgroundColor(Color.BLACK); mLinearLayout.setBackgroundColor(Color.BLACK);
if (sgvLevel == 1) { if (sgvLevel == 1) {
mSgv.setTextColor(Utils.COLOR_ORANGE); mSgv.setTextColor(ChartUtils.COLOR_ORANGE);
mDirection.setTextColor(Utils.COLOR_ORANGE); mDirection.setTextColor(ChartUtils.COLOR_ORANGE);
mDelta.setTextColor(Utils.COLOR_ORANGE); mDelta.setTextColor(ChartUtils.COLOR_ORANGE);
} else if (sgvLevel == 0) { } else if (sgvLevel == 0) {
mSgv.setTextColor(Color.BLACK); mSgv.setTextColor(Color.BLACK);
mDirection.setTextColor(Color.BLACK); mDirection.setTextColor(Color.BLACK);
@ -94,7 +94,7 @@ public class Home extends BaseWatchFace {
mTime.setTextColor(Color.BLACK); mTime.setTextColor(Color.BLACK);
if (chart != null) { if (chart != null) {
highColor = Utils.COLOR_ORANGE; highColor = ChartUtils.COLOR_ORANGE;
midColor = Color.BLUE; midColor = Color.BLUE;
lowColor = Color.RED; lowColor = Color.RED;
singleLine = false; singleLine = false;

View file

@ -26,6 +26,8 @@ public class ListenerService extends WearableListenerService implements GoogleAp
private static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend"; private static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend";
private static final String OPEN_SETTINGS = "/openwearsettings"; private static final String OPEN_SETTINGS = "/openwearsettings";
private static final String NEW_STATUS_PATH = "/sendstatustowear"; private static final String NEW_STATUS_PATH = "/sendstatustowear";
public static final String BASAL_DATA_PATH = "/nightscout_watch_basal";
private static final String ACTION_RESEND = "com.dexdrip.stephenblack.nightwatch.RESEND_DATA"; private static final String ACTION_RESEND = "com.dexdrip.stephenblack.nightwatch.RESEND_DATA";
private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA"; private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA";
@ -97,13 +99,19 @@ public class ListenerService extends WearableListenerService implements GoogleAp
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent); startActivity(intent);
} else if (path.equals(NEW_STATUS_PATH)){ } else if (path.equals(NEW_STATUS_PATH)) {
dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap(); dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
Intent messageIntent = new Intent(); Intent messageIntent = new Intent();
messageIntent.setAction(Intent.ACTION_SEND); messageIntent.setAction(Intent.ACTION_SEND);
messageIntent.putExtra("status", dataMap.toBundle()); messageIntent.putExtra("status", dataMap.toBundle());
LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent); LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
} else if (path.equals(BASAL_DATA_PATH)){
//TODO Adrian receive basals in Watchfaces
dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
Intent messageIntent = new Intent();
messageIntent.setAction(Intent.ACTION_SEND);
messageIntent.putExtra("basals", dataMap.toBundle());
LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
} else { } else {
dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap(); dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
Intent messageIntent = new Intent(); Intent messageIntent = new Intent();

View file

@ -0,0 +1,13 @@
package info.nightscout.androidaps;
/**
* Created by adrian on 17/11/16.
*/
public class TempWatchData {
public long startTime;
public double startBasal;
public long endTime;
public double endBasal;
public double amount;
}