diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Activity/DataActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Activity/DataActivity.java index 3e49dd7a6..1b4cee1ed 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Activity/DataActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Activity/DataActivity.java @@ -20,10 +20,16 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.um25.Support.UM25Sup public class DataActivity extends AbstractGBActivity { private HashMap valueViews = new HashMap<>(ValueDisplay.values().length); + private TextView chargeDurationTextView; + private enum ValueDisplay{ VOLTAGE("voltage", "%.3fV", R.id.um25_text_voltage, 1000), CURRENT("current", "%.4fA", R.id.um25_text_current, 10000), + CURRENT_SUM("chargedCurrent", "%.0fmAh", R.id.um25_text_current_sum, 1), WATTAGE("wattage", "%.3fW", R.id.um25_text_wattage, 1000), + WATTAGE_SUM("chargedWattage", "%.3fWh", R.id.um25_text_wattage_sum, 1000), + TEMPERATURE_CELCIUS("temperatureCelcius", "%.0f°", R.id.um25_text_temperature, 1), + CABLE_RESISTANCE("cableResistance", "%.1fΩ", R.id.um25_cable_resistance, 10), ; private String variableName; @@ -43,6 +49,8 @@ public class DataActivity extends AbstractGBActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_um25_data); + + chargeDurationTextView = findViewById(R.id.um25_text_charge_duration); } @Override @@ -81,6 +89,19 @@ public class DataActivity extends AbstractGBActivity { e.printStackTrace(); } } + + int durationSeconds = data.getChargingSeconds(); + int hours = durationSeconds / 3600; + int minutes = durationSeconds % 3600 / 60; + int seconds = durationSeconds % 60; + + String timeString = String.format("%02d:%02d:%02d", hours, minutes, seconds); + + int thresholdCurrent = data.getThresholdCurrent(); + int current = data.getCurrent() / 10; + + chargeDurationTextView.setTextColor(current > thresholdCurrent ? 0xff669900 : 0xffcc0000); + chargeDurationTextView.setText(timeString); } private BroadcastReceiver measurementReceiver = new BroadcastReceiver() { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/um25/Data/MeasurementData.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/um25/Data/MeasurementData.java index f108b7d35..3d3db9725 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/um25/Data/MeasurementData.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/um25/Data/MeasurementData.java @@ -74,7 +74,7 @@ public class MeasurementData implements Serializable { } public int getThresholdCurrent() { - return thresholdCurrent; + return thresholdCurrent * 10; } public int getChargingSeconds() { diff --git a/app/src/main/res/layout/activity_um25_data.xml b/app/src/main/res/layout/activity_um25_data.xml index 686445714..e9b67ff37 100644 --- a/app/src/main/res/layout/activity_um25_data.xml +++ b/app/src/main/res/layout/activity_um25_data.xml @@ -1,36 +1,100 @@ - + + + android:orientation="vertical"> + + + + + + + + + + + + + + + + android:layout_margin="10dp" + android:textColor="@android:color/white" + android:textSize="@dimen/um25_value_text_size" /> - + android:layout_margin="10dp" + android:orientation="horizontal"> + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index d55488a41..ed6845a57 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -15,4 +15,5 @@ http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout 16dp 20dp 60dp + 30dp