From 08f2b0eb7cc24bddcf5c113a139e2942f956929f Mon Sep 17 00:00:00 2001 From: JohnnySun Date: Tue, 13 Sep 2016 18:15:03 +0800 Subject: [PATCH 1/4] fix somebug and rewirte the auth process --- .../gadgetbridge/model/DeviceService.java | 2 + .../devices/miband/MiBand2Support.java | 58 ++++++++++++++----- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java index 7c459f42..6db9f4a8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java @@ -12,6 +12,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.DeviceCommunicationService; public interface DeviceService extends EventHandler { String PREFIX = "nodomain.freeyourgadget.gadgetbridge.devices"; + String ACTION_MIBAND2_AUTH = PREFIX + ".action.miban2_auth"; String ACTION_START = PREFIX + ".action.start"; String ACTION_CONNECT = PREFIX + ".action.connect"; String ACTION_NOTIFICATION = PREFIX + ".action.notification"; @@ -83,6 +84,7 @@ public interface DeviceService extends EventHandler { String EXTRA_CALENDAREVENT_DURATION = "calendarevent_duration"; String EXTRA_CALENDAREVENT_TITLE = "calendarevent_title"; String EXTRA_CALENDAREVENT_DESCRIPTION = "calendarevent_description"; + String EXTRA_MIBAND2_AUTH_BYTE = "miband2_auth_byte"; void start(); 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/miband/MiBand2Support.java index e7f4658c..2a95a94c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java @@ -7,6 +7,9 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import android.widget.Toast; @@ -55,6 +58,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic; import nodomain.freeyourgadget.gadgetbridge.service.btle.GattService; +import nodomain.freeyourgadget.gadgetbridge.service.btle.Transaction; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.AbortTransactionAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.ConditionalWriteAction; @@ -104,12 +108,25 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { } else if (s.equals(BatteryInfoProfile.ACTION_BATTERY_INFO)) { handleBatteryInfo((nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.battery.BatteryInfo) intent.getParcelableExtra(BatteryInfoProfile.EXTRA_BATTERY_INFO)); + } else if (s.equals(DeviceService.ACTION_MIBAND2_AUTH)) { + byte[] response = intent.getExtras().getByteArray(DeviceService.EXTRA_MIBAND2_AUTH_BYTE); + BluetoothGattCharacteristic temp = getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9); + temp.setValue(response); + if ((temp.getProperties() & (BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE)) != 0) { + Log.d("HELLO", "its looks ok"); + } + if (!mBluetoothGatt.writeCharacteristic(temp)) { + Log.d("ERROR", "ERROR"); + } + Log.d("HELLO", "HELLO"); + } } }; private volatile boolean telephoneRinging; private volatile boolean isLocatingDevice; + private BluetoothGatt mBluetoothGatt; private DeviceInfo mDeviceInfo; @@ -136,6 +153,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(DeviceInfoProfile.ACTION_DEVICE_INFO); intentFilter.addAction(BatteryInfoProfile.ACTION_BATTERY_INFO); + intentFilter.addAction(DeviceService.ACTION_MIBAND2_AUTH); broadcastManager.registerReceiver(mReceiver, intentFilter); } @@ -155,9 +173,9 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { // this is apparently not needed anymore, and actually causes problems when bonding is not used/does not work // so we simply not use the UUID_PAIR characteristic. // .pair(builder) - .testInit(builder) - .requestDeviceInfo(builder) - .requestBatteryInfo(builder); + .testInit(builder); + //.requestDeviceInfo(builder) + //.requestBatteryInfo(builder); // .sendUserInfo(builder) // .checkAuthenticationNeeded(builder, getDevice()) // .setWearLocation(builder) @@ -176,12 +194,11 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { //builder.read(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC7)); // example read value: 0019000000 setCurrentTimeWithService(builder); // write key to miband2 - builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9), new byte[] { 0x01, 0x01, (byte) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45 }); + //builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9), new byte[] { 0x01, 0x08, (byte) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45 }); // get random auth number - builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9), new byte[] { 0x02 }); - builder.read(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC6)); // probably superfluous - builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC8), new byte[] { 0x20, 0x00, 0x00, 0x02 }); - Log.d("TESTINIT", "testinit"); + builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9), new byte[] { 0x02 , 0x08}); + //builder.read(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC6)); // probably superfluous + //builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC8), new byte[] { 0x20, 0x00, 0x00, 0x02 }); return this; } @@ -410,8 +427,8 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { // write key to miband2 BluetoothGattCharacteristic characteristic = getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9); if (characteristic != null) { - transaction.write(characteristic, new byte[] { 0x01, 0x01, (byte) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45 }); - transaction.write(characteristic, new byte[] { 0x02 }); + transaction.write(characteristic, new byte[] { 0x01, 0x08, (byte) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45 }); + //transaction.write(characteristic, new byte[] { 0x02, 0x08 }); LOG.info("Pair write"); } else { LOG.info("Unable to pair MI device -- characteristic not available"); @@ -878,6 +895,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { public boolean onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { super.onCharacteristicChanged(gatt, characteristic); + mBluetoothGatt = gatt; UUID characteristicUUID = characteristic.getUuid(); if (MiBandService.UUID_CHARACTERISTIC_BATTERY.equals(characteristicUUID)) { @@ -899,11 +917,15 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { // handleUnknownCharacteristic(characteristic.getValue()); // return true; } else if (MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9.equals(characteristicUUID)) { - if (characteristic.getValue()[0] == 0x10) { + logMessageContent(characteristic.getValue()); + if (characteristic.getValue()[0] == 0x10 && + characteristic.getValue()[1] == 0x02 && + characteristic.getValue()[2] == 0x01) { byte[] eValue = handleAESAuth(characteristic.getValue()); - byte[] responseValue = org.apache.commons.lang3.ArrayUtils.addAll(new byte[] {0x03, 0x00}, eValue); - characteristic.setValue(responseValue); - gatt.writeCharacteristic(characteristic); + byte[] responseValue = org.apache.commons.lang3.ArrayUtils.addAll(new byte[] {0x03, 0x08}, eValue); + Intent intent = new Intent(DeviceService.ACTION_MIBAND2_AUTH) + .putExtra(DeviceService.EXTRA_MIBAND2_AUTH_BYTE, responseValue); + LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); } // } else { @@ -958,6 +980,10 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { } else if (MiBandService.UUID_CHARACTERISTIC_CONTROL_POINT.equals(characteristicUUID)) { handleControlPointResult(characteristic.getValue(), status); return true; + } else if (MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9.equals(characteristicUUID)) { + LOG.info("KEY AES SEND"); + logMessageContent(characteristic.getValue()); + return true; } return false; } @@ -1022,11 +1048,11 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { } private byte[] handleAESAuth(byte[] value) { - byte[] mValue = Arrays.copyOfRange(value, 3, 188); + byte[] mValue = Arrays.copyOfRange(value, 3, 19); try { Cipher ecipher = null; byte[] sRandom = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45}; - ecipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + ecipher = Cipher.getInstance("AES/ECB/NoPadding"); SecretKeySpec newKey = new SecretKeySpec(sRandom, "AES"); ecipher.init(Cipher.ENCRYPT_MODE, newKey); byte[] enc = ecipher.doFinal(mValue); From 19fbe5719c47bdc5631e0e46836a91a9deebe9c8 Mon Sep 17 00:00:00 2001 From: JohnnySun Date: Tue, 13 Sep 2016 23:50:35 +0800 Subject: [PATCH 2/4] When miband2 auth success, let application show miband status is connected --- .../service/devices/miband/MiBand2Support.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) 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/miband/MiBand2Support.java index 2a95a94c..e4ab09eb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java @@ -112,13 +112,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { byte[] response = intent.getExtras().getByteArray(DeviceService.EXTRA_MIBAND2_AUTH_BYTE); BluetoothGattCharacteristic temp = getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC9); temp.setValue(response); - if ((temp.getProperties() & (BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE)) != 0) { - Log.d("HELLO", "its looks ok"); - } - if (!mBluetoothGatt.writeCharacteristic(temp)) { - Log.d("ERROR", "ERROR"); - } - Log.d("HELLO", "HELLO"); + mBluetoothGatt.writeCharacteristic(temp); } } @@ -173,7 +167,8 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { // this is apparently not needed anymore, and actually causes problems when bonding is not used/does not work // so we simply not use the UUID_PAIR characteristic. // .pair(builder) - .testInit(builder); + .testInit(builder) + .setInitialized(builder); //.requestDeviceInfo(builder) //.requestBatteryInfo(builder); // .sendUserInfo(builder) From 53d468176378ee1307af3c9038bf46579ac6157b Mon Sep 17 00:00:00 2001 From: JohnnySun Date: Tue, 13 Sep 2016 23:53:35 +0800 Subject: [PATCH 3/4] Optimize Imports --- .../gadgetbridge/database/DBHandler.java | 1 - .../gadgetbridge/database/DBHelper.java | 1 - .../devices/DeviceCoordinator.java | 3 --- .../btle/AbstractBTLEDeviceSupport.java | 1 - .../service/btle/BleNamesResolver.java | 4 ++-- .../devices/miband/MiBand2Support.java | 8 -------- .../service/devices/miband/MiBandSupport.java | 1 - .../gadgetbridge/util/FileUtils.java | 1 - .../gadgetbridge/util/Prefs.java | 3 --- .../gadgetbridge/test/LoggingTest.java | 6 ------ .../gadgetbridge/test/TestBase.java | 1 - gradle.properties | 20 +++++++++---------- 12 files changed, 12 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHandler.java index 9a9923cc..d4f09125 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHandler.java @@ -3,7 +3,6 @@ package nodomain.freeyourgadget.gadgetbridge.database; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; -import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.entities.DaoMaster; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java index 3132792c..0794131d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java @@ -50,7 +50,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.model.ActivityUser; import nodomain.freeyourgadget.gadgetbridge.model.ValidByDate; -import nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleProtocol; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.FileUtils; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java index c0f9d6d6..482ae9ae 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java @@ -1,12 +1,9 @@ package nodomain.freeyourgadget.gadgetbridge.devices; import android.app.Activity; -import android.bluetooth.BluetoothDevice; import android.content.Context; import android.net.Uri; -import nodomain.freeyourgadget.gadgetbridge.database.DBHandler; -import nodomain.freeyourgadget.gadgetbridge.entities.AbstractActivitySample; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/AbstractBTLEDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/AbstractBTLEDeviceSupport.java index ffc2eda9..87f3aad0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/AbstractBTLEDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/AbstractBTLEDeviceSupport.java @@ -9,7 +9,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.AbstractCollection; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BleNamesResolver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BleNamesResolver.java index 39713b38..c411233d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BleNamesResolver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BleNamesResolver.java @@ -1,9 +1,9 @@ package nodomain.freeyourgadget.gadgetbridge.service.btle; -import java.util.HashMap; - import android.util.SparseArray; +import java.util.HashMap; + public class BleNamesResolver { private static HashMap mServices = new HashMap(); private static HashMap mCharacteristics = new HashMap(); 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/miband/MiBand2Support.java index e4ab09eb..3aeae72a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java @@ -7,18 +7,13 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; import android.support.v4.content.LocalBroadcastManager; -import android.util.Log; import android.widget.Toast; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.security.SecureRandom; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -28,7 +23,6 @@ import java.util.List; import java.util.UUID; import javax.crypto.Cipher; -import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import nodomain.freeyourgadget.gadgetbridge.GBApplication; @@ -58,7 +52,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic; import nodomain.freeyourgadget.gadgetbridge.service.btle.GattService; -import nodomain.freeyourgadget.gadgetbridge.service.btle.Transaction; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.AbortTransactionAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.ConditionalWriteAction; @@ -66,7 +59,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateA import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.battery.BatteryInfoProfile; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.deviceinfo.DeviceInfoProfile; -import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; import nodomain.freeyourgadget.gadgetbridge.util.GB; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java index f956e9b8..e7f3667f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java @@ -37,7 +37,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.CalendarEvents; import nodomain.freeyourgadget.gadgetbridge.model.CallSpec; import nodomain.freeyourgadget.gadgetbridge.model.CannedMessagesSpec; import nodomain.freeyourgadget.gadgetbridge.model.DeviceService; -import nodomain.freeyourgadget.gadgetbridge.model.GenericItem; import nodomain.freeyourgadget.gadgetbridge.model.MusicSpec; import nodomain.freeyourgadget.gadgetbridge.model.MusicStateSpec; import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/FileUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/FileUtils.java index 03bce623..22d5d3fa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/FileUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/FileUtils.java @@ -5,7 +5,6 @@ import android.content.Context; import android.net.Uri; import android.os.Environment; import android.support.annotation.NonNull; -import android.util.Log; import java.io.BufferedInputStream; import java.io.BufferedReader; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java index 03aca1aa..875038ec 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java @@ -3,9 +3,6 @@ package nodomain.freeyourgadget.gadgetbridge.util; import android.content.SharedPreferences; import android.util.Log; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.Set; /** diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/LoggingTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/LoggingTest.java index 5bc17f7f..13109a0a 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/LoggingTest.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/LoggingTest.java @@ -3,17 +3,11 @@ package nodomain.freeyourgadget.gadgetbridge.test; import android.support.annotation.NonNull; import org.junit.After; -import org.junit.BeforeClass; import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; import java.io.File; import java.io.IOException; -import ch.qos.logback.classic.util.ContextInitializer; -import nodomain.freeyourgadget.gadgetbridge.BuildConfig; import nodomain.freeyourgadget.gadgetbridge.Logging; import nodomain.freeyourgadget.gadgetbridge.util.FileUtils; diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/TestBase.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/TestBase.java index 6972b4a1..a7120bfd 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/TestBase.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/TestBase.java @@ -6,7 +6,6 @@ import android.database.sqlite.SQLiteDatabase; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; diff --git a/gradle.properties b/gradle.properties index 8c144972..1eed47e8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,19 +1,19 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - +## Project-wide Gradle settings. +# # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html - +# # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - +# # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true \ No newline at end of file +# org.gradle.parallel=true +#Mon Sep 12 23:20:41 CST 2016 +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.nonProxyHosts=192.168.*, 127.0.0.1, localhost +org.gradle.jvmargs=-Xmx2048m -XX\:MaxPermSize\=512m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8 +systemProp.http.proxyPort=1080 From 23428c3a16f18dacd829ad45d0b53b6775830bf5 Mon Sep 17 00:00:00 2001 From: JohnnySun Date: Wed, 14 Sep 2016 07:28:06 +0800 Subject: [PATCH 4/4] Rollback gradle.properties --- gradle.properties | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1eed47e8..8c144972 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,19 +1,19 @@ -## Project-wide Gradle settings. -# +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html -# + # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -# +org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -#Mon Sep 12 23:20:41 CST 2016 -systemProp.http.proxyHost=127.0.0.1 -systemProp.http.nonProxyHosts=192.168.*, 127.0.0.1, localhost -org.gradle.jvmargs=-Xmx2048m -XX\:MaxPermSize\=512m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8 -systemProp.http.proxyPort=1080 +# org.gradle.parallel=true \ No newline at end of file