From 39d84831ede4401d25ae2d1870f26d00a80c7d5b Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Sun, 10 May 2015 00:05:29 +0200 Subject: [PATCH] Unset dynamic device state (like battery level, etc.) when disconnected --- .../freeyourgadget/gadgetbridge/GBDevice.java | 15 ++++++++++++--- .../gadgetbridge/adapter/GBDeviceAdapter.java | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java index 2fcfa964..0719320e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java @@ -23,6 +23,7 @@ public class GBDevice implements Parcelable { }; private static final String TAG = GBDevice.class.getSimpleName(); public static final short RSSI_UNKNOWN = 0; + public static final short BATTERY_UNKNOWN = -1; public static final String EXTRA_DEVICE = "device"; private final String mName; private final String mAddress; @@ -30,7 +31,7 @@ public class GBDevice implements Parcelable { private String mFirmwareVersion = null; private String mHardwareVersion = null; private State mState = State.NOT_CONNECTED; - private short mBatteryLevel = -1; // unknown + private short mBatteryLevel = BATTERY_UNKNOWN; private String mBatteryState; private short mRssi = RSSI_UNKNOWN; @@ -115,6 +116,14 @@ public class GBDevice implements Parcelable { public void setState(State state) { mState = state; + unsetDynamicState(); + } + + private void unsetDynamicState() { + setBatteryLevel(BATTERY_UNKNOWN); + setBatteryState(null); + setFirmwareVersion(null); + setRssi(RSSI_UNKNOWN); } public String getStateString() { @@ -195,9 +204,9 @@ public class GBDevice implements Parcelable { } /** - * Ranges from 0-100 (percent) + * Ranges from 0-100 (percent), or -1 if unknown * - * @return the battery level in range 0-100 + * @return the battery level in range 0-100, or -1 if unknown */ public short getBatteryLevel() { return mBatteryLevel; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java index d45c5549..6ba6487d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java @@ -44,7 +44,7 @@ public class GBDeviceAdapter extends ArrayAdapter { deviceInfoLabel.setText(device.getInfoString()); short batteryLevel = device.getBatteryLevel(); - if (batteryLevel > -1) { + if (batteryLevel != GBDevice.BATTERY_UNKNOWN) { batteryStatusLabel.setText("BAT: " + device.getBatteryLevel() + "%"); } else { batteryStatusLabel.setText("");