1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-04 17:27:24 +01:00
Commit Graph

1548 Commits

Author SHA1 Message Date
cpfeiffer
c69889d177 Simplified + fixed ArrayUtils.equals() + added lots of testcases 2016-12-11 23:30:20 +01:00
cpfeiffer
bcfc8bc110 Mi1/Mi2: fix firmware file probing for the different devices 2016-12-11 23:30:20 +01:00
Daniele Gobbetti
bb5791485c Add log statements when notifications are not sent to gadget
This should help debuggin #456
2016-12-11 22:48:12 +01:00
cpfeiffer
40354f8f5a Some @Override 2016-12-11 21:31:27 +01:00
cpfeiffer
94c0d6af9d Mi2: Fix off-by-one in activity fetching 2016-12-11 21:31:27 +01:00
Andreas Shimokawa
825f2bf2e8 Merge branch 'master' into feature-weather 2016-12-11 20:27:28 +01:00
Andreas Shimokawa
31122f0b09 Pebble: Propagate watch apps launches outside of PebbleProtocol
This does not do anything yet.
2016-12-11 20:25:46 +01:00
cpfeiffer
6dfc895303 Mi2: Initial work on firmware update #427 2016-12-11 02:11:58 +01:00
cpfeiffer
4a19046301 Mi2: Some characteristics and opcodes for fw update 2016-12-11 02:11:58 +01:00
cpfeiffer
fd2c182714 Mi 2: another characteristic rename (0000005) 2016-12-11 02:11:58 +01:00
cpfeiffer
83ad2a9bd9 Mi 2: rename characteristic 00000003 to "CONFIGURATION" 2016-12-11 02:11:58 +01:00
Andreas Shimokawa
f63a7db5f9 Pebble: map owm conditions to TimeStyle icons
This is probably not the way we should do it, just experimenting for personal use :P
2016-12-11 00:08:57 +01:00
Daniele Gobbetti
a6a2c6d6d6 Pebble: timestyle doesn't use Yahoo anymore.
The values do not work anyway, because it's mapping them internally. See https://github.com/freakified/TimeStylePebble/tree/master/src/pkjs for the mappings.
2016-12-10 15:09:22 +01:00
Andreas Shimokawa
779699cd95 Pebble: remove configuration stuff from TimeStylePebble handler, update weather keys
This is not usable now, just playing around
2016-12-09 23:31:32 +01:00
Andreas Shimokawa
a0e21d7c6d Merge branch 'master' into feature-weather 2016-12-09 23:29:54 +01:00
Andreas Shimokawa
0e1287e382 Pebble: also execute AppMessageHandler.pushMessage() if present when connection gets established
This does not have any effect now since pushMessage() is not used in this branch
2016-12-09 23:21:51 +01:00
Andreas Shimokawa
efb1cd389b Merge branch 'master' into feature-weather 2016-12-09 21:52:55 +01:00
Andreas Shimokawa
17b581022b optimize imports 2016-12-09 20:14:17 +01:00
Kevin Richter
34296c021f Revamp Notification types Pebble (#453)
* Remove notification switches for enum & hashmap
* Fix code style
* Fix null reference exception
* Add whatsapp support
* Remove duplicate entry
2016-12-09 17:54:19 +01:00
Andreas Shimokawa
313499abd4 Pebble: also display debug level in app logs output 2016-12-08 23:20:00 +01:00
Daniele Gobbetti
2d0489960e Pebble: boilerplate code to open dictation session #189
This is just boilerplate code, doesn't do anything but will do no harm as it's not called from anywhere
2016-12-08 16:38:31 +01:00
Andreas Shimokawa
ed38e524bf Make some static stuff non-static (potentially fixes instant run problem and leaks) 2016-12-07 23:13:51 +01:00
Daniele Gobbetti
6a09023c24 Liveview: add some sanity checks to the incoming data lenghts 2016-12-07 13:09:15 +01:00
Daniele Gobbetti
4eb56eb9ca Liveview: refactor the BT stream reading functionality
Read the expected number of bytes at each step instead of a single byte.
2016-12-05 17:45:03 +01:00
Daniele Gobbetti
e53b8b6b32 Liveview: ignore the SocketTimeoutException, disconnect in any other case 2016-12-04 21:04:30 +01:00
Daniele Gobbetti
219cc7bff1 Merge branch 'master' into liveview 2016-12-04 20:42:29 +01:00
cpfeiffer
928bdd5d36 Adjust comments to current values
They look plausible compared to 1S activity
2016-12-04 20:25:20 +01:00
Daniele Gobbetti
8c01123a48 Liveview: addressed the first feedback.
- centralized string encoding and byte order
- replaced printStrackTrace with LOG.error
2016-12-04 19:10:58 +01:00
Andreas Shimokawa
013029443b Pebble: Minor cleanups 2016-12-04 17:21:29 +01:00
Andreas Shimokawa
a691cd0ff7 Pebble: add option to enable applogs (debug messags from pebble apps) 2016-12-04 16:55:27 +01:00
Daniele Gobbetti
e0a844b60a Liveview: Initial support for Liveview devices
Working so far: stable connection, setting time and sending notifications.
2016-12-03 16:20:02 +01:00
Andreas Shimokawa
3db009e77d Pebble: do not dump all LE traffic, minor code cleanups 2016-12-02 23:38:54 +01:00
Andreas Shimokawa
ae2c107ed1 Pebble 2/LE: only notify once when first PP packets are incoming 2016-12-02 08:50:02 +01:00
Andreas Shimokawa
bc9041a4c9 Pebble 2/LE: on connect wait 30s max and stop waiting immediately if a real PP connection got establish (ie write request on the gatt server) 2016-12-02 08:07:44 +01:00
Andreas Shimokawa
3eda2d4b81 Pebble 2/LE: honor reconnect tries 2016-12-02 00:38:53 +01:00
cpfeiffer
44f74270df Mi2: Experimental support for activity recognition 2016-12-02 00:22:06 +01:00
cpfeiffer
da297ecd8b Fix + cleanup time setting and calendar sending #441 2016-12-01 22:51:08 +01:00
Uwe Hermann
0746aaa579 app: Random typo and consistency fixes. 2016-12-01 20:22:12 +01:00
Uwe Hermann
6dd74d04ac code/docs: Consistently use the "Gadgetbridge" spelling.
"Gadgetbridge" appears to be the common spelling as per most docs,
code comments, wiki, and so on. Thus avoid using "GadgetBridge".
2016-12-01 17:28:51 +01:00
Andreas Shimokawa
f0789cc147 Pebble 2/LE: fix another bug when reconnecting 2016-12-01 00:28:23 +01:00
Andreas Shimokawa
2993bb6b5c Pebble 2/LE: fix potential NPE 2016-12-01 00:20:21 +01:00
Andreas Shimokawa
74c20f3a82 Pebble 2/LE: More fun with reconnect 2016-11-30 23:56:58 +01:00
Andreas Shimokawa
b878fa5eda Pebble LE/Pebble 2: Fix reconnect not working when first attempt fails 2016-11-30 22:28:34 +01:00
Andreas Shimokawa
95ec1fb44c Pebble LE/Pebble 2: Improve reconnect 2016-11-30 19:54:21 +01:00
cpfeiffer
09ff95eb34 Support for continuous hr readings (live activity) #323 2016-11-29 23:25:11 +01:00
cpfeiffer
49acde118d Do not log heartrate separately during miband 1s sync 2016-11-29 23:25:11 +01:00
cpfeiffer
011646b097 Fix activity data on Mi Band 1 #440 2016-11-29 22:22:54 +01:00
Andreas Shimokawa
2677dad873 Fix a recent regression that caused the database migration dialog to never pop up 2016-11-27 22:50:21 +01:00
Andreas Shimokawa
109a032f1e Pebble: fix Pebble LE address not being propery added to device attributes 2016-11-27 22:45:57 +01:00
Daniele Gobbetti
84327a5b86 Pebble: use also the device address as seed to store app configuration
This is not needed as long as one GB instance is used to manage a single pebble device, if multiple devices are managed the stored watchapp configuration could be messed up.
2016-11-27 11:31:03 +01:00
Andreas Shimokawa
fa8df9f552 add missing migration script 2016-11-27 10:52:43 +01:00
Andreas Shimokawa
16b4bfd0e7 Pebble LE: also return to control center if successfully initialized 2016-11-27 10:38:16 +01:00
Andreas Shimokawa
723ad53588 Call getDevice always when connected
This fixes a longstanding bug where device attributes where ONLY updated when fetching activity data or when pairing a new device
2016-11-27 10:32:56 +01:00
Andreas Shimokawa
24752d3455 Pebble: try harder to get LE address into the database, does not work 2016-11-27 10:10:50 +01:00
Andreas Shimokawa
34ad088b88 Pebble: Experimental support for BLE on all models via dev option in Pebble Settings
HOWTO:
1) Pair you normal Pebble (not necessary if already done), make sure it was connected once
2) Unpair your LE pebble if already paired
3) Switch on "Always prefer BLE" in Pebble Settings
4) Tap on the + in Control Center to add a new device
5) Pair your Pebble-LE XXXX or Pebble Time LE XXXX inside Gadgetbridge's Device Discovery actibity

Now Gadgetbridge will connect to your LE Pebble when tapping on Pebble XXXX if "Always Prefer BLE" option is enabled.
You can easily switch back to classic LE by turning that option off again
2016-11-27 09:49:28 +01:00
cpfeiffer
2f7eb9ef23 Some more improvements to discovery
- pass service uuids to GBDeviceCandaidate so that DeviceCoordinators
  can detect devices by their services.

Note: they should not rely on service uuids being available
2016-11-27 02:46:07 +01:00
cpfeiffer
b9ff2cd468 A few improvements to discovery
- display the right icon for found device candidates
- scan for specific LE services
2016-11-27 01:09:20 +01:00
Andreas Shimokawa
352fc1a030 fix wrong return value 2016-11-25 14:53:12 +01:00
Andreas Shimokawa
a5263141d7 Pebble 2: Ignore all GATT communication with all other that the current device
Fixes a bad bug where disconnecting from another BLE device caused the Pebble2 to disconnect
2016-11-25 14:28:04 +01:00
cpfeiffer
2d4645f6cc Fix only the first day label being displayed in Week Steps charts 2016-11-24 23:35:10 +01:00
Andreas Shimokawa
84caf22479 fix weekly charts to start y axis at 0 2016-11-24 22:27:44 +01:00
cpfeiffer
7da328d5db Fix an invalid leftover check for array length
Also removed a method invocation that did not belong there.
2016-11-24 22:16:04 +01:00
Andreas Shimokawa
9d083e2330 Pebble: add Kickstart Watchface to app manager on FW 4.X
I know it only exist on 4.3+, but I am lazy
2016-11-24 22:10:32 +01:00
cpfeiffer
3fdfb7d172 Mi2: Support for setting the fitness goal (steps) 2016-11-24 21:58:32 +01:00
cpfeiffer
9bebf1d32f When memory is really low, free up some memory #436
(although we probably can't save much)
2016-11-24 21:15:27 +01:00
cpfeiffer
60cb67c3c8 Some cleanup 2016-11-24 21:15:27 +01:00
cpfeiffer
cc0fbff297 Set the sample provider in getLatestActivitySample() 2016-11-24 21:15:27 +01:00
Andreas Shimokawa
381323011e Pebble 2: work around FW installation problems
Wait a 0.5s after each complete Pebble packet and do not longer wait at all after a completed GATT package chunk (was 0.1s)
Big outgoing messages will be now much faster such as firmware installations but smaller take more time than before.

(This is not the proper fix but I could update the firmware this way, failed 10 times before after a few percent)
2016-11-24 18:52:58 +01:00
cpfeiffer
67d89ce1b9 Create the correct start-sync timestamp #323 2016-11-22 22:52:26 +01:00
cpfeiffer
dfbaba4cb6 Make sure that the charts display the requested time range
(instead of only the range with available samples)
2016-11-22 15:53:58 +01:00
cpfeiffer
a8a7d8db31 Mi2: WIP synchronize only new data since last sync
(#323)
2016-11-22 00:05:41 +01:00
cpfeiffer
0c51f86afc Mi2: more work on activity data #323 2016-11-22 00:05:41 +01:00
cpfeiffer
82cd06f4c1 Mi2: WIP: initial support for activity data
(#323)
2016-11-22 00:05:41 +01:00
Andreas Shimokawa
eb052cead3 Pebble 2: Also honor the mtu when client gets a change reported
Should help older LE Pebbles
2016-11-21 17:29:16 +01:00
Andreas Shimokawa
647b67cfca Pebble 2: call both requestMTU and use the characteristic write 2016-11-21 15:17:03 +01:00
Andreas Shimokawa
fce86482b9 Pebble 2: try an alternative way of setting the MTU (might revert) 2016-11-21 14:54:01 +01:00
Andreas Shimokawa
e8da301da3 Pebble 2: fix a few crashes with disconnect/ reconnect 2016-11-20 22:04:49 +01:00
Andreas Shimokawa
4f3c46f704 Pebble 2: only add second service if first one was added sucessfully 2016-11-20 00:12:41 +01:00
Andreas Shimokawa
3b250a4568 Pebble 2: initial hacky reconnect support
Works sometimes, at least less crashes
(#432)
2016-11-19 23:53:07 +01:00
Andreas Shimokawa
029cc02a29 Pebble: Add Pebble specific pairing activity mainly useful for Pebble 2 since it properly pairs the Pebble after connecting with BLE
Fixes #433
2016-11-19 22:13:00 +01:00
Andreas Shimokawa
ddfab1cdae Pebble 2: use requestMTU() on Android 5+ instead of characteristics write.
This actually fixes MTU problems with older Pebbles (Time, OG)
2016-11-18 23:47:48 +01:00
Andreas Shimokawa
4dc085de57 Pebble 2: React to MTU notifications, fixes LE for older pebbles also
It seems that setting the MTU on older pebbles does not work, so just use what we can use.
Maybe old pebbles need setMTU() which only works on Android 5+, we could use that conditionally...
2016-11-18 23:47:48 +01:00
cpfeiffer
51fa31aa66 Fix BLE type conversions problems 2016-11-18 23:36:22 +01:00
Andreas Shimokawa
66e3de9168 Pebble 2: improve connection problems (at least for me) 2016-11-18 22:38:39 +01:00
cpfeiffer
96a16245df Update to MPAndroidChart 3.0.1 2016-11-18 21:31:55 +01:00
Andreas Shimokawa
d41848014b fix database schema migration from 13 to 14 2016-11-16 11:37:36 +01:00
Andreas Shimokawa
485cda52a8 Pebble 2: actually report HRM feature to Charts Activity 2016-11-15 23:41:35 +01:00
Andreas Shimokawa
d7256d172e I hate java 2016-11-15 23:23:21 +01:00
Andreas Shimokawa
163a7bdf15 Pebble 2: save heart rate values to database (hopefully) 2016-11-15 23:21:13 +01:00
Andreas Shimokawa
82a47022fa Pebble 2: allow to disable/enable HRM in context menu of Workout app
Okay this might be stupid  since Workout seems to work also works without HRM!
I assumed (wrongly) that I will disable Workout by disabling HRM

anyway, better than not being able to toggle it at all!
2016-11-15 12:17:51 +01:00
Andreas Shimokawa
4b7f47ba6c Pebble 2: add Workout system app to app manager on P2 and hexdump incoming HRM datalog 2016-11-15 11:56:14 +01:00
Daniele Gobbetti
1a22752b98 Pebble: enable localStorage
LocalStorage native functions are overridden to keep each watchface's settings separated. It's possible the bind method do not work on older versions of android.
2016-11-14 17:51:33 +01:00
cpfeiffer
d8145a52f9 Activate the display when lifting the wrist #323
Configurable, defaults to true
2016-11-13 21:47:54 +01:00
Andreas Shimokawa
00a71f53b3 Pebble 2: add not yet working code (at least not without weird workarounds)
This is is a pain because of tons of weird pairing issues
2016-11-13 21:29:58 +01:00
cpfeiffer
d89899557c Mi2: Add config option to configure date/time display
(added a new EventHandler method to set a specific configuration option)
2016-11-13 20:47:24 +01:00
cpfeiffer
ddaf51768d Improved logging 2016-11-13 20:24:25 +01:00
cpfeiffer
3cc8d887ca Mi2: Initial support for wear location, hr during sleep and date format #323
- wear location from prefs is sent to the band
- hr measurement during sleep is sent to the band
- date format is sent to the band (date+time or just time)
  (TODO: needs preference option)
2016-11-13 01:44:52 +01:00
Andreas Shimokawa
f68bbe453b Pebble: bump flags and version we report
Plus some small preparations for P2 support which do not hurt in master
2016-11-10 11:05:32 +01:00
Andreas Shimokawa
eb7646d26a Pebble: Fix vanished Health system apps (for affected users)
This code also allows us to add new system apps which will then appended to the current list of previous Gadgetbridge users.
2016-11-09 19:20:37 +01:00
Andreas Shimokawa
837dfd5917 Pebble: fix Pebble Health vanishing when deactivating 2016-11-09 12:06:13 +01:00
cpfeiffer
3b474bb5a9 Move another notify registration to after initialization #408 2016-11-08 22:55:31 +01:00
Daniele Gobbetti
16c4f1a5ca Pebble: add toggle to use last known location for sunrise and sunset
This adds the feature discussed in #415, the used location is the last recorded by the network location provider, if it's not available then the stored location is used.
2016-11-06 15:42:52 +01:00
cpfeiffer
55f036c104 Move heart rate notification enamblement to after authentication
Might fix #408 and #425
2016-11-04 22:11:07 +01:00
Andreas Shimokawa
14ef5202e1 some internal testing which does not hurt in master 2016-11-03 11:07:44 +01:00
cpfeiffer
0076bbf572 Remove all Mi2 DeviceInfo stuff -- they're not used together #365
This might fix firmware downgrading on certain Mi1A devices
with hw revision 8
2016-10-30 23:04:21 +01:00
Daniele Gobbetti
b9bfb8c93a Use attr resources to enable theme dependent colors for the charts. 2016-10-29 20:29:35 +02:00
Andreas Shimokawa
f755d99023 Pebble: Add context menu option in app manager to search a watchapp in the pebble appstore 2016-10-29 11:41:08 +02:00
cpfeiffer
cea5f5fa36 Remove duplicate case here as well 2016-10-29 00:01:56 +02:00
cpfeiffer
1cadb692fe Wild guess at trying to fix spontaneous reboots during discovery #412 2016-10-28 23:48:13 +02:00
cpfeiffer
a941a6cd5f Make some strings translatable 2016-10-28 23:47:39 +02:00
cpfeiffer
3db9748136 Mi2: Attempt to support non-repetitive alarms #323 2016-10-28 23:18:10 +02:00
cpfeiffer
e5ade5c0ef Add Alamr.isRepetitive() convenience method 2016-10-28 22:40:34 +02:00
cpfeiffer
1352403089 Mi2: Allow for disabling alarms #323 2016-10-28 22:26:07 +02:00
Andreas Shimokawa
300d0466af Merge pull request #422 from roidelapluie/fcb
Mark 3rd party facebook apps notifications as Facebook
2016-10-28 10:45:40 +02:00
Andreas Shimokawa
55daaf247c Merge pull request #420 from atkyritsis/master
Removed duplicate if statement.
2016-10-28 10:45:09 +02:00
Julien Pivotto
67937dd6ee Mark 3rd party facebook apps notifications as Facebook
- Toffeed: https://f-droid.org/repository/browse/?fdid=me.jakelane.wrapperforfacebook
- Slimsocial: https://f-droid.org/repository/browse/?fdid=it.rignanese.leo.slimfacebook
- MaterialFBook: https://f-droid.org/repository/browse/?fdid=me.zeeroooo.materialfb

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2016-10-28 07:23:54 +02:00
Andreas Shimokawa
d6b9e6d64b Pebble: Support sending byte arrays from app configuration data
Also add debug output if trying to encode unknown classes in PebbleProtocol

(Fixes #421)
2016-10-28 00:32:45 +02:00
Andreas Shimokawa
bdf403210e Pebble: Fix configuration of certain pebble apps
for appkeys with index 0 it was assumed they were not found becaus JSONObject.getOpt() returns 0 if not found.
Use the getOpt() method variant with a fallback parameter instead and set that to -1 fixes the problem.

(Also fixes a missing debug output)

Fixes #419
2016-10-28 00:03:50 +02:00
atkyritsis
45cf4e5396 Removed duplicate if statement. 2016-10-27 18:44:27 +02:00
Andreas Shimokawa
d3571d53b2 Mi Band: allow to remove mac address from preferences
(this allows to clear an extra mi band from the control center)

Evil hack...
2016-10-26 00:03:54 +02:00
Daniele Gobbetti
1f77e3e84f Coordinator: add explicit methods to determine if the device supports app management and which class is responsible for it. 2016-10-25 17:39:11 +02:00
cpfeiffer
a39e3a035c Move device deletion logic to DeviceCoordinator and subclasses 2016-10-24 20:02:44 +02:00
cpfeiffer
de46555e37 Mi2: display heart rate result from Debug screen as a toast #323 2016-10-24 00:23:59 +02:00
cpfeiffer
b20a9c9ccc Some initial hacky support for hr readings (Debug activity only)
My Mi2 stopped reporting hr values a while ago though, even on-device.
2016-10-23 23:53:48 +02:00
cpfeiffer
17b70a1b82 Support for more than one alarm #323
Smart alarms not supported yet.
2016-10-23 23:05:54 +02:00
cpfeiffer
3a12ffd42d Mi2: Fix for alarm enablement. Was too late, apparently. 2016-10-23 22:38:57 +02:00
Daniele Gobbetti
503bcee7b4 Support record version 13 (firmware 4.2) 2016-10-21 13:07:07 +02:00
cpfeiffer
ee24443b6a Make it really clear, that only the first alarm works #323 2016-10-21 01:01:30 +02:00
cpfeiffer
15954d4561 Initial support for alarms (one, atm) #323
(repetitinos not tested yet)
2016-10-21 00:50:41 +02:00
cpfeiffer
839da4f06a Shuffle some logging things around 2016-10-21 00:50:41 +02:00
cpfeiffer
c87d08bf4b Small refactoring for initial support for Mi2 Alarms #323 2016-10-21 00:50:41 +02:00
Andreas Shimokawa
cc2b22cfc7 prefer BIG_TEXT extra from notification only for email
(Some messengers accumulate messages in BIG_TEXT)
2016-10-19 18:38:26 +02:00
Andreas Shimokawa
336ffd5bf7 Extract EXTRA_BIG_TEXT instead of EXTRA_TEXT if available.
This makes K9 Mail usable with only using generic notifcations on Android >=5
(It shows the message preview now)
2016-10-18 23:44:00 +02:00
cpfeiffer
4122e0c20c Add button "Test New Functionality" 2016-10-11 23:35:58 +02:00
Daniele Gobbetti
21fc5c7498 Integrate Daniele's live-sensor-data support 2016-10-11 23:13:40 +02:00
cpfeiffer
713989ef38 Add event "test new function" for the debug screen 2016-10-11 23:06:59 +02:00
cpfeiffer
344f6bcaa0 Use separate AppCompatPreferenceActivity from Android samples
(instead of mixing it with our code)
2016-10-11 22:07:56 +02:00
cpfeiffer
363b7cbf28 @Override 2016-10-11 21:47:45 +02:00
cpfeiffer
7c3dc741d2 Send vibration off-commands to Mi2 (#323)
Far from perfect, but a little better.
2016-10-11 21:38:17 +02:00
cpfeiffer
a559140f67 Fix the previous fix ;-) 2016-10-11 21:35:45 +02:00
cpfeiffer
1fc44034f0 Also use getGenericType() for the "summary" types 2016-10-11 21:28:28 +02:00
cpfeiffer
e7c0afa603 Cleanup onNotification() 2016-10-11 21:18:43 +02:00
cpfeiffer
f1243f52c1 Deactivate some unsupported things for Mi2 2016-10-11 20:23:25 +02:00
Andreas Shimokawa
c65a0a16de fix mi band try vibration buttons 2016-10-11 17:57:50 +02:00
Andreas Shimokawa
a094f0cc76 Mi Band: for vibration settings, group navication types (email, sms, chat, social network, navigation) 2016-10-11 15:20:55 +02:00
Andreas Shimokawa
cd195a5969 map more apps to notification types (icons and colors on the pebble) 2016-10-11 11:54:52 +02:00
cpfeiffer
92c629c351 Ranem NotificationType.UNDEFINED to UNKNOWN 2016-10-10 23:06:44 +02:00
cpfeiffer
62828e5158 Remove ORIGIN_ notification constants, clean up
- MI preferences now use NotificationType.getFixedName() for preference
  keys
2016-10-10 22:45:26 +02:00
cpfeiffer
5c8525c5d0 Don't rely on File.canWrite() for directories, closes #406 2016-10-10 21:01:41 +02:00
cpfeiffer
f57fec25f8 Remove the coordinator instance #323
For now, always iterate over the available coordinators instead.
Should fix MiBandSupport occasionally being used in place of MiBand2Support.
2016-10-10 20:52:40 +02:00