Use getBatteryLevel() for BAT status. Refactor code and layout.

This commit is contained in:
Nico Schmitz 2018-06-13 19:58:52 +02:00
parent a7aa4c2b5a
commit 217583d601
2 changed files with 48 additions and 43 deletions

View file

@ -1331,51 +1331,30 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
if (cageView != null) { if (cageView != null) {
careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.SITECHANGE); careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.SITECHANGE);
if (careportalEvent != null) { double canAge = careportalEvent != null ? careportalEvent.getHoursFromStart() : Double.MAX_VALUE;
cageView.setTextColor(determineTextColor(careportalEvent, cageWarn, cageUrgent)); applyRibbonView(cageView, "CAN", canAge, cageWarn, cageUrgent, Double.MAX_VALUE);
cageView.setText("CAN"); //: " + careportalEvent.age());
} else {
cageView.setText("n/a");
}
} }
if (iageView != null) { if (iageView != null) {
careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.INSULINCHANGE); careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.INSULINCHANGE);
if (careportalEvent != null) { double insulinAge = careportalEvent != null ? careportalEvent.getHoursFromStart() : Double.MAX_VALUE;
iageView.setTextColor(determineTextColor(careportalEvent, iageWarn, iageUrgent)); applyRibbonView(iageView, "INS", insulinAge, iageWarn, iageUrgent, Double.MAX_VALUE);
iageView.setText("INS"); //: + careportalEvent.age());
} else {
iageView.setText("n/a");
}
} }
if (reservoirView != null) { if (reservoirView != null) {
if (pump.isInitialized() && pump.getReservoirLevel() < 50) { double reservoirLevel = pump.isInitialized() ? pump.getReservoirLevel() : -1;
reservoirView.setTextColor(MainApp.gc(R.color.low)); applyRibbonView(reservoirView, "RES", reservoirLevel, 80, 10, -1);
} else {
reservoirView.setTextColor(MainApp.gc(R.color.colorLightGray));
}
reservoirView.setText("RES");
} }
if (sageView != null) { if (sageView != null) {
careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.SENSORCHANGE); careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.SENSORCHANGE);
if (careportalEvent != null) { double sensorAge = careportalEvent != null ? careportalEvent.getHoursFromStart() : Double.MAX_VALUE;
sageView.setTextColor(determineTextColor(careportalEvent, sageWarn, sageUrgent)); applyRibbonView(sageView, "SEN", sensorAge, sageWarn, sageUrgent, Double.MAX_VALUE);
sageView.setText("SEN"); // + careportalEvent.age());
} else {
sageView.setText("n/a");
}
} }
if (pbageView != null) { if (pbageView != null) {
careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.PUMPBATTERYCHANGE); double batteryLevel = pump.isInitialized() ? pump.getBatteryLevel() : -1;
if (careportalEvent != null) { applyRibbonView(pbageView, "BAT", batteryLevel, 25, 5, -1);
pbageView.setTextColor(determineTextColor(careportalEvent, pbageWarn, pbageUrgent));
pbageView.setText("BAT"); //careportalEvent.age());
} else {
pbageView.setText("n/a");
}
} }
final boolean predictionsAvailable = finalLastRun != null && finalLastRun.request.hasPredictions; final boolean predictionsAvailable = finalLastRun != null && finalLastRun.request.hasPredictions;
@ -1540,14 +1519,23 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
} }
} }
public static int determineTextColor(CareportalEvent careportalEvent, double warnThreshold, double urgentThreshold) { public static void applyRibbonView(TextView view, String text, double value, double warnThreshold, double urgentThreshold, double invalid) {
if (careportalEvent.isOlderThan(urgentThreshold)) { if (value != invalid) {
return MainApp.gc(R.color.low); view.setText(text);
} else if (careportalEvent.isOlderThan(warnThreshold)) { if (value <= urgentThreshold) {
return MainApp.gc(R.color.high); view.setTextColor(MainApp.gc(R.color.ribbonTextCritical));
view.setBackgroundColor(MainApp.gc(R.color.ribbonBgCritical));
} else if (value <= warnThreshold) {
view.setTextColor(MainApp.gc(R.color.ribbonTextWarning));
view.setBackgroundColor(MainApp.gc(R.color.ribbonBgWarning));
} else {
view.setTextColor(MainApp.gc(R.color.ribbonTextDefault));
view.setBackgroundColor(MainApp.gc(R.color.ribbonBgDefault));
}
view.setVisibility(View.VISIBLE);
} else { } else {
return MainApp.gc(R.color.colorLightGray); view.setVisibility(View.GONE);
} }
}
}
} }

View file

@ -187,13 +187,18 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:layout_marginTop="3dp"
android:layout_marginBottom="2dp"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/overview_canulaage" android:id="@+id/overview_canulaage"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="0dp" android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_marginHorizontal="3dp"
android:gravity="center"
android:text="" android:text=""
android:textSize="14sp" /> android:textSize="14sp" />
@ -201,7 +206,10 @@
android:id="@+id/overview_insulinage" android:id="@+id/overview_insulinage"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_marginHorizontal="3dp"
android:gravity="center"
android:text="" android:text=""
android:textSize="14sp" /> android:textSize="14sp" />
@ -209,7 +217,10 @@
android:id="@+id/overview_reservoirlevel" android:id="@+id/overview_reservoirlevel"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_marginHorizontal="3dp"
android:gravity="center"
android:text="" android:text=""
android:textSize="14sp" /> android:textSize="14sp" />
@ -217,7 +228,10 @@
android:id="@+id/overview_sensorage" android:id="@+id/overview_sensorage"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_marginHorizontal="3dp"
android:gravity="center"
android:text="" android:text=""
android:textSize="14sp" /> android:textSize="14sp" />
@ -225,7 +239,10 @@
android:id="@+id/overview_pbage" android:id="@+id/overview_pbage"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_marginHorizontal="3dp"
android:gravity="center"
android:text="" android:text=""
android:textSize="14sp" /> android:textSize="14sp" />