From 24c3903eefdcd54a68f5b65c5c7d747f60064d81 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Sun, 19 Apr 2015 15:11:50 +0200 Subject: [PATCH] #15 update device state to INITIALIZED when user info was sent --- .../gadgetbridge/miband/MiBandSupport.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java index a072f975e..d371ca47d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.util.UUID; import nodomain.freeyourgadget.gadgetbridge.GBCommand; +import nodomain.freeyourgadget.gadgetbridge.GBDevice.State; import nodomain.freeyourgadget.gadgetbridge.btle.AbstractBTLEDeviceSupport; import nodomain.freeyourgadget.gadgetbridge.btle.TransactionBuilder; @@ -168,9 +169,23 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport { UUID characteristicUUID = characteristic.getUuid(); if (MiBandService.UUID_CHARACTERISTIC_PAIR.equals(characteristicUUID)) { handlePairResult(characteristic.getValue(), status); + } else if (MiBandService.UUID_CHARACTERISTIC_USER_INFO.equals(characteristicUUID)) { + handleUserInfoResult(characteristic.getValue(), status); } } + private void handleUserInfoResult(byte[] value, int status) { + // successfully transfered user info means we're initialized + if (status == BluetoothGatt.GATT_SUCCESS) { + setConnectionState(State.INITIALIZED); + } + } + + private void setConnectionState(State newState) { + getDevice().setState(newState); + getDevice().sendDeviceUpdateIntent(getContext()); + } + private void handlePairResult(byte[] pairResult, int status) { if (status != BluetoothGatt.GATT_SUCCESS) { Log.i(TAG, "Pairing MI device failed: " + status);