Commit Graph

1659 Commits

Author SHA1 Message Date
cpfeiffer f5a569610f Wrap DeviceSupport instances.
The wrapper provides support for busy-checking and throttling
(sometimes I get multiple events of the same kind within milli seconds
and the Mi Band vibrates 20 times)
2015-06-06 23:54:34 +02:00
cpfeiffer f6d5767276 Remove reference to PebbleIOThread from BluetoothCommunicationService
Let PebbleSupport do this instead.
2015-06-06 23:24:00 +02:00
cpfeiffer 3fe9195d0d Avoid warning in unsetDynamicState() 2015-06-06 23:13:26 +02:00
cpfeiffer 020d8d74d6 Added "Fetch Activity Data" to the context menu.
With some kind of progress reporting during the fetching #45
2015-06-06 19:39:04 +02:00
cpfeiffer 9e4e50be47 Initial work on synchronizing activity data with feedback.
A device now has a busy flag (set during synchronization). While busy,
no other communication with the device shall occur (TODO)

Refactors the non-bluetooth actions a bit  #45

Next step: make use of the busy state in ControlCenter (show
a busy cursor) and in BluetoothCommunicationService (to not call other
operations while busy)
2015-06-06 00:40:16 +02:00
cpfeiffer 2f0d00d645 avoid WITHOUT ROWID when not running at least lollipop #62 2015-06-06 00:10:38 +02:00
cpfeiffer 1e89b12b15 Avoid creating lots of SimpleDateFormat instances 2015-06-05 23:09:28 +02:00
cpfeiffer dea4ee82a1 Merge branch 'db_refactoring_proposal' 2015-06-05 21:57:55 +02:00
cpfeiffer c4096e6d3c Add daniele's db optimization the WITHOUT ROWID
closes #62
2015-06-05 21:46:56 +02:00
Andreas Shimokawa b12a3e74cd MorpheuzSupport: remove limit of 54 samples. Morpheuz 3.1 supports 60 2015-06-05 20:26:11 +02:00
Andreas Shimokawa baecc20742 SleepMonitorActivity: Rotate annotation text for better readability 2015-06-05 19:59:58 +02:00
Andreas Shimokawa 813a02d5c7 Unify SleepMonitor with code from PR #59. Thanks Daniele! 2015-06-05 19:32:09 +02:00
cpfeiffer 2f1908e480 Make sure to always close the database 2015-06-04 23:45:46 +02:00
Daniele Gobbetti fc374881c5 Get rid of the unused ID in the DB, this could help in:
* reducing the used space
* reducing the time needed for inserts
2015-06-04 21:37:48 +02:00
Carsten Pfeiffer 7ad38c5e1a Merge pull request #61 from danielegobbetti/fix_data_in_the_future
Do not iterate over the whole buffer, but only on the effectively use…
2015-06-04 21:15:52 +02:00
Daniele Gobbetti a1ff9aab21 Do not iterate over the whole buffer, but only on the effectively used part.
This should fix the "data in the future" issue
2015-06-04 18:56:35 +02:00
Andreas Shimokawa 7d86396e30 Support CM 12.1 Music App 2015-06-02 21:48:21 +02:00
Carsten Pfeiffer 32b2500d6b Merge pull request #60 from danielegobbetti/fix_data_in_the_future
Do not allocate the buffer if there's no data available.
2015-06-02 21:43:32 +02:00
Daniele Gobbetti 406f9ab90d Do not allocate the buffer if there's no data available.
Perhaps could fix the "data in the future" issue
2015-06-02 18:33:12 +02:00
Daniele Gobbetti 9e2d32c33f Fixed timestamp conversion for DB, added local variables to make the code clearer 2015-06-01 22:20:28 +02:00
Daniele Gobbetti ea97a902d1 *unchecked* Storing activity values in the DB. 2015-06-01 22:20:28 +02:00
Daniele Gobbetti 8b268a676c Refactoring of the data ingestion method.
* no more ByteBuffer, but a fixed size byte array that gets flushed everytime it's needed
* log of activity data to a separate file (no DB integration yet)
* the size of the buffer must be a multiple of 3 (1 minute of data = 3 bytes) and 20 (the normal size of the chunks we get from the device)
* better logging and more comments in code
2015-06-01 22:20:22 +02:00
cpfeiffer 5d950dc407 Fix reconnection after connection loss
Well, obviously we must not ignore connection state changes even if they
come with an error code.

Unfortunately the API docs are a bit terse in that respect.
2015-06-01 21:47:02 +02:00
cpfeiffer 7f89f4bb57 Some fixes regarding device initialization, should avoid disconnects
Avoid repeated initializations and device info requests. Fix unsetting
of dynamic state (e.g. battery info) when initialized.
2015-06-01 21:47:02 +02:00
Daniele Gobbetti f60903699e Delete MiBandSupport.java.orig
I believe it was committed by mistake (perhaps a merge conflict?) It's out of date in any case.
2015-06-01 21:47:02 +02:00
cpfeiffer 11884d8073 Improve logging 2015-06-01 21:47:02 +02:00
cpfeiffer 75b9fe4c4d ignore connection state changes with status != GATT_SUCCESS
And add logging. Maybe this helps with #57
2015-06-01 21:47:02 +02:00
Daniele Gobbetti 228e922ce7 forgotten refactor of a variable 2015-06-01 21:47:01 +02:00
Daniele Gobbetti e4076dc725 Ingesting the activity data the right way, but they are still being thrown away afterwards. 2015-06-01 21:47:01 +02:00
cpfeiffer 92caed5af4 Some cleanup 2015-06-01 21:47:01 +02:00
cpfeiffer a7792f6b72 improve some log statements 2015-06-01 21:47:01 +02:00
cpfeiffer 637b43e892 Also wait for descriptor reads and writes
(not just characteristic reads/writes)

This fixes initialization of notification characteristics
(activity, sensor data, battery, ...)
2015-06-01 21:47:01 +02:00
cpfeiffer f004b7b11c WIP for fetching activity data
This probably affects #44 and #45

Thanks go to Daniele Gobbetti <daniele@gobbetti.name>!
2015-06-01 21:47:01 +02:00
Andreas Shimokawa 6ea9537d38 Start sleep activity with context menu (long press on a device)
This allows to see sleep data even if devices are not connected.
2015-06-01 16:57:45 +02:00
Andreas Shimokawa 81b1d1d28d Pebble: Put WeatherNeat test in separate file 2015-05-30 22:24:53 +02:00
Andreas Shimokawa 603d31a59e add some constants to GBActivitySample 2015-05-30 21:52:29 +02:00
Andreas Shimokawa 41207516b1 Move BluetoothChangeReceiver to externalevents 2015-05-30 21:40:42 +02:00
Andreas Shimokawa 900b3f3833 use ORDER BY timestamp in SQL statement
Also optimize imports...
2015-05-30 17:40:23 +02:00
Andreas Shimokawa e79f4523c3 Add SQLite database support for activity data
This is now used for morpheuz data and the SleepMonitorActivity
2015-05-30 17:28:03 +02:00
Andreas Shimokawa 08fbbb9152 SleepMonitor: draw colored bars instead of a graph
red = awake
yellow = light sleep
greep = deep sleep
2015-05-27 00:59:05 +02:00
Andreas Shimokawa 06ee7efe79 update CHANGELOG.md 2015-05-25 01:32:16 +02:00
Andreas Shimokawa 8366af736c Pebble: Fix firmware installation when all 8 app slots are in use
We were trying to get a free slot when installing a firmware which is not neccessary.
This should also fix firmware installation in recovery (#54)
2015-05-25 01:26:27 +02:00
Carsten Pfeiffer 6fb6b5c164 Merge pull request #55 from danielegobbetti/master
Use constants instead of hardcoded values
2015-05-24 23:16:52 +02:00
cpfeiffer 8a26ce9d67 Pull evaluateGBDeviceCommand() and handle* methods up
Otherwise, MiSupport can't use 'em
2015-05-23 00:54:14 +02:00
cpfeiffer 4518e8819d Make file-logging configurable 2015-05-23 00:45:12 +02:00
cpfeiffer c469248de1 Updated from transifex (thanks!) 2015-05-22 23:21:37 +02:00
cpfeiffer 880dc7b3a4 Improve BLE gatt handling
- close() the gatt instance when explicitly disconnecting
- create a new gatt instance when explicitly connecting

Unfortunately I still appear to get spontaneous disconnects after some
notifications.
2015-05-22 23:18:29 +02:00
Andreas Shimokawa f54927624b Move non Pebble specific code from PebbleIoThread to AbstractBTDeviceSupport 2015-05-22 20:20:33 +02:00
Andreas Shimokawa 8309234784 Pebble: fix wrong calculation of timestamp. 2015-05-21 18:57:34 +02:00
Daniele Gobbetti 7e2545f9b4 Use constants instead of hardcoded values 2015-05-21 18:19:07 +02:00