From ed36410500433842535b1635a1a41564c653cabc Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Tue, 13 Dec 2016 17:43:59 +0100 Subject: [PATCH 1/6] Empty commit to get f-droid to try another build (apparently there was a build problem on f-droid's side) From dd48869fa540ca34b6f266b3fb53e7e13a4d2bda Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Wed, 14 Dec 2016 00:28:35 +0100 Subject: [PATCH 2/6] Mi2: move Miband2Support into the package it belongs --- .../gadgetbridge/service/DeviceSupportFactory.java | 2 +- .../service/devices/miband2/AbstractMiBand2Operation.java | 1 - .../devices/{miband => miband2}/MiBand2Support.java | 8 ++++++-- .../miband2/operations/FetchActivityOperation.java | 2 +- .../service/devices/miband2/operations/InitOperation.java | 2 +- .../miband2/operations/UpdateFirmwareOperation.java | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) rename app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/{miband => miband2}/MiBand2Support.java (99%) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java index 7b309818..71c3dc8d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java @@ -11,7 +11,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.service.devices.liveview.LiveviewSupport; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBand2Support; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBandSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.vibratissimo.VibratissimoSupport; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/AbstractMiBand2Operation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/AbstractMiBand2Operation.java index a348b69c..c479b3bf 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/AbstractMiBand2Operation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/AbstractMiBand2Operation.java @@ -1,7 +1,6 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.miband2; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBand2Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.operations.AbstractMiBandOperation; public abstract class AbstractMiBand2Operation extends AbstractMiBandOperation { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java similarity index 99% rename from app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java rename to app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java index 046f9d61..6f792d29 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java @@ -1,4 +1,4 @@ -package nodomain.freeyourgadget.gadgetbridge.service.devices.miband; +package nodomain.freeyourgadget.gadgetbridge.service.devices.miband2; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCharacteristic; @@ -68,7 +68,11 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateA import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.deviceinfo.DeviceInfoProfile; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.heartrate.HeartRateProfile; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.Mi2NotificationStrategy; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.BatteryInfo; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.CheckAuthenticationNeededAction; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.DeviceInfo; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.NotificationStrategy; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.RealtimeSamplesSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.FetchActivityOperation; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.InitOperation; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.UpdateFirmwareOperation; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/FetchActivityOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/FetchActivityOperation.java index c83e6104..7f32886e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/FetchActivityOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/FetchActivityOperation.java @@ -34,7 +34,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceBusyAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WaitAction; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBand2Support; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.AbstractMiBand2Operation; import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java index 5adabc67..9048dad0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java @@ -25,7 +25,7 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.service.btle.AbstractBTLEOperation; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBand2Support; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support; import nodomain.freeyourgadget.gadgetbridge.util.GB; public class InitOperation extends AbstractBTLEOperation { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/UpdateFirmwareOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/UpdateFirmwareOperation.java index 8cad73dd..542f35c4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/UpdateFirmwareOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/UpdateFirmwareOperation.java @@ -21,7 +21,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceBusyAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetProgressAction; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBand2Support; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.AbstractMiBand2Operation; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.Mi2FirmwareInfo; import nodomain.freeyourgadget.gadgetbridge.devices.miband2.MiBand2FWHelper; From caaa38ed047941c0aa4f069da0498c00a4e7ba14 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Wed, 14 Dec 2016 00:50:43 +0100 Subject: [PATCH 3/6] Mi2: support for current battery status #449 so far we understand - last charge date - current level - state normal - state charging and we are notified on changes. --- .../devices/miband/MiBand2Service.java | 2 +- .../service/devices/miband2/BatteryInfo.java | 95 +++++++++++++++++++ .../devices/miband2/MiBand2Support.java | 17 +++- 3 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/BatteryInfo.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Service.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Service.java index 9412868b..0b8f5623 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Service.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Service.java @@ -26,7 +26,7 @@ public class MiBand2Service { public static final UUID UUID_CHARACTERISTIC_3_CONFIGURATION = UUID.fromString("00000003-0000-3512-2118-0009af100700"); public static final UUID UUID_UNKNOWN_CHARACTERISTIC4 = UUID.fromString("00000004-0000-3512-2118-0009af100700"); public static final UUID UUID_CHARACTERISTIC_5_ACTIVITY_DATA = UUID.fromString("00000005-0000-3512-2118-0009af100700"); - public static final UUID UUID_UNKNOWN_CHARACTERISTIC6 = UUID.fromString("00000006-0000-3512-2118-0009af100700"); + public static final UUID UUID_CHARACTERISTIC_6_BATTERY_INFO = UUID.fromString("00000006-0000-3512-2118-0009af100700"); public static final UUID UUID_UNKNOWN_CHARACTERISTIC7 = UUID.fromString("00000007-0000-3512-2118-0009af100700"); public static final UUID UUID_UNKNOWN_CHARACTERISTIC8 = UUID.fromString("00000008-0000-3512-2118-0009af100700"); // service uuid fee1 diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/BatteryInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/BatteryInfo.java new file mode 100644 index 00000000..8b44c874 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/BatteryInfo.java @@ -0,0 +1,95 @@ +package nodomain.freeyourgadget.gadgetbridge.service.devices.miband2; + +import java.util.GregorianCalendar; + +import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandDateConverter; +import nodomain.freeyourgadget.gadgetbridge.model.BatteryState; +import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.AbstractInfo; + +//00000006-0000-3512-2118-0009af100700 +// +// f = ? +// 30 = 48% +// 00 = 00 = STATUS_NORMAL, 01 = STATUS_CHARGING +// e0 07 = 2016 +// 0b = 11 +// 1a = 26 +// 12 = 18 +// 23 = 35 +// 2c = 44 +// 04 = 4 // num charges?? +// +// e0 07 = 2016 // last charge time +// 0b = 11 +// 1a = 26 +// 17 = 23 +// 2b = 43 +// 3b = 59 +// 04 = 4 // num charges?? +// 64 = 100 // how much was charged + +public class BatteryInfo extends AbstractInfo { + public static final byte DEVICE_BATTERY_NORMAL = 0; + public static final byte DEVICE_BATTERY_CHARGING = 1; +// public static final byte DEVICE_BATTERY_LOW = 1; +// public static final byte DEVICE_BATTERY_CHARGING_FULL = 3; +// public static final byte DEVICE_BATTERY_CHARGE_OFF = 4; + + public BatteryInfo(byte[] data) { + super(data); + } + + public int getLevelInPercent() { + if (mData.length >= 2) { + return mData[1]; + } + return 50; // actually unknown + } + + public BatteryState getState() { + if (mData.length >= 3) { + int value = mData[2]; + switch (value) { + case DEVICE_BATTERY_NORMAL: + return BatteryState.BATTERY_NORMAL; + case DEVICE_BATTERY_CHARGING: + return BatteryState.BATTERY_CHARGING; +// case DEVICE_BATTERY_CHARGING: +// return BatteryState.BATTERY_CHARGING; +// case DEVICE_BATTERY_CHARGING_FULL: +// return BatteryState.BATTERY_CHARGING_FULL; +// case DEVICE_BATTERY_CHARGE_OFF: +// return BatteryState.BATTERY_NOT_CHARGING_FULL; + } + } + return BatteryState.UNKNOWN; + } + + public int getLastChargeLevelInParcent() { + if (mData.length >= 20) { + return mData[19]; + } + return 50; // actually unknown + } + + public GregorianCalendar getLastChargeTime() { + GregorianCalendar lastCharge = MiBandDateConverter.createCalendar(); + + if (mData.length >= 18) { + lastCharge = BLETypeConversions.rawBytesToCalendar(new byte[]{ + mData[10], mData[11], mData[12], mData[13], mData[14], mData[15], mData[16], mData[17] + }, true); + } + + return lastCharge; + } + + public int getNumCharges() { +// if (mData.length >= 10) { +// return ((0xff & mData[7]) | ((0xff & mData[8]) << 8)); +// +// } + return -1; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java index 6f792d29..e1667f6f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java @@ -68,9 +68,9 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateA import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.deviceinfo.DeviceInfoProfile; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.heartrate.HeartRateProfile; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.BatteryInfo; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.CheckAuthenticationNeededAction; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.DeviceInfo; +import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBandSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.NotificationStrategy; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.RealtimeSamplesSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.FetchActivityOperation; @@ -268,9 +268,9 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { public MiBand2Support enableFurtherNotifications(TransactionBuilder builder, boolean enable) { // builder.notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_REALTIME_STEPS), enable) // .notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_ACTIVITY_DATA), enable) -// .notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_BATTERY), enable) // .notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_SENSOR_DATA), enable); builder.notify(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), enable); + builder.notify(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_6_BATTERY_INFO), enable); BluetoothGattCharacteristic heartrateCharacteristic = getCharacteristic(MiBandService.UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT); if (heartrateCharacteristic != null) { builder.notify(heartrateCharacteristic, enable); @@ -367,6 +367,13 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { return this; } + private MiBand2Support requestBatteryInfo(TransactionBuilder builder) { + LOG.debug("Requesting Battery Info!"); + BluetoothGattCharacteristic characteristic = getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_6_BATTERY_INFO); + builder.read(characteristic); + return this; + } + public MiBand2Support requestDeviceInfo(TransactionBuilder builder) { LOG.debug("Requesting Device Info!"); deviceInfoProfile.requestDeviceInfo(builder); @@ -817,7 +824,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { super.onCharacteristicChanged(gatt, characteristic); UUID characteristicUUID = characteristic.getUuid(); - if (MiBandService.UUID_CHARACTERISTIC_BATTERY.equals(characteristicUUID)) { + if (MiBand2Service.UUID_CHARACTERISTIC_6_BATTERY_INFO.equals(characteristicUUID)) { handleBatteryInfo(characteristic.getValue(), BluetoothGatt.GATT_SUCCESS); return true; } else if (MiBandService.UUID_CHARACTERISTIC_NOTIFICATION.equals(characteristicUUID)) { @@ -856,7 +863,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { if (GattCharacteristic.UUID_CHARACTERISTIC_GAP_DEVICE_NAME.equals(characteristicUUID)) { handleDeviceName(characteristic.getValue(), status); return true; - } else if (MiBandService.UUID_CHARACTERISTIC_BATTERY.equals(characteristicUUID)) { + } else if (MiBand2Service.UUID_CHARACTERISTIC_6_BATTERY_INFO.equals(characteristicUUID)) { handleBatteryInfo(characteristic.getValue(), status); return true; } else if (MiBandService.UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT.equals(characteristicUUID)) { @@ -1272,11 +1279,11 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { public void phase2Initialize(TransactionBuilder builder) { LOG.info("phase2Initialize..."); enableFurtherNotifications(builder, true); + requestBatteryInfo(builder); setDateDisplay(builder); setWearLocation(builder); setFitnessGoal(builder); setActivateDisplayOnLiftWrist(builder); setHeartrateSleepSupport(builder); - } } From 375aa491d48dcdbaf71df8c63a395bccb3add0a9 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Thu, 15 Dec 2016 21:06:17 +0100 Subject: [PATCH 4/6] Another build fix --- .../nodomain/freeyourgadget/gadgetbridge/test/Tryout.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/Tryout.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/Tryout.java index 1ac4316c..fc7153da 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/Tryout.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/Tryout.java @@ -4,23 +4,17 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.FileInputStream; import java.util.GregorianCalendar; import nodomain.freeyourgadget.gadgetbridge.Logging; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandDateConverter; -import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; -import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBand2Support; -import nodomain.freeyourgadget.gadgetbridge.util.CheckSums; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; -import nodomain.freeyourgadget.gadgetbridge.util.FileUtils; /** * A simple class for trying out things, not actually testing something. */ public class Tryout extends TestBase { - private static final Logger LOG = LoggerFactory.getLogger(MiBand2Support.class); + private static final Logger LOG = LoggerFactory.getLogger(Tryout.class); @Test public void blah() { From 2b3592f35408b107e5f6d9c2792351bee6c82791 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Fri, 16 Dec 2016 23:47:59 +0100 Subject: [PATCH 5/6] Pebble: allow sending data to the pebble during installation on FW >= 3.0 It seems to be no problem to recieve notifications etc during app installation with non legacy firmwares :) --- .../service/devices/pebble/PebbleIoThread.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java index 45035477..8bbc5b57 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java @@ -486,10 +486,11 @@ class PebbleIoThread extends GBDeviceIoThread { if (bytes == null) { return; } - // block writes if app installation in in progress - if (mIsConnected && (!mIsInstalling || mInstallState == PebbleAppInstallState.WAIT_SLOT)) { - write_real(bytes); + // on FW < 3.0 block writes if app installation in in progress + if (!mIsConnected || (mPebbleProtocol.mFwMajor < 3 && mIsInstalling && mInstallState != PebbleAppInstallState.WAIT_SLOT)) { + return; } + write_real(bytes); } // FIXME: parts are supporsed to be generic code @@ -500,7 +501,7 @@ class PebbleIoThread extends GBDeviceIoThread { LOG.info("syncing time"); write(mPebbleProtocol.encodeSetTime()); } - write(mPebbleProtocol.encodeEnableAppLogs(prefs.getBoolean("pebble_enable_applogs",false))); + write(mPebbleProtocol.encodeEnableAppLogs(prefs.getBoolean("pebble_enable_applogs", false))); write(mPebbleProtocol.encodeReportDataLogSessions()); gbDevice.setState(GBDevice.State.INITIALIZED); return false; @@ -603,10 +604,6 @@ class PebbleIoThread extends GBDeviceIoThread { } void installApp(Uri uri, int appId) { - if (mIsInstalling) { - return; - } - if (uri.equals(Uri.parse("fake://health"))) { write(mPebbleProtocol.encodeActivateHealth(true)); write(mPebbleProtocol.encodeSetSaneDistanceUnit(true)); @@ -617,6 +614,10 @@ class PebbleIoThread extends GBDeviceIoThread { return; } + if (mIsInstalling) { + return; + } + String platformName = PebbleUtils.getPlatformName(gbDevice.getModel()); try { From 321298e08a6cca66b633575f56e0467f826870cc Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 17 Dec 2016 00:00:31 +0100 Subject: [PATCH 6/6] update CONTRIBUTORS.md (manually remove duplicates) --- CONTRIBUTORS.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 1637e814..e876751d 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,27 +1,38 @@ Andreas Shimokawa - cpfeiffer - Daniele Gobbetti - Daniele Gobbetti - danielegobbetti Carsten Pfeiffer + Daniele Gobbetti Julien Pivotto + Steffen Liebergeld Lem Dulfo Sergey Trofimov - Daniele Gobbetti - cpfeiffer + JohnnySun + Uwe Hermann 0nse <0nse@users.noreply.github.com> + Gergely Peidl Christian Fischer Normano64 Ⲇⲁⲛⲓ Φi + xzovy xphnx Tarik Sekmen + Szymon Tomasz Stefanek + Roman Plevka rober Nicolò Balzarotti + Natanael Arndt Marc Schlaich kevlarcade + Kevin Richter Kasha + Ivan + Gilles MOREL + Gilles Émilien MOREL Chris Perelstein + Carlos Ferreira + atkyritsis + andre Alexey Afanasev + 6arms1leg And all the Transifex translators, which I cannot automatically list, at the moment.